1//---------------------------------------------------------------------- 2// This software is part of the Haiku distribution and is covered 3// by the MIT License. 4//--------------------------------------------------------------------- 5/*! 6 \file Supertype.h 7 Supertype class declarations 8*/ 9 10#ifndef _MIME_SUPERTYPE_H 11#define _MIME_SUPERTYPE_H 12 13#include <SupportDefs.h> 14 15#include <string> 16#include <set> 17 18class BMessage; 19 20namespace BPrivate { 21namespace Storage { 22namespace Mime { 23 24class Supertype { 25public: 26 Supertype(const char *super = NULL); 27 ~Supertype(); 28 29 status_t GetInstalledSubtypes(BMessage *types); 30 31 status_t AddSubtype(const char *sub); 32 status_t RemoveSubtype(const char *sub); 33 34 void SetName(const char *super); 35 const char* GetName(); 36 37 status_t FillMessageWithTypes(BMessage &msg) const; 38private: 39 status_t CreateMessageWithTypes(BMessage **result) const; 40 41 std::set<std::string> fSubtypes; 42 BMessage *fCachedMessage; 43 std::string fName; 44}; 45 46} // namespace Mime 47} // namespace Storage 48} // namespace BPrivate 49 50#endif // _MIME_SUPERTYPE_H 51