aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/corba-idl/tango.idl
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/corba-idl/tango.idl')
-rw-r--r--epan/dissectors/corba-idl/tango.idl1172
1 files changed, 1172 insertions, 0 deletions
diff --git a/epan/dissectors/corba-idl/tango.idl b/epan/dissectors/corba-idl/tango.idl
new file mode 100644
index 0000000000..1bea6fcd4c
--- /dev/null
+++ b/epan/dissectors/corba-idl/tango.idl
@@ -0,0 +1,1172 @@
+
+
+/**
+ * This is the TANGO interface defined in IDL.
+ * TANGO is an extension of old TACO.
+ * The fundamental idea of a device as a network object which
+ * has methods and data has been retained. However
+ * in TANGO objects will be real C++/Java objects which can be instantiated
+ * and accessed via their methods and data by the client as if they were local
+ * objects.
+ * Certain aspects of the old DSAPI application programmer's
+ * interface have been suppressed in order to simplify the client (e.g. import,
+ * free, data collector api).
+ * Features which have been considered missing in old TACO have been added
+ * e.g. signals, events and groups.
+ * Asynchronism and groups have been foreseen right from the beginning
+ * this time.
+ * This interface is defined in CORBA IDL.
+ * The fundamental interface is Device.
+ * All TANGO control objects will be of this type i.e. they will implement and
+ * offer the Device interface.
+ * New classes of control objects e.g. PowerSupply, will be created by
+ * wrapping the Device class appropriately.
+ * The wrapper class will hide the calls to the Device interface from
+ * the client so that the client will only see the wrapper class.
+ * All CORBA details will be hidden from the client as far as possible.
+**/
+
+module Tango
+{
+
+//-------------------------------------------------------------------------
+//
+// Basic types to transport command data
+//
+//-------------------------------------------------------------------------
+
+typedef boolean DevBoolean;
+typedef double DevDouble;
+typedef float DevFloat;
+typedef short DevShort;
+typedef long DevLong;
+typedef long long DevLong64;
+typedef string DevString;
+typedef octet DevUChar;
+typedef unsigned short DevUShort;
+typedef unsigned long DevULong;
+typedef unsigned long long DevULong64;
+
+typedef sequence<boolean> DevVarBooleanArray;
+typedef sequence<double> DevVarDoubleArray;
+typedef sequence<float> DevVarFloatArray;
+typedef sequence<short> DevVarShortArray;
+typedef sequence<long> DevVarLongArray;
+typedef sequence<long long> DevVarLong64Array;
+typedef sequence<octet> DevVarCharArray;
+typedef sequence<string> DevVarStringArray;
+typedef sequence<unsigned short> DevVarUShortArray;
+typedef sequence<unsigned long> DevVarULongArray;
+typedef sequence<unsigned long long> DevVarULong64Array;
+
+
+struct DevVarLongStringArray
+{
+ DevVarLongArray lvalue;
+ DevVarStringArray svalue;
+};
+
+struct DevVarDoubleStringArray
+{
+ DevVarDoubleArray dvalue;
+ DevVarStringArray svalue;
+};
+
+struct DevEncoded
+{
+ DevString encoded_format;
+ DevVarCharArray encoded_data;
+};
+
+typedef sequence<DevEncoded> DevVarEncodedArray;
+
+//-------------------------------------------------------------------------
+//
+// Data types for client identification
+//
+//-------------------------------------------------------------------------
+
+typedef unsigned long long JavaUUID[2];
+typedef unsigned long CppClntIdent;
+
+struct JavaClntIdent
+{
+ string MainClass;
+ JavaUUID uuid;
+};
+
+enum LockerLanguage { CPP, JAVA };
+
+union ClntIdent switch (LockerLanguage)
+{
+case CPP:
+ CppClntIdent cpp_clnt;
+case JAVA:
+ JavaClntIdent java_clnt;
+};
+
+//-------------------------------------------------------------------------
+//
+// Some enumerations
+//
+//-------------------------------------------------------------------------
+
+
+enum AttrQuality
+{
+ ATTR_VALID,
+ ATTR_INVALID,
+ ATTR_ALARM,
+ ATTR_CHANGING,
+ ATTR_WARNING
+};
+
+enum AttrWriteType
+{
+ READ,
+ READ_WITH_WRITE,
+ WRITE,
+ READ_WRITE,
+ WT_UNKNOWN
+};
+
+enum AttrDataFormat
+{
+ SCALAR,
+ SPECTRUM,
+ IMAGE,
+ FMT_UNKNOWN
+};
+
+enum DevSource
+{
+ DEV,
+ CACHE,
+ CACHE_DEV
+};
+
+enum ErrSeverity
+{
+ WARN,
+ ERR,
+ PANIC
+};
+
+enum DevState
+{
+ ON,
+ OFF,
+ CLOSE,
+ OPEN,
+ INSERT,
+ EXTRACT,
+ MOVING,
+ STANDBY,
+ FAULT,
+ INIT,
+ RUNNING,
+ ALARM,
+ DISABLE,
+ UNKNOWN
+};
+
+enum DispLevel
+{
+ OPERATOR,
+ EXPERT,
+ DL_UNKNOWN
+};
+
+typedef sequence<DevState> DevVarStateArray;
+
+//-------------------------------------------------------------------------
+//
+// Some miscellaneous structures definitions
+//
+//-------------------------------------------------------------------------
+
+struct TimeVal
+{
+ long tv_sec;
+ long tv_usec;
+ long tv_nsec;
+};
+
+
+//-------------------------------------------------------------------------
+//
+// For the command query device operation
+//
+//-------------------------------------------------------------------------
+
+
+struct DevCmdInfo
+{
+ string cmd_name;
+ long cmd_tag;
+ long in_type;
+ long out_type;
+ string in_type_desc;
+ string out_type_desc;
+};
+
+struct DevCmdInfo_2
+{
+ string cmd_name;
+ DispLevel level;
+ long cmd_tag;
+ long in_type;
+ long out_type;
+ string in_type_desc;
+ string out_type_desc;
+};
+
+typedef sequence<DevCmdInfo> DevCmdInfoList;
+typedef sequence<DevCmdInfo_2> DevCmdInfoList_2;
+
+
+//-------------------------------------------------------------------------
+//
+// For the DevFailed exceptions
+//
+//-------------------------------------------------------------------------
+
+struct DevError
+{
+ string reason;
+ ErrSeverity severity;
+ string desc;
+ string origin;
+};
+
+typedef sequence<DevError> DevErrorList;
+
+struct NamedDevError
+{
+ string name;
+ long index_in_call;
+ DevErrorList err_list;
+};
+
+typedef sequence<NamedDevError> NamedDevErrorList;
+
+
+exception DevFailed
+{
+ DevErrorList errors;
+};
+
+exception MultiDevFailed
+{
+ NamedDevErrorList errors;
+};
+
+
+//-------------------------------------------------------------------------
+//
+// For attribute management
+//
+//-------------------------------------------------------------------------
+
+
+struct AttributeConfig
+{
+ string name;
+ AttrWriteType writable;
+ AttrDataFormat data_format;
+ long data_type;
+ long max_dim_x;
+ long max_dim_y;
+ string description;
+ string label;
+ string unit;
+ string standard_unit;
+ string display_unit;
+ string format;
+ string min_value;
+ string max_value;
+ string min_alarm;
+ string max_alarm;
+ string writable_attr_name;
+ DevVarStringArray extensions;
+};
+
+struct AttributeConfig_2
+{
+ string name;
+ AttrWriteType writable;
+ AttrDataFormat data_format;
+ long data_type;
+ long max_dim_x;
+ long max_dim_y;
+ string description;
+ string label;
+ string unit;
+ string standard_unit;
+ string display_unit;
+ string format;
+ string min_value;
+ string max_value;
+ string min_alarm;
+ string max_alarm;
+ string writable_attr_name;
+ DispLevel level;
+ DevVarStringArray extensions;
+};
+
+struct AttributeValue
+{
+ any value;
+ AttrQuality quality;
+ TimeVal time;
+ string name;
+ long dim_x;
+ long dim_y;
+};
+
+struct AttributeDim
+{
+ long dim_x;
+ long dim_y;
+};
+
+struct AttributeValue_3
+{
+ any value;
+ AttrQuality quality;
+ TimeVal time;
+ string name;
+ AttributeDim r_dim;
+ AttributeDim w_dim;
+ DevErrorList err_list;
+};
+
+enum AttributeDataType
+{
+ ATT_BOOL,
+ ATT_SHORT,
+ ATT_LONG,
+ ATT_LONG64,
+ ATT_FLOAT,
+ ATT_DOUBLE,
+ ATT_UCHAR,
+ ATT_USHORT,
+ ATT_ULONG,
+ ATT_ULONG64,
+ ATT_STRING,
+ ATT_STATE,
+ DEVICE_STATE,
+ ATT_ENCODED,
+ ATT_NO_DATA
+};
+
+union AttrValUnion switch (AttributeDataType)
+{
+case ATT_BOOL:
+ DevVarBooleanArray bool_att_value;
+case ATT_SHORT:
+ DevVarShortArray short_att_value;
+case ATT_LONG:
+ DevVarLongArray long_att_value;
+case ATT_LONG64:
+ DevVarLong64Array long64_att_value;
+case ATT_FLOAT:
+ DevVarFloatArray float_att_value;
+case ATT_DOUBLE:
+ DevVarDoubleArray double_att_value;
+case ATT_UCHAR:
+ DevVarCharArray uchar_att_value;
+case ATT_USHORT:
+ DevVarUShortArray ushort_att_value;
+case ATT_ULONG:
+ DevVarULongArray ulong_att_value;
+case ATT_ULONG64:
+ DevVarULong64Array ulong64_att_value;
+case ATT_STRING:
+ DevVarStringArray string_att_value;
+case ATT_STATE:
+ DevVarStateArray state_att_value;
+case DEVICE_STATE:
+ DevState dev_state_att;
+case ATT_ENCODED:
+ DevVarEncodedArray encoded_att_value;
+case ATT_NO_DATA:
+ DevBoolean union_no_data;
+};
+
+struct AttributeValue_4
+{
+ AttrValUnion value;
+ AttrQuality quality;
+ AttrDataFormat data_format;
+ TimeVal time;
+ string name;
+ AttributeDim r_dim;
+ AttributeDim w_dim;
+ DevErrorList err_list;
+};
+
+struct AttributeValue_5
+{
+ AttrValUnion value;
+ AttrQuality quality;
+ AttrDataFormat data_format;
+ long data_type;
+ TimeVal time;
+ string name;
+ AttributeDim r_dim;
+ AttributeDim w_dim;
+ DevErrorList err_list;
+};
+
+struct ChangeEventProp
+{
+ string rel_change;
+ string abs_change;
+ DevVarStringArray extensions;
+};
+
+struct PeriodicEventProp
+{
+ string period;
+ DevVarStringArray extensions;
+};
+
+struct ArchiveEventProp
+{
+ string rel_change;
+ string abs_change;
+ string period;
+ DevVarStringArray extensions;
+};
+
+struct EventProperties
+{
+ ChangeEventProp ch_event;
+ PeriodicEventProp per_event;
+ ArchiveEventProp arch_event;
+};
+
+struct AttributeAlarm
+{
+ string min_alarm;
+ string max_alarm;
+ string min_warning;
+ string max_warning;
+ string delta_t;
+ string delta_val;
+ DevVarStringArray extensions;
+};
+
+struct AttributeConfig_3
+{
+ string name;
+ AttrWriteType writable;
+ AttrDataFormat data_format;
+ long data_type;
+ long max_dim_x;
+ long max_dim_y;
+ string description;
+ string label;
+ string unit;
+ string standard_unit;
+ string display_unit;
+ string format;
+ string min_value;
+ string max_value;
+ string writable_attr_name;
+ DispLevel level;
+ AttributeAlarm att_alarm;
+ EventProperties event_prop;
+ DevVarStringArray extensions;
+ DevVarStringArray sys_extensions;
+};
+
+struct AttributeConfig_5
+{
+ string name;
+ AttrWriteType writable;
+ AttrDataFormat data_format;
+ long data_type;
+ boolean memorized;
+ boolean mem_init;
+ long max_dim_x;
+ long max_dim_y;
+ string description;
+ string label;
+ string unit;
+ string standard_unit;
+ string display_unit;
+ string format;
+ string min_value;
+ string max_value;
+ string writable_attr_name;
+ DispLevel level;
+ string root_attr_name;
+ DevVarStringArray enum_labels;
+ AttributeAlarm att_alarm;
+ EventProperties event_prop;
+ DevVarStringArray extensions;
+ DevVarStringArray sys_extensions;
+};
+
+typedef sequence<AttributeConfig> AttributeConfigList;
+typedef sequence<AttributeConfig_2> AttributeConfigList_2;
+typedef sequence<AttributeConfig_3> AttributeConfigList_3;
+typedef sequence<AttributeConfig_5> AttributeConfigList_5;
+typedef sequence<AttributeValue> AttributeValueList;
+typedef sequence<AttributeValue_3> AttributeValueList_3;
+typedef sequence<AttributeValue_4> AttributeValueList_4;
+typedef sequence<AttributeValue_5> AttributeValueList_5;
+
+//-------------------------------------------------------------------------
+//
+// For pipe management
+//
+//-------------------------------------------------------------------------
+
+enum PipeWriteType
+{
+ PIPE_READ,
+ PIPE_READ_WRITE,
+ PIPE_WT_UNKNOWN
+};
+
+struct PipeConfig
+{
+ string name;
+ string description;
+ string label;
+ DispLevel level;
+ PipeWriteType writable;
+ DevVarStringArray extensions;
+};
+
+typedef sequence<PipeConfig> PipeConfigList;
+
+struct DevPipeDataElt;
+typedef sequence<DevPipeDataElt> DevVarPipeDataEltArray;
+
+struct DevPipeDataElt
+{
+ string name;
+ AttrValUnion value;
+ DevVarPipeDataEltArray inner_blob;
+ string inner_blob_name;
+};
+
+struct DevPipeBlob
+{
+ string name;
+ DevVarPipeDataEltArray blob_data;
+};
+
+struct DevPipeData
+{
+ string name;
+ TimeVal time;
+ DevPipeBlob data_blob;
+};
+
+//-------------------------------------------------------------------------
+//
+// For data ready event
+//
+//-------------------------------------------------------------------------
+
+struct AttDataReady
+{
+ string name;
+ long data_type;
+ long ctr;
+};
+
+
+//-------------------------------------------------------------------------
+//
+// For device interface change event
+//
+//-------------------------------------------------------------------------
+
+struct DevIntrChange
+{
+ boolean dev_started;
+ DevCmdInfoList_2 cmds;
+ AttributeConfigList_5 atts;
+};
+
+//-------------------------------------------------------------------------
+//
+// For device interface info operation
+//
+//-------------------------------------------------------------------------
+
+struct DevInfo
+{
+ string dev_class;
+ string server_id;
+ string server_host;
+ long server_version;
+ string doc_url;
+};
+
+struct DevInfo_3
+{
+ string dev_class;
+ string server_id;
+ string server_host;
+ long server_version;
+ string doc_url;
+ string dev_type;
+};
+
+//-------------------------------------------------------------------------
+//
+// For command and attribute history
+//
+//-------------------------------------------------------------------------
+
+struct DevCmdHistory
+{
+ TimeVal time;
+ boolean cmd_failed;
+ any value;
+ DevErrorList errors;
+};
+
+typedef sequence<DevCmdHistory> DevCmdHistoryList;
+
+struct DevAttrHistory
+{
+ boolean attr_failed;
+ AttributeValue value;
+ DevErrorList errors;
+};
+
+struct DevAttrHistory_3
+{
+ boolean attr_failed;
+ AttributeValue_3 value;
+};
+
+struct EltInArray
+{
+ long start;
+ long nb_elt;
+};
+
+typedef sequence<EltInArray> EltInArrayList;
+typedef sequence<TimeVal> TimeValList;
+typedef sequence<AttrQuality> AttrQualityList;
+typedef sequence<AttributeDim> AttributeDimList;
+typedef sequence<DevErrorList> DevErrorListList;
+
+struct DevAttrHistory_4
+{
+ string name;
+ TimeValList dates;
+ any value;
+ AttrQualityList quals;
+ EltInArrayList quals_array;
+ AttributeDimList r_dims;
+ EltInArrayList r_dims_array;
+ AttributeDimList w_dims;
+ EltInArrayList w_dims_array;
+ DevErrorListList errors;
+ EltInArrayList errors_array;
+};
+
+struct DevAttrHistory_5
+{
+ string name;
+ AttrDataFormat data_format;
+ long data_type;
+ TimeValList dates;
+ any value;
+ AttrQualityList quals;
+ EltInArrayList quals_array;
+ AttributeDimList r_dims;
+ EltInArrayList r_dims_array;
+ AttributeDimList w_dims;
+ EltInArrayList w_dims_array;
+ DevErrorListList errors;
+ EltInArrayList errors_array;
+};
+
+struct DevCmdHistory_4
+{
+ TimeValList dates;
+ any value;
+ AttributeDimList dims;
+ EltInArrayList dims_array;
+ DevErrorListList errors;
+ EltInArrayList errors_array;
+ long cmd_type;
+};
+
+typedef sequence<DevAttrHistory> DevAttrHistoryList;
+typedef sequence<DevAttrHistory_3> DevAttrHistoryList_3;
+
+//-------------------------------------------------------------------------
+//
+// For ZMQ event system
+//
+//-------------------------------------------------------------------------
+
+struct ZmqCallInfo
+{
+ long version;
+ unsigned long ctr;
+ string method_name;
+ DevVarCharArray oid;
+ boolean call_is_except;
+};
+
+//-------------------------------------------------------------------------
+//
+// Include the device interface
+//
+//-------------------------------------------------------------------------
+
+
+
+
+
+/**
+ * The fundamental interface for all TANGO objects.
+ * Each Device is a network object which can be accessed locally or via
+ * network.
+ * The network protocol on the wire will be IIOP.
+ * The Device interface implements all the basic functions needed for doing
+ * generic synchronous and asynchronous I/O on a device.
+ * A Device object has data and actions.
+ * Data are represented in the form of Attributes.
+ * Actions are represented in the form of Commands.
+ * The CORBA Device interface offers attributes and methods to access
+ * the attributes and commands.
+ * A client will either use these methods directly from C++ or Java or access
+ * them via a wrapper class.
+ * The Device interface describes only the remote network interface.
+ * Implementation features like threads, command security, priority
+ * etc. are dealt with in server side of the device server model.
+ **/
+
+interface Device
+{
+
+/**
+ * name (readonly) - unique ascii identifier
+ **/
+ readonly attribute string name;
+/**
+ * description (readonly) - general description of device
+ **/
+ readonly attribute string description;
+/**
+ * state (readonly) - device state
+ **/
+ readonly attribute DevState state;
+/**
+ * status (readonly) - device state as ascii string
+ **/
+ readonly attribute string status;
+/**
+ * adm_name (readonly) - administrator device unique ascii identifier
+ **/
+ readonly attribute string adm_name;
+
+/**
+ * execute a command on a device synchronously with
+ * one input parameter and one output parameter
+@param command ascii string e.g. "On"
+@param argin command input parameter e.g. float
+@return command result.
+ **/
+ any command_inout(in string command, in any argin) raises(DevFailed);
+
+
+/**
+ * read the configuration for a variable list of attributes from a device
+@param name list of attribute names to read
+@return list of attribute configurations read
+ **/
+ AttributeConfigList get_attribute_config(in DevVarStringArray names) raises(DevFailed);
+
+
+/**
+ * set the configuration for a variable list of attributes from the device
+@param new_conf list of attribute configuration to be set
+@return nothing
+ **/
+ void set_attribute_config(in AttributeConfigList new_conf) raises(DevFailed);
+
+
+/**
+ * read a variable list of attributes from a device
+@param name list of attribute names to read
+@return list of attribute values read
+ **/
+ AttributeValueList read_attributes(in DevVarStringArray names) raises(DevFailed);
+
+
+
+/**
+ * write a variable list of attributes to a device
+@param values list of attribute values to write
+@return nothing
+ **/
+ void write_attributes(in AttributeValueList values) raises(DevFailed);
+
+/**
+ * ping a device to see if it alive
+ **/
+ void ping() raises(DevFailed);
+
+/**
+ * read list of last N commands executed by clients
+@param number of commands to return
+@return list of command and clients
+ **/
+ DevVarStringArray black_box(in long n) raises(DevFailed);
+
+
+/**
+ * return general information about object e.g. class, type, ...
+@return device info
+ **/
+ DevInfo info() raises(DevFailed);
+
+
+/**
+ * query device to see what commands it supports
+@return list of commands and their types
+ **/
+ DevCmdInfoList command_list_query() raises(DevFailed);
+
+
+/**
+ * query device to see command argument
+@return command and its types
+@param command name
+ **/
+ DevCmdInfo command_query(in string command) raises(DevFailed);
+
+};
+
+//-------------------------------------------------------------------------
+//
+// The Device_2 interface
+//
+//-------------------------------------------------------------------------
+
+
+/**
+ * A new release of the basic Device interface.
+ * This new release has been introduced mainly to support Tango device server
+ * internal polling. Inheritance is used between this new release and the
+ * old one. This release mainly defines a new release of the command_inout and
+ * read_attributes calls with a new parameter. It also add a new call to read
+ * command or attributes result history.
+ **/
+
+interface Device_2: Device
+{
+/**
+ * Execute a command on a device synchronously with
+ * one input parameter and one output parameter
+@param command ascii string e.g. "On"
+@param argin command input parameter e.g. float
+@param source The data source. Used to specify if the command result must be
+read from the polling cache buffer or from the device itself
+@return command result.
+ **/
+ any command_inout_2(in string command,
+ in any argin,
+ in DevSource source) raises(DevFailed);
+
+/**
+ * Read a variable list of attributes from a device
+@param name list of attribute names to read
+@param source The data source. Used to specify if the command result must be
+read from the polling cache buffer or from the device itself
+@return list of attribute values read
+ **/
+ AttributeValueList read_attributes_2(in DevVarStringArray names,
+ in DevSource source) raises(DevFailed);
+
+/**
+ * Read the configuration for a variable list of attributes from a device.
+ * Compared to the Device interface, the attribute configuration has one more
+ * field (The display level)
+@param name list of attribute names to read
+@return list of attribute configurations read
+ **/
+ AttributeConfigList_2 get_attribute_config_2(in DevVarStringArray names) raises(DevFailed);
+
+/**
+ * Query device to see what commands it supports.
+ * Compared to the Device interface, the command configuration has one more
+ * field (The display level)
+@return list of commands and their types
+ **/
+ DevCmdInfoList_2 command_list_query_2() raises(DevFailed);
+
+/**
+ * Query device to see command argument.
+ * Compared to the Device interface, the command configuration has one more
+ * field (The display level)
+@return command and its types
+@param command name
+ **/
+ DevCmdInfo_2 command_query_2(in string command) raises(DevFailed);
+
+/**
+ * Get command history buffer.
+ * Return command result history for polled command
+@param command ascii string e.g. "On"
+@param n The history depth
+@return command history.
+ **/
+ DevCmdHistoryList command_inout_history_2(in string command,
+ in long n) raises (DevFailed);
+
+/**
+ * Get attribute value history buffer.
+ * Return attribute value history for polled attribute
+@param name ascii string
+@param n The history depth
+@return attribute value history.
+ **/
+ DevAttrHistoryList read_attribute_history_2(in string name,
+ in long n) raises (DevFailed);
+};
+
+//-------------------------------------------------------------------------
+//
+// The Device_3 interface (corresponding to Tango V5)
+//
+//-------------------------------------------------------------------------
+
+interface Device_3: Device_2
+{
+
+/**
+ * Read a variable list of attributes from a device
+@param name list of attribute names to read
+@param source The data source. Used to specify if the command result must be
+read from the polling cache buffer or from the device itself
+@return list of attribute values read
+ **/
+ AttributeValueList_3 read_attributes_3(in DevVarStringArray names,
+ in DevSource source) raises(DevFailed);
+
+/**
+ * write a variable list of attributes to a device
+@param values list of attribute values to write
+@return nothing
+ **/
+ void write_attributes_3(in AttributeValueList values) raises(DevFailed,MultiDevFailed);
+/**
+ * Get attribute value history buffer.
+ * Return attribute value history for polled attribute
+@param name ascii string
+@param n The history depth
+@return attribute value history.
+ **/
+ DevAttrHistoryList_3 read_attribute_history_3(in string name,
+ in long n) raises (DevFailed);
+
+/**
+ * return general information about object e.g. class, type, ...
+@return device info
+ **/
+ DevInfo_3 info_3() raises(DevFailed);
+
+/**
+ * Read the configuration for a variable list of attributes from a device.
+ * Compared to the Device interface, the attribute configuration has one more
+ * field (The display level)
+@param name list of attribute names to read
+@return list of attribute configurations read
+ **/
+ AttributeConfigList_3 get_attribute_config_3(in DevVarStringArray names) raises(DevFailed);
+
+/**
+ * set the configuration for a variable list of attributes from the device
+@param new_conf list of attribute configuration to be set
+@return nothing
+ **/
+ void set_attribute_config_3(in AttributeConfigList_3 new_conf) raises(DevFailed);
+};
+
+//-------------------------------------------------------------------------
+//
+// The Device_4 interface (corresponding to Tango V7)
+//
+//-------------------------------------------------------------------------
+
+interface Device_4: Device_3
+{
+/**
+ * Get attribute value history buffer.
+ * Return attribute value history for polled attribute
+@param name ascii string
+@param n The history depth
+@return attribute value history.
+ **/
+ DevAttrHistory_4 read_attribute_history_4(in string name,
+ in long n) raises (DevFailed);
+
+/**
+ * Get command history buffer.
+ * Return command result history for polled command
+@param command ascii string e.g. "On"
+@param n The history depth
+@return command history.
+ **/
+ DevCmdHistory_4 command_inout_history_4(in string command,
+ in long n) raises (DevFailed);
+
+/**
+ * Execute a command on a device synchronously with
+ * one input parameter and one output parameter
+@param command ascii string e.g. "On"
+@param argin command input parameter e.g. float
+@param source The data source. Used to specify if the command result must be
+read from the polling cache buffer or from the device itself
+@param cl_ident The client identificator
+@return command result.
+ **/
+ any command_inout_4(in string command,
+ in any argin,
+ in DevSource source,
+ in ClntIdent cl_ident) raises(DevFailed);
+
+/**
+ * Read a variable list of attributes from a device
+@param name list of attribute names to read
+@param source The data source. Used to specify if the command result must be
+read from the polling cache buffer or from the device itself
+@return list of attribute values read
+ **/
+ AttributeValueList_4 read_attributes_4(in DevVarStringArray names,
+ in DevSource source,in ClntIdent cl_ident) raises(DevFailed);
+
+/**
+ * write a variable list of attributes to a device
+@param values list of attribute values to write
+@return nothing
+ **/
+ void write_attributes_4(in AttributeValueList_4 values,in ClntIdent cl_ident) raises(DevFailed,MultiDevFailed);
+
+/**
+ * set the configuration for a variable list of attributes from the device
+@param new_conf list of attribute configuration to be set
+@return nothing
+ **/
+ void set_attribute_config_4(in AttributeConfigList_3 new_conf,in ClntIdent cl_ident) raises(DevFailed);
+
+/**
+ * Write then Read device attribute(s)
+@param values List of attribute values to be written
+@param cl_ident The client identificator
+@return Attributes value read
+ **/
+ AttributeValueList_4 write_read_attributes_4(in AttributeValueList_4 values,in ClntIdent cl_ident)
+ raises(DevFailed,MultiDevFailed);
+};
+
+//-------------------------------------------------------------------------
+//
+// The Device_5 interface (corresponding to Tango V9)
+//
+//-------------------------------------------------------------------------
+
+interface Device_5: Device_4
+{
+/**
+ * Read the configuration for a variable list of attributes from a device.
+ * Compared to the Device interface, the attribute configuration has one more
+ * field (The display level)
+@param name list of attribute names to read
+@return list of attribute configurations read
+ **/
+ AttributeConfigList_5 get_attribute_config_5(in DevVarStringArray names) raises(DevFailed);
+
+/**
+ * set the configuration for a variable list of attributes from the device
+@param new_conf list of attribute configuration to be set
+@return nothing
+ **/
+ void set_attribute_config_5(in AttributeConfigList_5 new_conf,in ClntIdent cl_ident) raises(DevFailed);
+
+/**
+ * Read a variable list of attributes from a device
+@param name list of attribute names to read
+@param source The data source. Used to specify if the command result must be
+read from the polling cache buffer or from the device itself
+@return list of attribute values read
+ **/
+ AttributeValueList_5 read_attributes_5(in DevVarStringArray names,
+ in DevSource source,in ClntIdent cl_ident) raises(DevFailed);
+
+/**
+ * Write then Read device attribute(s)
+@param values List of attribute values to be written
+@param cl_ident The client identificator
+@return Attributes value read
+ **/
+ AttributeValueList_5 write_read_attributes_5(in AttributeValueList_4 values,in DevVarStringArray r_names,in ClntIdent cl_ident)
+ raises(DevFailed,MultiDevFailed);
+
+/**
+ * Get attribute value history buffer.
+ * Return attribute value history for polled attribute
+@param name ascii string
+@param n The history depth
+@return attribute value history.
+ **/
+ DevAttrHistory_5 read_attribute_history_5(in string name,
+ in long n) raises (DevFailed);
+
+/**
+ * Read the configuration for a variable list of pipes from a device.
+@param names list of pipe names to read
+@return list of pipe configurations read
+ **/
+ PipeConfigList get_pipe_config_5(in DevVarStringArray names) raises(DevFailed);
+
+/**
+ * set the configuration for a variable list of pipes from the device
+@param new_conf list of pipe configuration to be set
+@return nothing
+ **/
+ void set_pipe_config_5(in PipeConfigList new_conf,in ClntIdent cl_ident) raises(DevFailed);
+
+/**
+ * Read a pipe from a device
+@param name pipe name
+@param cl_ident client identifier
+@return pipe value
+ **/
+ DevPipeData read_pipe_5(in string name,in ClntIdent cl_ident) raises(DevFailed);
+
+/**
+ * write a pipe to a device
+@param value new pipe value
+@param cl_ident client identifier
+@return nothing
+ **/
+ void write_pipe_5(in DevPipeData value,in ClntIdent cl_ident) raises(DevFailed);
+
+/**
+ * write then read a pipe to a device
+@param value new pipe value
+@param cl_ident client identifier
+@return pipe value
+ **/
+ DevPipeData write_read_pipe_5(in DevPipeData value,in ClntIdent cl_ident) raises(DevFailed);
+
+};
+
+}; /* module tango */