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