Adding MC-NIB support
[ric-app/mc.git] / mc-core / mc / mcnib / mc_store_schema.cc
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<string.h>
4
5 #include<string>
6 #include<iostream>
7 #include<fstream>
8
9 #include <sdl/syncstorage.hpp>
10
11 //      data type definitions from sdl
12 using Namespace = std::string;
13 using Key = std::string;
14 using Data = std::vector<uint8_t>;
15 using DataMap = std::map<Key, Data>;
16 using Keys = std::set<Key>;
17
18
19 using namespace std;
20
21 vector<uint8_t> packData(const char *d, int len){
22         const uint8_t *d8 = (const uint8_t *)d;
23         return Data(d8, d8+len+1);
24 }
25
26 int main(int argc, char **argv){
27         Namespace ns("mcnib");  
28
29         string directory = ".";
30         if(argc>1){
31                 directory = argv[1];
32         }
33         string inflnm = directory + "/" + string("nib.json");
34
35         ifstream infl(inflnm);
36         if(!infl){
37                 cerr << "Error, can't open " << inflnm << endl;
38                 exit(1);
39         }
40         string line;
41         string nib_str;
42         while(getline(infl, line)){
43                 nib_str += line;
44         }
45         infl.close();
46
47
48 // ---------------------------------------------
49         std::unique_ptr<shareddatalayer::SyncStorage> sdl(shareddatalayer::SyncStorage::create());
50         DataMap D;
51
52 // --------------------------------------------
53
54         vector<uint8_t> schema_buf = packData(nib_str.c_str(), nib_str.size());
55         D["_schema"] = schema_buf;
56
57         sdl->set(ns, D);
58 }