ngc 1.4.0
 
Loading...
Searching...
No Matches
ngcdcsEDDM.hpp
Go to the documentation of this file.
1
7#ifndef ngcdcsEDDM_H
8#define ngcdcsEDDM_H
9
10
11#ifndef __cplusplus
12#error This is a C++ include file and cannot be used from plain C
13#endif
14
15#include <ngc/core/ngcbOBJ.hpp>
17
21class ngcdcsEDDM: public ngcbOBJ
22{
23public:
26
28 ngcdcsEDDM &operator=(const ngcdcsEDDM &other);
29
31 ngcdcsEDDM(const ngcdcsEDDM &other);
32
34 ngcdcsEDDM();
35
37 explicit ngcdcsEDDM(size_t maxDrv);
38
40 virtual ~ngcdcsEDDM();
41
43 int Register(ngcdcsFACTORY *f);
44
46 int Register(const char *name);
47
50
52 void *Unregister(const char *module);
53
56
59
61 ngcdcsFACTORY *Factory(const char *name);
62
64 ngcdcsFACTORY *Factory(const char *symbol, const char *module);
65
67 ngcdcsFACTORY *Select(const char *name);
68
70 ngcdcsFACTORY *Module(const char *module);
71
73 int Load(const char *module, const char *name = NULL);
74
76 int Unload(const char *name, const char *symbol = NULL);
77
79 int Unload();
80
82 void List(char *s);
83
85 void ModList(char *s);
86
87protected:
88private:
90 void Init_(size_t maxDrv);
91
93 size_t maxDrv_;
94
96 size_t ndrv_;
97
99 ngcdcsFACTORY **factory_;
100
102 ngcdcsFACTORY *current_;
103
105 void RemoveParam_(const char *module);
106
108 ssize_t GetSlot_(const char *name);
109};
110
111#endif
ngcbOBJ()
Constructor.
Definition ngcbOBJ.cpp:34
Definition ngcbPARAM.hpp:200
int Unload()
Unload all external exposure driver modules.
Definition ngcdcsEDDM.cpp:755
void ModList(char *s)
Copy list of driver module names to string.
Definition ngcdcsEDDM.cpp:472
ngcdcsFACTORY * Factory()
Return current factory.
Definition ngcdcsEDDM.cpp:317
virtual ~ngcdcsEDDM()
Destructor.
Definition ngcdcsEDDM.cpp:35
int Load(const char *module, const char *name=NULL)
Load external exposure driver module.
Definition ngcdcsEDDM.cpp:490
ngcdcsEDDM()
Constructor.
Definition ngcdcsEDDM.cpp:29
ngcdcsFACTORY * Next()
Return next dynamically loaded driver factory.
Definition ngcdcsEDDM.cpp:319
int Register(ngcdcsFACTORY *f)
Register a new factory.
Definition ngcdcsEDDM.cpp:146
ngcdcsFACTORY * Select(const char *name)
Select factory associated to driver name.
Definition ngcdcsEDDM.cpp:405
void List(char *s)
Copy list of driver factory names to string.
Definition ngcdcsEDDM.cpp:456
ngcbPARAM_LIST * paramList
Parameter list, from which modules need to detach during unload.
Definition ngcdcsEDDM.hpp:25
int Unregister(ngcdcsFACTORY *f)
Unregister factory.
Definition ngcdcsEDDM.cpp:200
ngcdcsEDDM(const ngcdcsEDDM &other)
Copy constructor.
Definition ngcdcsEDDM.cpp:33
ngcdcsEDDM & operator=(const ngcdcsEDDM &other)
Operator =.
Definition ngcdcsEDDM.cpp:23
ngcdcsFACTORY * Module(const char *module)
Select factory by module name.
Definition ngcdcsEDDM.cpp:431
Definition ngcdcsFACTORY.hpp:45