SpFile.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. /*
  2. Cross Platform Core Code.
  3. Copyright(R) 2001-2002 Balang Software.
  4. All rights reserved.
  5. Using:
  6. class CSPFile
  7. */
  8. #if !defined( __SP_FILE_H__ )
  9. #define __SP_FILE_H__
  10. #include <sysstat.h>
  11. #include <fcntl.h>
  12. class CSPFile : public Object
  13. {
  14. public:
  15. // Flag values
  16. enum OpenFlags {
  17. modeRead =          0x0000,
  18. modeWrite =         0x0001,
  19. modeReadWrite =     0x0002,
  20. // shareCompat =       0x0000,
  21. // shareExclusive =    0x0010,
  22. // shareDenyWrite =    0x0020,
  23. // shareDenyRead =     0x0030,
  24. shareDenyNone =     0x0040,
  25. // modeNoInherit =     0x0080,
  26. modeCreate =        0x1000,
  27. modeNoTruncate =    0x2000,
  28. typeText =          0x4000, // typeText and typeBinary are used in
  29. typeBinary =   (int)0x8000 // derived classes only
  30. };
  31. enum SeekPosition { begin = 0x0, current = 0x1, end = 0x2 };
  32. enum { hFileNull = -1 };
  33. // Constructors
  34. CSPFile();
  35. // Attributes
  36. UINT m_hFile;
  37. // Operations
  38. virtual BOOL Open(LPCSTR lpszFileName, UINT nOpenFlags);
  39. static BOOL CopyFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists );
  40. DWORD SeekToEnd();
  41. void SeekToBegin();
  42. DWORD GetLength() const;
  43. DWORD GetPosition() const;
  44. // Overridables
  45. virtual LONG Seek(LONG lOff, UINT nFrom);
  46. virtual UINT Read(void* lpBuf, UINT nCount);
  47. virtual void Write(const void* lpBuf, UINT nCount);
  48. // reading and writing strings
  49. void WriteString(LPCTSTR lpsz);
  50. LPTSTR ReadString(LPTSTR lpsz, UINT nMax);
  51. BOOL ReadString( CSPString & rString );
  52. virtual void Abort();
  53. virtual void Flush();
  54. virtual void Close();
  55. // Implementation
  56. public:
  57. virtual ~CSPFile();
  58. #ifdef _DEBUG
  59. void AssertValid() const;
  60. void Dump() const;
  61. #endif
  62. enum BufferCommand { bufferRead, bufferWrite, bufferCommit, bufferCheck };
  63. virtual UINT GetBufferPtr(UINT nCommand, UINT nCount = 0,
  64. void** ppBufStart = NULL, void** ppBufMax = NULL);
  65. protected:
  66. BOOL m_bCloseOnDelete;
  67. CSPString m_strFileName;
  68. };
  69. #endif //__SP_FILE_H__