本文整理汇总了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();
}
示例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;
}
示例3: arrayTest
static void arrayTest()
{
cout << endl << endl << "****arrayTest****" << endl;
PVRecordPtr pvRecord;
pvRecord = createScalarArray("doubleArrayRecord",pvDouble,"alarm,timeStamp");
pvRecord->destroy();
}
示例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;
}
示例5: powerSupplyTest
static void powerSupplyTest()
{
cout << endl << endl << "****powerSupplyTest****" << endl;
PVRecordPtr pvRecord;
PVStructurePtr pv = createPowerSupply();
pvRecord = PowerSupply::create("powerSupply",pv);
pvRecord->destroy();
}
示例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);
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
}