Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef RC_GENICAM_API_SYSTEM
00037 #define RC_GENICAM_API_SYSTEM
00038
00039 #include <GenApi/GenApi.h>
00040
00041 #include <memory>
00042 #include <vector>
00043 #include <mutex>
00044
00045 namespace rcg
00046 {
00047
00048 class GenTLWrapper;
00049 class Interface;
00050 class CPort;
00051
00058 class System : public std::enable_shared_from_this<System>
00059 {
00060 public:
00061
00062 ~System();
00063
00077 static std::vector<std::shared_ptr<System> > getSystems();
00078
00084 static void clearSystems();
00085
00092 const std::string &getFilename() const;
00093
00100 void open();
00101
00107 void close();
00108
00117 std::vector<std::shared_ptr<Interface> > getInterfaces();
00118
00125 std::string getID();
00126
00133 std::string getVendor();
00134
00141 std::string getModel();
00142
00149 std::string getVersion();
00150
00157 std::string getTLType();
00158
00165 std::string getName();
00166
00173 std::string getPathname();
00174
00181 std::string getDisplayName();
00182
00189 bool isCharEncodingASCII();
00190
00197 int getMajorVersion();
00198
00205 int getMinorVersion();
00206
00216 std::shared_ptr<GenApi::CNodeMapRef> getNodeMap();
00217
00224 void *getHandle() const;
00225
00226 private:
00227
00228 System(const std::string &_filename);
00229 System(class System &);
00230 System &operator=(const System &);
00231
00232 std::string filename;
00233 std::shared_ptr<const GenTLWrapper> gentl;
00234
00235 std::mutex mtx;
00236
00237 int n_open;
00238 void *tl;
00239
00240 std::shared_ptr<CPort> cport;
00241 std::shared_ptr<GenApi::CNodeMapRef> nodemap;
00242
00243 std::vector<std::weak_ptr<Interface> > ilist;
00244 };
00245
00246 }
00247
00248 #endif