AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
ntv2nubaccess.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef NTV2NUBACCESS_H
9 #define NTV2NUBACCESS_H
10 
11 #include "ntv2utils.h" // NTV2StringList
12 #include "ajabase/system/lock.h" // AJALock
13 #include "ajabase/common/ajarefptr.h" // AJARefPtr
14 #include <string>
15 #include <vector>
16 #include <map>
17 
18 // TYPEDEFs
19 typedef std::pair<NTV2DeviceID, ULWord64> NTV2DeviceIDSerialPair;
20 typedef std::vector<NTV2DeviceIDSerialPair> NTV2DeviceIDSerialPairs;
21 typedef NTV2DeviceIDSerialPairs::iterator NTV2DeviceIDSerialPairsIter;
22 typedef NTV2DeviceIDSerialPairs::const_iterator NTV2DeviceIDSerialPairsConstIter;
23 
24 // Supported NTV2ConnectParams:
25 #define kConnectParamScheme "Scheme"
26 #define kConnectParamHost "Host"
27 #define kConnectParamPort "Port"
28 #define kConnectParamDevIndex "DeviceIndex"
29 #define kConnectParamDevSerial "DeviceSerial"
30 #define kConnectParamDevModel "DeviceModel"
31 #define kConnectParamDevID "DeviceID"
32 #define kConnectParamResource "ResourcePath"
33 #define kConnectParamQuery "Query"
34 
35 // AJA query params:
36 #define kQParamVerboseLogging "verbose"
37 #define kQParamLogToStdout "stdout"
38 #define kQParamShowX509Cert "showcert"
39 #define kQParamShowParams "showparams"
40 #define kQParamDebugRegistry "debugregistry"
41 
42 // Local URL schemes:
43 #define kLegalSchemeNTV2 "ntv2"
44 #define kLegalSchemeNTV2Local "ntv2local"
45 
46 // Exported Function Names:
47 #define kFuncNameCreateClient "CreateClient"
48 #define kFuncNameCreateServer "CreateServer"
49 #define kFuncNameGetRegInfo "GetRegistrationInfo"
50 
51 // Other Info Keys:
52 #define kNTV2PluginInfoKey_PluginsPath "PluginsPath"
53 #define kNTV2PluginInfoKey_PluginPath "PluginPath"
54 #define kNTV2PluginInfoKey_PluginSigPath "PluginSigPath"
55 #define kNTV2PluginInfoKey_PluginBaseName "PluginBaseName"
56 #define kNTV2PluginInfoKey_Fingerprint "serial number"
57 #define kNTV2PluginInfoKey_Errors "errors"
58 
59 // Plugin Registration Info Keys:
60 #define kNTV2PluginRegInfoKey_Vendor "Vendor"
61 #define kNTV2PluginRegInfoKey_CommonName "CommonName"
62 #define kNTV2PluginRegInfoKey_OrgUnit "OrgUnit"
63 #define kNTV2PluginRegInfoKey_ShortName "ShortName"
64 #define kNTV2PluginRegInfoKey_LongName "LongName"
65 #define kNTV2PluginRegInfoKey_Description "Description"
66 #define kNTV2PluginRegInfoKey_Copyright "Copyright"
67 #define kNTV2PluginRegInfoKey_NTV2SDKVersion "NTV2SDKVersion"
68 #define kNTV2PluginRegInfoKey_Version "Version"
69 #define kNTV2PluginRegInfoKey_CommitSHA "CommitSHA"
70 #define kNTV2PluginRegInfoKey_ReqParams "RequiredParams"
71 #define kNTV2PluginRegInfoKey_OptParams "OptionalParams"
72 
73 // Plugin Signature File Keys:
74 #define kNTV2PluginSigFileKey_X509Certificate "X509Certificate"
75 #define kNTV2PluginSigFileKey_Signature "Signature"
76 
77 // X509 Certificate Attribute Keys:
78 #define kNTV2PluginX500AttrKey_CommonName "CN"
79 #define kNTV2PluginX500AttrKey_LocalityName "L"
80 #define kNTV2PluginX500AttrKey_StateOrProvinceName "ST"
81 #define kNTV2PluginX500AttrKey_OrganizationName "O"
82 #define kNTV2PluginX500AttrKey_OrganizationalUnitName "OU"
83 #define kNTV2PluginX500AttrKey_CountryName "C"
84 
85 
90 {
91  public:
95  inline size_t size (void) const {return mDict.size();}
97  inline bool empty (void) const {return mDict.empty();}
98  inline bool hasKey (const std::string & inKey) const {return mDict.find(inKey) != mDict.end();}
99  std::string valueForKey (const std::string & inKey) const;
100  uint16_t u16ValueForKey (const std::string & inKey, const uint16_t inDefault = 0) const;
101  NTV2StringSet keys (void) const;
102  size_t largestKeySize (void) const;
103  size_t largestValueSize (void) const;
104  std::ostream & Print (std::ostream & oss, const bool inCompact = true) const;
105  bool serialize (std::string & outStr) const;
106 
111  inline void clear (void) {mDict.clear();}
113  bool insert (const std::string & inKey, const std::string & inValue);
114  inline size_t erase (const std::string & inKey) {return hasKey(inKey) ? mDict.erase(inKey) : 0;}
115  size_t updateFrom (const NTV2Dictionary & inDict);
116  size_t addFrom (const NTV2Dictionary & inDict);
117  bool deserialize (const std::string & inStr);
118  #if !defined(NTV2_DEPRECATE_17_1)
119  inline NTV2_DEPRECATED_f(size_t UpdateFrom (const NTV2Dictionary & inDict)) {return updateFrom(inDict);}
120  inline NTV2_DEPRECATED_f(size_t AddFrom (const NTV2Dictionary & inDict)) {return addFrom(inDict);}
121  #endif // !defined(NTV2_DEPRECATE_17_1)
122 
124  public:
125  typedef std::map<std::string, std::string> Dict;
126  typedef Dict::const_iterator DictConstIter;
127  inline size_t initializeFrom (const Dict & inDict) {mDict = inDict; return size();}
128 
129  private:
130  Dict mDict;
131 }; // NTV2Dictionary
132 
136 typedef std::pair<std::string, std::string> NTV2DictionaryEntry, NTV2DictEntry, NTV2ConnectParam;
137 
138 inline std::ostream & operator << (std::ostream & oss, const NTV2Dictionary & inDict) {return inDict.Print(oss);}
139 
147 {
148  public:
149  static bool IsSupportedScheme (const std::string & inScheme);
150 
151  public:
152  NTV2DeviceSpecParser (const std::string inSpec = "");
153  void Reset (const std::string inSpec = "");
154  inline const std::string & DeviceSpec (void) const {return mSpec;}
155  inline bool HasDeviceSpec (void) const {return !DeviceSpec().empty();}
156  inline bool Successful (void) const {return !Failed();}
157  inline bool Failed (void) const {return DeviceSpec().empty() ? true : HasErrors();}
158  inline bool HasScheme (void) const {return HasResult(kConnectParamScheme);}
159  inline std::string Scheme (void) const {return Result(kConnectParamScheme);}
160  inline bool IsLocalDevice (void) const {return Scheme() == kLegalSchemeNTV2Local || Scheme() == kLegalSchemeNTV2;}
161  inline size_t ErrorCount (void) const {return mErrors.size();}
162  inline bool HasErrors (void) const {return ErrorCount() > 0;}
163  inline std::string Error (const size_t inIndex = 0) const {if (inIndex < mErrors.size()) return mErrors.at(inIndex); return "";}
164  inline NTV2StringList Errors (void) const {return mErrors;}
165  inline NTV2ConnectParams Results (void) const {return mResult;}
166  inline bool HasResult (const std::string & inKey) const {return mResult.hasKey(inKey);}
167  std::string Result (const std::string & inKey) const {return mResult.valueForKey(inKey);}
168  std::string Resource (const bool inStripLeadSlash = true) const;
169  std::ostream & PrintErrors (std::ostream & oss) const;
170  std::ostream & Print (std::ostream & oss, const bool inDumpResults = false) const;
171  std::string InfoString (void) const;
172  std::string DeviceSerial (void) const {return Result(kConnectParamDevSerial);}
173  inline std::string DeviceModel (void) const {return Result(kConnectParamDevModel);}
174  NTV2DeviceID DeviceID (void) const;
175  UWord DeviceIndex (void) const;
176  inline const NTV2Dictionary & QueryParams (void) const {return mQueryParams;}
177  inline std::string QueryParam (const std::string & inKey) const {return mQueryParams.valueForKey(inKey);}
178  #if defined(_DEBUG)
179  static void test (void);
180  #endif // defined(_DEBUG)
181 
182  private:
183  void Parse (void);
184  bool ParseHexNumber (size_t & pos, std::string & outToken);
185  bool ParseDecNumber (size_t & pos, std::string & outToken);
186  bool ParseAlphaNumeric (size_t & pos, std::string & outToken, const std::string & inOtherChars = ""); // A run of letters and/or decimal digits and/or other chars
187  bool ParseScheme (size_t & pos, std::string & outToken); // An alphanumeric name followed by "://"
188  bool ParseSerialNum (size_t & pos, std::string & outToken); // An 8 or 9 character alphanumeric name or a 64-bit hex number
189  bool ParseDeviceID (size_t & pos, std::string & outToken); // An 32-bit hex number that matches a known NTV2DeviceID
190  bool ParseModelName (size_t & pos, std::string & outToken); // An alphanumeric name that matches a known device model name
191  bool ParseDNSName (size_t & pos, std::string & outDNSName); // A domain name: one or more alphanumeric names separated with '.'
192  bool ParseIPv4Address (size_t & pos, std::string & outIPv4); // Exactly four decimal numbers, each no greater than 255, separated with '.'
193  bool ParseHostAddressAndPortNumber (size_t & pos, std::string & outAddr, std::string & outPort); // A host name or IPv4 address with an optional port number
194  bool ParseResourcePath (size_t & pos, std::string & outRsrc); // One or more '/'-separated alphanumeric names
195  bool ParseParamAssignment (size_t & pos, std::string & outKey, std::string & outValue); // An alphanumeric key optionally followed by '=' optionally followed by URL-encoded value string
196  bool ParseQuery (size_t & pos, NTV2Dictionary & outParams); // Starts with '?' one or more '&'-separated param assignments
197  inline int LargestResultKey (void) const {return int(mResult.largestKeySize());}
198  inline int LargestResultValue (void) const {return int(mResult.largestValueSize());}
199  inline char CharAt (const size_t inPos) {return inPos < mSpec.length() ? mSpec.at(inPos) : 0;}
200  inline size_t SpecLength (void) const {return mSpec.length();}
201  inline size_t CurrentPosition (void) const {return mPos;}
202  inline void AddError (const std::string & inError) {mErrors.push_back(inError);}
203  static bool IsUpperLetter (const char inChar);
204  static bool IsLowerLetter (const char inChar);
205  static bool IsLetter (const char inChar, const bool inIncludeUnderscore = false);
206  static bool IsDecimalDigit (const char inChar);
207  static bool IsHexDigit (const char inChar);
208  static bool IsLegalSerialNumChar (const char inChar);
209 
210  private:
211  std::string mSpec;
212  NTV2StringList mErrors;
213  NTV2ConnectParams mResult;
214  NTV2Dictionary mQueryParams;
215  size_t mPos;
216 }; // NTV2DeviceSpecParser
217 
218 
223 {
224  public:
225  static std::string ShortSDKVersion (void);
226  static std::string AJAFingerprint (const bool inLowerCase = false, const bool inStripColons = false);
227 
228  protected:
229  NTV2RPCBase (NTV2Dictionary params, uint32_t * pRefCon);
230  virtual ~NTV2RPCBase ();
231  bool SetParams (const NTV2ConfigParams & inNewParams, const bool inAugment = false);
232 
233  protected:
235  mutable AJALock mParamLock;
236  uint32_t * mpRefCon;
237 }; // NTV2RPCBase
238 
239 
253 {
254  public:
260  static NTV2RPCClientAPI * CreateClient (NTV2ConnectParams & inParams);
261 
262  public:
266  virtual std::string HostName (void) const {return ConnectParam(kConnectParamHost);}
268  virtual std::string Name (void) const {return "";}
269  virtual std::string Description (void) const;
270  virtual std::ostream & Print (std::ostream & oss) const;
272 
276  virtual bool NTV2Connect (void);
278  virtual bool NTV2Disconnect (void);
279  virtual bool IsConnected (void) const {return false;}
280 
285  virtual NTV2ConnectParams ConnectParams (void) const;
287  virtual bool HasConnectParam (const std::string & inParam) const;
288  virtual std::string ConnectParam (const std::string & inParam) const;
289  virtual bool ConnectHasScheme (void) const;
290  virtual inline bool SetConnectParams (const NTV2ConnectParams & inNewParams, const bool inAugment = false) {return !IsConnected() && SetParams(inNewParams, inAugment);}
291 
296  virtual bool NTV2ReadRegisterRemote (const ULWord regNum, ULWord & outRegValue, const ULWord regMask, const ULWord regShift);
298  virtual bool NTV2WriteRegisterRemote (const ULWord regNum, const ULWord regValue, const ULWord regMask, const ULWord regShift);
299  virtual bool NTV2AutoCirculateRemote (AUTOCIRCULATE_DATA & autoCircData);
300  virtual bool NTV2WaitForInterruptRemote (const INTERRUPT_ENUMS eInterrupt, const ULWord timeOutMs);
301  virtual bool NTV2DMATransferRemote (const NTV2DMAEngine inDMAEngine, const bool inIsRead,
302  const ULWord inFrameNumber, NTV2Buffer & inOutBuffer,
303  const ULWord inCardOffsetBytes, const ULWord inNumSegments,
304  const ULWord inSegmentHostPitch, const ULWord inSegmentCardPitch,
305  const bool inSynchronous);
306  virtual bool NTV2MessageRemote (NTV2_HEADER * pInMessage);
308 
312  virtual bool NTV2GetBoolParamRemote (const ULWord inParamID, ULWord & outValue); // New in SDK 17.0
314  virtual bool NTV2GetNumericParamRemote (const ULWord inParamID, ULWord & outValue); // New in SDK 17.0
315  virtual bool NTV2GetSupportedRemote (const ULWord inEnumsID, ULWordSet & outSupported); // New in SDK 17.0
317 
331  virtual bool NTV2QueryDevices (NTV2StringList & outDeviceInfos) {outDeviceInfos.clear(); return true;}
332 
333  #if !defined(NTV2_DEPRECATE_16_3) // These functions are going away
334  virtual bool NTV2DriverGetBitFileInformationRemote (BITFILE_INFO_STRUCT & bitFileInfo, const NTV2BitFileType bitFileType);
335  virtual bool NTV2DriverGetBuildInformationRemote (BUILD_INFO_STRUCT & buildInfo);
336  virtual bool NTV2DownloadTestPatternRemote (const NTV2Channel channel, const NTV2PixelFormat testPatternFBF,
337  const UWord signalMask, const bool testPatDMAEnb, const ULWord testPatNum);
338  virtual bool NTV2ReadRegisterMultiRemote (const ULWord numRegs, ULWord & outFailedRegNum, NTV2RegInfo outRegs[]);
339  virtual bool NTV2GetDriverVersionRemote (ULWord & outDriverVersion);
340  #endif // !defined(NTV2_DEPRECATE_16_3)
341 
342  virtual ~NTV2RPCClientAPI();
343 
344  protected:
345  NTV2RPCClientAPI (NTV2ConnectParams inParams, void * pRefCon);
346 
347  virtual bool NTV2OpenRemote (void);
348  virtual bool NTV2CloseRemote (void);
349 
350  protected:
351  uint32_t mSpare[1024];
352 }; // NTV2RPCClientAPI
353 
355 
356 inline std::ostream & operator << (std::ostream & oss, const NTV2RPCClientAPI & inObj) {return inObj.Print(oss);}
357 
363 {
364  public:
372  static NTV2RPCServerAPI * CreateServer (NTV2ConfigParams & inParams);
373 
382  static NTV2RPCServerAPI * CreateServer (const std::string & inURL);
383 
384  public:
388  virtual std::ostream & Print (std::ostream & oss) const;
390  virtual inline bool IsRunning (void) const {return mRunning;}
391 
396  virtual NTV2ConfigParams ConfigParams (void) const;
398  virtual bool HasConfigParam (const std::string & inParam) const;
399  virtual std::string ConfigParam (const std::string & inParam) const;
400  virtual inline bool SetConfigParams (const NTV2ConfigParams & inNewParams, const bool inAugment = false) {return SetParams(inNewParams, inAugment);}
401 
406  virtual void RunServer (void);
408  virtual inline void Stop (void) {mTerminate = true;}
409 
411  protected:
412  NTV2RPCServerAPI (NTV2ConnectParams inParams, void * pRefCon);
413  virtual ~NTV2RPCServerAPI();
414 
415  protected:
416  bool mRunning;
417  bool mTerminate;
418  uint32_t mSpare[1024];
419 }; // NTV2RPCServerAPI
420 
421 inline std::ostream & operator << (std::ostream & oss, const NTV2RPCServerAPI & inObj) {return inObj.Print(oss);}
422 
428 extern "C"
429 {
443  typedef bool (*fpGetRegistrationInfo) (const uint32_t /*inHostSDKVers*/, NTV2Dictionary & /*outInfo*/);
444 
452  typedef NTV2RPCClientAPI* (*fpCreateClient) (void * /*pRefCon*/, const NTV2ConnectParams & /*inParams*/, const uint32_t /*inHostSDKVersion*/);
453 
462  typedef NTV2RPCServerAPI* (*fpCreateServer) (void * /*pRefCon*/, const NTV2ConfigParams & /*inParams*/, const uint32_t /*inHostSDKVersion*/);
463 
464  #if !defined(NTV2_DEPRECATE_16_3) // Don't use these functions going forward
465  typedef NTV2RPCAPI* (*fpCreateNTV2SoftwareDevice) (void * /*pInDLLHandle*/, const std::string & /*inQueryStr*/, const uint32_t /*inHostSDKVersion*/);
466  #endif // !defined(NTV2_DEPRECATE_16_3)
467 }
468 
469 #endif // NTV2NUBACCESS_H
NTV2ConfigParams
NTV2Dictionary NTV2ConfigParams
A dictionary of parameters used to configure an RPC server.
Definition: ntv2nubaccess.h:135
kLegalSchemeNTV2Local
#define kLegalSchemeNTV2Local
Definition: ntv2nubaccess.h:44
INTERRUPT_ENUMS
enum _INTERRUPT_ENUMS_ INTERRUPT_ENUMS
BUILD_INFO_STRUCT
Definition: ntv2publicinterface.h:4918
NTV2DeviceIDSerialPair
std::pair< NTV2DeviceID, ULWord64 > NTV2DeviceIDSerialPair
Identifies a device by its NTV2DeviceID and serial number.
Definition: ntv2nubaccess.h:19
NTV2StringSet
std::set< std::string > NTV2StringSet
Definition: ntv2utils.h:1146
NTV2Channel
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
Definition: ntv2enums.h:1334
NTV2Buffer
A generic user-space buffer object that has an address and a length. Used most often to share an arbi...
Definition: ntv2publicinterface.h:6022
NTV2Dictionary::initializeFrom
size_t initializeFrom(const Dict &inDict)
Definition: ntv2nubaccess.h:127
NTV2RPCServerAPI
Base class of objects that can serve device operation RPCs with NTV2RPCClientAPI instances.
Definition: ntv2nubaccess.h:362
NTV2RPCBase
Common base class for NTV2RPCClientAPI and NTV2RPCServerAPI.
Definition: ntv2nubaccess.h:222
NTV2DeviceIDSerialPairsConstIter
NTV2DeviceIDSerialPairs::const_iterator NTV2DeviceIDSerialPairsConstIter
Definition: ntv2nubaccess.h:22
NTV2Dict
NTV2Dictionary NTV2Dict
Definition: ntv2nubaccess.h:133
NTV2RPCBase::SetParams
bool SetParams(const NTV2ConfigParams &inNewParams, const bool inAugment=false)
Definition: ntv2nubaccess.cpp:1862
NTV2DeviceID
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Definition: ntv2enums.h:20
NTV2FrameBufferFormat
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
Definition: ntv2enums.h:210
NTV2Dictionary::Print
std::ostream & Print(std::ostream &oss, const bool inCompact=true) const
Prints human-readable representation to ostream.
Definition: ntv2nubaccess.cpp:153
NTV2DeviceSpecParser::DeviceModel
std::string DeviceModel(void) const
Definition: ntv2nubaccess.h:173
NTV2RPCAPI
NTV2RPCClientAPI NTV2RPCAPI
Definition: ntv2nubaccess.h:354
kConnectParamDevModel
#define kConnectParamDevModel
First device of this model (e.g. 'kona4')
Definition: ntv2nubaccess.h:30
NTV2RPCBase::mParams
NTV2Dictionary mParams
Copy of config params passed to my constructor.
Definition: ntv2nubaccess.h:234
NTV2DMAEngine
NTV2DMAEngine
Definition: ntv2enums.h:1831
NTV2RPCClientAPI::NTV2QueryDevices
virtual bool NTV2QueryDevices(NTV2StringList &outDeviceInfos)
Queries the devices that are accessible on the remote host.
Definition: ntv2nubaccess.h:331
ULWordSet
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
Definition: ntv2publicinterface.h:54
kLegalSchemeNTV2
#define kLegalSchemeNTV2
Definition: ntv2nubaccess.h:43
lock.h
Declares the AJALock class.
ULWord
uint32_t ULWord
Definition: ajatypes.h:255
NTV2ConnectParams
NTV2Dictionary NTV2ConnectParams
A dictionary of parameters used to connect to remote/fake devices.
Definition: ntv2nubaccess.h:134
NTV2BitFileType
NTV2BitFileType
Definition: ntv2enums.h:3305
NTV2DeviceIDSerialPairs
std::vector< NTV2DeviceIDSerialPair > NTV2DeviceIDSerialPairs
An ordered sequence of NTV2DeviceIDSerialPairs.
Definition: ntv2nubaccess.h:20
kConnectParamHost
#define kConnectParamHost
DNS name, IPv4 or sw device DLL name.
Definition: ntv2nubaccess.h:26
NTV2RPCServerAPI::Print
virtual std::ostream & Print(std::ostream &oss) const
Definition: ntv2nubaccess.cpp:2158
NTV2RPCServerAPI::mTerminate
bool mTerminate
Set true to stop server.
Definition: ntv2nubaccess.h:417
NTV2RPCServerAPI::mRunning
bool mRunning
Running?
Definition: ntv2nubaccess.h:416
NTV2_HEADER
All new NTV2 structs start with this common header.
Definition: ntv2publicinterface.h:6984
UWord
uint16_t UWord
Definition: ajatypes.h:253
ntv2utils.h
Declares numerous NTV2 utility functions.
NTV2RPCBase::mParamLock
AJALock mParamLock
Mutex to protect mParams.
Definition: ntv2nubaccess.h:235
NTV2Dictionary::DictConstIter
Dict::const_iterator DictConstIter
Definition: ntv2nubaccess.h:126
NTV2StringList
std::vector< std::string > NTV2StringList
Definition: ntv2utils.h:1143
AJALock
Definition: lock.h:30
kConnectParamScheme
#define kConnectParamScheme
URL scheme.
Definition: ntv2nubaccess.h:25
NTV2DeviceSpecParser
One-stop shop for parsing device specifications. (New in SDK 16.3) I do very little in the way of val...
Definition: ntv2nubaccess.h:146
NTV2DictEntry
std::pair< std::string, std::string > NTV2DictEntry
Definition: ntv2nubaccess.h:136
NTV2DictionaryEntry
std::pair< std::string, std::string > NTV2DictionaryEntry
Definition: ntv2nubaccess.h:136
NTV2_DEPRECATED_f
#define NTV2_DEPRECATED_f(__f__)
Definition: ajatypes.h:555
NTV2ConnectParam
std::pair< std::string, std::string > NTV2ConnectParam
A parameter used to connect to remote/fake devices.
Definition: ntv2nubaccess.h:136
AJAExport
#define AJAExport
Definition: export.h:33
true
#define true
Definition: ntv2devicefeatures.h:26
NTV2DeviceIDSerialPairsIter
NTV2DeviceIDSerialPairs::iterator NTV2DeviceIDSerialPairsIter
Definition: ntv2nubaccess.h:21
NTV2DeviceSpecParser::DeviceSerial
std::string DeviceSerial(void) const
Definition: ntv2nubaccess.h:172
NTV2RPCClientAPI::Print
virtual std::ostream & Print(std::ostream &oss) const
Definition: ntv2nubaccess.cpp:1950
kConnectParamDevSerial
#define kConnectParamDevSerial
Device with this serial number.
Definition: ntv2nubaccess.h:29
fpGetRegistrationInfo
bool(* fpGetRegistrationInfo)(const uint32_t, NTV2Dictionary &)
Obtains a plugin's registration information. Starting in SDK 17.1, all plugins must implement this fu...
Definition: ntv2nubaccess.h:443
NTV2RPCClientAPI
An object that can connect to, and operate remote or fake devices. I have three general API groups:
Definition: ntv2nubaccess.h:252
NTV2Dictionary::valueForKey
std::string valueForKey(const std::string &inKey) const
Definition: ntv2nubaccess.cpp:109
NTV2RPCBase::mpRefCon
uint32_t * mpRefCon
Reserved for internal use.
Definition: ntv2nubaccess.h:236
NTV2Dictionary
A simple (not thread-safe) set of key/value pairs. (New in SDK 16.3)
Definition: ntv2nubaccess.h:89
ajarefptr.h
Defines the AJARefPtr template class.
NTV2Dictionary::Dict
std::map< std::string, std::string > Dict
Definition: ntv2nubaccess.h:125
BITFILE_INFO_STRUCT
Definition: ntv2publicinterface.h:4803
NTV2RegInfo
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
Definition: ntv2publicinterface.h:3931
AUTOCIRCULATE_DATA
Definition: ntv2publicinterface.h:4369
operator<<
std::ostream & operator<<(std::ostream &oss, const NTV2Dictionary &inDict)
Definition: ntv2nubaccess.h:138