当前位置: 首页>>代码示例>>C++>>正文


C++ PVRecordPtr::reset方法代码示例

本文整理汇总了C++中PVRecordPtr::reset方法的典型用法代码示例。如果您正苦于以下问题:C++ PVRecordPtr::reset方法的具体用法?C++ PVRecordPtr::reset怎么用?C++ PVRecordPtr::reset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PVRecordPtr的用法示例。


在下文中一共展示了PVRecordPtr::reset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc,char *argv[])
{
    bool result(false);
    string recordName;
    recordName = "arrayPerformance";
    size_t size = 10000000;
    double delay = .0001;
    string providerName("local");
    size_t nMonitor = 1;
    int queueSize = 2;
    double waitTime = 0.0;
    if(argc==2 && string(argv[1])==string("-help")) {
        cout << "arrayPerformanceMain recordName size";
        cout << " delay providerName nMonitor queueSize waitTime" << endl;
        cout << "default" << endl;
        cout << "arrayPerformance ";
        cout << recordName << " ";
        cout << size << " ";
        cout << delay << " ";
        cout << providerName << " ";
        cout << nMonitor << " ";
        cout << queueSize << " ";
        cout << "0.0" << endl;
        return 0;
    }
    if(argc>1) recordName = argv[1];
    if(argc>2) size = strtoul(argv[2],0,0);
    if(argc>3) delay = atof(argv[3]);
    if(argc>4) providerName = argv[4];
    if(argc>5) nMonitor = strtoul(argv[5],0,0);
    if(argc>6) queueSize = strtol(argv[6],0,0);
    if(argc>7) waitTime = atof(argv[7]);
    cout << "arrayPerformance ";
    cout << recordName << " ";
    cout << size << " ";
    cout << delay << " ";
    cout << providerName << " ";
    cout << nMonitor << " ";
    cout << queueSize << " ";
       cout << waitTime << endl;
    ClientFactory::start();
    PVDatabasePtr master = PVDatabase::getMaster();
    ChannelProviderLocalPtr channelProvider = getChannelProviderLocal();
    PVRecordPtr pvRecord;
    pvRecord = ArrayPerformance::create(recordName,size,delay);
    result = master->addRecord(pvRecord);
    PVRecordPtr arrayPreformance = pvRecord;
    arrayPreformance->setTraceLevel(0);
    pvRecord = TraceRecord::create("traceRecordPGRPC");
    result = master->addRecord(pvRecord);
    if(!result) cout<< "record " << recordName << " not added" << endl;
    pvRecord.reset();
    ServerContext::shared_pointer pvaServer = 
        startPVAServer(PVACCESS_ALL_PROVIDERS,0,true,true);
    std::vector<LongArrayMonitorPtr> longArrayMonitor(nMonitor);
    for(size_t i=0; i<nMonitor; ++i) {
       longArrayMonitor[i]
         = LongArrayMonitor::create(providerName,recordName,queueSize,waitTime);
    }
    epicsThreadSleep(1.0);
    for(size_t i=0; i<nMonitor; ++i) longArrayMonitor[i]->start();
    cout << "arrayPerformance\n";
    string str;
    while(true) {
        cout << "Type exit to stop: \n";
        getline(cin,str);
        if(str.compare("exit")==0) break;

    }
    arrayPreformance.reset();
    for(size_t i=0; i<nMonitor; ++i) longArrayMonitor[i]->stop();
    for(size_t i=0; i<nMonitor; ++i) longArrayMonitor[i]->destroy();
    pvaServer->shutdown();
    epicsThreadSleep(1.0);
    pvaServer->destroy();
    ClientFactory::stop();
    epicsThreadSleep(1.0);
    channelProvider->destroy();
    return 0;
}
开发者ID:epics-base,项目名称:pvExampleTestCPP,代码行数:80,代码来源:arrayPerformanceMain.cpp


注:本文中的PVRecordPtr::reset方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。