2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS cabinet manager
4 * FILE: apps/cabman/dfp.h
5 * PURPOSE: Directive file parser header
12 typedef struct _CABINET_NAME {
13 struct _CABINET_NAME *Next;
16 } CABINET_NAME, *PCABINET_NAME;
18 typedef struct _DISK_NUMBER {
19 struct _DISK_NUMBER *Next;
22 } DISK_NUMBER, *PDISK_NUMBER;
40 stCabinetNameTemplate,
56 class CDFParser : public CCabinet {
60 ULONG Load(LPTSTR FileName);
64 virtual BOOL OnDiskLabel(ULONG Number, LPTSTR Label);
65 virtual BOOL OnCabinetName(ULONG Number, LPTSTR Name);
67 BOOL SetDiskName(PCABINET_NAME *List, ULONG Number, LPTSTR String);
68 BOOL GetDiskName(PCABINET_NAME *List, ULONG Number, LPTSTR String);
69 BOOL SetDiskNumber(PDISK_NUMBER *List, ULONG Number, ULONG Value);
70 BOOL GetDiskNumber(PDISK_NUMBER *List, ULONG Number, PULONG Value);
71 BOOL DoDiskLabel(ULONG Number, LPTSTR Label);
72 VOID DoDiskLabelTemplate(LPTSTR Template);
73 BOOL DoCabinetName(ULONG Number, LPTSTR Name);
74 VOID DoCabinetNameTemplate(LPTSTR Template);
75 ULONG DoMaxDiskSize(BOOL NumberValid, ULONG Number);
77 ULONG PerformSetCommand();
78 ULONG PerformNewCommand();
79 ULONG PerformCommand();
80 ULONG PerformFileCopy();
82 BOOL IsNextToken(TOKEN Token, BOOL NoSpaces);
98 TCHAR CurrentString[256];
104 /* Standard directive variable */
106 ULONG CabinetFileCountThreshold;
107 PCABINET_NAME CabinetName;
108 BOOL CabinetNameTemplateSet;
109 TCHAR CabinetNameTemplate[128];
111 ULONG CompressionType;
112 PCABINET_NAME DiskLabel;
113 BOOL DiskLabelTemplateSet;
114 TCHAR DiskLabelTemplate[128];
115 ULONG FolderFileCountThreshold;
116 ULONG FolderSizeThreshold;
117 ULONG MaxCabinetSize;
118 ULONG MaxDiskFileCount;
119 PDISK_NUMBER MaxDiskSize;
120 BOOL MaxDiskSizeAllSet;
121 ULONG MaxDiskSizeAll;
122 ULONG ReservePerCabinetSize;
123 ULONG ReservePerDataBlockSize;
124 ULONG ReservePerFolderSize;
125 TCHAR SourceDir[256];