1#ifndef __OKSDALGEN_CLASS_INFO__
2#define __OKSDALGEN_CLASS_INFO__
24 typedef std::map<const oks::OksClass *, ClassInfo, SortByName>
Map;
28 ClassInfo(
const std::string& cpp_ns_name,
const std::string& dir_prefix) :
54 add(
const std::string &ns_name,
const std::string &class_name)
58 std::string::size_type idx = ns_name.find_first_of(
':');
60 if (idx != std::string::npos)
61 ns.
add(ns_name.substr(ns_name.find_first_not_of(
':', idx)), class_name);
63 ns.
add(
"", class_name);
70 print(std::ostream &s,
int level)
const
72 std::string dx(level * 2,
' ');
76 s << dx <<
"namespace " << x.first <<
" {\n";
77 x.second.print(s, level + 1);
82 s << dx <<
"class " << x <<
";\n";
const std::string & get_name() const noexcept
ClassInfo(const std::string &cpp_ns_name, const std::string &dir_prefix)
std::string p_include_prefix
const std::string & get_namespace() const
std::map< const oks::OksClass *, ClassInfo, SortByName > Map
const std::string & get_include_prefix() const
bool operator()(const oks::OksClass *c1, const oks::OksClass *c2) const
void print(std::ostream &s, int level) const
std::map< std::string, NameSpaceInfo > m_nested
std::set< std::string > m_classes
void add(const std::string &ns_name, const std::string &class_name)