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