#ifndef _DEFAULT_CATALOG_H_
#define _DEFAULT_CATALOG_H_
#include <DataIO.h>
#include <HashMapCatalog.h>
#include <String.h>
class BFile;
namespace BPrivate {
class DefaultCatalog : public HashMapCatalog {
public:
DefaultCatalog(const entry_ref &catalogOwner, const char *language,
uint32 fingerprint);
DefaultCatalog(entry_ref *appOrAddOnRef);
DefaultCatalog(const char *path, const char *signature,
const char *language);
~DefaultCatalog();
status_t ReadFromFile(const char *path = NULL);
status_t ReadFromResource(const entry_ref &appOrAddOnRef);
status_t WriteToFile(const char *path = NULL);
status_t WriteToResource(const entry_ref &appOrAddOnRef);
status_t ReadFromStandardLocations();
status_t SetRawString(const CatKey& key, const char *translated);
void SetSignature(const entry_ref &catalogOwner);
static BCatalogData *Instantiate(const entry_ref& catalogOwner,
const char *language, uint32 fingerprint);
static BCatalogData *Create(const char *signature,
const char *language);
static const uint8 kDefaultCatalogAddOnPriority;
static const char *kCatMimeType;
private:
status_t Flatten(BDataIO *dataIO);
status_t Unflatten(BDataIO *dataIO);
void UpdateAttributes(BFile& catalogFile);
mutable BString fPath;
};
extern "C" status_t
default_catalog_get_available_languages(BMessage* availableLanguages,
const char* sigPattern, const char* langPattern = NULL,
int32 fingerprint = 0);
}
#endif