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


C++ PVRecordPtr类代码示例

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


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

示例1: scalarTest

static void scalarTest()
{
    cout << endl << endl << "****scalarTest****" << endl;
    PVRecordPtr pvRecord;
    pvRecord = createScalar("doubleRecord",pvDouble,"alarm,timeStamp.display");
    pvRecord->destroy();
}
开发者ID:ncanestrari,项目名称:EPICS-EPICS_V4,代码行数:7,代码来源:testPVRecord.cpp

示例2: create

ChannelRPCLocalPtr ChannelRPCLocal::create(
    ChannelLocalPtr const &channelLocal,
    ChannelRPCRequester::shared_pointer const & channelRPCRequester,
    PVStructurePtr const & pvRequest,
    PVRecordPtr const &pvRecord)
{
    Service::shared_pointer service = pvRecord->getService(pvRequest);
    if (!service)
    {
        Status status(Status::STATUSTYPE_ERROR,
            "ChannelRPC not supported");
            channelRPCRequester->channelRPCConnect(status,ChannelRPCLocalPtr());
        return ChannelRPCLocalPtr();
    }

    if (!channelRPCRequester)
        throw std::invalid_argument("channelRPCRequester == null");

    // TODO use std::make_shared
    ChannelRPCLocalPtr rpc(
        new ChannelRPCLocal(channelLocal, channelRPCRequester, service, pvRecord)
    );
    channelRPCRequester->channelRPCConnect(Status::Ok, rpc);
    if(pvRecord->getTraceLevel()>0)
    {
        cout << "ChannelRPCLocal::create";
        cout << " recordName " << pvRecord->getRecordName() << endl;
    }
    return rpc;
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:30,代码来源:channelLocal.cpp

示例3: arrayTest

static void arrayTest()
{
    cout << endl << endl << "****arrayTest****" << endl;
    PVRecordPtr pvRecord;
    pvRecord = createScalarArray("doubleArrayRecord",pvDouble,"alarm,timeStamp");
    pvRecord->destroy();
}
开发者ID:ncanestrari,项目名称:EPICS-EPICS_V4,代码行数:7,代码来源:testPVRecord.cpp

示例4: createMonitor

MonitorPtr MonitorFactory::createMonitor(
    PVRecordPtr const & pvRecord,
    MonitorRequester::shared_pointer const & monitorRequester,
    PVStructurePtr const & pvRequest)
{
    Lock xx(mutex);
    if(isDestroyed) {
        monitorRequester->message("MonitorFactory is destroyed",errorMessage);
        return nullMonitor;
    }
    MonitorLocalPtr monitor(new MonitorLocal(
        monitorRequester,pvRecord));
    bool result = monitor->init(pvRequest);
    if(!result) {
        MonitorPtr monitor;
        StructureConstPtr structure;
        monitorRequester->monitorConnect(failedToCreateMonitorStatus,monitor,structure);
        return nullMonitor;
    }
    if(pvRecord->getTraceLevel()>0)
    {
        cout << "MonitorFactory::createMonitor";
        cout << " recordName " << pvRecord->getRecordName() << endl;
    }
    return monitor;
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:26,代码来源:monitorFactory.cpp

示例5: powerSupplyTest

static void powerSupplyTest()
{
    cout << endl << endl << "****powerSupplyTest****" << endl;
    PVRecordPtr pvRecord;
    PVStructurePtr pv = createPowerSupply();
    pvRecord = PowerSupply::create("powerSupply",pv);
    pvRecord->destroy();
}
开发者ID:ncanestrari,项目名称:EPICS-EPICS_V4,代码行数:8,代码来源:testPVRecord.cpp

示例6: detach

void ChannelLocal::detach(PVRecordPtr const & pvRecord)
{
    if(pvRecord->getTraceLevel()>0) {
         cout << "ChannelLocal::detach() "
         << " recordName " << pvRecord->getRecordName()
         << " requester exists " << (requester ? "true" : "false")
         << endl;
    }
    if(!requester) return;
    requester->channelStateChange(shared_from_this(),Channel::DESTROYED);
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:11,代码来源:channelLocal.cpp

示例7: scalarTest

static void scalarTest()
{
    if(debug) {cout << endl << endl << "****scalarTest****" << endl; }
    PVRecordPtr pvRecord;
    pvRecord = createScalar("doubleRecord",pvDouble,"alarm,timeStamp.display");
    testOk1(pvRecord.get()!=0);
    if(pvRecord && debug) {
          cout << pvRecord << endl;
    }
    pvRecord->destroy();
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:11,代码来源:testPVRecord.cpp

示例8: arrayTest

static void arrayTest()
{
    if(debug) {cout << endl << endl << "****arrayTest****" << endl; }
    PVRecordPtr pvRecord;
    pvRecord = createScalarArray("doubleArrayRecord",pvDouble,"alarm,timeStamp");
    testOk1(pvRecord.get()!=0);
    if(pvRecord && debug) {
          cout << pvRecord << endl;
    }
    pvRecord->destroy();
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:11,代码来源:testPVRecord.cpp

示例9: powerSupplyTest

static void powerSupplyTest()
{
    if(debug) {cout << endl << endl << "****powerSupplyTest****" << endl; }
    PVRecordPtr pvRecord;
    PVStructurePtr pv = createPowerSupply();
    pvRecord = PowerSupply::create("powerSupply",pv);
    testOk1(pvRecord.get()!=0);
    if(pvRecord && debug) {
          cout << pvRecord << endl;
    }
    pvRecord->destroy();
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:12,代码来源:testPVRecord.cpp

示例10: lockOtherRecord

void PVRecord::lockOtherRecord(PVRecordPtr const & otherRecord)
{
    if(traceLevel>2) {
        cout << "PVRecord::lockOtherRecord() " << recordName << endl;
    }
    if(this<otherRecord.get()) {
        otherRecord->lock();
        return;
    }
    unlock();
    otherRecord->lock();
    lock();
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:13,代码来源:pvRecord.cpp

示例11: addRecord

bool PVDatabase::addRecord(PVRecordPtr const & record)
{
    epicsGuard<epics::pvData::Mutex> guard(mutex);
    if(isDestroyed) {
        return false;
    }
    string recordName = record->getRecordName();
    PVRecordMap::iterator iter = recordMap.find(recordName);
    if(iter!=recordMap.end()) {
        return false;
    }
    record->start();
    recordMap.insert(PVRecordMap::value_type(recordName,record));
    return true;
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:15,代码来源:pvDatabase.cpp

示例12: addRecord

bool PVDatabase::addRecord(PVRecordPtr const & record)
{
    if(record->getTraceLevel()>0) {
        cout << "PVDatabase::addRecord " << record->getRecordName() << endl;
    }
    epicsGuard<epics::pvData::Mutex> guard(mutex);
    string recordName = record->getRecordName();
    PVRecordMap::iterator iter = recordMap.find(recordName);
    if(iter!=recordMap.end()) {
         return false;
    }
    record->start();
    recordMap.insert(PVRecordMap::value_type(recordName,record));
    return true;
}
开发者ID:epics-base,项目名称:pvDatabaseCPP,代码行数:15,代码来源:pvDatabase.cpp

示例13: guard

bool PVDatabase::removeRecord(PVRecordPtr const & record)
{
    if(record->getTraceLevel()>0) {
        cout << "PVDatabase::removeRecord " << record->getRecordName() << endl;
    }
    epicsGuard<epics::pvData::Mutex> guard(mutex);
    string recordName = record->getRecordName();
    PVRecordMap::iterator iter = recordMap.find(recordName);
    if(iter!=recordMap.end())  {
        PVRecordPtr pvRecord = (*iter).second;
        recordMap.erase(iter);
        return true;
    }
    return false;
}
开发者ID:epics-base,项目名称:pvDatabaseCPP,代码行数:15,代码来源:pvDatabase.cpp

示例14: guard

bool PVDatabase::removeRecord(PVRecordPtr const & record)
{
    epicsGuard<epics::pvData::Mutex> guard(mutex);
    if(isDestroyed) {
        return false;
    }
    string recordName = record->getRecordName();
    PVRecordMap::iterator iter = recordMap.find(recordName);
    if(iter!=recordMap.end())  {
        PVRecordPtr pvRecord = (*iter).second;
        recordMap.erase(iter);
        if(pvRecord) pvRecord->destroy();
        return true;
    }
    return false;
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:16,代码来源:pvDatabase.cpp

示例15: requester

ChannelLocal::ChannelLocal(
    ChannelProviderLocalPtr const & provider,
    ChannelRequester::shared_pointer const & requester,
    PVRecordPtr const & pvRecord)
:   
    requester(requester),
    provider(provider),
    pvRecord(pvRecord),
    isDestroyed(false)
{
    if(pvRecord->getTraceLevel()>0) {
         cout << "ChannelLocal::ChannelLocal()"
              << " recordName " << pvRecord->getRecordName()
              << " requester exists " << (requester ? "true" : "false")
              << endl;
    }
}
开发者ID:mrkraimer,项目名称:pvDatabaseCPP,代码行数:17,代码来源:channelLocal.cpp


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