Realistic 3D camera system
3D camera system components
descriptor_ops.hpp
Go to the documentation of this file.
1 //
2 // detail/descriptor_ops.hpp
3 // ~~~~~~~~~~~~~~~~~~~~~~~~~
4 //
5 // Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6 //
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 //
10 
11 #ifndef ASIO_DETAIL_DESCRIPTOR_OPS_HPP
12 #define ASIO_DETAIL_DESCRIPTOR_OPS_HPP
13 
14 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15 # pragma once
16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17 
18 #include "asio/detail/config.hpp"
19 
20 #if !defined(ASIO_WINDOWS) \
21  && !defined(ASIO_WINDOWS_RUNTIME) \
22  && !defined(__CYGWIN__)
23 
24 #include <cstddef>
25 #include "asio/error_code.hpp"
27 
29 
30 namespace asio {
31 namespace detail {
32 namespace descriptor_ops {
33 
34 // Descriptor state bits.
35 enum
36 {
37  // The user wants a non-blocking descriptor.
39 
40  // The descriptor has been set non-blocking.
42 
43  // Helper "state" used to determine whether the descriptor is non-blocking.
45 
46  // The descriptor may have been dup()-ed.
48 };
49 
50 typedef unsigned char state_type;
51 
52 template <typename ReturnType>
53 inline ReturnType error_wrapper(ReturnType return_value,
54  asio::error_code& ec)
55 {
56  ec = asio::error_code(errno,
58  return return_value;
59 }
60 
61 ASIO_DECL int open(const char* path, int flags,
62  asio::error_code& ec);
63 
64 ASIO_DECL int close(int d, state_type& state,
65  asio::error_code& ec);
66 
68  state_type& state, bool value, asio::error_code& ec);
69 
71  state_type& state, bool value, asio::error_code& ec);
72 
73 typedef iovec buf;
74 
75 ASIO_DECL std::size_t sync_read(int d, state_type state, buf* bufs,
76  std::size_t count, bool all_empty, asio::error_code& ec);
77 
78 ASIO_DECL bool non_blocking_read(int d, buf* bufs, std::size_t count,
79  asio::error_code& ec, std::size_t& bytes_transferred);
80 
81 ASIO_DECL std::size_t sync_write(int d, state_type state,
82  const buf* bufs, std::size_t count, bool all_empty,
83  asio::error_code& ec);
84 
85 ASIO_DECL bool non_blocking_write(int d,
86  const buf* bufs, std::size_t count,
87  asio::error_code& ec, std::size_t& bytes_transferred);
88 
89 ASIO_DECL int ioctl(int d, state_type& state, long cmd,
91 
92 ASIO_DECL int fcntl(int d, int cmd, asio::error_code& ec);
93 
94 ASIO_DECL int fcntl(int d, int cmd,
95  long arg, asio::error_code& ec);
96 
97 ASIO_DECL int poll_read(int d,
98  state_type state, asio::error_code& ec);
99 
100 ASIO_DECL int poll_write(int d,
101  state_type state, asio::error_code& ec);
102 
103 } // namespace descriptor_ops
104 } // namespace detail
105 } // namespace asio
106 
108 
109 #if defined(ASIO_HEADER_ONLY)
111 #endif // defined(ASIO_HEADER_ONLY)
112 
113 #endif // !defined(ASIO_WINDOWS)
114  // && !defined(ASIO_WINDOWS_RUNTIME)
115  // && !defined(__CYGWIN__)
116 
117 #endif // ASIO_DETAIL_DESCRIPTOR_OPS_HPP
ASIO_DECL bool set_internal_non_blocking(int d, state_type &state, bool value, asio::error_code &ec)
ReturnType error_wrapper(ReturnType return_value, asio::error_code &ec)
ASIO_DECL std::size_t sync_write(int d, state_type state, const buf *bufs, std::size_t count, bool all_empty, asio::error_code &ec)
ASIO_DECL bool non_blocking_read(int d, buf *bufs, std::size_t count, asio::error_code &ec, std::size_t &bytes_transferred)
ASIO_DECL std::size_t sync_read(int d, state_type state, buf *bufs, std::size_t count, bool all_empty, asio::error_code &ec)
ASIO_DECL bool set_user_non_blocking(int d, state_type &state, bool value, asio::error_code &ec)
ASIO_DECL int poll_write(int d, state_type state, asio::error_code &ec)
ASIO_DECL int poll_read(int d, state_type state, asio::error_code &ec)
const asio::error_category & get_system_category()
Definition: error.hpp:226
Class to represent an error code value.
Definition: error_code.hpp:80
#define ASIO_DECL
Definition: config.hpp:43
ASIO_DECL bool non_blocking_write(int d, const buf *bufs, std::size_t count, asio::error_code &ec, std::size_t &bytes_transferred)
ASIO_DECL int fcntl(int d, int cmd, asio::error_code &ec)
ASIO_DECL int close(int d, state_type &state, asio::error_code &ec)
ASIO_DECL int open(const char *path, int flags, asio::error_code &ec)
ASIO_DECL int ioctl(int d, state_type &state, long cmd, ioctl_arg_type *arg, asio::error_code &ec)