(* ---------------------------------------------------------------------- *) (* Common Object Service *) (* ---------------------------------------------------------------------- *) (* ICosEventChannelAdmin - Interface Module for the Common Object Service "Event Channel Administration Services" *) (* ---------------------------------------------------------------------- *) (* Symbol prefixing: I - Interface Module C - Class Interface T - Non-class Type E - Enumeration Type k - constant p - parameter to a method a - variable *) (* ---------------------------------------------------------------------- *) INTERFACE ICosEventChannelAdmin IMPORTS ICosEventComm END; TYPE TString = OPTIONAL ilu.CString; TYPE TObjectSBH = OPTIONAL ilu.CString; TYPE TAny = TString; (* ---------------------------------------------------------------------- *) (* Exception Definitions *) (* ---------------------------------------------------------------------- *) EXCEPTION AlreadyConnected "Already Connected"; EXCEPTION TypeError "Type Error"; (* ---------------------------------------------------------------------- *) (* Proxy Channel Event Services *) (* ---------------------------------------------------------------------- *) TYPE CProxyPushConsumer = OBJECT SUPERTYPES ICosEventComm.CPushConsumer END METHODS ConnectPushSupplier(pSupplier : ICosEventComm.CPushSupplier) RAISES AlreadyConnected END END; TYPE CProxyPullSupplier = OBJECT SUPERTYPES ICosEventComm.CPullSupplier END METHODS ConnectPullConsumer(pConsumer : ICosEventComm.CPullConsumer) RAISES AlreadyConnected END END; TYPE CProxyPullConsumer = OBJECT SUPERTYPES ICosEventComm.CPullConsumer END METHODS ConnectPullSupplier(pSupplier : ICosEventComm.CPullSupplier) RAISES AlreadyConnected, TypeError END END; TYPE CProxyPushSupplier = OBJECT SUPERTYPES ICosEventComm.CPushSupplier END METHODS ConnectPushConsumer(pConsumer : ICosEventComm.CPushConsumer) RAISES AlreadyConnected, TypeError END END; (* ---------------------------------------------------------------------- *) (* Event Channel Admin Objects *) (* ---------------------------------------------------------------------- *) TYPE CConsumerAdmin = OBJECT METHODS ObtainPushSupplier() : CProxyPushSupplier, ObtainPullSupplier() : CProxyPullSupplier END; TYPE CSupplierAdmin = OBJECT METHODS ObtainPushConsumer() : CProxyPushConsumer, ObtainPullConsumer() : CProxyPullConsumer END; TYPE CEventChannel = OBJECT METHODS ForConsumers() : CConsumerAdmin, ForSuppliers() : CSupplierAdmin, Destroy() END;