10 #include"schemaparser.h"
12 #include <sdl/syncstorage.hpp>
14 // data type definitions from sdl
15 using Namespace = std::string;
16 using Key = std::string;
17 using Data = std::vector<uint8_t>;
18 using DataMap = std::map<Key, Data>;
19 using Keys = std::set<Key>;
23 using namespace mc_schema;
25 vector<uint8_t> packData(const char *d, int len){
26 const uint8_t *d8 = (const uint8_t *)d;
27 return Data(d8, d8+len+1);
30 int main(int argc, char **argv){
31 Namespace ns("mcnib");
33 string directory = ".";
37 string inflnm = directory + "/" + string("nib.json");
39 ifstream infl(inflnm);
41 cerr << "Error, can't open " << inflnm << endl;
46 while(getline(infl, line)){
52 mc_schemas *mcs = new_mc_schemas(nib_str);
53 if(mcs->has_errors()){ // ensure its a good schema
54 fprintf(stderr, "Errors loading the schemas:\n%s\n",mcs->get_errors().c_str());
57 string streams_json = "[";
58 vector<string> streams = mcs->get_streams();
59 for(int i=0;i<streams.size(); ++i){
60 if(i>0) streams_json += ", ";
61 streams_json += "\""+streams[i]+"\"";
65 // ---------------------------------------------
66 std::unique_ptr<shareddatalayer::SyncStorage> sdl(shareddatalayer::SyncStorage::create());
69 // --------------------------------------------
71 vector<uint8_t> schema_buf = packData(nib_str.c_str(), nib_str.size());
72 D["_schema"] = schema_buf;
74 vector<uint8_t> streams_buf = packData(streams_json.c_str(), streams_json.size());
75 D["_schema_streams"] = streams_buf;