INTRODUCTION
Overview
Download and Install
Documentation
Publications

REPOSITORY
Libraries

DEVELOPER
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

logwriterport.h

00001 /*
00002  * GearBox Project: Peer-Reviewed Open-Source Libraries for Robotics
00003  *               http://gearbox.sf.net/
00004  * Copyright (c) 2008 Geoffrey Biggs
00005  *
00006  * flexiport flexible hardware data communications library.
00007  * 
00008  * This distribution is licensed to you under the terms described in the LICENSE file included in 
00009  * this distribution.
00010  *
00011  * This work is a product of the National Institute of Advanced Industrial Science and Technology,
00012  * Japan. Registration number: H20PRO-881
00013  * 
00014  * This file is part of flexiport.
00015  *
00016  * flexiport is free software: you can redistribute it and/or modify it under the terms of the GNU
00017  * Lesser General Public License as published by the Free Software Foundation, either version 3 of 
00018  * the License, or (at your option) any later version.
00019  *
00020  * flexiport is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
00021  * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00022  * Lesser General Public License for more details.
00023  *
00024  * You should have received a copy of the GNU Lesser General Public License along with flexiport.
00025  * If not, see <http://www.gnu.org/licenses/>.
00026  */
00027 
00028 #ifndef __LOGWRITERPORT_H
00029 #define __LOGWRITERPORT_H
00030 
00031 #include "port.h"
00032 
00033 #include <map>
00034 #include <string>
00035 
00040 namespace flexiport
00041 {
00042 
00043 class LogFile;
00044 
00068 class FLEXIPORT_EXPORT LogWriterPort : public Port
00069 {
00070         public:
00071                 LogWriterPort (std::map<std::string, std::string> options);
00072                 ~LogWriterPort ();
00073 
00075                 void Open ();
00077                 void Close ();
00079                 ssize_t Read (void * const buffer, size_t count);
00081                 ssize_t ReadFull (void * const buffer, size_t count);
00083                 ssize_t Skip (size_t count);
00086                 ssize_t SkipUntil (uint8_t terminator, unsigned int count);
00088                 ssize_t BytesAvailable ();
00090                 ssize_t BytesAvailableWait ();
00092                 ssize_t Write (const void * const buffer, size_t count);
00094                 void Flush ();
00096                 void Drain ();
00098                 std::string GetStatus () const;
00100                 void SetTimeout (Timeout timeout);
00102                 void SetCanRead (bool canRead);
00104                 void SetCanWrite (bool canWrite);
00106                 bool IsOpen () const;
00107 
00108         private:
00109                 Port *_port;
00110                 LogFile *_logFile;
00111                 std::string _logFileName;
00112 
00113                 void CheckPort (bool read);
00114 };
00115 
00116 } // namespace flexiport
00117 
00120 #endif // __LOGWRITERPORT_H
 

Generated for GearBox by  doxygen 1.4.5