00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef DCFILE_H
00020 #define DCFILE_H
00021
00022 #include "dcbase.h"
00023 #include "dcClass.h"
00024
00025 class HashGenerator;
00026
00027
00028
00029
00030
00031
00032 class EXPCL_DIRECT DCFile {
00033 PUBLISHED:
00034 DCFile();
00035 ~DCFile();
00036
00037 bool read(Filename filename);
00038 bool read(istream &in, const string &filename = string());
00039
00040 bool write(Filename filename) const;
00041 bool write(ostream &out, const string &filename = string()) const;
00042
00043 int get_num_classes();
00044 DCClass *get_class(int n);
00045
00046 DCClass *get_class_by_name(const string &name);
00047
00048 unsigned long get_hash() const;
00049
00050 public:
00051 void generate_hash(HashGenerator &hash) const;
00052 bool add_class(DCClass *dclass);
00053
00054 public:
00055
00056
00057 typedef pvector<DCClass *> Classes;
00058 Classes _classes;
00059
00060 public:
00061
00062 typedef pmap<string, DCClass *> ClassesByName;
00063 ClassesByName _classes_by_name;
00064 };
00065
00066 #endif
00067
00068