00001 /* 00002 * Copyright (C) 2009 00003 * Robert Bosch LLC 00004 * Research and Technology Center North America 00005 * Palo Alto, California 00006 * 00007 * All rights reserved. 00008 * 00009 *------------------------------------------------------------------------------ 00010 * project ....: Autonomous Technologies 00011 * file .......: rtcIOObject.h 00012 * authors ....: Benjamin Pitzer 00013 * organization: Robert Bosch LLC 00014 * creation ...: 10/16/2006 00015 * modified ...: $Date: 2009-01-21 18:19:16 -0800 (Wed, 21 Jan 2009) $ 00016 * changed by .: $Author: benjaminpitzer $ 00017 * revision ...: $Revision: 14 $ 00018 */ 00019 #ifndef RTC_IOOBJECT_H 00020 #define RTC_IOOBJECT_H 00021 00022 //== INCLUDES ================================================================== 00023 #include <rtc/rtcInputHandler.h> 00024 #include <rtc/rtcOutputHandler.h> 00025 00026 //== NAMESPACES ================================================================ 00027 namespace rtc { 00028 00032 class IOObject { 00033 public: 00035 IOObject(); 00037 virtual ~IOObject(); 00039 virtual bool write(OutputHandler& oh) const = 0; 00041 virtual bool read(InputHandler& ih) = 0; 00043 virtual bool readFromFile(InputHandler& ih, const char* filename); 00045 virtual bool writeToFile(OutputHandler& oh, const char* filename); 00046 }; 00047 00048 //============================================================================== 00049 } // namespace rtc 00050 //============================================================================== 00051 #endif // RTC_IOOBJECT_H defined 00052 //============================================================================== 00053