Open Lighting Architecture  0.9.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Enumerations | Functions | Variables
ola::io Namespace Reference

Detailed Description

Classes for general I/O and event handling.

Classes

class  EPollData
class  EPoller
 An implementation of PollerInterface that uses epoll(). More...
class  KQueueData
class  KQueuePoller
 An implementation of PollerInterface that uses kevent / kqueue. More...
class  PollerInterface
 The interface for the Poller classes. More...
class  SelectPoller
 An implementation of PollerInterface that uses select(). More...
class  TimeoutManager
 Manages timer events. More...
class  WindowsPollerDescriptor
class  EventHolder
class  PollData
class  WindowsPoller
 An implementation of PollerInterface for Windows. More...
class  BigEndianInputStreamInterface
class  BigEndianInputStreamAdaptor
class  BigEndianInputStream
class  BigEndianOutputStreamInterface
class  BigEndianOutputStreamAdaptor
class  BigEndianOutputStream
class  ReadFileDescriptor
 Represents a file descriptor that supports reading data. More...
class  WriteFileDescriptor
 Represents a file descriptor that supports writing data. More...
class  BidirectionalFileDescriptor
 A file descriptor that supports both read & write. More...
class  UnmanagedFileDescriptor
 Allows a FD created by a library to be used with the SelectServer. More...
struct  UnmanagedFileDescriptor_lt
 Comparison operator for UnmanagedFileDescriptor. More...
class  ConnectedDescriptor
 A BidirectionalFileDescriptor that also generates notifications when closed. More...
class  LoopbackDescriptor
 A loopback descriptor. More...
class  PipeDescriptor
 A descriptor that uses unix pipes. More...
class  UnixSocket
 A unix domain socket pair. More...
class  DeviceDescriptor
 A descriptor which represents a connection to a device. More...
class  LinuxHelper
 A static class containing platform-specific helper code for Linux. More...
class  InputBufferInterface
class  InputStreamInterface
class  InputStream
class  IOQueue
class  IOStack
struct  IOVec
class  IOVecInterface
class  MemoryBlock
 A MemoryBlock encapsulates a chunk of memory. It's used by the IOQueue and IOStack classes. More...
class  MemoryBlockPool
 MemoryBlockPool. This class is not thread safe. More...
class  MemoryBuffer
class  NonBlockingSender
 Write data to ConnectedDescriptors without blocking or losing data. More...
class  OutputBufferInterface
class  OutputStreamInterface
class  OutputStream
class  SelectServer
 A single threaded I/O event management system. More...
class  SelectServerInterface
 The interface for the SelectServer. More...
class  StdinHandler

Typedefs

typedef std::basic_string
< uint8_t > 
ByteString
 A contiguous block of uint8_t data.
typedef int DescriptorHandle

Enumerations

enum  baud_rate {
  BAUD_RATE_9600 = 9600, BAUD_RATE_19200 = 19200, BAUD_RATE_38400 = 38400, BAUD_RATE_57600 = 57600,
  BAUD_RATE_115200 = 115200, BAUD_RATE_230400 = 230400
}

Functions

 STATIC_ASSERT (sizeof(struct iovec)==sizeof(struct IOVec))
int ToFD (const DescriptorHandle &handle)
bool CreatePipe (DescriptorHandle handle_pair[2])
bool Open (const std::string &path, int oflag, int *fd)
 Wrapper around open().
bool TryOpen (const std::string &path, int oflag, int *fd)
 Wrapper around open().
bool FileExists (const std::string &file_name)
 Check if a file exists using stat().
template<typename T >
bool InsertIntoDescriptorMap (map< int, T * > *descriptor_map, int fd, T *value, const string &type)
 Insert a descriptor into one of the descriptor maps.
template<typename T >
bool RemoveFromDescriptorMap (map< int, T * > *descriptor_map, int fd)
 Remove a FD from a descriptor map by setting the value to NULL.
bool UIntToSpeedT (uint32_t value, speed_t *output)
 Convert an integer baud rate to the termios struct speed_t.
bool CheckForUUCPLockFile (const std::vector< std::string > &directories, const std::string &serial_device)
 Check for UUCP lock files.
void CancelIOs (vector< PollData * > *data)

Variables

static const int FLAG_READ = 1
static const int FLAG_WRITE = 2
static DescriptorHandle INVALID_DESCRIPTOR = -1

Typedef Documentation

typedef std::basic_string<uint8_t> ola::io::ByteString

A contiguous block of uint8_t data.

The constraints of the .data() and .c_str() methods from the C++ standard mean that string stores it's data in a contiguous block.

In some implementations, basic_string may be reference counted, but with the additional contraints added by C++11 this will not be the case, so think twice about copying ByteStrings.

Function Documentation

bool ola::io::CheckForUUCPLockFile ( const std::vector< std::string > &  directories,
const std::string &  serial_device 
)

Check for UUCP lock files.

Parameters
directoriesThe directories to check for lock files.
serial_deviceThe serial device to check.
Returns
true if a lockfile exists, false otherwise.
bool ola::io::CreatePipe ( DescriptorHandle  handle_pair[2])

Helper function to create a anonymous pipe

Parameters
handle_paira 2 element array which is updated with the handles
Returns
true if successful, false otherwise.
bool ola::io::FileExists ( const std::string &  file_name)

Check if a file exists using stat().

Parameters
file_nameThe name of the file.
Returns
true if the stat() command completed & the file exists, false if stat() failed, or the file doesn't exist.
template<typename T >
bool ola::io::InsertIntoDescriptorMap ( map< int, T * > *  descriptor_map,
int  fd,
T *  value,
const string &  type 
)

Insert a descriptor into one of the descriptor maps.

Parameters
descriptor_mapthe descriptor_map to insert into.
fdthe FD to use as the key
valuethe value to associate with the key
typethe name of the map, used for logging if the fd already exists in the map.
Returns
true if the descriptor was inserted, false if it was already in the map.

There are three possibilities:

  • The fd does not already exist in the map
  • The fd exists and the value is NULL.
  • The fd exists and is not NULL.
bool ola::io::Open ( const std::string &  path,
int  oflag,
int *  fd 
)

Wrapper around open().

This logs a message if the open fails.

Parameters
paththe path to open
oflagflags passed to open
[out]fda pointer to the fd which is returned.
Returns
true if the open succeeded, false otherwise.
template<typename T >
bool ola::io::RemoveFromDescriptorMap ( map< int, T * > *  descriptor_map,
int  fd 
)

Remove a FD from a descriptor map by setting the value to NULL.

Returns
true if the FD was removed from the map, false if it didn't exist in the map.
bool ola::io::TryOpen ( const std::string &  path,
int  oflag,
int *  fd 
)

Wrapper around open().

This is similar to Open(), but doesn't log a warning if open() fails.

Parameters
paththe path to open
oflagflags passed to open
[out]fda pointer to the fd which is returned.
Returns
true if the open succeeded, false otherwise.
See Also
Open
bool ola::io::UIntToSpeedT ( uint32_t  value,
speed_t *  output 
)

Convert an integer baud rate to the termios struct speed_t.

Parameters
[in]valuethe baudrate value to convert
[out]outputa pointer where the value will be stored
Returns
true if the value was converted, false if the baud rate wasn't supported by the method.