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;
This represents a single keyword declaration in the dc file.
This represents a single typedef declaration in the dc file.
This is our own Panda specialization on the default STL map.
This is a list of keywords (see DCKeyword) that may be set on a particular field.
A single field of a Distributed Class, either atomic or molecular.
This represents a switch statement, which can appear inside a class body and represents two or more a...
Defines a particular DistributedClass as read from an input .dc file.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Represents the complete list of Distributed Class descriptions as read from a .dc file.
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.
The name of a file, such as a texture file or an Egg file.
This is a common interface for a declaration in a DC file.
This class generates an arbitrary hash number from a sequence of ints.