xref: /haiku/headers/private/locale/PlainTextCatalog.h (revision 820dca4df6c7bf955c46e8f6521b9408f50b2900)
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 
14 class BFile;
15 
16 namespace BPrivate {
17 
18 
19 class PlainTextCatalog : public HashMapCatalog {
20 	public:
21 		PlainTextCatalog(const char *signature, const char *language,
22 			uint32 fingerprint);
23 				// constructor for normal use
24 		PlainTextCatalog(entry_ref *appOrAddOnRef);
25 				// constructor for embedded catalog
26 		PlainTextCatalog(const char *path, const char *signature,
27 			const char *language);
28 				// constructor for editor-app
29 
30 		~PlainTextCatalog();
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 char *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