Hex Artifact Content

Not logged in

Artifact f917f310296a724b53b0501fb4c3e0e6a2079672:


0000: 23 69 66 6e 64 65 66 20 5f 4b 49 4c 49 42 5f 46  #ifndef _KILIB_F
0010: 49 4c 45 5f 48 5f 0d 0a 23 64 65 66 69 6e 65 20  ILE_H_..#define 
0020: 5f 4b 49 4c 49 42 5f 46 49 4c 45 5f 48 5f 0d 0a  _KILIB_FILE_H_..
0030: 23 69 6e 63 6c 75 64 65 20 22 74 79 70 65 73 2e  #include "types.
0040: 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22 6d 65  h"..#include "me
0050: 6d 6f 72 79 2e 68 22 0d 0a 23 69 66 6e 64 65 66  mory.h"..#ifndef
0060: 20 5f 5f 63 63 64 6f 63 5f 5f 0d 0a 6e 61 6d 65   __ccdoc__..name
0070: 73 70 61 63 65 20 6b 69 20 7b 0d 0a 23 65 6e 64  space ki {..#end
0080: 69 66 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d  if........//====
0090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
00d0: 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b 20 40 70 6b 67  =====..//@{ @pkg
00e0: 20 6b 69 2e 53 74 64 4c 69 62 20 2f 2f 40 7d 0d   ki.StdLib //@}.
00f0: 0a 2f 2f 40 7b 0d 0a 2f 2f 09 8a c8 88 d5 83 74  .//@{..//......t
0100: 83 40 83 43 83 8b 93 c7 8d 9e 0d 0a 2f 2f 0d 0a  .@.C........//..
0110: 2f 2f 09 83 74 83 40 83 43 83 8b 83 7d 83 62 83  //..t.@.C...}.b.
0120: 73 83 93 83 4f 82 f0 97 70 82 a2 82 e9 82 cc 82  s...O...p.......
0130: c5 81 41 88 b5 82 a2 82 aa 8a c8 92 50 82 c5 82  ..A.........P...
0140: ed 82 e8 82 c6 8d 82 91 ac 82 c5 82 b7 81 42 0d  ..............B.
0150: 0a 2f 2f 09 82 bd 82 be 82 b5 8d a2 82 c1 82 bd  .//.............
0160: 82 b1 82 c6 82 c9 81 41 34 47 42 82 dc 82 c5 82  .......A4GB.....
0170: b5 82 a9 8a 4a 82 af 82 dc 82 b9 82 f1 81 42 0d  ....J.........B.
0180: 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d 3d 3d 3d  .//@}..//=======
0190: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
01a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
01b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
01c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
01d0: 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20 46 69 6c 65  ==....class File
01e0: 52 20 3a 20 70 75 62 6c 69 63 20 4f 62 6a 65 63  R : public Objec
01f0: 74 0d 0a 7b 0d 0a 70 75 62 6c 69 63 3a 0d 0a 0d  t..{..public:...
0200: 0a 09 46 69 6c 65 52 28 29 3b 0d 0a 09 7e 46 69  ..FileR();...~Fi
0210: 6c 65 52 28 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 0d  leR();.....//@{.
0220: 0a 09 2f 2f 09 8a 4a 82 ad 0d 0a 09 2f 2f 09 40  ..//..J.....//.@
0230: 70 61 72 61 6d 20 66 6e 61 6d 65 20 83 74 83 40  param fname .t.@
0240: 83 43 83 8b 96 bc 0d 0a 09 2f 2f 09 40 72 65 74  .C.......//.@ret
0250: 75 72 6e 20 8a 4a 82 af 82 bd 82 a9 82 c7 82 a4  urn .J..........
0260: 82 a9 0d 0a 09 2f 2f 40 7d 0d 0a 09 62 6f 6f 6c  .....//@}...bool
0270: 20 4f 70 65 6e 28 20 63 6f 6e 73 74 20 54 43 48   Open( const TCH
0280: 41 52 2a 20 66 6e 61 6d 65 20 29 3b 0d 0a 0d 0a  AR* fname );....
0290: 09 2f 2f 40 7b 0d 0a 09 2f 2f 09 95 c2 82 b6 82  .//@{...//......
02a0: e9 0d 0a 09 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20  ....//@}...void 
02b0: 43 6c 6f 73 65 28 29 3b 0d 0a 0d 0a 70 75 62 6c  Close();....publ
02c0: 69 63 3a 0d 0a 0d 0a 09 2f 2f 40 7b 20 83 74 83  ic:.....//@{ .t.
02d0: 40 83 43 83 8b 83 54 83 43 83 59 20 2f 2f 40 7d  @.C...T.C.Y //@}
02e0: 0d 0a 09 75 6c 6f 6e 67 20 73 69 7a 65 28 29 20  ...ulong size() 
02f0: 63 6f 6e 73 74 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20  const;.....//@{ 
0300: 83 74 83 40 83 43 83 8b 93 e0 97 65 82 f0 83 7d  .t.@.C.....e...}
0310: 83 62 83 76 82 b5 82 bd 83 41 83 68 83 8c 83 58  .b.v.....A.h...X
0320: 8e e6 93 be 20 2f 2f 40 7d 0d 0a 09 63 6f 6e 73  .... //@}...cons
0330: 74 20 75 63 68 61 72 2a 20 62 61 73 65 28 29 20  t uchar* base() 
0340: 63 6f 6e 73 74 3b 0d 0a 0d 0a 70 72 69 76 61 74  const;....privat
0350: 65 3a 0d 0a 0d 0a 09 48 41 4e 44 4c 45 20 20 20  e:.....HANDLE   
0360: 20 20 20 68 61 6e 64 6c 65 5f 3b 0d 0a 09 48 41     handle_;...HA
0370: 4e 44 4c 45 20 20 20 20 20 20 66 6d 6f 5f 3b 0d  NDLE      fmo_;.
0380: 0a 09 75 6c 6f 6e 67 20 20 20 20 20 20 20 73 69  ..ulong       si
0390: 7a 65 5f 3b 0d 0a 09 63 6f 6e 73 74 20 76 6f 69  ze_;...const voi
03a0: 64 2a 20 62 61 73 65 50 74 72 5f 3b 0d 0a 0d 0a  d* basePtr_;....
03b0: 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 4e 4f 43  private:.....NOC
03c0: 4f 50 59 28 46 69 6c 65 52 29 3b 0d 0a 7d 3b 0d  OPY(FileR);..};.
03d0: 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d  .......//-------
03e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
03f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0400: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0410: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0420: 2d 2d 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 75 6c 6f  --....inline ulo
0430: 6e 67 20 46 69 6c 65 52 3a 3a 73 69 7a 65 28 29  ng FileR::size()
0440: 20 63 6f 6e 73 74 0d 0a 09 7b 20 72 65 74 75 72   const...{ retur
0450: 6e 20 73 69 7a 65 5f 3b 20 7d 0d 0a 0d 0a 69 6e  n size_; }....in
0460: 6c 69 6e 65 20 63 6f 6e 73 74 20 75 63 68 61 72  line const uchar
0470: 2a 20 46 69 6c 65 52 3a 3a 62 61 73 65 28 29 20  * FileR::base() 
0480: 63 6f 6e 73 74 0d 0a 09 7b 20 72 65 74 75 72 6e  const...{ return
0490: 20 73 74 61 74 69 63 5f 63 61 73 74 3c 63 6f 6e   static_cast<con
04a0: 73 74 20 75 63 68 61 72 2a 3e 28 62 61 73 65 50  st uchar*>(baseP
04b0: 74 72 5f 29 3b 20 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f  tr_); }......../
04c0: 2f 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  /===============
04d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
04e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
04f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0500: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0d 0a 2f 2f 40 7b  ==========..//@{
0510: 0d 0a 2f 2f 09 8a c8 88 d5 83 74 83 40 83 43 83  ..//......t.@.C.
0520: 8b 8f 91 82 ab 8d 9e 82 dd 0d 0a 2f 2f 0d 0a 2f  ...........//../
0530: 2f 09 82 c4 82 ab 82 c6 81 5b 82 c9 83 6f 83 62  /........[...o.b
0540: 83 74 83 40 83 8a 83 93 83 4f 82 b5 82 c2 82 c2  .t.@.....O......
0550: 81 42 0d 0a 2f 2f 40 7d 0d 0a 2f 2f 3d 3d 3d 3d  .B..//@}..//====
0560: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0570: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0580: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0590: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
05a0: 3d 3d 3d 3d 3d 0d 0a 0d 0a 63 6c 61 73 73 20 46  =====....class F
05b0: 69 6c 65 57 20 3a 20 70 75 62 6c 69 63 20 4f 62  ileW : public Ob
05c0: 6a 65 63 74 0d 0a 7b 0d 0a 70 75 62 6c 69 63 3a  ject..{..public:
05d0: 0d 0a 0d 0a 09 46 69 6c 65 57 28 29 3b 0d 0a 09  .....FileW();...
05e0: 7e 46 69 6c 65 57 28 29 3b 0d 0a 0d 0a 09 2f 2f  ~FileW();.....//
05f0: 40 7b 20 8a 4a 82 ad 20 2f 2f 40 7d 0d 0a 09 62  @{ .J.. //@}...b
0600: 6f 6f 6c 20 4f 70 65 6e 28 20 63 6f 6e 73 74 20  ool Open( const 
0610: 54 43 48 41 52 2a 20 66 6e 61 6d 65 2c 20 62 6f  TCHAR* fname, bo
0620: 6f 6c 20 63 72 65 61 74 3d 74 72 75 65 20 29 3b  ol creat=true );
0630: 0d 0a 0d 0a 09 2f 2f 40 7b 20 95 c2 82 b6 82 e9  .....//@{ ......
0640: 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20 43 6c 6f   //@}...void Clo
0650: 73 65 28 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 8f  se();.....//@{ .
0660: 91 82 ad 20 2f 2f 40 7d 0d 0a 09 76 6f 69 64 20  ... //@}...void 
0670: 57 72 69 74 65 28 20 63 6f 6e 73 74 20 76 6f 69  Write( const voi
0680: 64 2a 20 62 75 66 2c 20 75 6c 6f 6e 67 20 73 69  d* buf, ulong si
0690: 7a 20 29 3b 0d 0a 0d 0a 09 2f 2f 40 7b 20 88 ea  z );.....//@{ ..
06a0: 95 b6 8e 9a 8f 91 82 ad 20 2f 2f 40 7d 0d 0a 09  ........ //@}...
06b0: 76 6f 69 64 20 57 72 69 74 65 43 28 20 75 63 68  void WriteC( uch
06c0: 61 72 20 63 68 20 29 3b 0d 0a 0d 0a 70 75 62 6c  ar ch );....publ
06d0: 69 63 3a 0d 0a 0d 0a 09 76 6f 69 64 20 46 6c 75  ic:.....void Flu
06e0: 73 68 28 29 3b 0d 0a 0d 0a 70 72 69 76 61 74 65  sh();....private
06f0: 3a 0d 0a 0d 0a 09 63 6f 6e 73 74 20 69 6e 74 20  :.....const int 
0700: 20 20 20 42 55 46 53 49 5a 45 3b 0d 0a 09 48 41     BUFSIZE;...HA
0710: 4e 44 4c 45 20 20 20 20 20 20 20 68 61 6e 64 6c  NDLE       handl
0720: 65 5f 3b 0d 0a 09 75 63 68 61 72 2a 20 63 6f 6e  e_;...uchar* con
0730: 73 74 20 62 75 66 5f 3b 0d 0a 09 75 6c 6f 6e 67  st buf_;...ulong
0740: 20 20 20 20 20 20 20 20 62 50 6f 73 5f 3b 0d 0a          bPos_;..
0750: 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 4e  ..private:.....N
0760: 4f 43 4f 50 59 28 46 69 6c 65 57 29 3b 0d 0a 7d  OCOPY(FileW);..}
0770: 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 3d 3d 3d 3d 3d  ;........//=====
0780: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0790: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
07a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
07b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
07c0: 3d 3d 3d 3d 0d 0a 0d 0a 7d 20 20 20 20 20 20 2f  ====....}      /
07d0: 2f 20 6e 61 6d 65 73 70 61 63 65 20 6b 69 0d 0a  / namespace ki..
07e0: 23 65 6e 64 69 66 20 2f 2f 20 5f 4b 49 4c 49 42  #endif // _KILIB
07f0: 5f 46 49 4c 45 5f 48 5f 0d 0a                    _FILE_H_..