xref: /haiku/headers/private/locale/PlainTextCatalog.h (revision 90c3b9bf9fe633e4c6a59d42c11c3f523183c553)
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 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