I thought about CA client examples, In particular the following two
examples:
a client wants to read a double value and displayLimits where
displayLimits is assumed to have well known propertyIds.
The second example is a V4 version of probe, i.e. given a pvname
display it's propertyIds and the values of the properties.
For the first example part of the implementation is the property
catalog implementation. This will be the propertyCatalog passed to a
read request. It will be used to put values into my container
class ValueDisplayLimits: public propertyCatalog {
double value;
displayLimits limits;
bool valueModified;
void traverse (dataViewer &viewer) {
viewer.reveal(properIdPrimitiveValue,value);
viewer.reveal(properIdDisplayLimits,limits);
};
void traverse (datasManipulator &manipulator) {
double saveValue = value;
valueModified = false;
manipulator.reveal(properIdPrimitiveValue,value);
manipulator.reveal(properIdDisplayLimits,limits);
if(saveValue!=value) valueModified = true;
};
};
I will leave out the calls to the CA client library, since my questions
are about propertyIds.
My questions relate to the arguments passed to the reveal methods.
The two arguments are:
propertyId - something created or located via a character string
objref - a reference to one of the following: primitive type
(char,short, double,etc), string segment, array segment, or a
propertyCatalog
Now for some questions
In my example code I assumed that displayLimits has well known
propertyIds.
What about the double value?
I just made up the name propertytIdPrimitiveValue. What should it be?
The more general question is
For a generic tool that knows how to handle primitive data types how
does it get a propertyId?
It seems that there must be well defined propertyIds for this.
Is the string "primitive value" what we want?
Do we also have "string segment" and "array segment"?
What about the properIds for a propertyCatalog? Do we have "property
catalog"?
Now for questions about developing a V4 version of probe. I assume that
it is just given a pvname
How does it get started, i.e. how does it know how to find properties
associated with the pvname?
Can it ask for a list of properrtyIds?
If so do we have a standard set of propertyIds via which this list can
be obtained?
Given a list of propertyIds how does it obtain the information
associated with each id?
I can guess that one way this could be implemented is via a dataViewer.
It could work like the following:
Ca accepts a request to get data associated with a propertyId. Instead
of putting it into a caller provided container via the caller supplied
propertyCatalog, CA would make the data available via the caller
supplied dataViewer. Does the proposed CA V4 interface allow this?
It would be nice if it was possible to find out info about a propertyId
without needed to request the data associated with the propertId,
Things like: isPrimitive, isStringSegment, isArraySegment,
isPropertyCatalog.
If it is primitive, it would be nice to know the exact type.
Thus should introspection of all dataAccess propertyIds be available?
Marty
- Replies:
- Re: dataAccess V4 Ca client propertyId questions Kay-Uwe Kasemir
- Re: dataAccess V4 Ca client propertyId questions Kay-Uwe Kasemir
- Navigate by Date:
- Prev:
Re: V4 design issue: Should primitive data types have well defined precisions? Kay-Uwe Kasemir
- Next:
Re: V4 design issue: Should primitive data types have well defined precisions? Ralph Lange
- Index:
2002
2003
2004
<2005>
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Interesting reading material Benjamin Franksen
- Next:
Re: dataAccess V4 Ca client propertyId questions Kay-Uwe Kasemir
- Index:
2002
2003
2004
<2005>
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|