runMACS
 All Data Structures Files Functions Variables Enumerations Enumerator Macros
DummyGrabber.h
Go to the documentation of this file.
1 #ifndef __DUMMYGRABBER_H
2 #define __DUMMYGRABBER_H
3 
4 #include <ImageGrabber.h>
5 #include <RocServer.h>
6 
7 #include <list>
8 #include <string>
9 #include <vector>
10 #include <thread>
11 #include <atomic>
12 #include <condition_variable>
13 
14 #include <Envi.h>
15 
17 
18 class DummyException: public std::exception {
19 public:
20  DummyException(const std::string & _message);
21  ~DummyException() throw();
22  virtual const char* what() const throw();
23 private:
24  std::string message;
25 };
26 
28  friend ImageGrabber;
29 private:
30  _DummyGrabberImpl(const std::string & _deviceName,
31  const std::string & _deviceSource,
32  zmq::context_t & _ctx,
33  const std::string & _brokerEndpoint
34  );
36 
37  int getWidth();
38  int getHeight();
39  int getBytesPerPixel();
40  void startServing();
41  void stopServing();
42  void acquisition();
43  void acquireBuffer(int bufferId);
44  void releaseBuffer(int bufferId);
45  void addEndpoint(const std::string & _endpoint);
46 
47  EnviFile dummyFile;
48  zmq::context_t & ctx;
49  std::string deviceName;
50  std::string deviceSource;
51 
52  std::list<std::string> endpoints;
53  volatile bool enableAcquisition;
54  std::thread acquisitionThread;
55 
56  std::vector<std::atomic<int>*> bufferUsers;
57  std::atomic<int> openBuffers;
58  std::atomic<int> totalBufferUsers;
59  std::condition_variable bufferFreeNotifier;
60 
61  Json::Value call(const std::string & name, const Json::Value & arguments);
62  Json::Value getattr(const std::string & name);
63  void setattr(const std::string & name, const Json::Value & value);
64 
65  bool shutterClosed;
66  float fps;
67  float tint;
68 
69  uint32_t maxValue;
70 
71  void sendStatus();
72 
73  std::string rocsHeader;
74  zmq::socket_t rocsSocket;
75 
76  DummyGrabberSynchronizer& synchronizer;
77 };
78 
79 #endif // __DUMMYGRABBER_H
80 
Public interface to an ImageGrabber grabber.
Definition: ImageGrabber.h:45
DummyException(const std::string &_message)
Definition: Envi.h:8
virtual const char * what() const