Pleora Technologies Inc. eBUS SDK v6.5.1.6797 API



PvStream.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2007, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVSTREAM_H__
8 #define __PVSTREAM_H__
9 
10 #ifndef EBUS_ENUM
11 #define EBUS_ENUM(x) typedef enum
12 #endif
13 
14 #include <PvStreamLib.h>
15 
16 #include <PvBuffer.h>
17 #include <PvStreamEventSink.h>
18 #include <PvGenParameterArray.h>
19 
20 
21 namespace PvStreamLib
22 {
23  class Stream;
24 }
25 
26 
27 class PvDeviceInfo;
30 class PvPipeline;
31 
32 
33 EBUS_ENUM(PvStreamType)
34 {
35  PvStreamTypeUnknown = -1,
36  PvStreamTypeGEV = 0,
37  PvStreamTypeU3V = 1,
38  PvStreamTypeRTP = 2
39 
40 } PvStreamType;
41 
42 
50 class PV_STREAM_API PvStream
51 {
52 public:
53 
57  virtual ~PvStream();
58 
66  uint32_t GetQueuedBufferCount() const;
67 
73  uint32_t GetQueuedBufferMaximum() const;
74 
97  static PvStream *CreateAndOpen( const PvDeviceInfo *aDeviceInfo, PvResult *aResult );
98 
123  static PvStream *CreateAndOpen( const PvString &aInfo, PvResult *aResult );
124 
136  static void Free( PvStream *aStream );
137 
138  virtual PvResult Open( const PvDeviceInfo *aDeviceInfo ) = 0;
139  virtual PvResult Open( const PvString &aInfo ) = 0;
140 
151  PvResult Close();
152 
158  virtual PvStreamType GetType() const;
159 
170  PvResult AbortQueuedBuffers();
171 
197  PvResult QueueBuffer( PvBuffer * aBuffer );
198 
233  PvResult RetrieveBuffer( PvBuffer ** aBuffer, PvResult * aOperationResult, uint32_t aTimeout = 0xFFFFFFFF );
234 
240  uint16_t GetChannel();
241 
247  bool IsOpen() const;
248 
260  PvResult RegisterEventSink( PvStreamEventSink *aEventSink );
261 
275  PvResult UnregisterEventSink( PvStreamEventSink *aEventSink );
276 
282  PvGenParameterArray *GetParameters();
283 
284 protected:
285 
289  PvStream();
290 
291  PvStreamLib::Stream *mThis;
292 
293 private:
294 
295  // Not implemented
296  PvStream( const PvStream & );
297  const PvStream &operator=( const PvStream & );
298 
299  friend class PvPipeline;
300 };
301 
302 
303 #endif
Receive data from a GigE Vision or USB3 Vision transmitter.
Definition: PvStream.h:50
Helper class for receiving data from a GigE Vision or USB3 Vision transmitter.
Definition: PvPipeline.h:32
Definition: PvBuffer.h:24
String class.
Definition: PvString.h:25
Result information.
Definition: PvResult.h:29
Save the state of the system.
Definition: PvConfigurationWriter.h:23
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition: PvBuffer.h:95
GenICam feature array.
Definition: PvGenParameterArray.h:72
Event sink used to receive buffer queue/unqueue notifications.
Definition: PvStreamEventSink.h:32
Information identifying a device.
Definition: PvDeviceInfo.h:26
Restore the state of the system.
Definition: PvConfigurationReader.h:23

Copyright (c) 2002-2024 Pleora Technologies Inc.
www.pleora.com