00001 #ifndef _CSARECORD_H 00002 #define _CSARECORD_H 00003 00004 #include "osl/record/record.h" 00005 #include "osl/record/csa.h" 00006 #include <boost/shared_ptr.hpp> 00007 #include <string> 00008 #include <iosfwd> 00009 namespace osl 00010 { 00011 namespace record 00012 { 00013 namespace csa 00014 { 00015 class InputStream : public IRecordStream 00016 { 00017 private: 00018 std::istream& is; 00019 SimpleState state; 00020 boost::shared_ptr<RecordVisitor> rv; 00021 public: 00022 InputStream(std::istream& is); 00023 InputStream(std::istream& is, boost::shared_ptr<RecordVisitor> rv); 00024 virtual ~InputStream(); 00025 00027 virtual void load(Record*); 00028 const SimpleState& getState() const { return state;} 00029 }; 00030 00031 class CsaFile 00032 { 00033 private: 00034 Record rec; 00035 public: 00036 CsaFile(const std::string& fileName); 00037 ~CsaFile(); 00038 00039 Record const& getRecord() const; 00040 SimpleState const& getInitialState() const; 00041 }; 00042 00043 } // namespace csa 00044 } // namespace record 00045 using record::csa::CsaFile; 00046 00047 } // namespace osl 00048 #endif /* _CSARECORD_H */ 00049 // ;;; Local Variables: 00050 // ;;; mode:c++ 00051 // ;;; c-basic-offset:2 00052 // ;;; End: