TODO
This section describes the C++ implemmentation of normative types.
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().
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);
};
where
These are helper classes for NTNameValue
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();
};
where
These are helper classes for NTTable
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);
};
where
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.
________________________________________________________________________