290 lines
11 KiB
HTML
290 lines
11 KiB
HTML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
|
|
<title>EPICS pvDataCPP</title>
|
|
<link rel="stylesheet" type="text/css"
|
|
href="http://epics-pvdata.sourceforge.net/base.css" />
|
|
<link rel="stylesheet" type="text/css"
|
|
href="http://epics-pvdata.sourceforge.net/epicsv4.css" />
|
|
<style type="text/css">
|
|
/*<![CDATA[*/
|
|
.about { margin-left: 3em; margin-right: 3em; font-size: .83em}
|
|
table { margin-left: auto; margin-right: auto }
|
|
.diagram { text-align: center; margin: 2.5em 0 }
|
|
body { margin-right: 10% }
|
|
/*]]>*/</style>
|
|
</head>
|
|
|
|
<body>
|
|
<h1 style="text-align: center">EPICS pvDataCPP<br />
|
|
2012.01.11</h1>
|
|
|
|
<p>TODO</p>
|
|
<ul>
|
|
<li>Move next section to pvDataCPP documentation.</li>
|
|
</ul>
|
|
<hr />
|
|
|
|
<h2 style="text-align: center">Normative Types</h2>
|
|
<hr />
|
|
|
|
<p>This section describes the C++ implemmentation of normative types.</p>
|
|
|
|
<h3>Normative Type Fields.</h3>
|
|
|
|
<p>These are helper classes for creating standard fields for normative types.
|
|
There is a single instance of this class, which is obtained via NTField::get().
|
|
</p>
|
|
<pre>class NTField: NoDefaultMethods {
|
|
public:
|
|
static NTField * get();
|
|
~NTField() {}
|
|
bool isEnumerated(FieldConstPtr field);
|
|
bool isTimeStamp(FieldConstPtr field);
|
|
bool isAlarm(FieldConstPtr field);
|
|
bool isDisplay(FieldConstPtr field);
|
|
bool isAlarmLimit(FieldConstPtr field);
|
|
bool isControl(FieldConstPtr field);
|
|
|
|
StructureConstPtr createEnumerated(String fieldName);
|
|
StructureConstPtr createTimeStamp();
|
|
StructureConstPtr createAlarm();
|
|
StructureConstPtr createDisplay();
|
|
StructureConstPtr createAlarmLimit();
|
|
StructureConstPtr createControl();
|
|
|
|
StructureArrayConstPtr createEnumeratedArray(String fieldName);
|
|
StructureArrayConstPtr createTimeStampArray(String fieldName);
|
|
StructureArrayConstPtr createAlarmArray(String fieldName);
|
|
};</pre>
|
|
|
|
<p>where</p>
|
|
<dl>
|
|
<dt>isEnumerated</dt>
|
|
<dd>Is this field an enumerated structure, i. e. a structure that has a int
|
|
field named index and a string array field named choices.</dd>
|
|
<dt>isTimeStamp</dt>
|
|
<dd>Is this field a timeStamp structure.</dd>
|
|
<dt>isAlarm</dt>
|
|
<dd>Is this field an alarm structure..</dd>
|
|
<dt>isDisplay</dt>
|
|
<dd>Is the field a display structure.</dd>
|
|
<dt>isAlarmLimit</dt>
|
|
<dd>Is the field an alarm limit structure.</dd>
|
|
<dt>isControl</dt>
|
|
<dd>Is the field a control structure.</dd>
|
|
<dt>createEnumerated</dt>
|
|
<dd>Create an introspection interface for an enumerated structure.</dd>
|
|
<dt>createTimeStamp</dt>
|
|
<dd>Create an interspection interface for a timeStamp structure.</dd>
|
|
<dt>createAlarm</dt>
|
|
<dd>Create an interspection interface for an alarm structure.</dd>
|
|
<dt>createDisplay</dt>
|
|
<dd>Create an introsepecion interface for a display structure.</dd>
|
|
<dt>createAlarmLimit</dt>
|
|
<dd>Create an introspection interface for an alarm limit structure.</dd>
|
|
<dt>createControl</dt>
|
|
<dd>Create an introspection interface for a control structure.</dd>
|
|
<dt>createEnumeratedArray</dt>
|
|
<dd>Create an introspection interface for an structureArray of enumerated
|
|
structures.</dd>
|
|
<dt>createTimeStampArray</dt>
|
|
<dd>Create an introspection interface for an structureArray of timeStamp
|
|
structures.</dd>
|
|
<dt>createAlarmArray</dt>
|
|
<dd>Create an introspection interface for an structureArray of alarm
|
|
structures.</dd>
|
|
</dl>
|
|
|
|
<h3>NTNameValue</h3>
|
|
|
|
<p>These are helper classes for NTNameValue</p>
|
|
<pre>class NTNameValue : private NoDefaultMethods
|
|
{
|
|
public:
|
|
static bool isNTNameValue(PVStructurePtr pvStructure);
|
|
static PVStructure::shared_pointer create(
|
|
bool hasFunction,bool hasTimeStamp, bool hasAlarm);
|
|
NTNameValue(PVStructure::shared_pointer const & pvStructure);
|
|
~NTNameValue();
|
|
PVString* getFunction();
|
|
void attachTimeStamp(PVTimeStamp &pvTimeStamp);
|
|
void attachAlarm(PVAlarm &pvAlarm);
|
|
PVStructurePtr getPVStructure();
|
|
PVStructurePtr getTimeStamp();
|
|
PVStructurePtr getAlarm();
|
|
PVStringArray *getNames();
|
|
PVStringArray *getValues();
|
|
};</pre>
|
|
|
|
<p>where</p>
|
|
<dl>
|
|
<dt>isNTNameValue</dt>
|
|
<dd>Is the structure a NTNameValue structure?</dd>
|
|
<dt>create</dt>
|
|
<dd>Create an NTNameValue that has the associated fields.</dd>
|
|
<dt>NTNameValue</dt>
|
|
<dd>The constructor. The pvStructure <b>must</b> be a NTNameValue
|
|
structure.</dd>
|
|
<dt>~NTNameValue</dt>
|
|
<dd>The destructor.</dd>
|
|
<dt>getFunction</dt>
|
|
<dd>Get the function field. This can be null.</dd>
|
|
<dt>attachTimeStamp</dt>
|
|
<dd>The timeStamp field of the NTNameValue is atttached to the
|
|
pvTimeStamp.</dd>
|
|
<dt>attachAlarm</dt>
|
|
<dd>The alarm field of the NTNameValue is atttached to the alarm.</dd>
|
|
<dt>getPVStructure</dt>
|
|
<dd>Get the pvStructure that this NTNameValue contains.</dd>
|
|
<dt>getTimeStamp</dt>
|
|
<dd>Get the timeStamp field.</dd>
|
|
<dt>getAlarm</dt>
|
|
<dd>Get the alarm field.</dd>
|
|
<dt>getNames</dt>
|
|
<dd>Get the names field.</dd>
|
|
<dt>getValues</dt>
|
|
<dd>Get the values field.</dd>
|
|
</dl>
|
|
|
|
<h3>NTTable</h3>
|
|
|
|
<p>These are helper classes for NTTable</p>
|
|
<pre>class NTTable: private NoDefaultMethods
|
|
{
|
|
public:
|
|
static bool isNTTable(PVStructurePtr pvStructure);
|
|
static PVStructure::shared_pointer create(
|
|
bool hasFunction,bool hasTimeStamp, bool hasAlarm,
|
|
int numberValues,
|
|
FieldConstPtrArray valueFields);
|
|
NTTable(PVStructure::shared_pointer const & pvStructure);
|
|
~NTTable();
|
|
PVString *getFunction();
|
|
void attachTimeStamp(PVTimeStamp &pvTimeStamp);
|
|
void attachAlarm(PVAlarm &pvAlarm);
|
|
PVStructurePtr getPVStructure();
|
|
PVStructurePtr getTimeStamp();
|
|
PVStructurePtr getAlarm();
|
|
PVStringArray *getLabel();
|
|
int getNumberValues();
|
|
FieldConstPtr getField(int index);
|
|
PVFieldPtr getPVField(int index);
|
|
};</pre>
|
|
|
|
<p>where</p>
|
|
<dl>
|
|
<dt>isNTTable</dt>
|
|
<dd>y</dd>
|
|
<dt>create</dt>
|
|
<dd>Create an NTTable that has the associated fields.</dd>
|
|
<dt>NTTable</dt>
|
|
<dd>The constructor. The pvStructure <b>must</b> be a NTTable
|
|
structure.</dd>
|
|
<dt>~NTTable</dt>
|
|
<dd>The destructor.</dd>
|
|
<dt>getFunction</dt>
|
|
<dd>Get the function field. This can be null.</dd>
|
|
<dt>attachTimeStamp</dt>
|
|
<dd>The timeStamp field of the NTTable is atttached to the pvTimeStamp.</dd>
|
|
<dt>attachAlarm</dt>
|
|
<dd>The alarm field of the NTTable is atttached to the alarm.</dd>
|
|
<dt>getPVStructure</dt>
|
|
<dd>Get the pvStructure that this NTTable contains.</dd>
|
|
<dt>getTimeStamp</dt>
|
|
<dd>Get the timeStamp field.</dd>
|
|
<dt>getAlarm</dt>
|
|
<dd>Get the alarm field.</dd>
|
|
<dt>getLabel</dt>
|
|
<dd>Get the label field.</dd>
|
|
<dt>getNumberValues</dt>
|
|
<dd>Get the number of value fields.</dd>
|
|
<dt>getField</dt>
|
|
<dd>Get the introspection interface for the specified field.</dd>
|
|
<dt>getPVField</dt>
|
|
<dd>Get the data field for the specified field.</dd>
|
|
</dl>
|
|
<hr />
|
|
|
|
<h2 style="text-align: center">License Agreement</h2>
|
|
<hr />
|
|
<pre>Copyright (c) 2008 Martin R. Kraimer
|
|
Copyright (c) 2007 Control System Laboratory,
|
|
(COSYLAB) Ljubljana Slovenia
|
|
Copyright (c) 2010 Brookhaven National Laboratory
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person
|
|
obtaining a copy of this software and associated documentation
|
|
files (the "Software"), to deal in the Software without
|
|
restriction, including without limitation the rights to use,
|
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following
|
|
conditions:
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
________________________________________________________________________
|
|
|
|
This software is in part copyrighted by Brookhaven National Laboratory(BNL)
|
|
|
|
In no event shall BNL be liable to any party for direct, indirect,
|
|
special, incidental, or consequential damages arising out of the use of
|
|
this software, its documentation, or any derivatives thereof, even if
|
|
BNL has been advised of the possibility of such damage.
|
|
|
|
BNL specifically disclaims any warranties, including, but not limited
|
|
to, the implied warranties of merchantability, fitness for a particular
|
|
purpose, and non-infringement. This software is provided on an "as is"
|
|
basis, and BNL has no obligation to provide maintenance, support,
|
|
updates, enhancements, or modifications.
|
|
|
|
________________________________________________________________________
|
|
|
|
This software is in part copyrighted by the BERLINER SPEICHERRING
|
|
GESELLSCHAFT FUER SYNCHROTRONSTRAHLUNG M.B.H. (BESSY), BERLIN, GERMANY.
|
|
|
|
In no event shall BESSY be liable to any party for direct, indirect,
|
|
special, incidental, or consequential damages arising out of the use of
|
|
this software, its documentation, or any derivatives thereof, even if
|
|
BESSY has been advised of the possibility of such damage.
|
|
|
|
BESSY specifically disclaims any warranties, including, but not limited
|
|
to, the implied warranties of merchantability, fitness for a particular
|
|
purpose, and non-infringement. This software is provided on an "as is"
|
|
basis, and BESSY has no obligation to provide maintenance, support,
|
|
updates, enhancements, or modifications.
|
|
|
|
________________________________________________________________________
|
|
|
|
This software is in part copyrighted by the Deutsches Elektronen-Synchroton,
|
|
Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
|
|
|
|
In no event shall DESY be liable to any party for direct, indirect,
|
|
special, incidental, or consequential damages arising out of the use of
|
|
this software, its documentation, or any derivatives thereof, even if
|
|
DESY has been advised of the possibility of such damage.
|
|
|
|
DESY specifically disclaims any warranties, including, but not limited
|
|
to, the implied warranties of merchantability, fitness for a particular
|
|
purpose, and non-infringement. This software is provided on an "as is"
|
|
basis, and DESY has no obligation to provide maintenance, support,
|
|
updates, enhancements, or modifications.
|
|
________________________________________________________________________</pre>
|
|
</body>
|
|
</html>
|