1/*
2 * Copyright 2009, Adrien Destugues, pulkomandy@gmail.com.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _PLAINTEXT_CATALOG_H_
6#define _PLAINTEXT_CATALOG_H_
7
8
9#include <HashMapCatalog.h>
10#include <DataIO.h>
11#include <String.h>
12
13
14class BFile;
15
16namespace BPrivate {
17
18
19class PlainTextCatalog : public HashMapCatalog {
20	public:
21		PlainTextCatalog(const entry_ref& owner, const char *language,
22			uint32 fingerprint);
23				// constructor for normal use
24		PlainTextCatalog(const char *path, const char *signature,
25			const char *language);
26				// constructor for editor-app
27
28		~PlainTextCatalog();
29
30		void SetSignature(const entry_ref &catalogOwner);
31
32		// implementation for editor-interface:
33		status_t ReadFromFile(const char *path = NULL);
34		status_t WriteToFile(const char *path = NULL);
35
36		static BCatalogData *Instantiate(const entry_ref &signature,
37			const char *language, uint32 fingerprint);
38
39		static const char *kCatMimeType;
40
41	private:
42		void UpdateAttributes(BFile& catalogFile);
43		void UpdateAttributes(const char* path);
44
45		mutable BString		fPath;
46};
47
48
49} // namespace BPrivate
50
51
52#endif /* _PLAINTEXT_CATALOG_H_ */
53