void ExampleDatabase::create()
{
    PVDatabasePtr master = PVDatabase::getMaster();
    PVRecordPtr pvRecord;
    string recordName;
    bool result(false);
    recordName = "traceRecordPGRPC";
    pvRecord = TraceRecord::create(recordName);
    result = master->addRecord(pvRecord);
    if(!result) cout<< "record " << recordName << " not added" << endl;
    string properties;
    properties = "alarm,timeStamp";
    createRecords(master,pvByte,"byte01",properties);
    createRecords(master,pvShort,"short01",properties);
    createRecords(master,pvLong,"long01",properties);
    createRecords(master,pvUByte,"ubyte01",properties);
    createRecords(master,pvUInt,"uint01",properties);
    createRecords(master,pvUShort,"ushort01",properties);
    createRecords(master,pvULong,"ulong01",properties);
    createRecords(master,pvFloat,"float01",properties);

    StringArray choices(2);
    choices[0] = "zero";
    choices[1] = "one";
    master->addRecord(PVRecord::create(
         "exampleEnum",standardPVField->enumerated(choices,properties)));

    createRecords(master,pvBoolean,"exampleBoolean",properties);
    createRecords(master,pvByte,"exampleByte",properties);
    createRecords(master,pvShort,"exampleShort",properties);
    createRecords(master,pvInt,"exampleInt",properties);
    createRecords(master,pvLong,"exampleLong",properties);
    createRecords(master,pvFloat,"exampleFloat",properties);
    createRecords(master,pvDouble,"exampleDouble",properties);
    createRecords(master,pvDouble,"exampleDouble01",properties);
    createRecords(master,pvDouble,"exampleDouble02",properties);
    createRecords(master,pvDouble,"exampleDouble03",properties);
    createRecords(master,pvDouble,"exampleDouble04",properties);
    createRecords(master,pvDouble,"exampleDouble05",properties);
    createRecords(master,pvString,"exampleString",properties);
    createStructureArrayRecord(master,"exampleStructureArray");
    createRegularUnionRecord(master,"exampleRegularUnion");
    createVariantUnionRecord(master,"exampleVariantUnion");
    createRegularUnionArrayRecord(master,"exampleRegularUnionArray");
    createVariantUnionArrayRecord(master,"exampleVariantUnionArray");
    createDumbPowerSupplyRecord(master,"exampleDumbPowerSupply");
    recordName = "examplePowerSupply";
    PVStructurePtr pvStructure = createPowerSupply();
    PowerSupplyPtr psr = PowerSupply::create(recordName,pvStructure);
    if(!psr) {
          cout << "PowerSupply::create failed" << endl;
    } else {
        result = master->addRecord(psr);
        if(!result) cout<< "record " << recordName << " not added" << endl;
    }
    recordName = "exampleHello";
    result = master->addRecord(ExampleHello::create(recordName));
    if(!result) cout<< "record " << recordName << " not added" << endl;
    RPCServer::shared_pointer server(new RPCServer());
    server->registerService("exampleHelloRPC",ExampleHelloRPC::create());
}