44 bool read(std::istream &in,
const std::string &filename = std::string());
46 bool write(
Filename filename,
bool brief)
const;
47 bool write(std::ostream &out,
bool brief)
const;
49 int get_num_classes()
const;
50 DCClass *get_class(
int n)
const;
51 DCClass *get_class_by_name(
const std::string &name)
const;
52 DCSwitch *get_switch_by_name(
const std::string &name)
const;
54 DCField *get_field_by_index(
int index_number)
const;
56 INLINE
bool all_objects_valid()
const;
58 int get_num_import_modules()
const;
59 std::string get_import_module(
int n)
const;
60 int get_num_import_symbols(
int n)
const;
61 std::string get_import_symbol(
int n,
int i)
const;
63 int get_num_typedefs()
const;
65 DCTypedef *get_typedef_by_name(
const std::string &name)
const;
67 int get_num_keywords()
const;
68 const DCKeyword *get_keyword(
int n)
const;
69 const DCKeyword *get_keyword_by_name(
const std::string &name)
const;
71 unsigned long get_hash()
const;
75 bool add_class(
DCClass *dclass);
77 void add_import_module(
const std::string &import_module);
78 void add_import_symbol(
const std::string &import_symbol);
80 bool add_keyword(
const std::string &name);
83 void set_new_index_number(
DCField *field);
84 INLINE
void check_inherited_fields();
85 INLINE
void mark_inherited_fields_stale();
88 void setup_default_keywords();
89 void rebuild_inherited_fields();
95 ThingsByName _things_by_name;
101 ImportSymbols _symbols;
111 TypedefsByName _typedefs_by_name;
117 Declarations _declarations;
118 Declarations _things_to_delete;
121 FieldsByIndex _fields_by_index;
123 bool _all_objects_valid;
124 bool _inherited_fields_stale;
Defines a particular DistributedClass as read from an input .dc file.
This is a common interface for a declaration in a DC file.
A single field of a Distributed Class, either atomic or molecular.
Represents the complete list of Distributed Class descriptions as read from a .dc file.
This is a list of keywords (see DCKeyword) that may be set on a particular field.
This represents a single keyword declaration in the dc file.
This represents a switch statement, which can appear inside a class body and represents two or more a...
This represents a single typedef declaration in the dc file.
The name of a file, such as a texture file or an Egg file.
This class generates an arbitrary hash number from a sequence of ints.
This is our own Panda specialization on the default STL map.
This is our own Panda specialization on the default STL vector.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.