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