bool HasField(const std::string &name) const;
const FieldDescription &GetField(const std::string &name) const;
void Construct(void *) const;
+ void Init(void *) const;
void Load(void *) const;
void SetConstructor(void (*ctor)(void *)) { constructor = ctor; }
+ void SetInitializer(void (*init)(void *)) { initializer = init; }
void SetLoader(void (*ld)(void *)) { loader = ld; }
void AddSupertype(int id, std::ptrdiff_t offset);
bool IsSubtypeOf(int id) const;
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)
+ , initializer(0)
+ , loader(0)
+ , description(0)
+ , name(name)
+ , id(id)
+ , size(0)
+ { }
private:
void (*constructor)(void *);
+ void (*initializer)(void *);
void (*loader)(void *);
const char *description;
std::string name;