12#include "flatbuffers/flatbuffers.h" 
   16#include "flatbuffers/idl.h" 
   18#define SerializeFlatbufferText(TYPE, ITEM) Flat::FlatbufferInterface::SerializeHelper<TYPE>(ITEM, TYPE##Identifier()) 
   19#define SerializeFlatbufferTextDirect(TYPE, BUFFER) Flat::FlatbufferInterface::BufferToText(BUFFER, TYPE##Identifier()) 
   20#define CompileFlatbuffer(TYPE, SOURCE, TARGET) Flat::FlatbufferInterface::Compile(SOURCE, TARGET, TYPE##Identifier()) 
   51    template<
typename BaseT, 
typename ItemT> 
static void DeserializeFlatbuffer(ItemT& item, 
const uint8_t* buf);
 
 
   75    flatbuffers::FlatBufferBuilder builder(65536);
 
   76    builder.Finish(BaseT::Pack(builder, &item));
 
 
   83template <
typename BaseT, 
typename ItemT> 
Util::Blob 
   86    flatbuffers::FlatBufferBuilder builder(65536);
 
   87    builder.Finish(BaseT::Pack(builder, &item));
 
   88    return Util::Blob(builder.GetBufferPointer(), builder.GetSize());
 
 
   94template<
typename BaseT, 
typename ItemT> 
 
   98    const BaseT* bItem = flatbuffers::GetRoot<BaseT>(buf);
 
   99    bItem->UnPackTo(&item);
 
 
  105template<
typename BaseT, 
typename ItemT>
 
  110    if (IO::IoServer::Instance()->ReadFile(file, contents))
 
  112        const BaseT* bItem = flatbuffers::GetRoot<BaseT>(contents.
AsCharPtr());
 
  113        bItem->UnPackTo(&item);
 
 
  120template<
typename BaseT, 
typename ItemT> 
 
  127        const BaseT* bItem = flatbuffers::GetRoot<BaseT>(flatBuffer.
GetPtr());
 
  128        bItem->UnPackTo(&item);
 
 
 
Definition flatbufferinterface.h:26
 
static void DeserializeFlatbufferFile(ItemT &item, IO::URI const &file)
Definition flatbufferinterface.h:107
 
static bool LoadSchema(IO::URI const &file)
Definition flatbufferinterface.cc:136
 
static Util::String SerializeHelper(ItemT const &item, const char *ident)
Helper function, use SerializeFlatbuffer macro instead.
Definition flatbufferinterface.h:71
 
static void Init()
Initialize datastructures and load all schema files in export.
Definition flatbufferinterface.cc:126
 
static Util::Blob SerializeFlatbuffer(ItemT const &item)
Serialize to binary blob.
Definition flatbufferinterface.h:84
 
static bool Compile(IO::URI const &source, IO::URI const &targetFolder, const char *ident)
compile flatbuffer json to binary
Definition flatbufferinterface.cc:267
 
static Util::Blob ParseJson(IO::URI const &file)
Definition flatbufferinterface.cc:157
 
static bool DeserializeJsonFlatbuffer(ItemT &item, const IO::URI &file, const Util::String &rootName)
Definition flatbufferinterface.h:122
 
static bool HasSchema(Util::StringAtom identifier)
Definition flatbufferinterface.cc:249
 
static void DeserializeFlatbuffer(ItemT &item, const uint8_t *buf)
Definition flatbufferinterface.h:96
 
static flatbuffers::Parser * CreateParserForJson(IO::URI const &file)
Definition flatbufferinterface.cc:145
 
static Util::String BufferToText(const uint8_t *buffer, Util::StringAtom identifier)
Definition flatbufferinterface.cc:257
 
static bool CompileSchema(IO::URI const &file, IO::URI const &outFile)
Definition flatbufferinterface.cc:204
 
An URI object can split a Uniform Resource Identifier string into its components or build a string fr...
Definition uri.h:67
 
The Util::Blob class encapsulates a chunk of raw memory into a C++ object which can be copied,...
Definition blob.h:22
 
void * GetPtr() const
get blob ptr
Definition blob.h:464
 
bool IsValid() const
return true if the blob contains data
Definition blob.h:237
 
A StringAtom.
Definition stringatom.h:22
 
#define n_assert(exp)
Definition debug.h:50
 
Flatbuffer to Nebula type conversion functions.
Definition flatbufferinterface.h:23
 
Nebula's universal string class.
Definition String.cs:8
 
const char * AsCharPtr() const
return contents as character pointer
Definition string.h:542