xref: /aosp_15_r20/external/flatbuffers/src/bfbs_namer.h (revision 890232f25432b36107d06881e0a25aaa6b473652)
1*890232f2SAndroid Build Coastguard Worker #ifndef FLATBUFFERS_BFBS_NAMER
2*890232f2SAndroid Build Coastguard Worker #define FLATBUFFERS_BFBS_NAMER
3*890232f2SAndroid Build Coastguard Worker 
4*890232f2SAndroid Build Coastguard Worker #include "flatbuffers/reflection.h"
5*890232f2SAndroid Build Coastguard Worker #include "namer.h"
6*890232f2SAndroid Build Coastguard Worker 
7*890232f2SAndroid Build Coastguard Worker namespace flatbuffers {
8*890232f2SAndroid Build Coastguard Worker 
9*890232f2SAndroid Build Coastguard Worker // Provides Namer capabilities to types defined in the flatbuffers reflection.
10*890232f2SAndroid Build Coastguard Worker class BfbsNamer : public Namer {
11*890232f2SAndroid Build Coastguard Worker  public:
BfbsNamer(Config config,std::set<std::string> keywords)12*890232f2SAndroid Build Coastguard Worker   explicit BfbsNamer(Config config, std::set<std::string> keywords)
13*890232f2SAndroid Build Coastguard Worker       : Namer(config, std::move(keywords)) {}
14*890232f2SAndroid Build Coastguard Worker 
15*890232f2SAndroid Build Coastguard Worker   using Namer::Constant;
16*890232f2SAndroid Build Coastguard Worker   using Namer::Denamespace;
17*890232f2SAndroid Build Coastguard Worker   using Namer::Directories;
18*890232f2SAndroid Build Coastguard Worker   using Namer::Field;
19*890232f2SAndroid Build Coastguard Worker   using Namer::File;
20*890232f2SAndroid Build Coastguard Worker   using Namer::Function;
21*890232f2SAndroid Build Coastguard Worker   using Namer::Method;
22*890232f2SAndroid Build Coastguard Worker   using Namer::Namespace;
23*890232f2SAndroid Build Coastguard Worker   using Namer::NamespacedType;
24*890232f2SAndroid Build Coastguard Worker   using Namer::ObjectType;
25*890232f2SAndroid Build Coastguard Worker   using Namer::Type;
26*890232f2SAndroid Build Coastguard Worker   using Namer::Variable;
27*890232f2SAndroid Build Coastguard Worker   using Namer::Variant;
28*890232f2SAndroid Build Coastguard Worker 
29*890232f2SAndroid Build Coastguard Worker   template<typename T>
30*890232f2SAndroid Build Coastguard Worker   std::string Denamespace(T t, std::string &namespace_prefix,
31*890232f2SAndroid Build Coastguard Worker                           const char delimiter = '.') const {
32*890232f2SAndroid Build Coastguard Worker     return Namer::Denamespace(t->name()->c_str(), namespace_prefix, delimiter);
33*890232f2SAndroid Build Coastguard Worker   }
34*890232f2SAndroid Build Coastguard Worker 
35*890232f2SAndroid Build Coastguard Worker   template<typename T>
36*890232f2SAndroid Build Coastguard Worker   std::string Denamespace(T t, const char delimiter = '.') const {
37*890232f2SAndroid Build Coastguard Worker     return Namer::Denamespace(t->name()->c_str(), delimiter);
38*890232f2SAndroid Build Coastguard Worker   }
39*890232f2SAndroid Build Coastguard Worker };
40*890232f2SAndroid Build Coastguard Worker 
41*890232f2SAndroid Build Coastguard Worker }  // namespace flatbuffers
42*890232f2SAndroid Build Coastguard Worker 
43*890232f2SAndroid Build Coastguard Worker #endif  // FLATBUFFERS_BFBS_NAMER