Protobuf

Convert stuff.proto to stuff.proto.jar , open bash shell and run:

protoc -I=proto/ --java_out=build/protogen/ proto/stuff.proto
javac -cp jars/protobuf-java-3.11.4.jar build/protogen/org/stuff/proto/*.java
jar cvf build/stuff.proto.jar -C build/protogen/ org

Needed executables: protoc, javac and jar

Check protoc --version is compatible to protobuf-java jar.

Illustrative example:

void kv_pair_test()
{
    idpass::Dictionary d;
    idpass::Pair* p = d.add_pairs();
    p->set_key("gender");
    p->set_value("male");

    idpass::Pair q;
    q.set_key("color");
    q.set_value("red");

    d.mutable_pairs()->AddAllocated(&q);
    int buf_len = d.ByteSizeLong();
    std::cout << buf_len;
    unsigned char* buf = new unsigned char[buf_len];
    d.SerializeToArray(buf, buf_len);

    std::cout << buf;
    idpass::Dictionary dd;
    assert(dd.ParseFromArray(buf, buf_len) == true);
    for (auto p : dd.pairs()) {
        std::cout << p.key(); 
        std::cout << p.value(); 
    }

    delete[] buf;
}

Last updated

Was this helpful?