xref: /haiku/headers/private/locale/PlainTextCatalog.h (revision 50b3e74489a1a46fec88df793e4f6780e4de933c)
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 class PlainTextCatalog : public BHashMapCatalog {
19 	public:
20 		PlainTextCatalog(const char *signature, const char *language,
21 			uint32 fingerprint);
22 				// constructor for normal use
23 		PlainTextCatalog(entry_ref *appOrAddOnRef);
24 				// constructor for embedded catalog
25 		PlainTextCatalog(const char *path, const char *signature,
26 			const char *language);
27 				// constructor for editor-app
28 
29 		~PlainTextCatalog();
30 
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 BCatalogAddOn *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 } // namespace BPrivate
49 
50 using BPrivate::PlainTextCatalog;
51 
52 
53 #endif /* _PLAINTEXT_CATALOG_H_ */
54