CXSIFilter.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _CXSIFILTER_H_
00015 #define _CXSIFILTER_H_
00016 
00017 #include <SIBCUtil.h>
00018 #include <SIBCString.h>
00019 
00020 #define SI_MEMORY_FILE_NAME     "3DMEMORYBUFFER"
00021 
00028 class CXSIFilter
00029 {
00030 public:
00031 
00034     CXSIFilter();
00037     virtual ~CXSIFilter();
00038 
00039 
00045     void            SetName ( const CSIBCString & in_szName );
00046 
00050     CSIBCString     GetName () ;
00051 
00057     void            SetID ( const CSIBCString & in_szID );
00061     CSIBCString&    GetID () ;
00062 
00066     virtual void            SetHeader ( CSIBCString in_szHeader );
00067 
00071     CSIBCString     GetHeader () ;
00075     virtual void    WriteHeader();
00076 
00081     virtual int Open ( CSIBCString in_szFilename, _SI_FILE_MODE in_Mode );
00084     virtual int Close ();
00085 
00086 
00092     virtual int Read ( SI_Char * out_pBuffer, SI_Long in_lSize );
00098     virtual int Write( SI_Char * in_pBuffer,  SI_Long in_lSize );
00099 
00104     virtual int Eof();
00105 
00109     virtual int Tell();
00110 
00114     void        SetSubFilter ( CXSIFilter *in_pSub ) { m_pSubFilter = in_pSub;} ;
00118     CXSIFilter *GetSubFilter () { return m_pSubFilter ; };
00119 
00120     int FillBuffer ( CSIBCString in_szFilename );
00121 protected:
00122 
00123     _SI_FILE    m_pStream;
00124     CSIBCString m_szHeader;
00125     CSIBCString m_szName;
00126     CSIBCString m_szID;
00127     CXSIFilter  *m_pSubFilter;
00128     SI_Long     m_FileSize;
00129     SI_Char     *m_pBuffer;
00130     SI_Long     m_lSubFilterPos;
00131     SI_Bool     m_bEof;
00132 
00133 };
00134 
00135 #endif