#ifndef _OMG_ORG_COS_LB_ #define _OMG_ORG_COS_LB_ //Lightweight Load Balancing Specification, v1.0 - OMG IDL Summary File //Object Management Group, Inc. //Copyright © 2009, Selex Sistemi Integrati //The companies listed above have granted to the Object Management Group, Inc. //(OMG) a nonexclusive, royalty-free, paid up, worldwide license to copy and //distribute this document and to modify this document and distribute copies of //the modified version. Each of the copyright holders listed above has agreed //that no person shall be deemed to have infringed the copyright in the included //material of any such copyright holder by reason of having used the //specification set forth herein or having conformed any computer software to //the specification. // //File: LWLoadBalancing.idl #include #pragma prefix "omg.org" module CosLB { struct MemberInfo { Object the_reference; PortableGroup::Location the_location; }; typedef sequence MemberInfoSeq; interface LBGroupManager : PortableGroup::GenericFactory, PortableGroup::ObjectGroupManager { }; interface Strategy { readonly attribute string name; Object next_member(in PortableGroup::ObjectGroup object_group); }; exception UnknownStrategy {}; exception StrategyAlreadyRegistered {}; exception InvalidObjectGroup {}; interface LoadBalancingService { void register_strategy(in Strategy s) raises(StrategyAlreadyRegistered); void unregister_strategy(in string name) raises(UnknownStrategy); Strategy get_strategy(in string name) raises(UnknownStrategy); Strategy get_group_strategy(in ::PortableGroup::ObjectGroup object_group) raises(InvalidObjectGroup); ::PortableGroup::ObjectGroup create_lb_group(in MemberInfoSeq members, in PortableGroup::ObjectGroupId object_group_id, in string type_id, in string lb_domain_id, in string lb_policy, inout PortableGroup::ObjectGroupRefVersion object_group_ref_version) raises(PortableGroup::ObjectNotCreated); }; }; #endif /* _OMG_ORG_COS_LB_ */