Pleora Technologies Inc. eBUS SDK v6.2.8.5877 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 #include <PvStreamLib.h>
11 
12 #include <PvBuffer.h>
13 #include <PvStreamEventSink.h>
14 #include <PvGenParameterArray.h>
15 
16 
17 namespace PvStreamLib
18 {
19  class Stream;
20 }
21 
22 
23 class PvDeviceInfo;
26 class PvPipeline;
27 
28 
29 typedef enum
30 {
31  PvStreamTypeUnknown = -1,
32  PvStreamTypeGEV = 0,
33  PvStreamTypeU3V = 1,
34  PvStreamTypeRTP = 2
35 
36 } PvStreamType;
37 
38 
39 class PV_STREAM_API PvStream
40 {
41 public:
42 
43  virtual ~PvStream();
44 
45  uint32_t GetQueuedBufferCount() const;
46  uint32_t GetQueuedBufferMaximum() const;
47 
48 #ifndef EBUS_PYTHON_DOXYGEN
49  static PvStream *CreateAndOpen( const PvDeviceInfo *aDeviceInfo, PvResult *aResult );
50  static PvStream *CreateAndOpen( const PvString &aInfo, PvResult *aResult );
51 #endif
52  static void Free( PvStream *aStream );
53 
54  virtual PvResult Open( const PvDeviceInfo *aDeviceInfo ) = 0;
55  virtual PvResult Open( const PvString &aInfo ) = 0;
56 
57  PvResult Close();
58 
59  virtual PvStreamType GetType() const;
60 
61  PvResult AbortQueuedBuffers();
62  PvResult QueueBuffer( PvBuffer * aBuffer );
63 #ifdef EBUS_PYTHON_DOXYGEN
64  tuple RetrieveBuffer( uint32_t aTimeout = 0xFFFFFFFF );
65 #else
66  PvResult RetrieveBuffer( PvBuffer ** aBuffer, PvResult * aOperationResult, uint32_t aTimeout = 0xFFFFFFFF );
67 #endif
68 
69  uint16_t GetChannel();
70  bool IsOpen() const;
71 
72  PvResult RegisterEventSink( PvStreamEventSink *aEventSink );
73  PvResult UnregisterEventSink( PvStreamEventSink *aEventSink );
74 
75  PvGenParameterArray *GetParameters();
76 
77 protected:
78 
79  PvStream();
80 
81  PvStreamLib::Stream *mThis;
82 
83 private:
84 
85  // Not implemented
86  PvStream( const PvStream & );
87  const PvStream &operator=( const PvStream & );
88 
89  friend class PvPipeline;
90 };
91 
92 
93 #endif
PvResult
Result information.
Definition: PvResult.h:13
PvPipeline
Helper class for receiving data from a GigE Vision or USB3 Vision transmitter.
Definition: PvPipeline.h:21
PvConfigurationWriter
Save the state of the system.
Definition: PvConfigurationWriter.h:23
PvStream
Receive data from a GigE Vision or USB3 Vision transmitter.
Definition: PvStream.h:39
PvString
String class.
Definition: PvString.h:21
PvGenParameterArray
GenICam feature array.
Definition: PvGenParameterArray.h:38
PvStreamEventSink
Event sink used to receive buffer queue/unqueue notifications.
Definition: PvStreamEventSink.h:16
PvConfigurationReader
Restore the state of the system.
Definition: PvConfigurationReader.h:23
PvBuffer
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition: PvBuffer.h:47
PvDeviceInfo
Information identifying a device.
Definition: PvDeviceInfo.h:18

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