Line 898: |
Line 898: |
| { | | { |
| public: | | public: |
− | virtual ~CClassicArchive(); | + | __thiscall CClassicArchive(void); |
− | virtual ReadWriteNodRef(CMwNod** ppNod); // Reads or writes a reference to an object. | + | virtual __thiscall ~CClassicArchive(void); |
− | // If this is the first time the object is encountered,
| + | virtual void __thiscall DoNodPtr(class CMwNod * &); // Reads or writes a reference to an object |
− | // it is (de)serialized at this point.
| + | virtual void __thiscall DoFid(class CSystemFidFile * &); |
− | virtual ReadWriteNodRefNoCreate(CMwNod** ppNod); // Reads or writes a reference to an object. | + | virtual void __thiscall DoFolder(class CSystemFidsFolder * &, int, class CSystemFidsFolder *); |
− | // The object is expected to be already known
| + | virtual int __thiscall GetArchivingFileName(class CFastStringInt &)const; |
− | // (no deserialization happens).
| + | |
| + | void __thiscall AttachBuffer(class CClassicBuffer *); |
| + | class CClassicBuffer * __thiscall DetachBuffer(int); |
| + | |
| + | void __thiscall ReadData(void *, unsigned long); |
| + | void __thiscall ReadBool(int *, unsigned long); |
| + | void __thiscall ReadMask(unsigned long *, unsigned long); |
| + | void __thiscall ReadNat8(unsigned char *, unsigned long, int); |
| + | void __thiscall ReadNat16(unsigned short *, unsigned long, int); |
| + | void __thiscall ReadNat32(unsigned long *, unsigned long, int); |
| + | void __thiscall ReadNatural(unsigned long *, unsigned long, int); |
| + | void __thiscall ReadNat64(unsigned __int64 *, unsigned long, int); |
| + | void __thiscall ReadInteger(int *, unsigned long, int); |
| + | void __thiscall ReadReal(float *, unsigned long); |
| + | void __thiscall ReadString(class CFastString *, unsigned long); |
| + | void __thiscall ReadString(class CFastStringInt *, unsigned long); |
| + | |
| + | void __thiscall WriteData(void const *, unsigned long); |
| + | void __thiscall WriteBool(int const *, unsigned long); |
| + | void __thiscall WriteMask(unsigned long const *, unsigned long); |
| + | void __thiscall WriteNat8(unsigned char const *, unsigned long, int); |
| + | void __thiscall WriteNat16(unsigned short const *, unsigned long, int); |
| + | void __thiscall WriteNat32(unsigned long const *, unsigned long, int); |
| + | void __thiscall WriteNatural(unsigned long const *, unsigned long, int); |
| + | void __thiscall WriteNat64(unsigned __int64 const *, unsigned long, int); |
| + | void __thiscall WriteInteger(int const *, unsigned long, int); |
| + | void __thiscall WriteReal(float const *, unsigned long); |
| + | void __thiscall WriteString(class CFastString const *, unsigned long); |
| + | void __thiscall WriteString(class CFastStringInt const *, unsigned long); |
| + | |
| + | void __thiscall DoMarker(char const *); // Reads or writes markup, like <Thumbnail.jpg> or </Thumbnail.jpg> |
| + | void __thiscall DoData(void *, unsigned long count); // Reads or writes the specified number of bytes |
| + | void __thiscall DoBool(int *, unsigned long count); // Reads or writes a truth value |
| + | void __thiscall DoMask(unsigned long *, unsigned long count); // Reads or writes a hex value (class ID) |
| + | void __thiscall DoNat8(unsigned char *, unsigned long count, int isHex); |
| + | void __thiscall DoNat16(unsigned short *, unsigned long count, int isHex); |
| + | void __thiscall DoNat32(unsigned long *, unsigned long count, int isHex); |
| + | void __thiscall DoNatural(unsigned long *, unsigned long count, int isHex); |
| + | void __thiscall DoNat64(unsigned __int64 *, unsigned long count, int isHex); |
| + | void __thiscall DoNat128(struct SNat128 *, unsigned long count); |
| + | void __thiscall DoInteger(int *, unsigned long count, int isHex); |
| + | void __thiscall DoReal(float *, unsigned long count); |
| + | void __thiscall DoString(class CFastString *, unsigned long count); |
| + | void __thiscall DoString(class CFastStringInt *, unsigned long count); |
| + | void __thiscall DoStringI18nComment(class CFastStringInt *, char const *); |
| + | |
| + | void __thiscall SkipData(unsigned long); |
| + | |
| + | static void (__cdecl* s_ThrowCorruptedArchive)(void); |
| + | static int s_AllowUnprintableStrings; |
| + | |
| + | protected: |
| + | int __thiscall ReadLine(void); |
| + | void __thiscall WriteLine(void); |
| + | |
| + | static void (__cdecl* s_DeleteMwIdUserDataCallBack)(class CClassicArchive *); |
| | | |
| private: | | private: |
Line 910: |
Line 965: |
| bool bWriting; | | bool bWriting; |
| bool bTextMode; // Whether to read/write in readable ASCII text or in binary | | bool bTextMode; // Whether to read/write in readable ASCII text or in binary |
− | bool bUnknown; | + | bool bBucr3IsR; |
| void* pStringIndices; // Pointer to cache of known string IDs | | void* pStringIndices; // Pointer to cache of known string IDs |
| }; | | }; |
| | | |
− | For details on ReadWriteNodRef, see the definition of "noderef" on the [[GBX#Primitives|GBX page]]. | + | For details on DoNodPtr, see the definition of "noderef" on the [[GBX#Primitives|GBX page]]. |
| | | |
| ====CSystemArchiveNod==== | | ====CSystemArchiveNod==== |