-/*
- * TypeDescription.h
- *
- * Created on: Sep 4, 2012
- * Author: holy
- */
-
#ifndef LOADER_TYPEDESCRIPTION_H_
#define LOADER_TYPEDESCRIPTION_H_
const FieldDescription &GetField(const std::string &name) const;
void Construct(void *) const;
void Load(void *) const;
+ bool NeedsLinking() const { return link; }
void SetConstructor(void (*ctor)(void *)) { constructor = ctor; }
void SetLoader(void (*ld)(void *)) { loader = ld; }
static int GetTypeId(const std::string &);
static const TypeDescription &Get(int id);
+ static int GetMaxSize();
+
static void WriteSourceWiki(std::ostream &);
private:
- TypeDescription(int id, const std::string &name) : constructor(0), loader(0), description(0), name(name), id(id), size(0) { }
+ TypeDescription(int id, const std::string &name) : constructor(0), loader(0), description(0), name(name), id(id), size(0), link(false) { }
private:
void (*constructor)(void *);
std::map<int, std::ptrdiff_t> supertypes;
int id;
int size;
+ bool link;
static std::map<int, TypeDescription> typeDescriptions;
static std::map<std::string, int> typeName2ID;
}
-#endif /* LOADER_TYPEDESCRIPTION_H_ */
+#endif