tools/installer/CFileList.h
author David Anderson <dvander@alliedmods.net>
Wed Feb 25 19:22:36 2009 -0500 (2009-02-25)
changeset 2603 fa286305bd3f
parent 1722 2c16f160f5dd
permissions -rw-r--r--
Allow for second private chat trigger (bug 3667, r,a11=pred).
dvander@1722
     1
#ifndef _INCLUDE_FOLDER_LIST_H_
dvander@1722
     2
#define _INCLUDE_FOLDER_LIST_H_
dvander@1722
     3
dvander@1722
     4
#include "platform_headers.h"
dvander@1722
     5
#include <list>
dvander@1722
     6
#include <vector>
dvander@1722
     7
dvander@1722
     8
struct CFileListEntry
dvander@1722
     9
{
dvander@1722
    10
	TCHAR file[MAX_PATH];
dvander@1722
    11
	unsigned __int64 size;
dvander@1722
    12
};
dvander@1722
    13
dvander@1722
    14
class CFileList
dvander@1722
    15
{
dvander@1722
    16
public:
dvander@1722
    17
	CFileList(const TCHAR *name);
dvander@1722
    18
	~CFileList();
dvander@1722
    19
public:
dvander@1722
    20
	CFileList *PeekCurrentFolder();
dvander@1722
    21
	void PopCurrentFolder();
dvander@1722
    22
	const TCHAR *PeekCurrentFile();
dvander@1722
    23
	void PopCurrentFile();
dvander@1722
    24
	const TCHAR *GetFolderName();
dvander@1722
    25
public:
dvander@1722
    26
	void AddFolder(CFileList *pFileList);
dvander@1722
    27
	void AddFile(const TCHAR *name, unsigned __int64 size);
dvander@1722
    28
	unsigned __int64 GetRecursiveSize();
dvander@1722
    29
public:
dvander@1722
    30
	static CFileList *BuildFileList(const TCHAR *name, const TCHAR *root_folder);
dvander@1722
    31
private:
dvander@1722
    32
	std::list<CFileList *> m_folder_list;
dvander@1722
    33
	std::list<CFileListEntry> m_file_list;
dvander@1722
    34
	TCHAR m_FolderName[MAX_PATH];
dvander@1722
    35
	unsigned __int64 m_TotalSize;
dvander@1722
    36
	unsigned __int64 m_RecursiveSize;
dvander@1722
    37
	bool m_bGotRecursiveSize;
dvander@1722
    38
};
dvander@1722
    39
dvander@1722
    40
#endif //_INCLUDE_FOLDER_LIST_H_