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];