Pleora Technologies Inc. eBUS SDK v5.1.10.4642 API



PvTransmitterGEV.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2012, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVTRANSMITTERGEV_H__
8 #define __PVTRANSMITTERGEV_H__
9 
10 #include <PvTransmitterLib.h>
11 #include <PvBuffer.h>
12 #include <IPvTransmitterGEV.h>
13 
14 
15 namespace PvTransmitterLib
16 {
17  class TransmitterGEV;
18 };
19 
20 
21 class PV_TRANSMITTER_API PvTransmitterGEV
22  : public IPvTransmitterGEV
23 {
24 public:
25 
27  virtual ~PvTransmitterGEV();
28 
29  PvResult Open( PvString aDestinationIPAddress, uint16_t aDestinationPort,
30  PvString aSourceIPAddress = "", uint16_t aSourcePort = 0, bool aDontFrag = true,
31  bool aExtendedIDs = false, uint32_t aBuffersCapacity = 64, bool aTimestampWhenSending = false,
32  uint32_t aNumberOfPendingResendRequests = 32, uint32_t aNumberOfBuffersHoldForResends = 0 );
33  PvResult Close();
34  PvResult LoadBufferPool( PvBuffer** aBuffers, uint32_t aBufferCount );
35  PvResult QueueBuffer( PvBuffer* aBuffer );
36  PvResult RetrieveFreeBuffer( PvBuffer ** aBuffer, uint32_t aTimeout = 0xFFFFFFFF );
37  PvResult AbortQueuedBuffers( uint32_t aTimeout = 0xFFFFFFFF, bool* aPartialTransmission = NULL );
38 
39  uint32_t GetQueuedBufferCount();
40  uint32_t GetPacketSize();
41  PvResult SetPacketSize( uint32_t aPacketSize );
42 
43  float GetMaxPayloadThroughput();
44  PvResult SetMaxPayloadThroughput( float aMaxPayloadThroughput );
45  uint16_t GetSourcePort();
46  uint16_t GetDestinationPort();
47 
48  PvString GetDestinationIPAddress();
49  PvString GetSourceIPAddress();
50 
51  void ResetStats();
52  uint64_t GetBlocksTransmitted() const;
53  uint64_t GetSamplingTime() const;
54  uint64_t GetPayloadBytesTransmitted() const;
55  float GetInstantaneousPayloadThroughput() const;
56  float GetAveragePayloadThroughput() const;
57  float GetInstantaneousTransmissionRate() const;
58  float GetAverageTransmissionRate() const;
59  uint64_t GetNumberOfResendRequests() const;
60 
61  PvResult SetSentBuffersTimeout( uint32_t aTimeout );
62  uint32_t GetSentBuffersTimeout() const;
63 
64  virtual bool IsOpen() const;
65  virtual bool IsTransmitting() const;
66  virtual bool GetExtendedIDs() const;
67  virtual PvResult SetExtendedIDs( bool aExtendedID );
68  virtual void QueuePacketResend( uint64_t aBlockID, uint32_t aFirstPacketID, uint32_t aLastPacketID );
69 
70  uint32_t GetUserModeTransmitterThreadPriority() const;
71  PvResult SetUserModeTransmitterThreadPriority( uint32_t aPriority );
72  uint32_t GetBufferPoolThreadPriority() const;
73  PvResult SetBufferPoolThreadPriority( uint32_t aPriority );
74 
75 private:
76 
77  PvTransmitterLib::TransmitterGEV *mThis;
78 
79 };
80 
81 #endif
String class.
Definition: PvString.h:21
Result information.
Definition: PvResult.h:13
Definition: PvTransmitterGEV.h:15
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition: PvBuffer.h:37
Interface to expose the transmitter GEV to the GEV virtual device.
Class for transmitting blocks using the GigE Vision streaming protocol.
Definition: PvTransmitterGEV.h:21

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