]> git.tdb.fi Git - libs/datafile.git/blob - source/builtinsource.h
Cosmetic changes
[libs/datafile.git] / source / builtinsource.h
1 #ifndef MSP_DATAFILE_BUILTINSOURCE_H_
2 #define MSP_DATAFILE_BUILTINSOURCE_H_
3
4 #include "collectionsource.h"
5
6 namespace Msp {
7 namespace DataFile {
8
9 class BuiltinSource: public CollectionSource
10 {
11 private:
12         struct Object
13         {
14                 const char *data;
15                 unsigned size;
16
17                 Object();
18                 Object(const char *, unsigned);
19         };
20
21         typedef std::map<std::string, Object> ObjectMap;
22
23         ObjectMap objects;
24
25 public:
26         void add_object(const std::string &, const char *, unsigned);
27         void add_object(const std::string &, const char *);
28
29         virtual bool is_loadable(const CollectionItemTypeBase &, const std::string &) const;
30         virtual NameList get_names(const CollectionItemTypeBase &) const;
31         virtual void load(Collection &, const CollectionItemTypeBase &, const std::string &) const;
32         virtual IO::Seekable *open(const std::string &) const;
33 };
34
35 } // namespace DataFile
36 } // namespace Msp
37
38 #endif