wireshark/idl/tango.idl

1173 lines
28 KiB
Plaintext

/**
* 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 */