Pleora Technologies Inc. eBUS SDK v6.4.0.6670 API



PvInterface.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2008, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVINTERFACE_H__
8 #define __PVINTERFACE_H__
9 
10 #include <PvSystemLib.h>
11 #include <PvDeviceInfo.h>\
12 
13 
14 namespace PvSystemLib
15 {
16  class System;
17  class NetworkAdapter;
18  class USBHostController;
19 
20  class DeviceInfoVector;
21  class IFinderReporter;
22 }
23 
24 
32 class PV_SYSTEM_API PvInterface
33 {
34 public:
35 
39  virtual ~PvInterface();
40 
49  PvInterface *Copy() const;
50 
56  PvInterfaceType GetType() const;
57 
64  PvString GetName() const;
65 
71  PvString GetDisplayID() const;
72 
90  PvString GetUniqueID() const;
91 
104  PvString GetCompareID() const;
105 
111  uint32_t GetDeviceCount() const;
112 
127  const PvDeviceInfo *GetDeviceInfo( uint32_t aIndex ) const;
128 
139  static bool Compare( const PvInterface *a1, const PvInterface *a2 );
140 
146  PvString GetPleoraDriverVersion() const;
147 
148 protected:
149 
150 #ifndef PV_GENERATING_DOXYGEN_DOC
151 
152  PvInterface( PvSystemLib::IFinderReporter *aFinderReporter, PvInterfaceType aType );
153  PvInterface&operator=( const PvInterface &aFrom );
154 
155  void SetName( const std::string &aValue ) { *mName = aValue; }
156  void SetDisplayID( const std::string &aValue ) { *mDisplayID = aValue; }
157  void SetUniqueID( const std::string &aValue ) { *mUniqueID = aValue; }
158  void SetCompareID( const std::string &aValue ) { *mCompareID = aValue; }
159  void SetDriverVersion( const std::string &aValue ) { *mDriverVersion = aValue; }
160 
161  void SetConfigurationValid( bool aValue ) { mConfigurationValid = aValue; }
162 
163  PvSystemLib::DeviceInfoVector *GetDevices() { return mDevices; }
164 
165 #endif // PV_GENERATING_DOXYGEN_DOC
166 
167  friend class PvSystemLib::System;
168  friend class PvSystemLib::NetworkAdapter;
169  friend class PvSystemLib::USBHostController;
170 
171 private:
172 
173  // Not implemented
174  PvInterface( const PvInterface & );
175 
176  PvInterfaceType mType;
177 
178  std::string *mName;
179  std::string *mDisplayID;
180  std::string *mUniqueID;
181  std::string *mCompareID;
182  std::string *mDriverVersion;
183 
184  bool mConfigurationValid;
185 
186  PvSystemLib::DeviceInfoVector *mDevices;
187 
188 };
189 
190 #endif
Definition: PvInterface.h:14
String class.
Definition: PvString.h:25
Represents one interface (network adapter or USB host controller) on a system (the PC) ...
Definition: PvInterface.h:32
PvInterfaceType
The type of interface the object represents.
Definition: PvSystemEnums.h:42
Information identifying a device.
Definition: PvDeviceInfo.h:26

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