CGMES_3_0_0
Loading...
Searching...
No Matches
BaseClass.hpp
1#ifndef BASECLASS_HPP
2#define BASECLASS_HPP
3
4#ifndef CGMES_BUILD
5#define CGMES_BUILD
6#endif
7
8#include <list>
9#include <map>
10#include <string>
11#include <unordered_map>
12
13#include "BaseClassDefiner.hpp"
14#include "CGMESProfile.hpp"
15#include "CimClassDetails.hpp"
16
17class BaseClass;
18typedef bool (*class_get_function)(const BaseClass*, std::list<const BaseClass*>&);
19typedef bool (*get_function)(const BaseClass*, std::stringstream&);
20
22{
23 std::string rdfid;
24public:
25 virtual ~BaseClass();
26
27 void setRdfid(const std::string& id) { rdfid = id; }
28 std::string getRdfid() const { return rdfid; }
29
30 static const char debugName[];
31 virtual const char* debugString() const;
32
33 virtual const std::list<std::string>& getAttributeNames() const;
34
35 virtual const std::string& getClassNamespaceUrl() const;
36 virtual const std::string& getAttributeNamespaceUrl(const std::string& attrName) const;
37
38 virtual const std::list<CGMESProfile>& getPossibleProfiles() const;
39 virtual const CGMESProfile& getRecommendedProfile() const;
40 virtual const std::list<CGMESProfile>& getPossibleAttributeProfiles(const std::string& attrName) const;
41 virtual const std::list<CGMESProfile>& getPossibleProfilesIncludingAttributes() const;
42
43 static void addConstructToMap(std::unordered_map<std::string, BaseClass* (*)()>& factory_map);
44 static void addPrimitiveAssignFnsToMap(std::unordered_map<std::string, assign_function>& assign_map);
45 static void addClassAssignFnsToMap(std::unordered_map<std::string, class_assign_function>& assign_map);
46 virtual void addPrimitiveGetFnsToMap(std::map<std::string, get_function>& get_map) const;
47 virtual void addClassGetFnsToMap(std::map<std::string, class_get_function>& get_map) const;
48 virtual void addEnumGetFnsToMap(std::map<std::string, get_function>& get_map) const;
49
50 virtual bool isAssignableFrom(BaseClass* otherObject) const { return false; }
51 static const CIMPP::BaseClassDefiner declare();
52
53protected:
54 friend class CimClassDetails;
55 virtual std::map<std::string, AttrDetails> allAttrDetailsMap() const;
56};
57#endif // BASECLASS_HPP
Definition BaseClass.hpp:22
Definition BaseClassDefiner.hpp:12