36 #if defined (FLEXIPORT_STATIC) 37 #define FLEXIPORT_EXPORT 38 #elif defined (flexiport_EXPORTS) 39 #define FLEXIPORT_EXPORT __declspec (dllexport) 41 #define FLEXIPORT_EXPORT __declspec (dllimport) 44 #define FLEXIPORT_EXPORT 88 virtual void Open () = 0;
91 virtual void Close () = 0;
107 virtual ssize_t Read (
void *
const buffer,
size_t count) = 0;
119 virtual ssize_t ReadFull (
void *
const buffer,
size_t count) = 0;
127 virtual ssize_t ReadString (std::string &buffer);
146 virtual ssize_t ReadUntil (
void *
const buffer,
size_t count, uint8_t terminator);
167 virtual ssize_t ReadStringUntil (std::string &buffer,
char terminator);
197 virtual ssize_t ReadLine (
char *
const buffer,
size_t count);
217 virtual ssize_t
ReadLine (std::string &buffer) {
return ReadStringUntil (buffer,
'\n'); }
223 virtual ssize_t Skip (
size_t count);
230 virtual ssize_t SkipUntil (uint8_t terminator,
unsigned int count);
236 virtual ssize_t BytesAvailable () = 0;
245 virtual ssize_t BytesAvailableWait () = 0;
257 virtual ssize_t Write (
const void *
const buffer,
size_t count) = 0;
266 virtual ssize_t WriteFull (
const void *
const buffer,
size_t count);
278 virtual ssize_t WriteString (
const char *
const buffer);
280 {
return WriteString (buffer.c_str ()); }
283 virtual void Flush () = 0;
289 virtual void Drain () = 0;
292 virtual std::string GetStatus ()
const;
308 virtual void SetTimeout (
Timeout timeout) = 0;
313 virtual bool IsBlocking ()
const {
return (_timeout._sec != 0 ||
314 _timeout._usec != 0); }
316 virtual void SetCanRead (
bool canRead) = 0;
318 virtual bool CanRead ()
const {
return _canRead; }
320 virtual void SetCanWrite (
bool canWrite) = 0;
322 virtual bool CanWrite ()
const {
return _canWrite; }
324 virtual bool IsOpen ()
const = 0;
338 Port (
unsigned int debug,
Timeout timeout,
bool canRead,
bool canWrite,
bool alwaysOpen);
340 void ProcessOptions (
const std::map<std::string, std::string> &options);
341 virtual bool ProcessOption (
const std::string &option,
const std::string &value);
342 virtual void CheckPort (
bool read) = 0;
347 void operator= (
const Port&);
int GetDebug() const
Get the debug level.
void SetDebug(int debug)
Set the debug level.
virtual ssize_t ReadLine(std::string &buffer)
Read a new-line terminated string of data.
virtual bool CanRead() const
Get the read permissions of the port.
virtual bool IsBlocking() const
Get the blocking property of the port.
virtual Timeout GetTimeout() const
Get the timeout.
virtual bool CanWrite() const
Get the write permissions of the port.
virtual ssize_t WriteString(const std::string &buffer)
std::string GetPortType() const
Get the port type.
An object used to represent timeouts.