summaryrefslogtreecommitdiff
path: root/Runtime/Serialize/PathNamePersistentManager.h
blob: 11c3767fcb9a02c0d47ce01e73a8b1b22f9e8fe7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef PATHNAMEPERSISTENTMANAGER_H
#define PATHNAMEPERSISTENTMANAGER_H

#include "PersistentManager.h"
#include "SerializedFile.h"

class PathNamePersistentManager : public PersistentManager
{
	typedef map<string, SInt32>			PathToStreamID;
	PathToStreamID		m_PathToStreamID; // Contains lower case pathnames
	vector<string>		m_PathNames;// Contains pathnames as they were given
	
	public:
	
	PathNamePersistentManager (int options, int cacheCount = 2)
		: PersistentManager (options, cacheCount) {}

	protected:
	
	virtual int InsertPathNameInternal (const std::string& pathname, bool create);
	virtual int InsertFileIdentifierInternal (FileIdentifier file, bool create);

	virtual string PathIDToPathNameInternal (int pathID);

	virtual FileIdentifier PathIDToFileIdentifierInternal (int pathID);
};

void InitPathNamePersistentManager();


#endif