ccs.idl

来自「一套Orbacus4.X下有关Corba的学习例程」· IDL 代码 · 共 83 行

IDL
83
字号
#pragma prefix "acme.com"module CCS {    typedef unsigned long   AssetType;    typedef string          ModelType;    typedef short           TempType;    typedef string          LocType;    interface Thermometer {        readonly attribute ModelType    model;        readonly attribute AssetType    asset_num;        readonly attribute TempType     temperature;                 attribute LocType      location;        void                            destroy();    };    interface Thermostat : Thermometer {        struct BtData {            TempType    requested;            TempType    min_permitted;            TempType    max_permitted;            string      error_msg;        };        exception BadTemp { BtData details; };        TempType    get_nominal();        TempType    set_nominal(in TempType new_temp)                        raises(BadTemp);    };    interface Controller {        exception DuplicateAsset {};        Thermometer create_thermometer(                        in AssetType    anum,                        in LocType      loc                    ) raises(DuplicateAsset);        Thermostat  create_thermostat(                        in AssetType    anum,                        in LocType      loc,                        in TempType     temp                    ) raises(DuplicateAsset, Thermostat::BadTemp);        typedef sequence<Thermometer>   ThermometerSeq;        typedef sequence<Thermostat>    ThermostatSeq;        enum SearchCriterion { ASSET, LOCATION, MODEL };        union KeyType switch(SearchCriterion) {        case ASSET:            AssetType   asset_num;        case LOCATION:            LocType     loc;        case MODEL:            ModelType   model_desc;        };        struct SearchType {            KeyType     key;            Thermometer device;        };        typedef sequence<SearchType>    SearchSeq;        struct ErrorDetails {            Thermostat          tmstat_ref;            Thermostat::BtData  info;        };        typedef sequence<ErrorDetails>  ErrSeq;        exception EChange {            ErrSeq  errors;        };        ThermometerSeq  list();        void            find(inout SearchSeq slist);        void            change(                            in ThermostatSeq tlist, in short delta                        ) raises(EChange);            };};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?