//File: DAISDAIO.idl #ifndef _DAIS_DAIO_IDL #define _DAIS_DAIO_IDL #pragma prefix "omg.org" #include module DAIS { module DataAccess { module IO { enum DataSource { DS_CACHE, DS_DEVICE }; struct ItemState { SimpleValue value; DateTime time_stamp; Quality dais_quality; ClientItemHandle client_handle; }; typedef sequence ItemStates; struct ItemUpdate { ServerItemHandle server_handle; SimpleValue value; }; typedef sequence ItemUpdates; interface SyncIO { ItemStates sync_read ( in DataSource data_source, in ServerItemHandles server_handles, out ItemErrors errors ); ItemErrors sync_write ( in ItemUpdates updates ); }; typedef unsigned long CancelID; interface AsyncIO { exception NotConnected{string reason;}; exception InvalidCancelID{string reason;}; exception NotActive{string reason;}; CancelID async_read ( in ServerItemHandles server_handles, in DataSource data_source, in unsigned long transaction_id ) raises (NotConnected, NotActive); CancelID async_write ( in ItemUpdates updates, in unsigned long transaction_id ) raises (NotConnected); CancelID refresh ( in DataSource data_source, in unsigned long transaction_id ) raises (NotConnected, NotActive); void cancel ( in CancelID cancel_id ) raises (InvalidCancelID); attribute boolean enabled; }; interface Callback { void on_data_change ( in unsigned long transaction_id, in boolean all_quality_good, in ItemStates states ); void on_read_complete ( in unsigned long transaction_id, in boolean all_quality_good, in ItemStates states, in ItemErrors errors ); void on_write_complete ( in unsigned long transaction_id, in ItemErrors errors ); void on_cancel_complete ( in unsigned long transaction_id ); }; interface ConnectionPoint { attribute Callback cllbck; };};};}; #endif // _DAIS_DAIO_IDL