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