Realistic 3D camera system
3D camera system components
serial_port_base.hpp
Go to the documentation of this file.
1 //
2 // serial_port_base.hpp
3 // ~~~~~~~~~~~~~~~~~~~~
4 //
5 // Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)
7 //
8 // Distributed under the Boost Software License, Version 1.0. (See accompanying
9 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10 //
11 
12 #ifndef ASIO_SERIAL_PORT_BASE_HPP
13 #define ASIO_SERIAL_PORT_BASE_HPP
14 
15 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
16 # pragma once
17 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
18 
19 #include "asio/detail/config.hpp"
20 
21 #if defined(ASIO_HAS_SERIAL_PORT) \
22  || defined(GENERATING_DOCUMENTATION)
23 
24 #if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__)
25 # include <termios.h>
26 #endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__)
27 
29 #include "asio/error_code.hpp"
30 
31 #if defined(GENERATING_DOCUMENTATION)
32 # define ASIO_OPTION_STORAGE implementation_defined
33 #elif defined(ASIO_WINDOWS) || defined(__CYGWIN__)
34 # define ASIO_OPTION_STORAGE DCB
35 #else
36 # define ASIO_OPTION_STORAGE termios
37 #endif
38 
40 
41 namespace asio {
42 
45 class serial_port_base
46 {
47 public:
49 
52  class baud_rate
53  {
54  public:
55  explicit baud_rate(unsigned int rate = 0);
56  unsigned int value() const;
58  ASIO_OPTION_STORAGE& storage,
59  asio::error_code& ec) const;
61  const ASIO_OPTION_STORAGE& storage,
62  asio::error_code& ec);
63  private:
64  unsigned int value_;
65  };
66 
68 
71  class flow_control
72  {
73  public:
74  enum type { none, software, hardware };
75  ASIO_DECL explicit flow_control(type t = none);
76  type value() const;
78  ASIO_OPTION_STORAGE& storage,
79  asio::error_code& ec) const;
81  const ASIO_OPTION_STORAGE& storage,
82  asio::error_code& ec);
83  private:
84  type value_;
85  };
86 
88 
91  class parity
92  {
93  public:
94  enum type { none, odd, even };
95  ASIO_DECL explicit parity(type t = none);
96  type value() const;
98  ASIO_OPTION_STORAGE& storage,
99  asio::error_code& ec) const;
101  const ASIO_OPTION_STORAGE& storage,
102  asio::error_code& ec);
103  private:
104  type value_;
105  };
106 
108 
111  class stop_bits
112  {
113  public:
114  enum type { one, onepointfive, two };
115  ASIO_DECL explicit stop_bits(type t = one);
116  type value() const;
118  ASIO_OPTION_STORAGE& storage,
119  asio::error_code& ec) const;
121  const ASIO_OPTION_STORAGE& storage,
122  asio::error_code& ec);
123  private:
124  type value_;
125  };
126 
128 
131  class character_size
132  {
133  public:
134  ASIO_DECL explicit character_size(unsigned int t = 8);
135  unsigned int value() const;
137  ASIO_OPTION_STORAGE& storage,
138  asio::error_code& ec) const;
140  const ASIO_OPTION_STORAGE& storage,
141  asio::error_code& ec);
142  private:
143  unsigned int value_;
144  };
145 
146 protected:
148  ~serial_port_base()
149  {
150  }
151 };
152 
153 } // namespace asio
154 
156 
157 #undef ASIO_OPTION_STORAGE
158 
160 #if defined(ASIO_HEADER_ONLY)
162 #endif // defined(ASIO_HEADER_ONLY)
163 
164 #endif // defined(ASIO_HAS_SERIAL_PORT)
165  // || defined(GENERATING_DOCUMENTATION)
166 
167 #endif // ASIO_SERIAL_PORT_BASE_HPP
Class to represent an error code value.
Definition: error_code.hpp:80
#define ASIO_DECL
Definition: config.hpp:43