rohdeschwarz  0.2.0
TCPIP socket library for Rohde & Schwarz instrument control
bus.hpp
Go to the documentation of this file.
1 
5 #ifndef ROHDESCHWARZ_BUSSES_BUS_HPP
6 #define ROHDESCHWARZ_BUSSES_BUS_HPP
7 
8 
9 // std lib
10 #include <cstddef>
11 #include <string>
12 #include <vector>
13 
14 
16 {
17 
18 
19 class Bus
20 {
21 
22 public:
23 
24 
28  Bus();
29 
30 
37  virtual ~Bus();
38 
39 
40  // pure virtual end point
41  virtual std::string endpoint() const = 0;
42 
43 
44  // timeout
45  virtual int timeout_ms() const = 0;
46  virtual bool setTimeout(int timeout_ms) = 0;
47 
48 
49  // buffer size
50  std::size_t bufferSize_B() const;
51  void setBufferSize(std::size_t bytes);
52 
53 
54  // buffer
55  std::vector<unsigned char>* buffer();
56  const std::vector<unsigned char>* buffer() const;
57  std::vector<unsigned char> takeData();
58 
59 
60  // raw io; pure virtual
61  virtual bool readData(unsigned char* buffer, std::size_t bufferSize, std::size_t* readSize = nullptr) = 0;
62  virtual bool writeData(const unsigned char* data, std::size_t dataSize, std::size_t* writeSize = nullptr) = 0;
63 
64 
65  // raw io with internal buffer
66  bool readData(std::size_t* readSize = nullptr);
67 
68 
69  // status
70  virtual bool isError() const = 0;
71  virtual std::string statusMessage() const = 0;
72 
73 
74 private:
75 
76  std::vector<unsigned char> _buffer;
77 
78 
79 }; // class Bus
80 
81 
82 } // rohdeschwarz::busses
83 #endif // ROHDESCHWARZ_BUSSES_BUS_HPP
std::size_t bufferSize_B() const
Definition: bus.cpp:41
virtual bool isError() const =0
virtual std::string endpoint() const =0
void setBufferSize(std::size_t bytes)
Definition: bus.cpp:47
virtual std::string statusMessage() const =0
virtual int timeout_ms() const =0
virtual ~Bus()
Destructor.
Definition: bus.cpp:35
Bus()
Constructor.
Definition: bus.cpp:28
virtual bool writeData(const unsigned char *data, std::size_t dataSize, std::size_t *writeSize=nullptr)=0
std::vector< unsigned char > * buffer()
Definition: bus.cpp:53
std::vector< unsigned char > takeData()
Definition: bus.cpp:65
virtual bool setTimeout(int timeout_ms)=0
virtual bool readData(unsigned char *buffer, std::size_t bufferSize, std::size_t *readSize=nullptr)=0