]> Creatis software - clitk.git/blob - utilities/CxImage/xmemfile.h
ac4c412007097841b6ee59f7bdc611d73464fd61
[clitk.git] / utilities / CxImage / xmemfile.h
1 #if !defined(__xmemfile_h)\r
2 #define __xmemfile_h\r
3 \r
4 #include "xfile.h"\r
5 \r
6 //////////////////////////////////////////////////////////\r
7 class DLL_EXP CxMemFile : public CxFile\r
8 {\r
9 public:\r
10         CxMemFile(BYTE* pBuffer = NULL, DWORD size = 0);\r
11         ~CxMemFile();\r
12 \r
13         bool Open();\r
14         BYTE* GetBuffer(bool bDetachBuffer = true);\r
15 \r
16         virtual bool    Close();\r
17         virtual size_t  Read(void *buffer, size_t size, size_t count);\r
18         virtual size_t  Write(const void *buffer, size_t size, size_t count);\r
19         virtual bool    Seek(long offset, int origin);\r
20         virtual long    Tell();\r
21         virtual long    Size();\r
22         virtual bool    Flush();\r
23         virtual bool    Eof();\r
24         virtual long    Error();\r
25         virtual bool    PutC(unsigned char c);\r
26         virtual long    GetC();\r
27         virtual char *  GetS(char *string, int n);\r
28         virtual long    Scanf(const char *format, void* output);\r
29 \r
30 protected:\r
31         bool    Alloc(DWORD nBytes);\r
32         void    Free();\r
33 \r
34         BYTE*   m_pBuffer;\r
35         DWORD   m_Size;\r
36         bool    m_bFreeOnClose;\r
37         long    m_Position;     //current position\r
38         long    m_Edge;         //buffer size\r
39 };\r
40 \r
41 #endif\r