interim commit. First working version of record.

This commit is contained in:
Marty Kraimer
2012-12-07 07:00:13 -05:00
parent fcb9e76e01
commit 179d45e264
10 changed files with 968 additions and 30 deletions
+5 -1
View File
@@ -38,6 +38,7 @@ PVRecordPtr ExampleRecord::create(String const & recordName)
PVStructurePtr pvStructure = getStandardPVField()->scalar(pvLong,properties);
PVLongPtr pvValue = pvStructure->getLongField("value");
PVRecordPtr pvRecord(new ExampleRecord(recordName,pvStructure,pvValue));
pvRecord->init();
return pvRecord;
}
ExampleRecord::ExampleRecord(
@@ -51,11 +52,14 @@ PVRecordPtr ExampleRecord::create(String const & recordName)
bool ExampleRecord::isSynchronous() {return true;}
void ExampleRecord::process(
RecordProcessRequesterPtr const &processRequester)
RecordProcessRequesterPtr const &processRequester,bool alreadyLocked)
{
if(!alreadyLocked) lock();
pvValue->put(pvValue->get() + 1);
processRequester->recordProcessResult(Status::Ok);
unlock();
processRequester->recordProcessComplete();
dequeueProcessRequest(processRequester);
}
+2 -1
View File
@@ -29,7 +29,8 @@ public:
virtual ~ExampleRecord();
virtual bool isSynchronous();
virtual void process(
epics::pvDatabase::RecordProcessRequesterPtr const &processRequester);
epics::pvDatabase::RecordProcessRequesterPtr const &processRequester,
bool alreadyLocked);
private:
ExampleRecord(epics::pvData::String const & recordName,
epics::pvData::PVStructurePtr const & pvStructure,