00001 /*------------------------------------------------------------------------------ 00002 00003 Copyright (c) 2000 Tyrell Corporation. All rights reserved. 00004 00005 Tyrell DarkIce 00006 00007 File : Source.h 00008 Version : $Revision: 1.2 $ 00009 Author : $Author: darkeye $ 00010 Location : $Source: /cvsroot/darkice/darkice/src/Source.h,v $ 00011 00012 Copyright notice: 00013 00014 This program is free software; you can redistribute it and/or 00015 modify it under the terms of the GNU General Public License 00016 as published by the Free Software Foundation; either version 2 00017 of the License, or (at your option) any later version. 00018 00019 This program is distributed in the hope that it will be useful, 00020 but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00022 GNU General Public License for more details. 00023 00024 You should have received a copy of the GNU General Public License 00025 along with this program; if not, write to the Free Software 00026 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00027 00028 ------------------------------------------------------------------------------*/ 00029 #ifndef SOURCE_H 00030 #define SOURCE_H 00031 00032 #ifndef __cplusplus 00033 #error This is a C++ include file 00034 #endif 00035 00036 00037 /* ============================================================ include files */ 00038 00039 #include "Referable.h" 00040 #include "Exception.h" 00041 00042 00043 /* ================================================================ constants */ 00044 00045 00046 /* =================================================================== macros */ 00047 00048 00049 /* =============================================================== data types */ 00050 00057 class Source : public virtual Referable 00058 { 00059 private: 00060 00061 protected: 00062 00068 inline 00069 Source ( void ) throw ( Exception ) 00070 { 00071 } 00072 00079 inline 00080 Source ( const Source & source ) throw ( Exception ) 00081 { 00082 } 00083 00091 inline virtual Source & 00092 operator= ( const Source & source ) throw ( Exception ) 00093 { 00094 return *this; 00095 } 00096 00097 00098 public: 00099 00105 inline virtual 00106 ~Source ( void ) throw ( Exception ) 00107 { 00108 } 00109 00116 virtual bool 00117 open ( void ) throw ( Exception ) = 0; 00118 00124 virtual bool 00125 isOpen ( void ) const throw () = 0; 00126 00137 virtual bool 00138 canRead ( unsigned int sec, 00139 unsigned int usec ) throw ( Exception ) = 0; 00140 00149 virtual unsigned int 00150 read ( void * buf, 00151 unsigned int len ) throw ( Exception ) = 0; 00152 00158 virtual void 00159 close ( void ) throw ( Exception ) = 0; 00160 }; 00161 00162 00163 /* ================================================= external data structures */ 00164 00165 00166 /* ====================================================== function prototypes */ 00167 00168 00169 00170 #endif /* SOURCE_H */ 00171 00172 00173 /*------------------------------------------------------------------------------ 00174 00175 $Source: /cvsroot/darkice/darkice/src/Source.h,v $ 00176 00177 $Log: Source.h,v $ 00178 Revision 1.2 2000/11/12 13:31:40 darkeye 00179 added kdoc-style documentation comments 00180 00181 Revision 1.1.1.1 2000/11/05 10:05:54 darkeye 00182 initial version 00183 00184 00185 ------------------------------------------------------------------------------*/ 00186