Rename getAs getSubFieldT
Signed-off-by: Dave Hickin <david.hickin@diamond.ac.uk>
This commit is contained in:
@@ -7,7 +7,7 @@ The main changes since release 4.0 are:
|
||||
* Convert::copyUnion now always copies between subfields.
|
||||
* CreateRequest prevents a possible SEGFAULT.
|
||||
* New stream operators for Field and PVField are provided.
|
||||
* New method getAs that is like getSubField except that it throws exception
|
||||
* New method getSubFieldT that is like getSubField except that it throws exception
|
||||
|
||||
Convert copy methods and equals operators
|
||||
-----------------------------------------
|
||||
@@ -73,10 +73,10 @@ Now it can be done as follows:
|
||||
cout << pv << endl;
|
||||
}
|
||||
|
||||
New method getAs that is like getSubField except that it throws exception
|
||||
New method getSubFieldT that is like getSubField except that it throws exception
|
||||
--------------------
|
||||
|
||||
<b>PVStructure</b> has a new template member <b>getAs(const char *name)</b>
|
||||
<b>PVStructure</b> has a new template member <b>getSubFieldT(std::string const &fieldName)</b>
|
||||
that is like <b>getSubField</b> except that it throws a runtime_error
|
||||
instead of returning null.
|
||||
|
||||
|
||||
@@ -465,10 +465,10 @@ structure
|
||||
PVStructurePtr doubleValue = getPVDataCreate()->createPVStructure(
|
||||
getStandardField()->scalar(pvDouble,"alarm,timeStamp"));
|
||||
PVDoublePtr pvdouble =
|
||||
doubleValue->getAs<PVDouble>("value");
|
||||
doubleValue->getSubField<PVDouble>("value");
|
||||
pvdouble->put(1e5);
|
||||
cout << *doubleValue << endl;
|
||||
double value = doubleValue->getAs<PVDouble>("value")->get();
|
||||
double value = doubleValue->getSubField<PVDouble>("value")->get();
|
||||
cout << "from get " << value << "\n\n";
|
||||
</pre>
|
||||
This produces:
|
||||
@@ -491,7 +491,7 @@ from get 100000
|
||||
PVStructurePtr doubleArrayValue = pvDataCreate->createPVStructure(
|
||||
standardField->scalarArray(pvDouble,"alarm,timeStamp"));
|
||||
PVDoubleArrayPtr pvDoubleArray =
|
||||
doubleArrayValue->getAs<PVDoubleArray>("value");
|
||||
doubleArrayValue->getSubField<PVDoubleArray>("value");
|
||||
size_t len = 10;
|
||||
shared_vector<double> xxx(len);
|
||||
for(size_t i=0; i< len; ++i) xxx[i] = i;
|
||||
@@ -605,10 +605,10 @@ structure
|
||||
createUnion(),
|
||||
"alarm,timeStamp"));
|
||||
PVStructurePtr pvTimeStamp =
|
||||
pvStructure->getAs<PVUnion>("value")->select<PVStructure>(2);
|
||||
pvTimeStamp->getAs<PVLong>("secondsPastEpoch")->put(1000);
|
||||
pvStructure->getSubField<PVUnion>("value")->select<PVStructure>(2);
|
||||
pvTimeStamp->getSubField<PVLong>("secondsPastEpoch")->put(1000);
|
||||
cout << *pvStructure) << "\n";
|
||||
pvStructure->getAs<PVUnion>("value")->select<PVDouble>(0)->put(1e5);
|
||||
pvStructure->getSubField<PVUnion>("value")->select<PVDouble>(0)->put(1e5);
|
||||
cout << *pvStructure << "\n\n";
|
||||
</pre>
|
||||
This produces:
|
||||
@@ -648,13 +648,13 @@ epics:nt/NTUnion:1.0
|
||||
standardField->variantUnion("alarm,timeStamp"));
|
||||
PVStructurePtr pvTimeStamp =
|
||||
pvDataCreate->createPVStructure(standardField->timeStamp());
|
||||
pvStructure->getAs<PVUnion>("value")->set(pvTimeStamp);
|
||||
pvTimeStamp->getAs<PVLong>("secondsPastEpoch")->put(1000);
|
||||
pvStructure->getSubField<PVUnion>("value")->set(pvTimeStamp);
|
||||
pvTimeStamp->getSubField<PVLong>("secondsPastEpoch")->put(1000);
|
||||
cout << *pvStructure << "\n";
|
||||
pvStructure->getAs<PVUnion>("value")->set(
|
||||
pvStructure->getSubField<PVUnion>("value")->set(
|
||||
pvDataCreate->createPVScalar(pvDouble));
|
||||
PVDoublePtr pvValue = static_pointer_cast<PVDouble>(
|
||||
pvStructure->getAs<PVUnion>("value")->get());
|
||||
pvStructure->getSubField<PVUnion>("value")->get());
|
||||
pvValue->put(1e5);
|
||||
cout << *pvStructure << "\n\n";
|
||||
</pre>
|
||||
@@ -718,7 +718,7 @@ epics:nt/NTUnion:1.0
|
||||
cout << *pvStructure->getStructure() << endl;
|
||||
cout << "data\n";
|
||||
cout << *pvStructure << "\n";
|
||||
PVUnionPtr pvUnion = pvStructure->getAs<PVUnion>("value");;
|
||||
PVUnionPtr pvUnion = pvStructure->getSubField<PVUnion>("value");;
|
||||
pvUnion->select("doubleValue");
|
||||
PVDoublePtr pvDouble = pvUnion->get<PVDouble>();
|
||||
pvDouble->put(1.55);
|
||||
@@ -726,7 +726,7 @@ epics:nt/NTUnion:1.0
|
||||
cout << *pvStructure << "\n";
|
||||
cout << "value = " << pvDouble->get() << "\n";
|
||||
pvUnion->select("structValue");
|
||||
pvDouble = pvUnion->get<PVStructure>()->getAs<PVDouble>("doubleValue");
|
||||
pvDouble = pvUnion->get<PVStructure>()->getSubField<PVDouble>("doubleValue");
|
||||
pvDouble->put(1.65);
|
||||
cout << "select structValue\n";
|
||||
cout << *pvStructure << "\n";
|
||||
@@ -2304,14 +2304,14 @@ public:
|
||||
template<typename PVT>
|
||||
std::tr1::shared_ptr<PVT> getSubField(std::string const &fieldName) const
|
||||
|
||||
template<typename PVT>
|
||||
PVT& getAs(const char *name) const;
|
||||
|
||||
PVFieldPtr getSubField(std::size_t fieldOffset) const;
|
||||
|
||||
template<typename PVT>
|
||||
std::tr1::shared_ptr<PVT> getSubField(std::size_t fieldOffset) const
|
||||
|
||||
template<typename PVT>
|
||||
PVT& getSubFieldT(std::string const &fieldName) const;
|
||||
|
||||
virtual void serialize(
|
||||
ByteBuffer *pbuffer,SerializableControl *pflusher) const ;
|
||||
virtual void deserialize(
|
||||
@@ -2332,9 +2332,6 @@ public:
|
||||
<dt>getPVFields</dt>
|
||||
<dd>Returns the array of subfields. The set of subfields must all have
|
||||
different field names.</dd>
|
||||
<dt>getAs(const char *name)</dt>
|
||||
<dd>Like the getSubField except that it throws std::runtime_error if
|
||||
the field does not exists or has the wrong type.</dd>
|
||||
<dt>getSubField(std::string fieldName)</dt>
|
||||
<dd>
|
||||
Get a subField of a field.d
|
||||
@@ -2353,6 +2350,9 @@ public:
|
||||
<br />
|
||||
<b>Note</b> The template version replaces getBooleanField, etc.<br/>
|
||||
</dd>
|
||||
<dt>getSubFieldT(std::string const &fieldName)</dt>
|
||||
<dd>Like getSubField except that it throws std::runtime_error if
|
||||
the field does not exists or has the wrong type.</dd>
|
||||
<dt>dumpValue</dt>
|
||||
<dd>Method for streams I/O.</dd>
|
||||
</dl>
|
||||
@@ -5414,7 +5414,7 @@ public:
|
||||
raiseMonitor = true;
|
||||
if(pvFieldOptions!=NULL) {
|
||||
PVStringPtr pvString =
|
||||
pvFieldOptions->getAs<PVString>("raiseMonitor");
|
||||
pvFieldOptions->getSubField<PVString>("raiseMonitor");
|
||||
if(pvString!=NULL) {
|
||||
std::string value = pvString->get();
|
||||
if(value.compare("false")==0) raiseMonitor = false;
|
||||
|
||||
@@ -465,10 +465,10 @@ structure
|
||||
PVStructurePtr doubleValue = getPVDataCreate()->createPVStructure(
|
||||
getStandardField()->scalar(pvDouble,"alarm,timeStamp"));
|
||||
PVDoublePtr pvdouble =
|
||||
doubleValue->getAs<PVDouble>("value");
|
||||
doubleValue->getSubField<PVDouble>("value");
|
||||
pvdouble->put(1e5);
|
||||
cout << *doubleValue << endl;
|
||||
double value = doubleValue->getAs<PVDouble>("value")->get();
|
||||
double value = doubleValue->getSubField<PVDouble>("value")->get();
|
||||
cout << "from get " << value << "\n\n";
|
||||
</pre>
|
||||
This produces:
|
||||
@@ -491,7 +491,7 @@ from get 100000
|
||||
PVStructurePtr doubleArrayValue = pvDataCreate->createPVStructure(
|
||||
standardField->scalarArray(pvDouble,"alarm,timeStamp"));
|
||||
PVDoubleArrayPtr pvDoubleArray =
|
||||
doubleArrayValue->getAs<PVDoubleArray>("value");
|
||||
doubleArrayValue->getSubField<PVDoubleArray>("value");
|
||||
size_t len = 10;
|
||||
shared_vector<double> xxx(len);
|
||||
for(size_t i=0; i< len; ++i) xxx[i] = i;
|
||||
@@ -605,10 +605,10 @@ structure
|
||||
createUnion(),
|
||||
"alarm,timeStamp"));
|
||||
PVStructurePtr pvTimeStamp =
|
||||
pvStructure->getAs<PVUnion>("value")->select<PVStructure>(2);
|
||||
pvTimeStamp->getAs<PVLong>("secondsPastEpoch")->put(1000);
|
||||
pvStructure->getSubField<PVUnion>("value")->select<PVStructure>(2);
|
||||
pvTimeStamp->getSubField<PVLong>("secondsPastEpoch")->put(1000);
|
||||
cout << *pvStructure) << "\n";
|
||||
pvStructure->getAs<PVUnion>("value")->select<PVDouble>(0)->put(1e5);
|
||||
pvStructure->getSubField<PVUnion>("value")->select<PVDouble>(0)->put(1e5);
|
||||
cout << *pvStructure << "\n\n";
|
||||
</pre>
|
||||
This produces:
|
||||
@@ -648,13 +648,13 @@ epics:nt/NTUnion:1.0
|
||||
standardField->variantUnion("alarm,timeStamp"));
|
||||
PVStructurePtr pvTimeStamp =
|
||||
pvDataCreate->createPVStructure(standardField->timeStamp());
|
||||
pvStructure->getAs<PVUnion>("value")->set(pvTimeStamp);
|
||||
pvTimeStamp->getAs<PVLong>("secondsPastEpoch")->put(1000);
|
||||
pvStructure->getSubField<PVUnion>("value")->set(pvTimeStamp);
|
||||
pvTimeStamp->getSubField<PVLong>("secondsPastEpoch")->put(1000);
|
||||
cout << *pvStructure << "\n";
|
||||
pvStructure->getAs<PVUnion>("value")->set(
|
||||
pvStructure->getSubField<PVUnion>("value")->set(
|
||||
pvDataCreate->createPVScalar(pvDouble));
|
||||
PVDoublePtr pvValue = static_pointer_cast<PVDouble>(
|
||||
pvStructure->getAs<PVUnion>("value")->get());
|
||||
pvStructure->getSubField<PVUnion>("value")->get());
|
||||
pvValue->put(1e5);
|
||||
cout << *pvStructure << "\n\n";
|
||||
</pre>
|
||||
@@ -718,7 +718,7 @@ epics:nt/NTUnion:1.0
|
||||
cout << *pvStructure->getStructure() << endl;
|
||||
cout << "data\n";
|
||||
cout << *pvStructure << "\n";
|
||||
PVUnionPtr pvUnion = pvStructure->getAs<PVUnion>("value");;
|
||||
PVUnionPtr pvUnion = pvStructure->getSubField<PVUnion>("value");;
|
||||
pvUnion->select("doubleValue");
|
||||
PVDoublePtr pvDouble = pvUnion->get<PVDouble>();
|
||||
pvDouble->put(1.55);
|
||||
@@ -726,7 +726,7 @@ epics:nt/NTUnion:1.0
|
||||
cout << *pvStructure << "\n";
|
||||
cout << "value = " << pvDouble->get() << "\n";
|
||||
pvUnion->select("structValue");
|
||||
pvDouble = pvUnion->get<PVStructure>()->getAs<PVDouble>("doubleValue");
|
||||
pvDouble = pvUnion->get<PVStructure>()->getSubField<PVDouble>("doubleValue");
|
||||
pvDouble->put(1.65);
|
||||
cout << "select structValue\n";
|
||||
cout << *pvStructure << "\n";
|
||||
@@ -2304,14 +2304,14 @@ public:
|
||||
template<typename PVT>
|
||||
std::tr1::shared_ptr<PVT> getSubField(std::string const &fieldName) const
|
||||
|
||||
template<typename PVT>
|
||||
PVT& getAs(const char *name) const;
|
||||
|
||||
PVFieldPtr getSubField(std::size_t fieldOffset) const;
|
||||
|
||||
template<typename PVT>
|
||||
std::tr1::shared_ptr<PVT> getSubField(std::size_t fieldOffset) const
|
||||
|
||||
template<typename PVT>
|
||||
PVT& getSubFieldT(std::string const &fieldName) const;
|
||||
|
||||
virtual void serialize(
|
||||
ByteBuffer *pbuffer,SerializableControl *pflusher) const ;
|
||||
virtual void deserialize(
|
||||
@@ -2332,9 +2332,6 @@ public:
|
||||
<dt>getPVFields</dt>
|
||||
<dd>Returns the array of subfields. The set of subfields must all have
|
||||
different field names.</dd>
|
||||
<dt>getAs(const char *name)</dt>
|
||||
<dd>Like the getSubField except that it throws std::runtime_error if
|
||||
the field does not exists or has the wrong type.</dd>
|
||||
<dt>getSubField(std::string fieldName)</dt>
|
||||
<dd>
|
||||
Get a subField of a field.d
|
||||
@@ -2353,6 +2350,9 @@ public:
|
||||
<br />
|
||||
<b>Note</b> The template version replaces getBooleanField, etc.<br/>
|
||||
</dd>
|
||||
<dt>getSubFieldT(std::string const &fieldName)</dt>
|
||||
<dd>Like getSubField except that it throws std::runtime_error if
|
||||
the field does not exists or has the wrong type.</dd>
|
||||
<dt>dumpValue</dt>
|
||||
<dd>Method for streams I/O.</dd>
|
||||
</dl>
|
||||
@@ -5414,7 +5414,7 @@ public:
|
||||
raiseMonitor = true;
|
||||
if(pvFieldOptions!=NULL) {
|
||||
PVStringPtr pvString =
|
||||
pvFieldOptions->getAs<PVString>("raiseMonitor");
|
||||
pvFieldOptions->getSubField<PVString>("raiseMonitor");
|
||||
if(pvString!=NULL) {
|
||||
std::string value = pvString->get();
|
||||
if(value.compare("false")==0) raiseMonitor = false;
|
||||
|
||||
Reference in New Issue
Block a user