diff options
Diffstat (limited to 'lib/cosEventDomain')
38 files changed, 0 insertions, 5439 deletions
diff --git a/lib/cosEventDomain/AUTHORS b/lib/cosEventDomain/AUTHORS deleted file mode 100644 index 6d03df4c5a..0000000000 --- a/lib/cosEventDomain/AUTHORS +++ /dev/null @@ -1,4 +0,0 @@ -Original Authors: -Niclas Eklund - -Contributors: diff --git a/lib/cosEventDomain/Makefile b/lib/cosEventDomain/Makefile deleted file mode 100644 index 8e8ae7e4da..0000000000 --- a/lib/cosEventDomain/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -# -# %CopyrightBegin% -# -# Copyright Ericsson AB 2001-2016. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# %CopyrightEnd% -# -# -include $(ERL_TOP)/make/target.mk -include $(ERL_TOP)/make/$(TARGET)/otp.mk - -# ---------------------------------------------------- -# Application version -# ---------------------------------------------------- -include vsn.mk -VSN=$(COSEVENTDOMAIN_VSN) - -# ---------------------------------------------------- -# Common Macros -# ---------------------------------------------------- - -SUB_DIRECTORIES = src doc/src - -SPECIAL_TARGETS = - -# ---------------------------------------------------- -# Default Subdir Targets -# ---------------------------------------------------- -include $(ERL_TOP)/make/otp_subdir.mk - diff --git a/lib/cosEventDomain/doc/html/.gitignore b/lib/cosEventDomain/doc/html/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 --- a/lib/cosEventDomain/doc/html/.gitignore +++ /dev/null diff --git a/lib/cosEventDomain/doc/man3/.gitignore b/lib/cosEventDomain/doc/man3/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 --- a/lib/cosEventDomain/doc/man3/.gitignore +++ /dev/null diff --git a/lib/cosEventDomain/doc/man6/.gitignore b/lib/cosEventDomain/doc/man6/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 --- a/lib/cosEventDomain/doc/man6/.gitignore +++ /dev/null diff --git a/lib/cosEventDomain/doc/pdf/.gitignore b/lib/cosEventDomain/doc/pdf/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 --- a/lib/cosEventDomain/doc/pdf/.gitignore +++ /dev/null diff --git a/lib/cosEventDomain/doc/src/CosEventDomainAdmin.xml b/lib/cosEventDomain/doc/src/CosEventDomainAdmin.xml deleted file mode 100644 index 6931059e67..0000000000 --- a/lib/cosEventDomain/doc/src/CosEventDomainAdmin.xml +++ /dev/null @@ -1,93 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE erlref SYSTEM "erlref.dtd"> - -<erlref> - <header> - <copyright> - <year>2002</year> - <year>2016</year> - <holder>Ericsson AB, All Rights Reserved</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - The Initial Developer of the Original Code is Ericsson AB. - </legalnotice> - - <title>CosEventDomainAdmin</title> - <prepared>Niclas Eklund</prepared> - <responsible>Niclas Eklund</responsible> - <docno></docno> - <approved>Niclas Eklund</approved> - <checked></checked> - <date>2001-08-20</date> - <rev>PA1</rev> - </header> - <module>CosEventDomainAdmin</module> - <modulesummary>This module export functions which return QoS and Admin Properties constants.</modulesummary> - <description> - <p>To get access to all definitions include necessary <c><![CDATA[hrl]]></c> files by using:<br></br><c><![CDATA[-include_lib("cosEventDomain/include/*.hrl").]]></c></p> - </description> - <funcs> - <func> - <name>'CycleDetection'() -> string()</name> - <fsummary>Return the CycleDetection identifier required when defining QoS Properties</fsummary> - <desc> - <p>This function returns the CycleDetection identifier; required when - defining QoS Properties.</p> - </desc> - </func> - <func> - <name>'AuthorizeCycles'() -> short()</name> - <fsummary>Return the AuthorizeCycles value; required when defining QoS Properties</fsummary> - <desc> - <p>This function returns the AuthorizeCycles value; required when - defining QoS Properties.</p> - </desc> - </func> - <func> - <name>'ForbidCycles'() -> short()</name> - <fsummary>Return the ForbidCycles value; required when defining QoS Properties</fsummary> - <desc> - <p>This function returns the ForbidCycles value; required when - defining QoS Properties.</p> - </desc> - </func> - <func> - <name>'DiamondDetection'() -> string()</name> - <fsummary>Return the DiamondDetection identifier required when defining QoS Properties</fsummary> - <desc> - <p>This function returns the DiamondDetection identifier; required when - defining QoS Properties.</p> - </desc> - </func> - <func> - <name>'AuthorizeDiamonds'() -> short()</name> - <fsummary>Return the AuthorizeDiamonds value; required when defining QoS Properties</fsummary> - <desc> - <p>This function returns the AuthorizeDiamonds value; required when - defining QoS Properties.</p> - </desc> - </func> - <func> - <name>'ForbidDiamonds'() -> short()</name> - <fsummary>Return the ForbidDiamonds value; required when defining QoS Properties</fsummary> - <desc> - <p>This function returns the ForbidDiamonds value; required when - defining QoS Properties.</p> - </desc> - </func> - </funcs> - -</erlref> - diff --git a/lib/cosEventDomain/doc/src/CosEventDomainAdmin_EventDomain.xml b/lib/cosEventDomain/doc/src/CosEventDomainAdmin_EventDomain.xml deleted file mode 100644 index e99c8d380b..0000000000 --- a/lib/cosEventDomain/doc/src/CosEventDomainAdmin_EventDomain.xml +++ /dev/null @@ -1,627 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE erlref SYSTEM "erlref.dtd"> - -<erlref> - <header> - <copyright> - <year>2001</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>CosEventDomainAdmin_EventDomain</title> - <prepared></prepared> - <docno></docno> - <approved>Niclas Eklund</approved> - <checked></checked> - <date>2001-08-20</date> - <rev>PA1</rev> - </header> - <module>CosEventDomainAdmin_EventDomain</module> - <modulesummary>This module implements the Event Domain interface.</modulesummary> - <description> - <p>To get access to all definitions include necessary <c><![CDATA[hrl]]></c> files by using:<br></br><c><![CDATA[-include_lib("cosEventDomain/include/*.hrl").]]></c></p> - <p>This module also exports the functions described in:</p> - <list type="bulleted"> - <item><em>CosNotification_QoSAdmin</em></item> - <item><em>CosNotification_AdminPropertiesAdmin</em></item> - </list> - </description> - <funcs> - <func> - <name>add_channel(EventDomain, Channel) -> MemberID</name> - <fsummary>Add a new channel to the EventDomain</fsummary> - <type> - <v>EventDomain = Channel = #objref</v> - <v>MemberID = long()</v> - </type> - <desc> - <p>Adds the given channel to the target domain. The channel - must be a <c><![CDATA[CosNotifyChannelAdmin::EventChannel]]></c>.</p> - </desc> - </func> - <func> - <name>get_all_channels(EventDomain) -> MemberIDSeq</name> - <fsummary>Return all channel id's associated with target object</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>MemberIDSeq = [long()]</v> - </type> - <desc> - <p>Returns a a sequence of all channels associated with - the target object.</p> - </desc> - </func> - <func> - <name>get_channel(EventDomain, MemberID) -> Reply</name> - <fsummary>Return the channel associated with the given id</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>MemberID = long()</v> - <v>Reply = Channel | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - <v>Channel = #objref</v> - </type> - <desc> - <p>If the target domain have a <c><![CDATA[CosNotifyChannelAdmin::EventChannel]]></c> - represented by the given id this channel is returned. Otherwise, - an exception is raised.</p> - </desc> - </func> - <func> - <name>remove_channel(EventDomain, MemberID) -> Reply</name> - <fsummary>Remove the channel associated with the given id and remove all connections of that channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>MemberID = long()</v> - <v>Reply = ok | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a <c><![CDATA[CosNotifyChannelAdmin::EventChannel]]></c> with the - <c><![CDATA[MemberID]]></c> exists it will removed and all its <c><![CDATA[Connections]]></c> - terminated. Otherwise an exception is raised.</p> - </desc> - </func> - <func> - <name>add_connection(EventDomain, Connection) -> Reply</name> - <fsummary>If possible, setup a connection described by the <c><![CDATA[#'CosEventDomainAdmin_Connection'{}]]></c>struct</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Connection = 'CosEventDomainAdmin_Connection'{supplier_id=MemberID, consumer_id=MemberID, ctype=Type, notification_style=Style}</v> - <v>MemberID = long()</v> - <v>Type = 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT'</v> - <v>Style = 'Pull' | 'Push'</v> - <v>Reply = ConnectionID | {'EXCEPTION', Exc}</v> - <v>ConnectionID = long()</v> - <v>Exc = #'CosNotifyChannelAdmin_ChannelNotFound'{} | #'CosNotifyChannelAdmin_TypeError'{} | #'CosEventDomainAdmin_AlreadyExists'{} | #'CosEventDomainAdmin_DiamondCreationForbidden'{diam=RouteSeq} | #'CosEventDomainAdmin_CycleCreationForbidden'{cyc=MemberIDSeq}</v> - <v>RouteSeq = [MemberIDSeq]</v> - <v>MemberIDSeq = [long()]</v> - </type> - <desc> - <p>The Connection parameter must contain valid data to enable - the target domain to setup a connection between two channels. - The struct members <c><![CDATA[supplier_id]]></c> and <c><![CDATA[consumer_id]]></c> - determines which channel should produce and consume events. - which type of events and if the supplier should push or the - consumer pull events is determined by <c><![CDATA[ctype]]></c> and - <c><![CDATA[notification_style]]></c> respectively.</p> - <p>If the target domain is not able to setup the connection - the appropriate exception is raised.</p> - </desc> - </func> - <func> - <name>get_all_connections(EventDomain) -> ConnectionIDSeq</name> - <fsummary>Return a sequence of all connections within the target domain</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>ConnectionIDSeq = [long()]</v> - </type> - <desc> - <p>This operation returns a sequence of all connections within - the target domain.</p> - </desc> - </func> - <func> - <name>get_connection(EventDomain, ConnectionID) -> Reply</name> - <fsummary>Return a <c><![CDATA[#'CosEventDomainAdmin_Connection'{}]]></c>struct describing the connection associated with the given id within the target domain</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>ConnectionID = long()</v> - <v>Reply = Connection | {'EXCEPTION', #'CosEventDomainAdmin_ConnectionNotFound'{}}</v> - <v>Connection = 'CosEventDomainAdmin_Connection'{supplier_id=MemberID, consumer_id=MemberID, ctype=Type, notification_style=Style}</v> - <v>MemberID = long()</v> - <v>Type = 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT'</v> - <v>Style = 'Pull' | 'Push'</v> - </type> - <desc> - <p>If a connection identified by the given id exists within the - target domain, a <c><![CDATA[#'CosEventDomainAdmin_Connection'{}]]></c> which - describe the connection is returned. Otherwise, an exception - is raised.</p> - </desc> - </func> - <func> - <name>remove_connection(EventDomain, ConnectionID) -> Reply</name> - <fsummary>Remove the connection identified by the given id from the target domain</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>ConnectionID = long()</v> - <v>Reply = ok | {'EXCEPTION', #'CosEventDomainAdmin_ConnectionNotFound'{}}</v> - </type> - <desc> - <p>If the supplied connection id exists, the connection the - id represents is terminated. Otherwise, an exception is raised.</p> - </desc> - </func> - <func> - <name>get_offer_channels(EventDomain, MemberID) -> Reply</name> - <fsummary>Return all id's of the channels which produce events received by the channel identified by the given id</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>MemberID = long()</v> - <v>Reply = MemberIDSeq | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>This operation returns a sequence, containing the member id's - of all channels within the target domain which will supply events - to the channel identified by the given id. But, if no such - id exists in this domain, an exception is raised.</p> - </desc> - </func> - <func> - <name>get_subscription_channels(EventDomain, MemberID) -> Reply</name> - <fsummary>Return all id's of the channels which consume events supplied by the channel identified by the given id</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Reply = MemberIDSeq | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>This operations behaves like <c><![CDATA[get_subscription_channels]]></c>; - the difference is that the id's returned identifies channels - which will consume events supplied by the channel associated - with the given id.</p> - </desc> - </func> - <func> - <name>destroy(EventDomain) -> ok</name> - <fsummary>Destroy the event domain and all connections within it</fsummary> - <type> - <v>EventDomain = #objref</v> - </type> - <desc> - <p>Calling this operation will terminate all connections - within the target domain. The domain will terminate but - all channels will not be affected.</p> - </desc> - </func> - <func> - <name>get_cycles(EventDomain) -> RouteSeq</name> - <fsummary>Return a list of all cycles which exists within the target domain</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>RouteSeq = [MemberIDSeq]</v> - <v>MemberIDSeq = [long()]</v> - </type> - <desc> - <p>Returns a list of all cycles within the target domain.</p> - </desc> - </func> - <func> - <name>get_diamonds(EventDomain) -> DiamondSeq</name> - <fsummary>Return a list of all diamonds which exists within the target domain</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>DiamondSeq = [RouteSeq]</v> - <v>RouteSeq = [MemberIDSeq]</v> - <v>MemberIDSeq = [long()]</v> - </type> - <desc> - <p>Returns a list of all diamonds within the target domain</p> - </desc> - </func> - <func> - <name>set_default_consumer_channel(EventDomain, MemberID) -> Reply</name> - <fsummary>Set the channel represented by the given id as default for supplier clients</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Reply = MemberID | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - <v>MemberID = long()</v> - </type> - <desc> - <p>If the given id represents a channel within the target domain, - this channel will be used when connection a supplier client - without specifying a certain channel. If no such channel exists - an exceptions is raised.</p> - </desc> - </func> - <func> - <name>set_default_supplier_channel(EventDomain, MemberID) -> Reply</name> - <fsummary>Set the channel represented by the given id as default for supplier clients</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Reply = MemberID | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - <v>MemberID = long()</v> - </type> - <desc> - <p>If the given id represents a channel within the target domain, - this channel will be used when connection a consumer client - without specifying a certain channel. If no such channel exists - an exceptions is raised.</p> - </desc> - </func> - <func> - <name>connect_push_consumer(EventDomain, Consumer) -> Reply</name> - <fsummary>Connect the PushConsumer to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosEventComm::PushConsumer</v> - <v>Reply = CosNotifyChannelAdmin::ProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - PushConsumer to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_pull_consumer(EventDomain, Consumer) -> Reply</name> - <fsummary>Connect the PullConsumer to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosEventComm::PullConsumer</v> - <v>Reply = CosNotifyChannelAdmin::ProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - PullConsumer to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_push_supplier(EventDomain, Supplier) -> Reply</name> - <fsummary>Connect the PushSupplier to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosEventComm::PushSupplier</v> - <v>Reply = CosNotifyChannelAdmin::ProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - PushSupplier to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_pull_supplier(EventDomain, Supplier) -> Reply</name> - <fsummary>Connect the PullSupplier to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosEventComm::PullSupplier</v> - <v>Reply = CosNotifyChannelAdmin::ProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - PullSupplier to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_structured_push_consumer(EventDomain, Consumer) -> Reply</name> - <fsummary>Connect the StructuredPushConsumer to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosNotifyComm::StructuredPushConsumer</v> - <v>Reply = CosNotifyChannelAdmin::StructuredProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - StructuredPushConsumer to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_structured_pull_consumer(EventDomain, Consumer) -> Reply</name> - <fsummary>Connect the StructuredPullConsumer to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosNotifyComm::StructuredPullConsumer</v> - <v>Reply = CosNotifyChannelAdmin::StructuredProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - StructuredPullConsumer to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_structured_push_supplier(EventDomain, Supplier) -> Reply</name> - <fsummary>Connect the StructuredPushSupplier to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosNotifyComm::StructuredPushSupplier</v> - <v>Reply = CosNotifyChannelAdmin::StructuredProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - StructuredPushSupplier to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_structured_pull_supplier(EventDomain, Supplier) -> Reply</name> - <fsummary>Connect the StructuredPullSupplier to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosNotifyComm::StructuredPullSupplier</v> - <v>Reply = CosNotifyChannelAdmin::StructuredProxyPullConsume | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - StructuredPullSupplier to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_sequence_push_consumer(EventDomain, Consumer) -> Reply</name> - <fsummary>Connect the SequencePushConsumer to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosNotifyComm::SequencePushConsumer</v> - <v>Reply = CosNotifyChannelAdmin::SequenceProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - SequencePushConsumer to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_sequence_pull_consumer(EventDomain, Consumer) -> Reply</name> - <fsummary>Connect the SequencePullConsumer to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosNotifyComm::SequencePullConsumer</v> - <v>Reply = CosNotifyChannelAdmin::SequenceProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - SequencePullConsumer to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_sequence_push_supplier(EventDomain, Supplier) -> Reply</name> - <fsummary>Connect the SequencePushSupplier to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosNotifyComm::SequencePushSupplier</v> - <v>Reply = CosNotifyChannelAdmin::SequenceProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - SequencePushSupplier to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_sequence_pull_supplier(EventDomain, Supplier) -> Reply</name> - <fsummary>Connect the SequencePullSupplier to the default Channel</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosNotifyComm::SequencePullSupplier</v> - <v>Reply = CosNotifyChannelAdmin::SequenceProxyPullConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a default Channel have been set, this operation connects the given - SequencePullSupplier to it. Otherwise, the - <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> exception is raised.</p> - </desc> - </func> - <func> - <name>connect_push_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply</name> - <fsummary>Connect the PushConsumer to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosEventComm::PushConsumer</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::ProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given PushConsumer - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_pull_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply</name> - <fsummary>Connect the PullConsumer to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosEventComm::PullConsumer</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::ProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given PullConsumer - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_push_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply</name> - <fsummary>Connect the PushSupplier to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosEventComm::PushSupplier</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::ProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given PushSupplier - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_pull_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply</name> - <fsummary>Connect the PullSupplier to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosEventComm::PullSupplier</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::ProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given PullSupplier - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_structured_push_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply</name> - <fsummary>Connect the StructuredPushConsumer to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosNotifyComm::StructuredPushConsumer</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::StructuredProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given StructuredPushConsumer - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_structured_pull_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply</name> - <fsummary>Connect the StructuredPullConsumer to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosNotifyComm::StructuredPullConsumer</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::StructuredProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given StructuredPullConsumer - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_structured_push_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply</name> - <fsummary>Connect the StructuredPushSupplier to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosNotifyComm::StructuredPushSupplier</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::StructuredProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given StructuredPushSupplier - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_structured_pull_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply</name> - <fsummary>Connect the StructuredPullSupplier to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosNotifyComm::StructuredPullSupplier</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::StructuredProxyPullConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given StructuredPullSupplier - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_sequence_push_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply</name> - <fsummary>Connect the SequencePushConsumer to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosNotifyComm::SequencePushConsumer</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::SequenceProxyPushSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given SequencePushConsumer - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_sequence_pull_consumer_with_id(EventDomain, Consumer, MemberID) -> Reply</name> - <fsummary>Connect the SequencePullConsumer to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Consumer = CosNotifyComm::SequencePullConsumer</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::SequenceProxyPullSupplier | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given SequencePullConsumer - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_sequence_push_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply</name> - <fsummary>Connect the SequencePushSupplier to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosNotifyComm::SequencePushSupplier</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::SequenceProxyPushConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given SequencePushSupplier - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - <func> - <name>connect_sequence_pull_supplier_with_id(EventDomain, Supplier, MemberID) -> Reply</name> - <fsummary>Connect the SequencePullSupplier to the Channel with the given MemberID</fsummary> - <type> - <v>EventDomain = #objref</v> - <v>Supplier = CosNotifyComm::SequencePullSupplier</v> - <v>MemberID = long()</v> - <v>Reply = CosNotifyChannelAdmin::SequenceProxyPullConsumer | {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}}</v> - </type> - <desc> - <p>If a Channel associated with the given MemberID exists within the - target Domain, this operation connects the given SequencePullSupplier - to it. Otherwise, the <c><![CDATA[#'CosNotifyChannelAdmin_ChannelNotFound'{}]]></c> - exception is raised.</p> - </desc> - </func> - </funcs> - -</erlref> - diff --git a/lib/cosEventDomain/doc/src/CosEventDomainAdmin_EventDomainFactory.xml b/lib/cosEventDomain/doc/src/CosEventDomainAdmin_EventDomainFactory.xml deleted file mode 100644 index 602e0e5fb0..0000000000 --- a/lib/cosEventDomain/doc/src/CosEventDomainAdmin_EventDomainFactory.xml +++ /dev/null @@ -1,88 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE erlref SYSTEM "erlref.dtd"> - -<erlref> - <header> - <copyright> - <year>2001</year> - <year>2016</year> - <holder>Ericsson AB, All Rights Reserved</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - The Initial Developer of the Original Code is Ericsson AB. - </legalnotice> - - <title>CosEventDomainAdmin_EventDomainFactory</title> - <prepared>Niclas Eklund</prepared> - <responsible>Niclas Eklund</responsible> - <docno></docno> - <approved>Niclas Eklund</approved> - <checked></checked> - <date>2001-08-20</date> - <rev>PA1</rev> - </header> - <module>CosEventDomainAdmin_EventDomainFactory</module> - <modulesummary>This module implements an Event Domain Factory interface, which is used to create new Event Domain instances.</modulesummary> - <description> - <p>To get access to all definitions include necessary <c><![CDATA[hrl]]></c> files by using:<br></br><c><![CDATA[-include_lib("cosEventDomain/include/*.hrl").]]></c></p> - </description> - <funcs> - <func> - <name>create_event_domain(Factory, QoS, Admin) -> Reply</name> - <fsummary>Create a new ConsumerAdmin object</fsummary> - <type> - <v>Factory = #objref</v> - <v>QoS = CosNotification::QoSProperties</v> - <v>Admin = CosNotification::AdminProperties</v> - <v>Reply = {EventDomain, DomainID} | {'EXCEPTION', #'CosNotification_UnsupportedQoS'{}} | {'EXCEPTION', #'CosNotification_UnsupportedAdmin'{}}</v> - <v>EventDomain = #objref</v> - </type> - <desc> - <p>To create a new EventDomain this operation is used. If it is not - possible to support the given <c><![CDATA[QoSProperties]]></c> or <c><![CDATA[AdminProperties]]></c> - an exception is raised, which list the properties not supported. For more - information see the <c><![CDATA[cosNotification]]></c> user's guide.</p> - </desc> - </func> - <func> - <name>get_all_domains(Factory) -> DomainIDSeq</name> - <fsummary>Return a DomainID sequence of all domains associated with the target object</fsummary> - <type> - <v>Factory = #objref</v> - <v>DomainIDSeq = [long()]</v> - </type> - <desc> - <p>This function returns a DomainID sequence of all domains associated with the - target object.</p> - </desc> - </func> - <func> - <name>get_event_domain(Factory, DomainID) -> Reply</name> - <fsummary>Return the domain associated with the given id</fsummary> - <type> - <v>Factory = #objref</v> - <v>DomainID = long()</v> - <v>Reply = EventDomain | {'EXCEPTION', #'CosEventDomainAdmin_DomainNotFound'{}}</v> - <v>EventDomain = #objref</v> - </type> - <desc> - <p>This operation returns the EventDomain object associated with the - given DomainID. If no such binding exists an exception is raised.</p> - </desc> - </func> - </funcs> - -</erlref> - diff --git a/lib/cosEventDomain/doc/src/Makefile b/lib/cosEventDomain/doc/src/Makefile deleted file mode 100644 index 9faf65394d..0000000000 --- a/lib/cosEventDomain/doc/src/Makefile +++ /dev/null @@ -1,137 +0,0 @@ -# -# %CopyrightBegin% -# -# Copyright Ericsson AB 2001-2017. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# %CopyrightEnd% -# -# -include $(ERL_TOP)/make/target.mk -include $(ERL_TOP)/make/$(TARGET)/otp.mk - -# ---------------------------------------------------- -# Application version -# ---------------------------------------------------- -include ../../vsn.mk -VSN=$(COSEVENTDOMAIN_VSN) -APPLICATION=cosEventDomain - -# ---------------------------------------------------- -# Release directory specification -# ---------------------------------------------------- -RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN) - -# ---------------------------------------------------- -# Target Specs -# ---------------------------------------------------- -XML_APPLICATION_FILES = ref_man.xml -XML_REF3_FILES = \ - CosEventDomainAdmin_EventDomainFactory.xml \ - CosEventDomainAdmin_EventDomain.xml \ - CosEventDomainAdmin.xml \ - cosEventDomainApp.xml - -XML_PART_FILES = \ - part.xml -XML_CHAPTER_FILES = \ - ch_contents.xml \ - ch_introduction.xml \ - ch_QoS.xml \ - ch_event_domain_service.xml \ - notes.xml - -BOOK_FILES = book.xml - -XML_FILES = $(BOOK_FILES) $(XML_APPLICATION_FILES) $(XML_REF3_FILES) \ - $(XML_PART_FILES) $(XML_CHAPTER_FILES) - -TECHNICAL_DESCR_FILES = - -GIF_FILES = - -PS_FILES = - -# ---------------------------------------------------- - -INTERNAL_HTML_FILES = $(TECHNICAL_DESCR_FILES:%.xml=$(HTMLDIR)/%.html) - -HTML_FILES = $(XML_APPLICATION_FILES:%.xml=$(HTMLDIR)/%.html) \ - $(XML_PART_FILES:%.xml=$(HTMLDIR)/%.html) - -INFO_FILE = ../../info -EXTRA_FILES = \ - $(DEFAULT_GIF_FILES) \ - $(DEFAULT_HTML_FILES) \ - $(XML_REF3_FILES:%.xml=$(HTMLDIR)/%.html) \ - $(XML_CHAPTER_FILES:%.xml=$(HTMLDIR)/%.html) - -MAN3_FILES = $(XML_REF3_FILES:%.xml=$(MAN3DIR)/%.3) - -HTML_REF_MAN_FILE = $(HTMLDIR)/index.html - -TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf - -# ---------------------------------------------------- -# FLAGS -# ---------------------------------------------------- -XML_FLAGS += -DVIPS_FLAGS += - -# ---------------------------------------------------- -# Targets -# ---------------------------------------------------- -$(HTMLDIR)/%.gif: %.gif - $(INSTALL_DATA) $< $@ - -docs: pdf html man - -$(TOP_PDF_FILE): $(XML_FILES) - -pdf: $(TOP_PDF_FILE) - -html: gifs $(HTML_REF_MAN_FILE) - -clean clean_docs: - rm -rf $(HTMLDIR)/* - rm -f $(MAN3DIR)/* - rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) - rm -f errs core *~ - rm -f $(JD_HTML) $(JD_PACK) - -man: $(MAN3_FILES) - -gifs: $(GIF_FILES:%=$(HTMLDIR)/%) - -$(INDEX_TARGET): $(INDEX_SRC) - sed -e 's;%VSN%;$(VSN);' $(INDEX_SRC) > $(INDEX_TARGET) - -debug opt: - -# ---------------------------------------------------- -# Release Target -# ---------------------------------------------------- -include $(ERL_TOP)/make/otp_release_targets.mk - -release_docs_spec: docs - $(INSTALL_DIR) "$(RELSYSDIR)/doc/pdf" - $(INSTALL_DATA) $(TOP_PDF_FILE) "$(RELSYSDIR)/doc/pdf" - $(INSTALL_DIR) "$(RELSYSDIR)/doc/html" - $(INSTALL_DATA) $(HTMLDIR)/* \ - "$(RELSYSDIR)/doc/html" - $(INSTALL_DATA) $(INFO_FILE) "$(RELSYSDIR)" - $(INSTALL_DIR) "$(RELEASE_PATH)/man/man3" - $(INSTALL_DATA) $(MAN3DIR)/* "$(RELEASE_PATH)/man/man3" - -release_spec: diff --git a/lib/cosEventDomain/doc/src/book.xml b/lib/cosEventDomain/doc/src/book.xml deleted file mode 100644 index b073e5edc0..0000000000 --- a/lib/cosEventDomain/doc/src/book.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE book SYSTEM "book.dtd"> - -<book xmlns:xi="http://www.w3.org/2001/XInclude"> - <header titlestyle="normal"> - <copyright> - <year>2001</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>cosEventDomain</title> - <prepared>Niclas Eklund</prepared> - <docno></docno> - <date>2001-08-20</date> - <rev>1.0</rev> - </header> - <insidecover> - </insidecover> - <pagetext>cosEventDomain</pagetext> - <preamble> - <contents level="2"></contents> - </preamble> - <parts lift="no"> - <xi:include href="part.xml"/> - </parts> - <applications> - <xi:include href="ref_man.xml"/> - </applications> - <releasenotes> - <xi:include href="notes.xml"/> - </releasenotes> - <listofterms></listofterms> - <index></index> -</book> - diff --git a/lib/cosEventDomain/doc/src/ch_QoS.xml b/lib/cosEventDomain/doc/src/ch_QoS.xml deleted file mode 100644 index c356e38752..0000000000 --- a/lib/cosEventDomain/doc/src/ch_QoS.xml +++ /dev/null @@ -1,118 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE chapter SYSTEM "chapter.dtd"> - -<chapter> - <header> - <copyright> - <year>2002</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>Quality Of Service and Admin Properties</title> - <prepared></prepared> - <docno></docno> - <date>2000-05-29</date> - <rev></rev> - <file>ch_QoS.xml</file> - </header> - - <section> - <title>Quality Of Service and Admin Properties</title> - <p>This chapter explains the allowed properties it is possible to set for this - application. </p> - - <section> - <title>Quality Of Service</title> - <p>The cosEventDomain application supports the following QoS settings:</p> - <table> - <row> - <cell align="center" valign="middle"><em>QoS</em></cell> - <cell align="center" valign="middle"><em>Range</em></cell> - <cell align="center" valign="middle"><em>Default</em></cell> - </row> - <row> - <cell align="left" valign="middle">CycleDetection</cell> - <cell align="left" valign="middle">AuthorizeCycles/ForbidCycles</cell> - <cell align="left" valign="middle">ForbidCycles</cell> - </row> - <row> - <cell align="left" valign="middle">DiamondDetection</cell> - <cell align="left" valign="middle">AuthorizeDiamonds/ForbidDiamonds</cell> - <cell align="left" valign="middle">ForbidDiamonds</cell> - </row> - <tcaption>Supported QoS settings</tcaption> - </table> -<br></br><br></br><br></br><br></br> <p><em>Comments on the table 'Supported QoS Settings':</em></p> - <taglist> - <tag><em>CycleDetection</em></tag> - <item>If a cycle is created, the user <em>must</em> be aware of the fact - that unless they set timeout on events, events that are not filtered - will loop endlessly through the topology.</item> - <tag><em>DiamondDetection</em></tag> - <item>A Diamond in this context, means that the same - event may reach a point in the graph by more than one route - (i.e. transitive). Hence, it is possible that multiple copies - are delivered.</item> - </taglist> - </section> - - <section> - <title>Setting Quality Of Service</title> - <p>Assume we have a Consumer Admin object which we want to change - the current Quality of Service. Typical usage:</p> - <code type="none"><![CDATA[ -QoS = - [#'CosNotification_Property' - {name='CosEventDomainAdmin':'DiamondDetection'(), - value=any:create(orber_tc:short(), - 'CosEventDomainAdmin':'AuthorizeDiamonds'())}, - #'CosNotification_Property' - {name='CosEventDomainAdmin':'CycleDetection'(), - value=any:create(orber_tc:short(), - 'CosEventDomainAdmin':'ForbidCycles'())}], -'CosEventDomainAdmin_EventDomain':set_qos(ED, QoS), - ]]></code> - <p>If it is not possible to set the requested QoS the <c><![CDATA[UnsupportedQoS]]></c> - exception is raised, which includes a sequence of <c><![CDATA[PropertyError]]></c>'s - describing which QoS, possible range and why is not allowed. The error - codes are:</p> - <list type="bulleted"> - <item>UNSUPPORTED_PROPERTY - QoS not supported for this type of target object.</item> - <item>UNAVAILABLE_PROPERTY - due to current QoS settings the given property - is not allowed.</item> - <item>UNSUPPORTED_VALUE - property value out of range; valid range is returned.</item> - <item>UNAVAILABLE_VALUE - due to current QoS settings the given value is - not allowed; valid range is returned.</item> - <item>BAD_PROPERTY - unrecognized property.</item> - <item>BAD_TYPE - type of supplied property is incorrect.</item> - <item>BAD_VALUE - illegal value.</item> - </list> - <p>The CosEventDomainAdmin_EventDomain interface also supports an operation - called <c><![CDATA[validate_qos/2]]></c>. The purpose of this operations is to check - if a QoS setting is supported by the target object and if so, the operation - returns additional properties which could be optionally added as well.</p> - </section> - - <section> - <title>Admin Properties</title> - <p>The OMG specification do not contain any definitions of Admin Properties. - Hence, the cosEventDomain application currently does not support any Admin - Properties.</p> - </section> - </section> -</chapter> - diff --git a/lib/cosEventDomain/doc/src/ch_contents.xml b/lib/cosEventDomain/doc/src/ch_contents.xml deleted file mode 100644 index b8fefecf44..0000000000 --- a/lib/cosEventDomain/doc/src/ch_contents.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE chapter SYSTEM "chapter.dtd"> - -<chapter> - <header> - <copyright> - <year>2001</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>The cosEventDomain Application</title> - <prepared>Niclas Eklund</prepared> - <docno></docno> - <date>2001-08-20</date> - <rev>B</rev> - <file>ch_contents.xml</file> - </header> - - <section> - <title>Content Overview</title> - <p>The cosEventDomain documentation is divided into three sections: - </p> - <list type="bulleted"> - <item> - <p>PART ONE - The User's Guide - <br></br>Description of the cosEventDomain Application including - services and a small tutorial demonstrating - the development of a simple service.</p> - </item> - <item> - <p>PART TWO - Release Notes - <br></br>A concise history of cosEventDomain.</p> - </item> - <item> - <p>PART THREE - The Reference Manual - <br></br> A quick reference guide, including a - brief description, to all the functions available in cosEventDomain.</p> - </item> - </list> - </section> - - <section> - <title>Brief Description of the User's Guide</title> - <p>The User's Guide contains the following parts:</p> - <list type="bulleted"> - <item> - <p>CosEventDomain overview</p> - </item> - <item> - <p>CosEventDomain installation and examples</p> - </item> - </list> - </section> -</chapter> - diff --git a/lib/cosEventDomain/doc/src/ch_event_domain_service.xml b/lib/cosEventDomain/doc/src/ch_event_domain_service.xml deleted file mode 100644 index a0ecf20415..0000000000 --- a/lib/cosEventDomain/doc/src/ch_event_domain_service.xml +++ /dev/null @@ -1,111 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE chapter SYSTEM "chapter.dtd"> - -<chapter> - <header> - <copyright> - <year>2001</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>Event Domain Service</title> - <prepared>Niclas Eklund</prepared> - <docno></docno> - <date>2001-08-20</date> - <rev>A</rev> - <file>ch_event_domain_service.xml</file> - </header> - - <section> - <title>Overview of the CosEventDomain Service</title> - <p>The Event Domain service allows programmers to manage a cluster - of information channels.</p> - - <section> - <title>Event Domain Service Components</title> - <p>There are two components in the OMG CosEventDomainAdmin service architecture:</p> - <list type="bulleted"> - <item><em>EventDomainFactory:</em> a factory for creating EventDomains.</item> - <item><em>EventDomain:</em> supplies a tool, which makes it easy to create - topologies of interconnected channels (i.e. a directed graph).</item> - </list> - </section> - - <section> - <title>A Tutorial on How to Create a Simple Service</title> - <p>To be able to use the cosEventDomain application, the cosNotification - and, possibly, the cosTime application must be installed.</p> - </section> - - <section> - <title>How to Run Everything</title> - <p>Below is a short transcript on how to run cosEventDomain. </p> - <code type="none"><![CDATA[ - -%% Start Mnesia and Orber -mnesia:delete_schema([node()]), -mnesia:create_schema([node()]), -orber:install([node()]), -mnesia:start(), -orber:start(), - -%% Install and start cosNotification. -cosNotificationApp:install(), -cosNotificationApp:start(), - -%% Install and start cosEventDomain. -cosEventDomainApp:install(), -cosEventDomainApp:start(), - -%% Start a CosEventDomainAdmin factory. -AdminFac = cosEventDomainApp:start_factory(), - -%% Define the desired QoS settings: -QoS = - [#'CosNotification_Property' - {name='CosEventDomainAdmin':'DiamondDetection'(), - value=any:create(orber_tc:short(), - 'CosEventDomainAdmin':'AuthorizeDiamonds'())}, - #'CosNotification_Property' - {name='CosEventDomainAdmin':'CycleDetection'(), - value=any:create(orber_tc:short(), - 'CosEventDomainAdmin':'ForbidCycles'())}], - -%% Create a new EventDomain: -{ED, EDId} = 'CosEventDomainAdmin_EventDomainFactory': - create_event_domain(Fac, QoS, []), - -%% Now we can add Notification Channels to the Domain. How this -%% is done, see the cosNotification documentation. Let us assume -%% that we have gained access to two Channel Objects; add them to the -%% domain: -ID1 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch1), -ID2 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch2), - -%% To connect them, we must first define a connection struct: -C1 = #'CosEventDomainAdmin_Connection'{supplier_id=ID1, - consumer_id=ID2, - ctype='STRUCTURED_EVENT', - notification_style='Pull'}, - -%% Connect them: -'CosEventDomainAdmin_EventDomain':add_connection(ED, C1), - ]]></code> - </section> - </section> -</chapter> - diff --git a/lib/cosEventDomain/doc/src/ch_introduction.xml b/lib/cosEventDomain/doc/src/ch_introduction.xml deleted file mode 100644 index f7a3426673..0000000000 --- a/lib/cosEventDomain/doc/src/ch_introduction.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE chapter SYSTEM "chapter.dtd"> - -<chapter> - <header> - <copyright> - <year>2001</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>Introduction to cosEventDomain</title> - <prepared>Niclas Eklund</prepared> - <docno></docno> - <date>2001-08-20</date> - <rev></rev> - <file>ch_introduction.xml</file> - </header> - - <section> - <title>Overview</title> - <p>The cosEventDomain application is a Event Domain Service compliant with the <url href="http://www.omg.org">OMG</url> - Service CosEventDomainAdmin. - </p> - - <section> - <title>Purpose and Dependencies</title> - <p>CosEventDomain is dependent on <em>Orber</em>, which provides CORBA functionality in an Erlang environment.</p> - </section> - - <section> - <title>Prerequisites</title> - <p>To fully understand the concepts presented in the - documentation, it is recommended that the user is familiar - with distributed programming and CORBA. - </p> - </section> - </section> -</chapter> - diff --git a/lib/cosEventDomain/doc/src/cosEventDomainApp.xml b/lib/cosEventDomain/doc/src/cosEventDomainApp.xml deleted file mode 100644 index c75ee05512..0000000000 --- a/lib/cosEventDomain/doc/src/cosEventDomainApp.xml +++ /dev/null @@ -1,150 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE erlref SYSTEM "erlref.dtd"> - -<erlref> - <header> - <copyright> - <year>2001</year> - <year>2016</year> - <holder>Ericsson AB, All Rights Reserved</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - The Initial Developer of the Original Code is Ericsson AB. - </legalnotice> - - <title>cosEventDomainApp</title> - <prepared>Niclas Eklund</prepared> - <responsible>Niclas Eklund</responsible> - <docno></docno> - <approved>Niclas Eklund</approved> - <checked></checked> - <date>2001-08-20</date> - <rev>PA1</rev> - </header> - <module>cosEventDomainApp</module> - <modulesummary>The main module of the cosEventDomain application.</modulesummary> - <description> - <p>To get access to the record definitions for the structures use:<br></br><c><![CDATA[-include_lib("cosEventDomain/include/*.hrl").]]></c></p> - <p>This module contains the functions for starting and stopping the application.</p> - </description> - <funcs> - <func> - <name>install() -> Return</name> - <fsummary>Install the cosEventDomain application</fsummary> - <type> - <v>Return = ok | {'EXCEPTION', E} | {'EXIT', R}</v> - </type> - <desc> - <p>This operation installs the cosEventDomain application.</p> - </desc> - </func> - <func> - <name>uninstall() -> Return</name> - <fsummary>Uninstall the cosEventDomain application</fsummary> - <type> - <v>Return = ok | {'EXCEPTION', E} | {'EXIT', R}</v> - </type> - <desc> - <p>This operation uninstalls the cosEventDomain application.</p> - </desc> - </func> - <func> - <name>start() -> Return</name> - <fsummary>Start the cosEventDomain application</fsummary> - <type> - <v>Return = ok | {error, Reason}</v> - </type> - <desc> - <p>This operation starts the cosEventDomain application.</p> - </desc> - </func> - <func> - <name>stop() -> Return</name> - <fsummary>Stop the cosEventDomain application</fsummary> - <type> - <v>Return = ok | {error, Reason}</v> - </type> - <desc> - <p>This operation stops the cosEventDomain application.</p> - </desc> - </func> - <func> - <name>start_factory() -> Factory</name> - <fsummary>Start a factory with default settings</fsummary> - <type> - <v>Factory = #objref</v> - </type> - <desc> - <p>This operation creates a new instance of a - <seealso marker="CosEventDomainAdmin_EventDomainFactory">Event Domain Factory</seealso> - using the default settings.</p> - </desc> - </func> - <func> - <name>start_factory(Options) -> Factory</name> - <fsummary>Start a factory with settings defined by the given options</fsummary> - <type> - <v>Options = [Option]</v> - <v>Option = currently no options defined.</v> - <v>Factory = #objref</v> - </type> - <desc> - <p>This operation creates a new instance of a - <seealso marker="CosEventDomainAdmin_EventDomainFactory">Event Domain Factory</seealso></p> - </desc> - </func> - <func> - <name>start_factory_link() -> Factory</name> - <fsummary>Start a factory, which is linked to the invoking process, with default settings</fsummary> - <type> - <v>Factory = #objref</v> - </type> - <desc> - <p>This operation creates a new instance of a - <seealso marker="CosEventDomainAdmin_EventDomainFactory">Event Domain Factory</seealso>, - which is linked to the invoking process, using the default settings.</p> - </desc> - </func> - <func> - <name>start_factory_link(Options) -> Factory</name> - <fsummary>Start a factory, which is linked to the invoking process, with settings defined by the given options</fsummary> - <type> - <v>Options = [Option]</v> - <v>Option = currently no options defined.</v> - <v>Factory = #objref</v> - </type> - <desc> - <p>This operation creates a new instance of a - <seealso marker="CosEventDomainAdmin_EventDomainFactory">Event Domain Factory</seealso>, - which is linked to the invoking process, with settings defined by the - given options. Allowed options are the same as for - <c><![CDATA[cosEventDomainApp:start_factory/1]]></c>.</p> - </desc> - </func> - <func> - <name>stop_factory(Factory) -> Reply</name> - <fsummary>Terminate the target object</fsummary> - <type> - <v>Factory = #objref</v> - <v>Reply = ok | {'EXCEPTION', E}</v> - </type> - <desc> - <p>This operation stop the target factory.</p> - </desc> - </func> - </funcs> - -</erlref> - diff --git a/lib/cosEventDomain/doc/src/notes.xml b/lib/cosEventDomain/doc/src/notes.xml deleted file mode 100644 index bd0a119ad2..0000000000 --- a/lib/cosEventDomain/doc/src/notes.xml +++ /dev/null @@ -1,331 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE chapter SYSTEM "chapter.dtd"> - -<chapter> - <header> - <copyright> - <year>2001</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>cosEventDomain Release Notes</title> - <prepared>Niclas Eklund</prepared> - <docno></docno> - <approved></approved> - <checked></checked> - <date>2001-08-20</date> - <rev>A</rev> - <file>notes.xml</file> - </header> - - <section><title>cosEventDomain 1.2.2</title> - - <section><title>Fixed Bugs and Malfunctions</title> - <list> - <item> - <p> Removed all old unused files in the documentation. - </p> - <p> - Own Id: OTP-14475 Aux Id: ERL-409, PR-1493 </p> - </item> - </list> - </section> - -</section> - -<section><title>cosEventDomain 1.2.1</title> - - <section><title>Improvements and New Features</title> - <list> - <item> - <p> - Internal changes</p> - <p> - Own Id: OTP-13551</p> - </item> - </list> - </section> - -</section> - -<section><title>cosEventDomain 1.2</title> - - <section><title>Improvements and New Features</title> - <list> - <item> - <p> Remove the usage of erlang:now() from all Corba - applications and use the new rand module instead of - random. </p> - <p> - Own Id: OTP-12687</p> - </item> - </list> - </section> - -</section> - -<section><title>cosEventDomain 1.1.14</title> - - <section><title>Improvements and New Features</title> - <list> - <item> - <p> The default encoding of Erlang files has been changed - from ISO-8859-1 to UTF-8. </p> <p> The encoding of XML - files has also been changed to UTF-8. </p> - <p> - Own Id: OTP-10907</p> - </item> - </list> - </section> - -</section> - -<section><title>cosEventDomain 1.1.13</title> - - <section><title>Improvements and New Features</title> - <list> - <item> - <p> - Misc build updates</p> - <p> - Own Id: OTP-10784</p> - </item> - </list> - </section> - -</section> - -<section><title>cosEventDomain 1.1.12</title> - - <section><title>Improvements and New Features</title> - <list> - <item> - <p>Erlang/OTP can now be built using parallel make if you - limit the number of jobs, for instance using '<c>make - -j6</c>' or '<c>make -j10</c>'. '<c>make -j</c>' does not - work at the moment because of some missing - dependencies.</p> - <p> - Own Id: OTP-9451</p> - </item> - </list> - </section> - -</section> - -<section> - <title>cosEventDomain 1.1.11</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p> - Removed superfluous usage of shy in the documentation since it can cause problem if - a buggy tool is used.</p> - <p> - Own Id: OTP-9319 Aux Id:</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.10</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p> - Eliminated Dialyzer warnings when using exit or throw.</p> - <p> - Own Id: OTP-9050 Aux Id:</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.9</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p> - Test suites published.</p> - <p> - Own Id: OTP-8543 Aux Id:</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.8</title> - - <section> - <title>Fixed Bugs and Malfunctions</title> - <list type="bulleted"> - <item> - <p>Removed superfluous VT in the documentation.</p> - <p>Own id: OTP-8353 Aux Id:</p> - </item> - <item> - <p>The documentation EIX file was not generated.</p> - <p>Own id: OTP-8355 Aux Id:</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.7</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p> - The documentation is now built with open source tools (xsltproc and fop) - that exists on most platforms. One visible change is that the frames are removed.</p> - <p> - Own Id: OTP-8201 Aux Id:</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.6</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Obsolete guards, e.g. record vs is_record, has been changed - to avoid compiler warnings.</p> - <p>Own id: OTP-7987</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.5</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Updated file headers.</p> - <p>Own id: OTP-7837</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.4</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Documentation source included in open source releases.</p> - <p>Own id: OTP-7595</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.3</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Updated file headers.</p> - <p>Own id: OTP-7011</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.2</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>The documentation source has been converted from SGML to XML.</p> - <p>Own id: OTP-6754</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1.1</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>Minor Makefile changes.</p> - <p>Own id: OTP-6701</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.1</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>The stub/skeleton-files generated by IC have been improved, - i.e., depending on the IDL-files, reduced the size of the - erl- and beam-files and decreased dependencies off Orber's - Interface Repository. It is necessary to re-compile all IDL-files - and use COS-applications, including Orber, compiled with - IC-4.2.</p> - <p>Own id: OTP-4576</p> - </item> - </list> - </section> - </section> - - <section> - <title>cosEventDomain 1.0</title> - - <section> - <title>Improvements and New Features</title> - <list type="bulleted"> - <item> - <p>First release of the cosEventDomain application.</p> - </item> - </list> - </section> - </section> -</chapter> - diff --git a/lib/cosEventDomain/doc/src/part.xml b/lib/cosEventDomain/doc/src/part.xml deleted file mode 100644 index 328fdfc20f..0000000000 --- a/lib/cosEventDomain/doc/src/part.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE part SYSTEM "part.dtd"> - -<part xmlns:xi="http://www.w3.org/2001/XInclude"> - <header> - <copyright> - <year>2001</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>cosEventDomain User's Guide</title> - <prepared>Niclas Eklund</prepared> - <docno></docno> - <date>2001-08-20</date> - <rev>1.0</rev> - </header> - <description> - <p>The <em>cosEventDomain</em> application is an Erlang implementation of a - CORBA Service CosEventDomainAdmin.</p> - </description> - <xi:include href="ch_contents.xml"/> - <xi:include href="ch_introduction.xml"/> - <xi:include href="ch_QoS.xml"/> - <xi:include href="ch_event_domain_service.xml"/> -</part> - diff --git a/lib/cosEventDomain/doc/src/ref_man.xml b/lib/cosEventDomain/doc/src/ref_man.xml deleted file mode 100644 index 14b826e4f9..0000000000 --- a/lib/cosEventDomain/doc/src/ref_man.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE application SYSTEM "application.dtd"> - -<application xmlns:xi="http://www.w3.org/2001/XInclude"> - <header> - <copyright> - <year>2001</year><year>2016</year> - <holder>Ericsson AB. All Rights Reserved.</holder> - </copyright> - <legalnotice> - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - </legalnotice> - - <title>cosEventDomain Reference Manual</title> - <prepared>Niclas Eklund</prepared> - <docno></docno> - <date>2001-08-20</date> - <rev>1.0</rev> - </header> - <description> - <p>The <em>cosEventDomain</em> application is an Erlang implementation of - a CORBA Service CosEventDomainAdmin.</p> - </description> - <xi:include href="cosEventDomainApp.xml"/> - <xi:include href="CosEventDomainAdmin.xml"/> - <xi:include href="CosEventDomainAdmin_EventDomainFactory.xml"/> - <xi:include href="CosEventDomainAdmin_EventDomain.xml"/> -</application> - diff --git a/lib/cosEventDomain/ebin/.gitignore b/lib/cosEventDomain/ebin/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 --- a/lib/cosEventDomain/ebin/.gitignore +++ /dev/null diff --git a/lib/cosEventDomain/example/.gitignore b/lib/cosEventDomain/example/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 --- a/lib/cosEventDomain/example/.gitignore +++ /dev/null diff --git a/lib/cosEventDomain/include/.gitignore b/lib/cosEventDomain/include/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 --- a/lib/cosEventDomain/include/.gitignore +++ /dev/null diff --git a/lib/cosEventDomain/info b/lib/cosEventDomain/info deleted file mode 100644 index 46ecf9504d..0000000000 --- a/lib/cosEventDomain/info +++ /dev/null @@ -1,2 +0,0 @@ -group: orb -short: Orber OMG Event Domain Service diff --git a/lib/cosEventDomain/src/CosEventDomainAdmin.cfg b/lib/cosEventDomain/src/CosEventDomainAdmin.cfg deleted file mode 100644 index 75a2720088..0000000000 --- a/lib/cosEventDomain/src/CosEventDomainAdmin.cfg +++ /dev/null @@ -1,4 +0,0 @@ -{this, "CosEventDomainAdmin::EventDomain"}. -{{handle_info, "CosEventDomainAdmin::EventDomain"}, true}. -{this, "CosEventDomainAdmin::EventDomainFactory"}. -{{handle_info, "CosEventDomainAdmin::EventDomainFactory"}, true}. diff --git a/lib/cosEventDomain/src/CosEventDomainAdmin.idl b/lib/cosEventDomain/src/CosEventDomainAdmin.idl deleted file mode 100644 index 2ecd935c67..0000000000 --- a/lib/cosEventDomain/src/CosEventDomainAdmin.idl +++ /dev/null @@ -1,280 +0,0 @@ -#ifndef _COS_EVENT_DOMAIN_ADMIN_IDL_ -#define _COS_EVENT_DOMAIN_ADMIN_IDL_ - -#pragma prefix "omg.org" - -// Event Domain Interface -#include "CosNotification.idl" -#include "CosEventComm.idl" -#include "CosNotifyComm.idl" -#include "CosNotifyChannelAdmin.idl" - - -module CosEventDomainAdmin { - - // The following constant declarations define the Event Domain - // QoS property names and the associated values each property can - // take on. The name/value pairs for each Event Domain property - // are grouped, beginning with a string constant defined for the - // property name, followed by the values the property can take on. - - const string CycleDetection = "CycleDetection"; - const short AuthorizeCycles = 0; // Default value - const short ForbidCycles = 1; - - const string DiamondDetection = "DiamondDetection"; - const short AuthorizeDiamonds = 0; // Default value - const short ForbidDiamonds = 1; - - - // The following enum declaration defines the types that a channel - // can be of. It is used to specify channel types while externalizing - // and instantiating topologies. - enum ChannelType - { - CHANNEL, - TYPED_CHANNEL, - LOG_CHANNEL, - TYPED_LOG_CHANNEL - }; - - enum NotificationStyle { - Push, - Pull - }; - - typedef long MemberID; - typedef sequence <MemberID> MemberIDSeq; - typedef long ConnectionID; - typedef sequence <ConnectionID> ConnectionIDSeq; - - struct Connection { - MemberID supplier_id; - MemberID consumer_id; - CosNotifyChannelAdmin::ClientType ctype; - NotificationStyle notification_style; - }; - - - typedef MemberIDSeq Route; - typedef sequence<Route> RouteSeq; - - typedef Route Cycle; - typedef sequence<Cycle> CycleSeq; - - typedef RouteSeq Diamond; - typedef sequence<Diamond> DiamondSeq; - - exception CycleCreationForbidden - { - Cycle cyc; - }; - - exception DiamondCreationForbidden - { - Diamond diam; - }; - - // Forward declarations - interface ConsumerAdmin; - interface SupplierAdmin; - - - typedef long DomainID; - typedef sequence <DomainID> DomainIDSeq; - typedef long ItemID; - - - // EventDomain administrates EventChannels that reside in the same - // administrative domain - exception ConnectionNotFound {}; - exception AlreadyExists {}; - - - interface EventDomain : - CosNotification::QoSAdmin , - CosNotification::AdminPropertiesAdmin { - - MemberID add_channel ( in CosNotifyChannelAdmin::EventChannel channel ); - - MemberIDSeq get_all_channels (); - - CosNotifyChannelAdmin::EventChannel get_channel ( in MemberID channel ) - raises ( CosNotifyChannelAdmin::ChannelNotFound ); - - void remove_channel ( in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - ConnectionID add_connection ( in Connection connection) - raises (CosNotifyChannelAdmin::ChannelNotFound, - CosEventChannelAdmin::TypeError, - AlreadyExists, - CycleCreationForbidden, - DiamondCreationForbidden); - - ConnectionIDSeq get_all_connections (); - - Connection get_connection ( in ConnectionID connection ) - raises ( ConnectionNotFound ); - - void remove_connection ( in ConnectionID connection ) - raises ( ConnectionNotFound ); - - CosNotifyChannelAdmin::ChannelIDSeq get_offer_channels ( in MemberID channel ) - raises ( CosNotifyChannelAdmin::ChannelNotFound ); - - CosNotifyChannelAdmin::ChannelIDSeq get_subscription_channels ( in MemberID channel ) - raises ( CosNotifyChannelAdmin::ChannelNotFound ); - - void destroy(); - - // Cycle and diamond configurations listing - CycleSeq get_cycles(); - - DiamondSeq get_diamonds(); - - - // Connection of clients to the domain - // - using no specific information - // - for any clients - void set_default_consumer_channel(in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - void set_default_supplier_channel(in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::ProxyPushSupplier - connect_push_consumer(in CosEventComm::PushConsumer client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::ProxyPullSupplier - connect_pull_consumer(in CosEventComm::PullConsumer client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::ProxyPushConsumer - connect_push_supplier(in CosEventComm::PushSupplier client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::ProxyPullConsumer - connect_pull_supplier(in CosEventComm::PullSupplier client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - // - for structured clients - CosNotifyChannelAdmin::StructuredProxyPushSupplier - connect_structured_push_consumer(in CosNotifyComm::StructuredPushConsumer client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::StructuredProxyPullSupplier - connect_structured_pull_consumer(in CosNotifyComm::StructuredPullConsumer client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::StructuredProxyPushConsumer - connect_structured_push_supplier(in CosNotifyComm::StructuredPushSupplier client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::StructuredProxyPullConsumer - connect_structured_pull_supplier(in CosNotifyComm::StructuredPullSupplier client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - // - for sequence clients - CosNotifyChannelAdmin::SequenceProxyPushSupplier - connect_sequence_push_consumer(in CosNotifyComm::SequencePushConsumer client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::SequenceProxyPullSupplier - connect_sequence_pull_consumer(in CosNotifyComm::SequencePullConsumer client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::SequenceProxyPushConsumer - connect_sequence_push_supplier(in CosNotifyComm::SequencePushSupplier client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::SequenceProxyPullConsumer - connect_sequence_pull_supplier(in CosNotifyComm::SequencePullSupplier client) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - // - using a channel id - // - for any clients - CosNotifyChannelAdmin::ProxyPushSupplier - connect_push_consumer_with_id(in CosEventComm::PushConsumer client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::ProxyPullSupplier - connect_pull_consumer_with_id(in CosEventComm::PullConsumer client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::ProxyPushConsumer - connect_push_supplier_with_id(in CosEventComm::PushSupplier client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::ProxyPullConsumer - connect_pull_supplier_with_id(in CosEventComm::PullSupplier client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - // - for structured clients - CosNotifyChannelAdmin::StructuredProxyPushSupplier - connect_structured_push_consumer_with_id(in CosNotifyComm::StructuredPushConsumer client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::StructuredProxyPullSupplier - connect_structured_pull_consumer_with_id(in CosNotifyComm::StructuredPullConsumer client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::StructuredProxyPushConsumer - connect_structured_push_supplier_with_id(in CosNotifyComm::StructuredPushSupplier client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::StructuredProxyPullConsumer - connect_structured_pull_supplier_with_id(in CosNotifyComm::StructuredPullSupplier client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - // - for sequence clients - CosNotifyChannelAdmin::SequenceProxyPushSupplier - connect_sequence_push_consumer_with_id(in CosNotifyComm::SequencePushConsumer client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::SequenceProxyPullSupplier - connect_sequence_pull_consumer_with_id(in CosNotifyComm::SequencePullConsumer client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::SequenceProxyPushConsumer - connect_sequence_push_supplier_with_id(in CosNotifyComm::SequencePushSupplier client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - - CosNotifyChannelAdmin::SequenceProxyPullConsumer - connect_sequence_pull_supplier_with_id(in CosNotifyComm::SequencePullSupplier client, - in MemberID channel) - raises (CosNotifyChannelAdmin::ChannelNotFound); - }; - - exception DomainNotFound {}; - - interface EventDomainFactory { - - EventDomain create_event_domain( in CosNotification::QoSProperties initialQoS , - in CosNotification::AdminProperties initialAdmin, - out DomainID id ) - raises ( CosNotification::UnsupportedQoS, - CosNotification::UnsupportedAdmin ); - - DomainIDSeq get_all_domains (); - - EventDomain get_event_domain ( - in DomainID id ) - raises ( DomainNotFound ); - }; -}; - -#endif // _COS_EVENT_DOMAIN_ADMIN_IDL_ - diff --git a/lib/cosEventDomain/src/CosEventDomainAdmin_EventDomainFactory_impl.erl b/lib/cosEventDomain/src/CosEventDomainAdmin_EventDomainFactory_impl.erl deleted file mode 100644 index 75ff81196c..0000000000 --- a/lib/cosEventDomain/src/CosEventDomainAdmin_EventDomainFactory_impl.erl +++ /dev/null @@ -1,183 +0,0 @@ -%%-------------------------------------------------------------------- -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2001-2016. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% -%% -%%---------------------------------------------------------------------- -%% File : CosEventDomainAdmin_EventDomainFactory_impl.erl -%% Description : -%% -%%---------------------------------------------------------------------- --module('CosEventDomainAdmin_EventDomainFactory_impl'). - -%%---------------------------------------------------------------------- -%% Include files -%%---------------------------------------------------------------------- --include_lib("orber/include/corba.hrl"). --include_lib("orber/include/ifr_types.hrl"). --include_lib("cosNotification/include/CosNotification.hrl"). - --include("CosEventDomainAdmin.hrl"). --include("cosEventDomainApp.hrl"). - -%%---------------------------------------------------------------------- -%% External exports -%%---------------------------------------------------------------------- --export([init/1, - terminate/2, - code_change/3, - handle_info/2]). - --export([create_event_domain/4, - get_all_domains/2, - get_event_domain/3]). - -%%---------------------------------------------------------------------- -%% Internal exports -%%---------------------------------------------------------------------- --export([]). - -%%---------------------------------------------------------------------- -%% Records -%%---------------------------------------------------------------------- --record(state, {current_id = -1, domains = []}). - -%%---------------------------------------------------------------------- -%% Macros -%%---------------------------------------------------------------------- - -%%====================================================================== -%% External functions -%%====================================================================== -%%---------------------------------------------------------------------- -%% Function : init/1 -%% Returns : {ok, State} | -%% {ok, State, Timeout} | -%% ignore | -%% {stop, Reason} -%% Description: Initiates the server -%%---------------------------------------------------------------------- -init([]) -> - process_flag(trap_exit, true), - {ok, #state{}}. - -%%---------------------------------------------------------------------- -%% Function : terminate/2 -%% Returns : any (ignored by gen_server) -%% Description: Shutdown the server -%%---------------------------------------------------------------------- -terminate(_Reason, _State) -> - ok. - -%%---------------------------------------------------------------------- -%% Function : code_change/3 -%% Returns : {ok, NewState} -%% Description: Convert process state when code is changed -%%---------------------------------------------------------------------- -code_change(_OldVsn, State, _Extra) -> - {ok, State}. - -%%---------------------------------------------------------------------- -%% Function : handle_info/2 -%% Returns : {noreply, State} | -%% {stop, Reason, State} -%% Description: Handle, for example, exit signals. -%%---------------------------------------------------------------------- -handle_info({'EXIT', Pid, _Reason}, State) -> - {noreply, State#state{domains=delete_domain(State#state.domains, Pid, [])}}; -handle_info(_Info, State) -> - {noreply, State}. - - -%%---------------------------------------------------------------------- -%% Function : create_event_domain -%% Arguments : InitialQoS - CosNotification::QoSProperties -%% InitialAdmin - CosNotification::AdminProperties -%% Returns : CosEventDomainAdmin::EventDomain | -%% {'EXCEPTION', #'CosNotification_UnsupportedQoS'{}} | -%% {'EXCEPTION', #'CosNotification_UnsupportedAdmin'{}} | -%% Description: -%%---------------------------------------------------------------------- -create_event_domain(_OE_This, State, InitialQoS, InitialAdmin) -> - Id = cosEventDomainApp:create_id(State#state.current_id), - Admin = cosEventDomainApp:get_admin(InitialAdmin), - QoS = cosEventDomainApp:get_qos(InitialQoS), - case catch 'CosEventDomainAdmin_EventDomain':oe_create_link([self(), Id, - QoS, Admin], - [{sup_child, true}]) of - {ok, Pid, ED} -> - {reply, {ED, Id}, State#state{current_id = Id, - domains = [{Id, ED, Pid}|State#state.domains]}}; - What -> - orber:dbg("[~p] CosEventDomainAdmin_EventDomainFactory:" - "create_event_domain();~n" - "Failed creatin a new EventDomain due to: ~p", - [?LINE, What], ?DEBUG_LEVEL), - corba:raise(#'INTERNAL'{completion_status=?COMPLETED_NO}) - end. - -%%---------------------------------------------------------------------- -%% Function : get_all_domains -%% Arguments : - -%% Returns : CosEventDomainAdmin::DomainIDSeq - [long()] -%% Description: -%%---------------------------------------------------------------------- -get_all_domains(_OE_This, State) -> - {reply, get_all_domains_helper(State#state.domains, []), State}. - -get_all_domains_helper([], Acc) -> - Acc; -get_all_domains_helper([{Id, _, _}|T], Acc) -> - get_all_domains_helper(T, [Id|Acc]). - - -%%---------------------------------------------------------------------- -%% Function : get_event_domain -%% Arguments : CosEventDomainAdmin::DomainID - long() -%% Returns : CosEventDomainAdmin::EventDomain | -%% {'EXCEPTION', #'CosEventDomainAdmin_DomainNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -get_event_domain(_OE_This, State, DomainID) -> - {reply, get_event_domain_helper(State#state.domains, DomainID), State}. - -get_event_domain_helper([], _) -> - corba:raise(#'CosEventDomainAdmin_DomainNotFound'{}); -get_event_domain_helper([{Id, ED, _}|_], Id) -> - ED; -get_event_domain_helper([_|T], Id) -> - get_event_domain_helper(T, Id). - -%%====================================================================== -%% Internal functions -%%====================================================================== -delete_domain([], _, Acc) -> - %% The domain didn't exist. - Acc; -delete_domain([{_Id, _, Pid}], Pid, Acc) -> - Acc; -delete_domain([{_Id, _, Pid}|T], Pid, Acc) -> - T++Acc; -delete_domain([H|T], Pid, Acc) -> - delete_domain(T, Pid, [H|Acc]). - -%%====================================================================== -%% END OF MODULE -%%====================================================================== - diff --git a/lib/cosEventDomain/src/CosEventDomainAdmin_EventDomain_impl.erl b/lib/cosEventDomain/src/CosEventDomainAdmin_EventDomain_impl.erl deleted file mode 100644 index a31a70acc2..0000000000 --- a/lib/cosEventDomain/src/CosEventDomainAdmin_EventDomain_impl.erl +++ /dev/null @@ -1,1426 +0,0 @@ -%%-------------------------------------------------------------------- -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2001-2016. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% -%% -%%---------------------------------------------------------------------- -%% File : CosEventDomainAdmin_EventDomain_impl.erl -%% Description : -%% -%%---------------------------------------------------------------------- --module('CosEventDomainAdmin_EventDomain_impl'). - -%%---------------------------------------------------------------------- -%% Include files -%%---------------------------------------------------------------------- --include_lib("orber/include/corba.hrl"). --include_lib("orber/include/ifr_types.hrl"). --include_lib("cosNotification/include/CosNotifyChannelAdmin.hrl"). --include_lib("cosNotification/include/CosNotification.hrl"). - --include("cosEventDomainApp.hrl"). --include("CosEventDomainAdmin.hrl"). - -%%---------------------------------------------------------------------- -%% External exports -%%---------------------------------------------------------------------- --export([init/1, - terminate/2, - code_change/3, - handle_info/2]). - -%%------------------ CosEventDomainAdmin::EventDomain ------------------ --export([add_channel/3, - get_all_channels/2, - get_channel/3, - remove_channel/3, - add_connection/3, - get_all_connections/2, - get_connection/3, - remove_connection/3, - get_offer_channels/3, - get_subscription_channels/3, - destroy/2, - get_cycles/2, - get_diamonds/2, - set_default_consumer_channel/3, - set_default_supplier_channel/3, - connect_push_consumer/3, - connect_pull_consumer/3, - connect_push_supplier/3, - connect_pull_supplier/3, - connect_structured_push_consumer/3, - connect_structured_pull_consumer/3, - connect_structured_push_supplier/3, - connect_structured_pull_supplier/3, - connect_sequence_push_consumer/3, - connect_sequence_pull_consumer/3, - connect_sequence_push_supplier/3, - connect_sequence_pull_supplier/3, - connect_push_consumer_with_id/4, - connect_pull_consumer_with_id/4, - connect_push_supplier_with_id/4, - connect_pull_supplier_with_id/4, - connect_structured_push_consumer_with_id/4, - connect_structured_pull_consumer_with_id/4, - connect_structured_push_supplier_with_id/4, - connect_structured_pull_supplier_with_id/4, - connect_sequence_push_consumer_with_id/4, - connect_sequence_pull_consumer_with_id/4, - connect_sequence_push_supplier_with_id/4, - connect_sequence_pull_supplier_with_id/4]). - -%%------------------ CosNotification::QoSAdmin ------------------------- --export([get_qos/2, - set_qos/3, - validate_qos/3]). - -%%------------------ CosNotification::AdminPropertiesAdmin ------------- --export([get_admin/2, - set_admin/3]). - - - -%%---------------------------------------------------------------------- -%% Internal exports -%%---------------------------------------------------------------------- --export([]). - -%%---------------------------------------------------------------------- -%% Records -%%---------------------------------------------------------------------- --record(state, {parent_pid, id, graph, ch_counter=-1, - co_counter=-1, def_supplier, def_consumer, diamonds, cyclic}). - --record(connection, {supplier, consumer, data}). - -%%---------------------------------------------------------------------- -%% Macros -%%---------------------------------------------------------------------- - -%%====================================================================== -%% External functions -%%====================================================================== -%%---------------------------------------------------------------------- -%% Function : init/1 -%% Returns : {ok, State} | -%% {ok, State, Timeout} | -%% ignore | -%% {stop, Reason} -%% Description: Initiates the server -%%---------------------------------------------------------------------- -init([ParentPid, MyId, QoS, _Admin]) -> - process_flag(trap_exit, true), - Diamonds = case lists:keysearch(?DiamondDetection, 1, QoS) of - false -> - ?ForbidDiamonds; - {value, {_, Value}} -> - Value - end, - case lists:keysearch(?CycleDetection, 1, QoS) of - {value, {_, ?AuthorizeCycles}} -> - {ok, #state{parent_pid = ParentPid, id = MyId, - graph = digraph:new([private]), - diamonds = Diamonds, cyclic = ?AuthorizeCycles}}; - _ -> - {ok, #state{parent_pid = ParentPid, id = MyId, - graph = digraph:new([acyclic, private]), - diamonds = Diamonds, cyclic = ?ForbidCycles}} - end. - -%%---------------------------------------------------------------------- -%% Function : terminate/2 -%% Returns : any (ignored by gen_server) -%% Description: Shutdown the server -%%---------------------------------------------------------------------- -terminate(_Reason, #state{graph = DG} = _State) -> - Connections = digraph:edges(DG), - close_connections(DG, Connections), - digraph:delete(DG), - ok. - -%%---------------------------------------------------------------------- -%% Function : code_change/3 -%% Returns : {ok, NewState} -%% Description: Convert process state when code is changed -%%---------------------------------------------------------------------- -code_change(_OldVsn, State, _Extra) -> - {ok, State}. - -%%---------------------------------------------------------------------- -%% Function : handle_info/2 -%% Returns : {noreply, State} | -%% {stop, Reason, State} -%% Description: Handle, for example, exit signals. -%%---------------------------------------------------------------------- -handle_info({'EXIT', Pid, Reason}, #state{parent_pid = Pid} = State) -> - {stop, Reason, State}; -handle_info(_Info, State) -> - {noreply, State}. - -%%---------------------------------------------------------------------- -%%------------------ CosEventDomainAdmin::EventDomain ------------------ -%%---------------------------------------------------------------------% -%% Function : add_channel -%% Arguments : Channel - CosNotifyChannelAdmin::EventChannel -%% Returns : MemberId - long() -%% Description: -%%---------------------------------------------------------------------- -add_channel(_OE_This, #state{ch_counter=C, graph = DG} = State, Channel) -> - type_check(Channel, 'CosNotifyChannelAdmin_EventChannel'), - Id = cosEventDomainApp:create_id(C), - digraph:add_vertex(DG, Id, Channel), - {reply, Id, State#state{ch_counter=Id}}. - -%%---------------------------------------------------------------------% -%% Function : get_all_channels -%% Arguments : - -%% Returns : CosEventDomainAdmin::MemberIDSeq ([long()]) -%% Description: -%%---------------------------------------------------------------------- -get_all_channels(_OE_This, #state{graph = DG} = State) -> - {reply, digraph:vertices(DG), State}. - -%%---------------------------------------------------------------------% -%% Function : get_channel -%% Arguments : Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::EventChannel | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} -%% Description: -%%---------------------------------------------------------------------- -get_channel(_OE_This, #state{graph = DG} = State, Id) -> - {reply, lookup_channel(DG, Id), State}. - -%%---------------------------------------------------------------------% -%% Function : remove_channel -%% Arguments : Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : ok | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} -%% Description: -%%---------------------------------------------------------------------- -remove_channel(_OE_This, #state{graph = DG} = State, Id) -> - lookup_channel(DG, Id), - close_connections(DG, digraph:edges(DG, Id)), - digraph:del_vertex(DG, Id), - {reply, ok, State}. - -%%---------------------------------------------------------------------% -%% Function : add_connection -%% Arguments : Connection - CosEventDomainAdmin::Connection -%% Returns : ConnectionID | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_TypeError'{}} | -%% {'EXCEPTION', #'CosEventDomainAdmin_AlreadyExists'{}} | -%% {'EXCEPTION', #'CosEventDomainAdmin_CycleCreationForbidden'{cyc}} | -%% {'EXCEPTION', #'CosEventDomainAdmin_DiamondCreationForbidden'{diam}} -%% Description: -%%---------------------------------------------------------------------- -add_connection(_OE_This, #state{graph = DG, co_counter = C} = State, - Connection) when is_record(Connection, - 'CosEventDomainAdmin_Connection') -> - SId = Connection#'CosEventDomainAdmin_Connection'.supplier_id, - SChannel = lookup_channel(DG, SId), - CId = Connection#'CosEventDomainAdmin_Connection'.consumer_id, - CChannel = lookup_channel(DG, CId), - case lists:member(CId, digraph:out_neighbours(DG, SId)) of - false -> - Id = cosEventDomainApp:create_id(C), - %% Try to insert the new connection before we actually setup a connection. - %% Note that #connection is NOT complete, hence, we must update it later. - case digraph:add_edge(DG, Id, SId, CId, #connection{data=Connection}) of - {error, {bad_edge, Path}} -> - corba:raise(#'CosEventDomainAdmin_CycleCreationForbidden'{cyc=Path}); - Id when State#state.diamonds == ?AuthorizeDiamonds -> - case catch setup_connection(Connection, SChannel, CChannel) of - {ok, SProxy, CProxy} -> - %% Now we can update the connection with complete data. - digraph:add_edge(DG, Id, SId, CId, #connection{supplier=SProxy, - consumer=CProxy, - data=Connection}), - {reply, Id, State#state{co_counter = Id}}; - {'EXCEPTION', E} -> - digraph:del_edge(DG, Id), - corba:raise(E); - What -> - digraph:del_edge(DG, Id), - orber:dbg("[~p] CosEventDomainAdmin_EventDomain:" - "add_connection(~p);~nFailed setting up" - " connection due to: ~p", - [?LINE, Connection, What], ?DEBUG_LEVEL), - corba:raise(#'INTERNAL'{completion_status=?COMPLETED_MAYBE}) - end; - Id -> - case get_diamonds_helper(State, false, SId) of - [] -> - case catch setup_connection(Connection, SChannel, CChannel) of - {ok, SProxy, CProxy} -> - %% Now we can update the connection with complete data. - digraph:add_edge(DG, Id, SId, CId, #connection{supplier=SProxy, - consumer=CProxy, - data=Connection}), - {reply, Id, State#state{co_counter = Id}}; - {'EXCEPTION', E} -> - digraph:del_edge(DG, Id), - corba:raise(E); - What -> - digraph:del_edge(DG, Id), - orber:dbg("[~p] CosEventDomainAdmin_EventDomain:" - "add_connection(~p);~nFailed setting" - " up connection due to: ~p", - [?LINE, Connection, What], - ?DEBUG_LEVEL), - corba:raise(#'INTERNAL'{completion_status=?COMPLETED_MAYBE}) - end; - Diamond -> - %% Since no diamonds should exist the returned list can - %% only describe the diamond we just created. - digraph:del_edge(DG, Id), - corba:raise(#'CosEventDomainAdmin_DiamondCreationForbidden' - {diam=Diamond}) - end - end; - true -> - corba:raise(#'CosEventDomainAdmin_AlreadyExists'{}) - end. - - -%%---------------------------------------------------------------------% -%% Function : get_all_connections -%% Arguments : - -%% Returns : CosEventDomainAdmin::ConnectionIDSeq - [long()] -%% Description: -%%---------------------------------------------------------------------- -get_all_connections(_OE_This, #state{graph = DG} = State) -> - {reply, digraph:edges(DG), State}. - -%%---------------------------------------------------------------------% -%% Function : get_connection -%% Arguments : Id - CosEventDomainAdmin::ConnectionID (long()) -%% Returns : CosEventDomainAdmin::Connection | -%% {'EXCEPTION', #'CosEventDomainAdmin_ConnectionNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -get_connection(_OE_This, #state{graph = DG} = State, Id) -> - {reply, lookup_connection_data(DG, Id), State}. - -%%---------------------------------------------------------------------% -%% Function : remove_connection -%% Arguments : Id - CosEventDomainAdmin::ConnectionID (long()) -%% Returns : ok | -%% {'EXCEPTION', #'CosEventDomainAdmin_ConnectionNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -remove_connection(_OE_This, #state{graph = DG} = State, Id) -> - #connection{supplier=S, consumer=C, data=Connection} = - lookup_connection(DG, Id), - close_connection(Connection, S, C), - digraph:del_edge(DG, Id), - {reply, ok, State}. - - -%%---------------------------------------------------------------------% -%% Function : get_offer_channels -%% Arguments : Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::ChannelIDSeq | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -get_offer_channels(_OE_This, #state{graph = DG, cyclic = Cyclic} = State, Id) -> - lookup_channel(DG, Id), - case digraph:vertex(DG, Id) of - {Id, _Channel} when Cyclic == ?ForbidCycles -> - {reply, digraph_utils:reaching_neighbours([Id], DG), State}; - {Id, _Channel} -> - %% If cyclic graphs is allowed 'Id' will appear in the returned list. - %% Hence, we must delete it. - {reply,lists:delete(Id, digraph_utils:reaching_neighbours([Id], DG)), - State}; - false -> - corba:raise(#'CosNotifyChannelAdmin_ChannelNotFound'{}) - end. - -%%---------------------------------------------------------------------% -%% Function : get_subscription_channels -%% Arguments : Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::ChannelIDSeq | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -get_subscription_channels(_OE_This, #state{graph = DG, cyclic = Cyclic} = State, Id) -> - lookup_channel(DG, Id), - case digraph:vertex(DG, Id) of - {Id, _Channel} when Cyclic == ?ForbidCycles -> - {reply, digraph_utils:reachable_neighbours([Id], DG), State}; - {Id, _Channel} -> - %% If cyclic graphs is allowed 'Id' will appear in the returned list. - %% Hence, we must delete it. - {reply, lists:delete(Id, digraph_utils:reachable_neighbours([Id], DG)), - State}; - false -> - corba:raise(#'CosNotifyChannelAdmin_ChannelNotFound'{}) - end. - -%%---------------------------------------------------------------------% -%% Function : destroy -%% Arguments : - -%% Returns : ok -%% Description: -%%---------------------------------------------------------------------- -destroy(_OE_This, #state{graph = _DG} = State) -> - {stop, normal, ok, State}. - -%%---------------------------------------------------------------------% -%% Function : get_cycles -%% Arguments : - -%% Returns : CosEventDomainAdmin::CycleSeq -%% Description: -%%---------------------------------------------------------------------- -get_cycles(_OE_This, #state{cyclic = ?ForbidCycles} = State) -> - {reply, [], State}; -get_cycles(_OE_This, #state{graph = DG} = State) -> - {reply, digraph_utils:cyclic_strong_components(DG), State}. - -%%---------------------------------------------------------------------- -%% Function : get_diamonds -%% Arguments : - -%% Returns : CosEventDomainAdmin::DiamondSeq -%% Description: -%%---------------------------------------------------------------------- -get_diamonds(_OE_This, #state{diamonds = ?ForbidDiamonds} = State) -> - {reply, [], State}; -get_diamonds(_OE_This, State) -> - {reply, get_diamonds_helper(State, true), State}. - -get_diamonds_helper(#state{graph = DG} = _State, FindAll) -> - case find_candidates(DG) of - {[], _, _} -> - []; - {_, [], _} -> - []; - {COut, CIn, Max} -> - %% In this case we cannot tell if a diamond exists. Got to - %% check the paths between the candidates. - evaluate_candidates(DG, COut, CIn, [], Max, FindAll) - end. - -get_diamonds_helper(#state{graph = DG} = _State, FindAll, Vertex) -> - case find_candidates(DG, Vertex) of - {[], _, _} -> - []; - {_, [], _} -> - []; - {COut, CIn, Max} -> - %% In this case we cannot tell if a diamond exists. Got to - %% check the paths between the candidates. - evaluate_candidates(DG, COut, CIn, [], Max, FindAll) - end. - -%%---------------------------------------------------------------------% -%% Function : set_default_consumer_channel -%% Arguments : Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : ok | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -set_default_consumer_channel(_OE_This, #state{graph = DG} = State, Id) -> - lookup_channel(DG, Id), - {reply, ok, State#state{def_consumer=Id}}. - -%%---------------------------------------------------------------------% -%% Function : set_default_supplier_channel -%% Arguments : Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : ok | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -set_default_supplier_channel(_OE_This, #state{graph = DG} = State, Id) -> - lookup_channel(DG, Id), - {reply, ok, State#state{def_supplier=Id}}. - -%%---------------------------------------------------------------------% -%% Function : connect_push_consumer -%% Arguments : PC - CosEventComm::PushConsumer -%% Returns : CosNotifyChannelAdmin::ProxyPushSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_push_consumer(_OE_This, #state{def_supplier = Ch} = State, PC) -> - type_check(PC, 'CosEventComm_PushConsumer'), - Proxy = connect_a_push_consumer(Ch, PC, 'ANY_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_pull_consumer -%% Arguments : PC - CosEventComm::PullConsumer -%% Returns : CosNotifyChannelAdmin::ProxyPullSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_pull_consumer(_OE_This, #state{def_consumer = Ch} = State, PC) -> - Proxy = connect_a_pull_consumer(Ch, PC, 'ANY_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_push_supplier -%% Arguments : PS - CosEventComm::PushSupplier -%% Returns : CosNotifyChannelAdmin::ProxyPushConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_push_supplier(_OE_This, #state{def_supplier = Ch} = State, PS) -> - Proxy = connect_a_push_supplier(Ch, PS, 'ANY_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_pull_supplier -%% Arguments : PS - CosEventComm::PullSupplier -%% Returns : CosNotifyChannelAdmin::ProxyPullConsumer -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_pull_supplier(_OE_This, #state{def_consumer = Ch} = State, PS) -> - type_check(PS, 'CosEventComm_PullSupplier'), - Proxy = connect_a_pull_supplier(Ch, PS, 'ANY_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_structured_push_consumer -%% Arguments : PC - CosNotifyComm::StructuredPushConsumer -%% Returns : CosNotifyChannelAdmin::StructuredProxyPushSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_structured_push_consumer(_OE_This, #state{def_supplier = Ch} = State, PC) -> - type_check(PC, 'CosNotifyComm_StructuredPushConsumer'), - Proxy = connect_a_push_consumer(Ch, PC, 'STRUCTURED_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_structured_pull_consumer -%% Arguments : PC - CosNotifyComm::StructuredPullConsumer -%% Returns : CosNotifyChannelAdmin::StructuredProxyPullSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_structured_pull_consumer(_OE_This, #state{def_supplier = Ch} = State, PC) -> - Proxy = connect_a_pull_consumer(Ch, PC, 'STRUCTURED_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_structured_push_supplier -%% Arguments : PS - CosNotifyComm::StructuredPushSupplier -%% Returns : CosNotifyChannelAdmin::StructuredProxyPushConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_structured_push_supplier(_OE_This, #state{def_consumer = Ch} = State, PS) -> - Proxy = connect_a_push_supplier(Ch, PS, 'STRUCTURED_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_structured_pull_supplier -%% Arguments : PS - CosNotifyComm::StructuredPullSupplier -%% Returns : CosNotifyChannelAdmin::StructuredProxyPullConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_structured_pull_supplier(_OE_This, #state{def_consumer = Ch} = State, PS) -> - type_check(PS, 'CosNotifyComm_StructuredPullSupplier'), - Proxy = connect_a_pull_supplier(Ch, PS, 'STRUCTURED_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_sequence_push_consumer -%% Arguments : PC - CosNotifyComm::SequencePushConsumer -%% Returns : CosNotifyChannelAdmin::SequenceProxyPushSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_sequence_push_consumer(_OE_This, #state{def_supplier = Ch} = State, PC) -> - type_check(PC, 'CosNotifyComm_SequencePushConsumer'), - Proxy = connect_a_push_consumer(Ch, PC, 'SEQUENCE_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_sequence_pull_consumer -%% Arguments : PC - CosNotifyComm::SequencePullConsumer -%% Returns : CosNotifyChannelAdmin::SequenceProxyPullSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_sequence_pull_consumer(_OE_This, #state{def_supplier = Ch} = State, PC) -> - Proxy = connect_a_pull_consumer(Ch, PC, 'SEQUENCE_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_sequence_push_supplier -%% Arguments : PS - CosNotifyComm::SequencePushSupplier -%% Returns : CosNotifyChannelAdmin::SequenceProxyPushConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_sequence_push_supplier(_OE_This, #state{def_consumer = Ch} = State, PS) -> - Proxy = connect_a_push_supplier(Ch, PS, 'SEQUENCE_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_sequence_pull_supplier -%% Arguments : PS - CosNotifyComm::SequencePullSupplier -%% Returns : CosNotifyChannelAdmin::SequenceProxyPullConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_sequence_pull_supplier(_OE_This, #state{def_consumer = Ch} = State, PS) -> - type_check(PS, 'CosNotifyComm_SequencePullSupplier'), - Proxy = connect_a_pull_supplier(Ch, PS, 'SEQUENCE_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_push_consumer_with_id -%% Arguments : PC - CosEventComm::PushConsumer -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::ProxyPushSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_push_consumer_with_id(_OE_This, #state{graph = DG} = State, PC, Id) -> - type_check(PC, 'CosEventComm_PushConsumer'), - Channel = lookup_channel(DG, Id), - Proxy = connect_a_push_consumer(Channel, PC, 'ANY_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_pull_consumer_with_id -%% Arguments : PC - CosEventComm::PullConsumer -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::ProxyPullSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_pull_consumer_with_id(_OE_This, #state{graph = DG} = State, PC, Id) -> - Channel = lookup_channel(DG, Id), - Proxy = connect_a_pull_consumer(Channel, PC, 'ANY_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_push_supplier_with_id -%% Arguments : PS - CosEventComm::PushSupplier -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::ProxyPushConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_push_supplier_with_id(_OE_This, #state{graph = DG} = State, PS, Id) -> - Channel = lookup_channel(DG, Id), - Proxy = connect_a_push_supplier(Channel, PS, 'ANY_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_pull_supplier_with_id -%% Arguments : PS - CosEventComm::PullSupplier -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::ProxyPullConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_pull_supplier_with_id(_OE_This, #state{graph = DG} = State, PS, Id) -> - type_check(PS, 'CosEventComm_PullSupplier'), - Channel = lookup_channel(DG, Id), - Proxy = connect_a_pull_supplier(Channel, PS, 'ANY_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_structured_push_consumer_with_id -%% Arguments : PC - CosNotifyComm::StructuredPushConsumer -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::StructuredProxyPushSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_structured_push_consumer_with_id(_OE_This, #state{graph = DG} = State, PC, Id) -> - type_check(PC, 'CosNotifyComm_StructuredPushConsumer'), - Channel = lookup_channel(DG, Id), - Proxy = connect_a_push_consumer(Channel, PC, 'STRUCTURED_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_structured_pull_consumer_with_id -%% Arguments : PC - CosNotifyComm::StructuredPullConsumer -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::StructuredProxyPullSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_structured_pull_consumer_with_id(_OE_This, #state{graph = DG} = State, PC, Id) -> - Channel = lookup_channel(DG, Id), - Proxy = connect_a_pull_consumer(Channel, PC, 'STRUCTURED_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_structured_push_supplier_with_id -%% Arguments : PS - CosNotifyComm::StructuredPushSupplier -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::StructuredProxyPushConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_structured_push_supplier_with_id(_OE_This, #state{graph = DG} = State, PS, Id) -> - Channel = lookup_channel(DG, Id), - Proxy = connect_a_push_supplier(Channel, PS, 'STRUCTURED_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_structured_pull_supplier_with_id -%% Arguments : PS - CosNotifyComm::StructuredPullSupplier -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::StructuredProxyPullConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_structured_pull_supplier_with_id(_OE_This, #state{graph = DG} = State, PS, Id) -> - type_check(PS, 'CosNotifyComm_StructuredPullSupplier'), - Channel = lookup_channel(DG, Id), - Proxy = connect_a_pull_supplier(Channel, PS, 'STRUCTURED_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_sequence_push_consumer_with_id -%% Arguments : PC - CosNotifyComm::SequencePushConsumer -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::SequenceProxyPushSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_sequence_push_consumer_with_id(_OE_This, #state{graph = DG} = State, PC, Id) -> - type_check(PC, 'CosNotifyComm_SequencePushConsumer'), - Channel = lookup_channel(DG, Id), - Proxy = connect_a_push_consumer(Channel, PC, 'SEQUENCE_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_sequence_pull_consumer_with_id -%% Arguments : PC - CosNotifyComm::SequencePullConsumer -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::SequenceProxyPullSupplier | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_sequence_pull_consumer_with_id(_OE_This, #state{graph = DG} = State, PC, Id) -> - Channel = lookup_channel(DG, Id), - Proxy = connect_a_pull_consumer(Channel, PC, 'SEQUENCE_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_sequence_push_supplier_with_id -%% Arguments : PS - CosNotifyComm::SequencePushSupplier -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::SequenceProxyPushConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_sequence_push_supplier_with_id(_OE_This, #state{graph = DG} = State, PS, Id) -> - Channel = lookup_channel(DG, Id), - Proxy = connect_a_push_supplier(Channel, PS, 'SEQUENCE_EVENT'), - {reply, Proxy, State}. - -%%---------------------------------------------------------------------% -%% Function : connect_sequence_pull_supplier_with_id -%% Arguments : PS - CosNotifyComm::SequencePullSupplier -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::SequenceProxyPullConsumer | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} | -%% Description: -%%---------------------------------------------------------------------- -connect_sequence_pull_supplier_with_id(_OE_This, #state{graph = DG} = State, PS, Id) -> - type_check(PS, 'CosNotifyComm_SequencePullSupplier'), - Channel = lookup_channel(DG, Id), - Proxy = connect_a_pull_supplier(Channel, PS, 'SEQUENCE_EVENT'), - {reply, Proxy, State}. - - -%%---------------------------------------------------------------------- -%%------------------ CosNotification::QoSAdmin ------------------------- -%%---------------------------------------------------------------------% -%% Function : get_qos -%% Arguments : - -%% Returns : CosNotification::QoSProperties -%% Description: -%%---------------------------------------------------------------------- -get_qos(_OE_This, #state{cyclic = Cyclic, diamonds = Diamonds} = State) -> - {reply, [#'CosNotification_Property' - {name = ?DiamondDetection, - value = any:create(orber_tc:short(), Diamonds)}, - #'CosNotification_Property' - {name = ?CycleDetection, - value = any:create(orber_tc:short(), Cyclic)}], State}. - -%%---------------------------------------------------------------------% -%% Function : set_qos -%% Arguments : NewQoS - CosNotification::QoSProperties -%% Returns : ok | -%% {'EXCEPTION', #'CosNotification_UnsupportedQoS{}} -%% Description: -%%---------------------------------------------------------------------- -set_qos(_OE_This, State, NewQoS) -> - QoS = cosEventDomainApp:get_qos(NewQoS), - case set_qos_helper(QoS, State, []) of - {ok, NewState} -> - {reply, ok, NewState}; - {error, Errors} -> - corba:raise(#'CosNotification_UnsupportedQoS'{qos_err = Errors}) - end. - -set_qos_helper([], State, []) -> - {ok, State}; %{reply, ok, State}; -set_qos_helper([], _, Errors) -> - {error, Errors}; -set_qos_helper([{?DiamondDetection, Diamonds}|T], #state{diamonds = Diamonds} = State, - Errors) -> - set_qos_helper(T, State, Errors); -set_qos_helper([{?CycleDetection, Cyclic}|T], #state{cyclic = Cyclic} = State, - Errors) -> - set_qos_helper(T, State, Errors); -set_qos_helper([{?DiamondDetection, ?AuthorizeDiamonds}|T], State, Errors) -> - %% Diamonds have not been allowed so far so it's safe to allow it. - set_qos_helper(T, State#state{diamonds = ?AuthorizeDiamonds}, Errors); -set_qos_helper([{?DiamondDetection, ?ForbidDiamonds}|T], State, Errors) -> - %% If any diamonds already exists we cannot allow this. Hence, now we must check - %% if we can update the QoS. - case get_diamonds_helper(State, false) of - [] -> - set_qos_helper(T, State#state{diamonds = ?ForbidDiamonds}, Errors); - _ -> - set_qos_helper(T, State, - [#'CosNotification_PropertyError' - {code = 'UNAVAILABLE_VALUE', - name = ?DiamondDetection, - available_range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:short(), ?AuthorizeDiamonds), - high_val=any:create(orber_tc:short(), ?AuthorizeDiamonds)}}|Errors]) - end; -set_qos_helper([{?CycleDetection, _}|T], #state{cyclic = Cyclic} = State, Errors) -> - %% Currently we do not support changing the Cycle schema. If we want to, - %% we must copy the graph to a new instance of the correct type. - set_qos_helper(T, State, - [#'CosNotification_PropertyError' - {code = 'UNAVAILABLE_VALUE', - name = ?CycleDetection, - available_range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:short(), Cyclic), - high_val=any:create(orber_tc:short(), Cyclic)}}|Errors]). - -%%---------------------------------------------------------------------% -%% Function : validate_qos -%% Arguments : WantedQoS - CosNotification::QoSProperties -%% Returns : {ok, CosNotification::NamedPropertyRangeSeq} | -%% {'EXCEPTION', #'CosNotification_UnsupportedQoS{}} -%% Description: NamedPropertyRangeSeq is of out-type -%%---------------------------------------------------------------------- -validate_qos(_OE_This, State, WantedQoS) -> - QoS = cosEventDomainApp:get_qos(WantedQoS), - case validate_qos_helper(QoS, State, [], []) of - {ok, Properties} -> - {reply, {ok, Properties}, State}; - {error, Errors} -> - corba:raise(#'CosNotification_UnsupportedQoS'{qos_err = Errors}) - end. - -validate_qos_helper([], _, Properties, []) -> - {ok, Properties}; -validate_qos_helper([], _, _, Errors) -> - {error, Errors}; -validate_qos_helper([{?DiamondDetection, ?ForbidDiamonds}|T], State, Properties, - Errors) -> - case get_diamonds_helper(State, false) of - [] -> - Property = - #'CosNotification_NamedPropertyRange' - {name = ?DiamondDetection, - range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:short(), ?AuthorizeDiamonds), - high_val=any:create(orber_tc:short(), ?ForbidDiamonds)}}, - validate_qos_helper(T, State, [Property|Properties], Errors); - _ -> - Error = - #'CosNotification_PropertyError' - {code = 'UNAVAILABLE_VALUE', - name = ?DiamondDetection, - available_range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:short(), ?AuthorizeDiamonds), - high_val=any:create(orber_tc:short(), ?AuthorizeDiamonds)}}, - validate_qos_helper(T, State, Properties, [Error|Errors]) - end; -validate_qos_helper([{?DiamondDetection, ?AuthorizeDiamonds}|T], State, Properties, - Errors) -> - Property = - #'CosNotification_NamedPropertyRange' - {name = ?DiamondDetection, - range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:short(), ?AuthorizeDiamonds), - high_val=any:create(orber_tc:short(), ?ForbidDiamonds)}}, - validate_qos_helper(T, State, [Property|Properties], Errors); -validate_qos_helper([{?CycleDetection, Cyclic}|T], #state{cyclic = Cyclic} = State, - Properties, Errors) -> - validate_qos_helper(T, State, Properties, Errors); -validate_qos_helper([{?CycleDetection, _}|T], #state{cyclic = Cyclic} = State, - Properties, Errors) -> - Error = - #'CosNotification_PropertyError' - {code = 'UNAVAILABLE_VALUE', - name = ?CycleDetection, - available_range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:short(), Cyclic), - high_val=any:create(orber_tc:short(), Cyclic)}}, - validate_qos_helper(T, State, Properties, [Error|Errors]). - - -%%---------------------------------------------------------------------- -%%------------------ CosNotification::AdminPropertiesAdmin ------------- -%%---------------------------------------------------------------------% -%% Function : get_admin -%% Arguments : - -%% Returns : CosNotification::AdminProperties -%% Description: No Admins currently supported -%%---------------------------------------------------------------------- -get_admin(_OE_This, State) -> - {reply, [], State}. - -%%---------------------------------------------------------------------% -%% Function : set_admin -%% Arguments : NewAdmins - CosNotification::AdminProperties -%% Returns : ok | -%% {'EXCEPTION', #'CosNotification_UnsupportedAdmin{}} -%% Description: No Admins currently supported -%%---------------------------------------------------------------------- -set_admin(_OE_This, State, NewAdmins) -> - cosEventDomainApp:get_admin(NewAdmins), - {reply, ok, State}. - - -%%====================================================================== -%% Internal functions -%%====================================================================== -%%---------------------------------------------------------------------% -%% Function : find_candidates -%% Arguments : Digraph reference -%% (Vertex - if we're interested in a specific vertex. -%% Returns : {[SourceVertices], [SinkVertices], Max} -%% SourceVertices - {Vertice, [ReachableVertices]} -%% SinkVertices - {Vertice, [ReachingVertices]} -%% Max - number of edges in the graph. -%% Description: To be a part of a diamond ("transitive" relation xRy, yRz => xRz; -%% in comparison with discrete mathematics we do not require that the -%% entire graph is transitive) a vertex must have more than one -%% outgoing and/or incoming. Hence, a digraph must contain at least -%% one vertex with more than one outgoing edges and at least -%% one with more than one incoming edges for a diamond to exist. -%% Hence, the purpose of this function is to find vertices that -%% look like: -%% -%% Vout->V1 V6->Vin -%% \ and ^ -%% +->V2 | -%% V8--+ -%%---------------------------------------------------------------------- -find_candidates(DG) -> - Edges = digraph:edges(DG), - {COut, CIn, Max} = find_candidates_helper(Edges, [], [], DG, 0), - {filter_candidates(COut), filter_candidates(CIn), Max}. - - -find_candidates(DG, _Vertex) -> - %% We should use the fact that we know one of the vertices. - Edges = digraph:edges(DG), - {COut, CIn, Max} = find_candidates_helper(Edges, [], [], DG, 0), - {filter_candidates(COut), filter_candidates(CIn), Max}. - -find_candidates_helper([], AccOut, AccIn, _, Counter) -> - {lists:sort(AccOut), lists:sort(AccIn), Counter}; -find_candidates_helper([H|T], AccOut, AccIn, DG, Counter) -> - {H, V1, V2, _Label} = digraph:edge(DG, H), - find_candidates_helper(T, [{V1, V2}|AccOut], [{V2,V1}|AccIn], DG, Counter+1). - -filter_candidates([]) -> - []; -filter_candidates([{V1, V2}|T]) -> - filter_candidates([{V1, V2}|T], V1, [], []). -filter_candidates([], _V, [_Acc1], Acc2) -> - %% Only one in/out connection. Hence, cannot be start- or end-point - %% of a diamond. - lists:reverse(Acc2); -filter_candidates([], V, Acc1, Acc2) -> - lists:reverse([{V, lists:reverse(Acc1)}|Acc2]); -filter_candidates([{V1, V2}|T], V1, Acc1, Acc2) -> - filter_candidates(T, V1, [V2|Acc1], Acc2); -filter_candidates([{V1, V2}|T], _V, [_Acc1], Acc2) -> - %% Only one in/out connection. Hence, cannot be start- or end-point - %% of a diamond. - filter_candidates(T, V1, [V2], Acc2); -filter_candidates([{V1, V2}|T], V, Acc1, Acc2) -> - filter_candidates(T, V1, [V2], [{V, lists:reverse(Acc1)}|Acc2]). - -%%---------------------------------------------------------------------% -%% Function : evaluate_candidates -%% Arguments : - -%% Returns : [Diamond] -%% Description: There are several scenarios but they can be categorized as: -%% (1) (2) (3) (4) -%% 2 2 2-..-56 -%% / \ / \ / \ -%% 1---4 1---4 1---4 1 4 -%% \ / \ / \ / -%% 3 3 3-..-11 -%% -%% The purpose of this function is to find these in the cheapest -%% way possible. For complex diamonds (may also include cycles) -%% duplicates may be generated. For example, #2/#3 is a sub-set of #1 -%% but they are as well diamonds. -%%---------------------------------------------------------------------- -evaluate_candidates(_DG, [], _, Acc, _Max, _) -> - Acc; -evaluate_candidates(DG, [{V, OutV}|T], CIn, Acc, Max, FindAll) -> - case evaluate_candidates_helper(DG, V, OutV, CIn, [], FindAll) of - [] -> - evaluate_candidates(DG, T, CIn, Acc, Max, FindAll); - Diamonds when FindAll == true -> - %% May be more than one diamond. - evaluate_candidates(DG, T, CIn, Diamonds ++ Acc, Max, FindAll); - Diamond -> - Diamond - end. - -evaluate_candidates_helper(_, _, _, _, [Diamond], false) -> - Diamond; -evaluate_candidates_helper(_, _, _, [], Diamonds, _) -> - Diamonds; -evaluate_candidates_helper(DG, V1, OutV, [{V1, _InV}|T], Diamonds, FindAll) -> - evaluate_candidates_helper(DG, V1, OutV, T, Diamonds, FindAll); -evaluate_candidates_helper(DG, V1, OutV, [{V2, InV}|T], Diamonds, FindAll) -> - case double_match(OutV, InV, [], V1, V2) of - [] -> - case is_member(InV, V1) of - true -> - %% At this point we know that we have: - %% x -> y - %% For this pair to be a part of a diamond we have two options: - %% (1) x - y (2) x ---- y - %% \ / or \ / or a additional path besides z1-zN, - %% z z1-zN - case double_match_exclude(OutV, InV, [], V1, V2) of - [] -> - %% Nope it's not #1. - case digraph_match(OutV, V2, V1, DG, 1) of - false -> - evaluate_candidates_helper(DG, V1, OutV, T, - Diamonds, FindAll); - Diamond -> - evaluate_candidates_helper(DG, V1, OutV, T, - [[[V1, V2]|Diamond]|Diamonds], - FindAll) - end; - Diamond -> - %% We've found a diamond looking like: - %% x - y xRy, yRz => xRz - %% \ / - %% z - evaluate_candidates_helper(DG, V1, OutV, T, - [[[V1, V2]|Diamond]|Diamonds], - FindAll) - end; - false -> - case digraph_match(OutV, V2, V1, DG) of - false -> - evaluate_candidates_helper(DG, V1, OutV, T, - Diamonds, FindAll); - Diamond -> - evaluate_candidates_helper(DG, V1, OutV, T, - [Diamond|Diamonds], FindAll) - end - end; - Diamond -> - %% We've found a diamond looking something like: - %% 2 - %% / \ - %% 1-5-4 V1 eq. 1, V2 eq 4. - %% \ / - %% 3 - evaluate_candidates_helper(DG, V1, OutV, T, [Diamond|Diamonds], - FindAll) - end. - -is_member([], _) -> - false; -is_member([H|_], H) -> - true; -is_member([H|_], H2) when H > H2 -> - %% Since it's a sorted list no need to look any further. - false; -is_member([_|T], H) -> - is_member(T, H). - -double_match([], _, [_Matched], _, _) -> - []; -double_match([], _, Matched, _, _) -> - Matched; -double_match(_, [], [_Matched], _, _) -> - []; -double_match(_, [], Matched, _, _) -> - Matched; -double_match([H|T1], [H|T2], Matched, V1, V2) -> - double_match(T1, T2, [[V1,H,V2] | Matched], V1, V2); -double_match([H1|T1], [H2|T2], Matched, V1, V2) when H1 > H2 -> - double_match([H1|T1], T2, Matched, V1, V2); -double_match([_H1|T1], [H2|T2], Matched, V1, V2) -> - double_match(T1, [H2|T2], Matched, V1, V2). - -double_match_exclude([], _, Matched, _, _) -> - Matched; -double_match_exclude(_, [], Matched, _, _) -> - Matched; -%% exclude it -double_match_exclude([V2|T1], CIn, Matched, V1, V2) -> - double_match_exclude(T1, CIn, Matched, V1, V2); -%% exclude it -double_match_exclude(COut, [V1|T2], Matched, V1, V2) -> - double_match_exclude(COut, T2, Matched, V1, V2); -%% Found match -double_match_exclude([H|T1], [H|T2], Matched, V1, V2) -> - double_match_exclude(T1, T2, [[V1,H,V2] | Matched], V1, V2); -double_match_exclude([H1|T1], [H2|T2], Matched, V1, V2) when H1 > H2 -> - double_match_exclude([H1|T1], T2, Matched, V1, V2); -double_match_exclude([_H1|T1], [H2|T2], Matched, V1, V2) -> - double_match_exclude(T1, [H2|T2], Matched, V1, V2). - - -digraph_match(OutV, V2, V1, DG) -> - digraph_match(OutV, V2, V1, DG, [], 0). - -digraph_match(OutV, V2, V1, DG, Counter) -> - digraph_match(OutV, V2, V1, DG, [], Counter). - -digraph_match([], _, _, _, _, Counter) when Counter < 2 -> - false; -digraph_match([], _, _, _, Acc, _) -> - Acc; -digraph_match([Vin|T], Vin, Vout, DG, Acc, Counter) -> - digraph_match(T, Vin, Vout, DG, Acc, Counter); -digraph_match([H|T], Vin, Vout, DG, Acc, Counter) -> - case get_path(DG, H, Vin, H, Vout) of - false -> - digraph_match(T, Vin, Vout, DG, Acc, Counter); - Path -> - %% Found one path; now me must se if there are one more. - digraph_match(T, Vin, Vout, DG, [[Vout|lists:reverse(Path)] | Acc], - Counter+1) - end. - -get_path(G, V1, V2, E1, E2) -> - one_path(digraph:out_neighbours(G, V1), V2, [], [V1], [V1], G, E1, E2). - -one_path([E1|_Vs], W, Cont, Xs, Ps, G, E1, E2) -> - one_path([], W, Cont, Xs, Ps, G, E1, E2); -one_path([E2|_Vs], W, Cont, Xs, Ps, G, E1, E2) -> - one_path([], W, Cont, Xs, Ps, G, E1, E2); -one_path([W|_Ws], W, _Cont, _Xs, Ps, _G, _E1, _E2) -> - [W|Ps]; -one_path([V|Vs], W, Cont, Xs, Ps, G, E1, E2) -> - case lists:member(V, Xs) of - true -> one_path(Vs, W, Cont, Xs, Ps, G, E1, E2); - false -> one_path(digraph:out_neighbours(G, V), W, - [{Vs,Ps} | Cont], [V|Xs], [V|Ps], G, E1, E2) - end; -one_path([], W, [{Vs,Ps}|Cont], Xs, _, G, E1, E2) -> - one_path(Vs, W, Cont, Xs, Ps, G, E1, E2); -one_path([], _, [], _, _, _, _, _) -> false. - -%%---------------------------------------------------------------------% -%% function : type_check -%% Arguments: Obj - objectrefernce to test. -%% Mod - Module which contains typeID/0. -%% Returns : 'ok' or raises exception. -%% Effect : -%%---------------------------------------------------------------------- -type_check(Obj, Mod) -> - case catch corba_object:is_a(Obj,Mod:typeID()) of - true -> - ok; - What -> - orber:dbg("[~p] CosEventDomainAdmin:type_check();~n" - "Object of incorrect type supplied; should be: ~p~n" - "Failed due to: ~p", [?LINE, Mod, What], ?DEBUG_LEVEL), - corba:raise(#'BAD_PARAM'{minor=507, completion_status=?COMPLETED_NO}) - end. - -%%---------------------------------------------------------------------% -%% function : lookup_channel -%% Arguments: DG - digraph reference -%% Id - CosEventDomainAdmin::MemberID (long()) -%% Returns : CosNotifyChannelAdmin::EventChannel | -%% {'EXCEPTION', #'CosNotifyChannelAdmin_ChannelNotFound'{}} -%% Effect : -%%---------------------------------------------------------------------- -lookup_channel(DG, Id) -> - case digraph:vertex(DG, Id) of - {Id, Channel} -> - Channel; - false -> - corba:raise(#'CosNotifyChannelAdmin_ChannelNotFound'{}) - end. - - -%%---------------------------------------------------------------------% -%% function : lookup_connection -%% Arguments: DG - digraph reference -%% Id - CosEventDomainAdmin::ConnectionID (long()) -%% Returns : #connectio{} | -%% {'EXCEPTION', #'CosEventDomainAdmin_ConnectionNotFound'{}} -%% Effect : -%%---------------------------------------------------------------------- -lookup_connection(DG, Id) -> - case digraph:edge(DG, Id) of - {Id, _SId, _CId, Connection} -> - Connection; - false -> - corba:raise(#'CosEventDomainAdmin_ConnectionNotFound'{}) - end. - -%%---------------------------------------------------------------------% -%% function : lookup_connection_data -%% Arguments: DG - digraph reference -%% Id - CosEventDomainAdmin::ConnectionID (long()) -%% Returns : CosEventDomainAdmin::Connection | -%% {'EXCEPTION', #'CosEventDomainAdmin_ConnectionNotFound'{}} -%% Effect : -%%---------------------------------------------------------------------- -lookup_connection_data(DG, Id) -> - case digraph:edge(DG, Id) of - {Id, _SId, _CId, #connection{data = Connection}} -> - Connection; - false -> - corba:raise(#'CosEventDomainAdmin_ConnectionNotFound'{}) - end. - -%%---------------------------------------------------------------------% -%% function : close_connections -%% Arguments: DG -digraph reference -%% [CosEventDomainAdmin::ConnectionID] - [long()] -%% Returns : ok -%% Effect : -%%---------------------------------------------------------------------- -close_connections(_DG, []) -> - ok; -close_connections(DG, [H|T]) -> - #connection{supplier=S, consumer=C, data=Connection} = - lookup_connection(DG, H), - close_connection(Connection, S, C), - digraph:del_edge(DG, H), - close_connections(DG, T). - -%%---------------------------------------------------------------------% -%% function : close_connection -%% Arguments: CosEventDomainAdmin::Connection -%% S - SupplierProxy -%% C - ConsumerProxy -%% Returns : ok -%% Effect : -%%---------------------------------------------------------------------- -close_connection(#'CosEventDomainAdmin_Connection'{ctype=Type, - notification_style = Style}, - S, C) -> - case {Type, Style} of - {'ANY_EVENT', 'Push'} -> - catch 'CosNotifyChannelAdmin_ProxyPushSupplier':disconnect_push_supplier(S), - catch 'CosNotifyChannelAdmin_ProxyPushConsumer':disconnect_push_consumer(C); - {'ANY_EVENT', 'Pull'} -> - catch 'CosNotifyChannelAdmin_ProxyPullSupplier':disconnect_pull_supplier(S), - catch 'CosNotifyChannelAdmin_ProxyPullConsumer':disconnect_pull_consumer(C); - {'STRUCTURED_EVENT', 'Push'} -> - catch 'CosNotifyChannelAdmin_StructuredProxyPushSupplier':disconnect_structured_push_supplier(S), - catch 'CosNotifyChannelAdmin_StructuredProxyPushConsumer':disconnect_structured_push_consumer(C); - {'STRUCTURED_EVENT', 'Pull'} -> - catch 'CosNotifyChannelAdmin_StructuredProxyPullSupplier':disconnect_structured_pull_supplier(S), - catch 'CosNotifyChannelAdmin_StructuredProxyPullConsumer':disconnect_structured_pull_consumer(C); - {'SEQUENCE_EVENT', 'Push'} -> - catch 'CosNotifyChannelAdmin_SequenceProxyPushSupplier':disconnect_sequence_push_supplier(S), - catch 'CosNotifyChannelAdmin_SequenceProxyPushConsumer':disconnect_sequence_push_consumer(C); - {'SEQUENCE_EVENT', 'Pull'}-> - catch 'CosNotifyChannelAdmin_SequenceProxyPullSupplier':disconnect_sequence_pull_supplier(S), - catch 'CosNotifyChannelAdmin_SequenceProxyPullConsumer':disconnect_sequence_pull_consumer(C) - end, - ok. - -%%---------------------------------------------------------------------% -%% function : setup_connection -%% Arguments: CosEventDomainAdmin::Connection -%% S - SupplierProxy -%% C - ConsumerProxy -%% Returns : {ok, SupplierProxy, ConsumerProxy}; -%% Effect : -%%---------------------------------------------------------------------- -setup_connection(#'CosEventDomainAdmin_Connection'{ctype=Type, - notification_style = Style}, - S, C) -> - Admin = - 'CosNotifyChannelAdmin_EventChannel':'_get_default_consumer_admin'(S), - case Style of - 'Push' -> - {Proxy, _Id} = - 'CosNotifyChannelAdmin_ConsumerAdmin': - obtain_notification_push_supplier(Admin, Type), - CProxy = connect_a_push_supplier(C, Proxy, Type), - case Type of - 'ANY_EVENT' -> - 'CosNotifyChannelAdmin_ProxyPushSupplier': - connect_any_push_consumer(Proxy, CProxy); - 'STRUCTURED_EVENT' -> - 'CosNotifyChannelAdmin_StructuredProxyPushSupplier': - connect_structured_push_consumer(Proxy, CProxy); - 'SEQUENCE_EVENT' -> - 'CosNotifyChannelAdmin_SequenceProxyPushSupplier': - connect_sequence_push_consumer(Proxy, CProxy) - end, - {ok, Proxy, CProxy}; - 'Pull' -> - {Proxy, _Id} = - 'CosNotifyChannelAdmin_ConsumerAdmin': - obtain_notification_pull_supplier(Admin, Type), - CProxy = connect_a_pull_supplier(C, Proxy, Type), - case Type of - 'ANY_EVENT' -> - 'CosNotifyChannelAdmin_ProxyPullSupplier': - connect_any_pull_consumer(Proxy, CProxy); - 'STRUCTURED_EVENT' -> - 'CosNotifyChannelAdmin_StructuredProxyPullSupplier': - connect_structured_pull_consumer(Proxy, CProxy); - 'SEQUENCE_EVENT' -> - 'CosNotifyChannelAdmin_SequenceProxyPullSupplier': - connect_sequence_pull_consumer(Proxy, CProxy) - end, - {ok, Proxy, CProxy} - end. - -%%---------------------------------------------------------------------% -%% function : connect_a_pull_consumer -%% Arguments: Channel - CosNotifyChannelAdmin::EventChannel | undefined -%% PC - a PullConsumer -%% Type - 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT' -%% Returns : -%% Effect : -%%---------------------------------------------------------------------- -connect_a_pull_consumer(undefined, _, _) -> - corba:raise(#'CosNotifyChannelAdmin_ChannelNotFound'{}); -connect_a_pull_consumer(Channel, PC, Type) -> - Admin = - 'CosNotifyChannelAdmin_EventChannel':'_get_default_consumer_admin'(Channel), - {Proxy, _Id} = - 'CosNotifyChannelAdmin_ConsumerAdmin':obtain_notification_pull_supplier(Admin, - Type), - case Type of - 'ANY_EVENT' -> - 'CosNotifyChannelAdmin_ProxyPullSupplier':connect_any_pull_consumer(Proxy, PC); - 'STRUCTURED_EVENT' -> - 'CosNotifyChannelAdmin_StructuredProxyPullSupplier':connect_structured_pull_consumer(Proxy, PC); - 'SEQUENCE_EVENT' -> - 'CosNotifyChannelAdmin_SequenceProxyPullSupplier':connect_sequence_pull_consumer(Proxy, PC) - end, - Proxy. - -%%---------------------------------------------------------------------% -%% function : connect_a_push_consumer -%% Arguments: Channel - CosNotifyChannelAdmin::EventChannel | undefined -%% PC - a PushConsumer -%% Type - 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT' -%% Returns : -%% Effect : -%%---------------------------------------------------------------------- -connect_a_push_consumer(undefined, _, _) -> - corba:raise(#'CosNotifyChannelAdmin_ChannelNotFound'{}); -connect_a_push_consumer(Channel, PC, Type) -> - Admin = - 'CosNotifyChannelAdmin_EventChannel':'_get_default_consumer_admin'(Channel), - {Proxy, _Id} = - 'CosNotifyChannelAdmin_ConsumerAdmin':obtain_notification_push_supplier(Admin, - Type), - case Type of - 'ANY_EVENT' -> - 'CosNotifyChannelAdmin_ProxyPushSupplier':connect_any_push_consumer(Proxy, PC); - 'STRUCTURED_EVENT' -> - 'CosNotifyChannelAdmin_StructuredProxyPushSupplier':connect_structured_push_consumer(Proxy, PC); - 'SEQUENCE_EVENT' -> - 'CosNotifyChannelAdmin_SequenceProxyPushSupplier':connect_sequence_push_consumer(Proxy, PC) - end, - Proxy. - -%%---------------------------------------------------------------------% -%% function : connect_a_pull_supplier -%% Arguments: Channel - CosNotifyChannelAdmin::EventChannel | undefined -%% PC - a PullSupplier -%% Type - 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT' -%% Returns : -%% Effect : -%%---------------------------------------------------------------------- -connect_a_pull_supplier(undefined, _, _) -> - corba:raise(#'CosNotifyChannelAdmin_ChannelNotFound'{}); -connect_a_pull_supplier(Channel, PS, Type) -> - Admin = - 'CosNotifyChannelAdmin_EventChannel':'_get_default_supplier_admin'(Channel), - {Proxy, _Id} = - 'CosNotifyChannelAdmin_SupplierAdmin':obtain_notification_pull_consumer(Admin, - Type), - case Type of - 'ANY_EVENT' -> - 'CosNotifyChannelAdmin_ProxyPullConsumer':connect_any_pull_supplier(Proxy, PS); - 'STRUCTURED_EVENT' -> - 'CosNotifyChannelAdmin_StructuredProxyPullConsumer':connect_structured_pull_supplier(Proxy, PS); - 'SEQUENCE_EVENT' -> - 'CosNotifyChannelAdmin_SequenceProxyPullConsumer':connect_sequence_pull_supplier(Proxy, PS) - end, - Proxy. - -%%---------------------------------------------------------------------% -%% function : connect_a_push_supplier -%% Arguments: Channel - CosNotifyChannelAdmin::EventChannel | undefined -%% PC - a PushSupplier -%% Type - 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT' -%% Returns : -%% Effect : -%%---------------------------------------------------------------------- -connect_a_push_supplier(undefined, _, _) -> - corba:raise(#'CosNotifyChannelAdmin_ChannelNotFound'{}); -connect_a_push_supplier(Channel, PS, Type) -> - Admin = - 'CosNotifyChannelAdmin_EventChannel':'_get_default_supplier_admin'(Channel), - {Proxy, _Id} = - 'CosNotifyChannelAdmin_SupplierAdmin':obtain_notification_push_consumer(Admin, - Type), - case Type of - 'ANY_EVENT' -> - 'CosNotifyChannelAdmin_ProxyPushConsumer':connect_any_push_supplier(Proxy, PS); - 'STRUCTURED_EVENT' -> - 'CosNotifyChannelAdmin_StructuredProxyPushConsumer':connect_structured_push_supplier(Proxy, PS); - 'SEQUENCE_EVENT' -> - 'CosNotifyChannelAdmin_SequenceProxyPushConsumer':connect_sequence_push_supplier(Proxy, PS) - end, - Proxy. - - -%%====================================================================== -%% END OF MODULE -%%====================================================================== - diff --git a/lib/cosEventDomain/src/Makefile b/lib/cosEventDomain/src/Makefile deleted file mode 100644 index cdaf9e5f1f..0000000000 --- a/lib/cosEventDomain/src/Makefile +++ /dev/null @@ -1,185 +0,0 @@ -# -# %CopyrightBegin% -# -# Copyright Ericsson AB 2001-2016. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# %CopyrightEnd% -# -# -include $(ERL_TOP)/make/target.mk -ifeq ($(TYPE),debug) -ERL_COMPILE_FLAGS += -Ddebug -W -endif -EBIN=../ebin -include $(ERL_TOP)/make/$(TARGET)/otp.mk - -# ---------------------------------------------------- -# Application version -# ---------------------------------------------------- -include ../vsn.mk -VSN=$(COSEVENTDOMAIN_VSN) - -# ---------------------------------------------------- -# Release directory specification -# ---------------------------------------------------- -RELSYSDIR = $(RELEASE_PATH)/lib/cosEventDomain-$(VSN) -# ---------------------------------------------------- -# Target Specs -# ---------------------------------------------------- - -MODULES = \ - CosEventDomainAdmin_EventDomainFactory_impl \ - CosEventDomainAdmin_EventDomain_impl \ - cosEventDomainApp - -ERL_FILES = $(MODULES:%=%.erl) -HRL_FILES = cosEventDomainApp.hrl - -EXTERNAL_INC_PATH = ../include - -GEN_ERL_FILES = \ - oe_CosEventDomainAdmin.erl \ - CosEventDomainAdmin.erl \ - CosEventDomainAdmin_DiamondSeq.erl \ - CosEventDomainAdmin_AlreadyExists.erl \ - CosEventDomainAdmin_DomainIDSeq.erl \ - CosEventDomainAdmin_Connection.erl \ - CosEventDomainAdmin_ConnectionIDSeq.erl \ - CosEventDomainAdmin_ConnectionNotFound.erl \ - CosEventDomainAdmin_CycleCreationForbidden.erl \ - CosEventDomainAdmin_CycleSeq.erl \ - CosEventDomainAdmin_DiamondCreationForbidden.erl \ - CosEventDomainAdmin_DomainNotFound.erl \ - CosEventDomainAdmin_EventDomain.erl \ - CosEventDomainAdmin_EventDomainFactory.erl \ - CosEventDomainAdmin_MemberIDSeq.erl \ - CosEventDomainAdmin_RouteSeq.erl - - - -GEN_HRL_FILES = \ - oe_CosEventDomainAdmin.hrl \ - CosEventDomainAdmin.hrl \ - CosEventDomainAdmin_EventDomainFactory.hrl \ - CosEventDomainAdmin_EventDomain.hrl - -EXTERNAL_GEN_HRL_FILES = \ - $(GEN_HRL_FILES:%=$(EXTERNAL_INC_PATH)/%) - - -TARGET_FILES = \ - $(GEN_ERL_FILES:%.erl=$(EBIN)/%.$(EMULATOR)) \ - $(MODULES:%=$(EBIN)/%.$(EMULATOR)) - -GEN_FILES = $(GEN_HRL_FILES) $(GEN_ERL_FILES) - -IDL_FILES = \ - CosEventDomainAdmin.idl - -APPUP_FILE = cosEventDomain.appup -APPUP_SRC = $(APPUP_FILE).src -APPUP_TARGET = $(EBIN)/$(APPUP_FILE) - -APP_FILE = cosEventDomain.app -APP_SRC = $(APP_FILE).src -APP_TARGET = $(EBIN)/$(APP_FILE) - -# ---------------------------------------------------- -# FLAGS -# ---------------------------------------------------- -ERL_IDL_FLAGS += \ - -pa $(ERL_TOP)/lib/cosEventDomain/ebin \ - -pa $(ERL_TOP)/lib/cosEventDomain/include \ - -pa $(ERL_TOP)/lib/cosNotification/include \ - -pa $(ERL_TOP)/lib/cosNotification/ebin \ - -pa $(ERL_TOP)/lib/ic/ebin \ - -I$(ERL_TOP)/lib/cosNotification/include \ - -I$(ERL_TOP)/lib/cosNotification/ebin \ - -I$(ERL_TOP)/lib/cosNotification/src \ - -I$(ERL_TOP)/lib/cosEvent/src \ - -I$(ERL_TOP)/lib/cosEventDomain/include -# The -pa option is just used temporary until erlc can handle -# includes from other directories than ../include . -ERL_COMPILE_FLAGS += \ - $(ERL_IDL_FLAGS) \ - -pa $(ERL_TOP)/lib/cosEventDomain/include \ - -pa $(ERL_TOP)/lib/cosNotification/ebin \ - -pa $(ERL_TOP)/lib/cosNotification/include \ - -pa $(ERL_TOP)/lib/cosNotification/src \ - -I$(ERL_TOP)/lib/cosEventDomain/include \ - -I$(ERL_TOP)/lib/cosNotification/ebin \ - -I$(ERL_TOP)/lib/cosNotification/include \ - -I$(ERL_TOP)/lib/cosNotification/src \ - -I$(ERL_TOP)/lib/cosEvent/src \ - -I$(ERL_TOP)/lib/cosEvent/include \ - +'{parse_transform,sys_pre_attributes}' \ - +'{attribute,insert,app_vsn,"cosEventDomain_$(COSEVENTDOMAIN_VSN)"}' - -YRL_FLAGS = - -# ---------------------------------------------------- -# Targets -# ---------------------------------------------------- -opt: $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) - -debug: - @${MAKE} TYPE=debug opt - -clean: - rm -f $(TARGET_FILES) $(GEN_FILES) $(APP_TARGET) $(APPUP_TARGET) IDL-GENERATED - rm -f errs core *~ - -$(APP_TARGET): $(APP_SRC) - $(vsn_verbose)sed -e 's;%VSN%;$(VSN);' $(APP_SRC) > $(APP_TARGET) -$(APPUP_TARGET): $(APPUP_SRC) - $(vsn_verbose)sed -e 's;%VSN%;$(VSN);' $(APPUP_SRC) > $(APPUP_TARGET) - -docs: - -# ---------------------------------------------------- -# Special Build Targets -# ---------------------------------------------------- -IDL-GENERATED: CosEventDomainAdmin.idl - $(gen_verbose)erlc $(ERL_IDL_FLAGS) +'{cfgfile,"CosEventDomainAdmin.cfg"}' CosEventDomainAdmin.idl - $(V_at)mv $(GEN_HRL_FILES) $(EXTERNAL_INC_PATH) - $(V_at)>IDL-GENERATED - -$(GEN_FILES): IDL-GENERATED - -$(TARGET_FILES): IDL-GENERATED - -# ---------------------------------------------------- -# Release Target -# ---------------------------------------------------- -include $(ERL_TOP)/make/otp_release_targets.mk - - -release_spec: opt - $(INSTALL_DIR) "$(RELSYSDIR)" - $(INSTALL_DATA) ../info "$(RELSYSDIR)" - $(INSTALL_DIR) "$(RELSYSDIR)/ebin" - $(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) "$(RELSYSDIR)/ebin" - $(INSTALL_DIR) "$(RELSYSDIR)/src" - $(INSTALL_DATA) $(ERL_FILES) $(HRL_FILES) $(GEN_ERL_FILES) $(IDL_FILES) "$(RELSYSDIR)/src" - $(INSTALL_DIR) "$(RELSYSDIR)/include" - $(INSTALL_DATA) $(EXTERNAL_GEN_HRL_FILES) "$(RELSYSDIR)/include" - - -release_docs_spec: - - - - - diff --git a/lib/cosEventDomain/src/cosEventDomain.app.src b/lib/cosEventDomain/src/cosEventDomain.app.src deleted file mode 100644 index f218ac853e..0000000000 --- a/lib/cosEventDomain/src/cosEventDomain.app.src +++ /dev/null @@ -1,33 +0,0 @@ -{application, cosEventDomain, - [{description, "The Erlang CosEventDomain application"}, - {vsn, "%VSN%"}, - {modules, - [ - 'CosEventDomainAdmin_EventDomainFactory_impl', - 'CosEventDomainAdmin_EventDomain_impl', - 'cosEventDomainApp', - 'oe_CosEventDomainAdmin', - 'CosEventDomainAdmin', - 'CosEventDomainAdmin_DiamondSeq', - 'CosEventDomainAdmin_AlreadyExists', - 'CosEventDomainAdmin_DomainIDSeq', - 'CosEventDomainAdmin_Connection', - 'CosEventDomainAdmin_ConnectionIDSeq', - 'CosEventDomainAdmin_ConnectionNotFound', - 'CosEventDomainAdmin_CycleCreationForbidden', - 'CosEventDomainAdmin_CycleSeq', - 'CosEventDomainAdmin_DiamondCreationForbidden', - 'CosEventDomainAdmin_DomainNotFound', - 'CosEventDomainAdmin_EventDomain', - 'CosEventDomainAdmin_EventDomainFactory', - 'CosEventDomainAdmin_MemberIDSeq', - 'CosEventDomainAdmin_RouteSeq' - ] - }, - {registered, []}, - {applications, [orber, stdlib, kernel]}, - {env, []}, - {mod, {cosEventDomainApp, []}}, - {runtime_dependencies, ["stdlib-2.0","orber-3.6.27","kernel-3.0","erts-7.0", - "cosNotification-1.1.21"]} -]}. diff --git a/lib/cosEventDomain/src/cosEventDomain.appup.src b/lib/cosEventDomain/src/cosEventDomain.appup.src deleted file mode 100644 index d69b2ef20c..0000000000 --- a/lib/cosEventDomain/src/cosEventDomain.appup.src +++ /dev/null @@ -1,6 +0,0 @@ -{"%VSN%", - [ - ], - [ - ] -} diff --git a/lib/cosEventDomain/src/cosEventDomainApp.erl b/lib/cosEventDomain/src/cosEventDomainApp.erl deleted file mode 100644 index be7c2f518a..0000000000 --- a/lib/cosEventDomain/src/cosEventDomainApp.erl +++ /dev/null @@ -1,341 +0,0 @@ -%%-------------------------------------------------------------------- -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2001-2015. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% -%% -%%-------------------------------------------------------------------- -%% File : cosEventDomainApp.erl -%% Purpose : -%%-------------------------------------------------------------------- - --module(cosEventDomainApp). - -%%--------------- INCLUDES ----------------------------------- --include_lib("orber/include/corba.hrl"). --include_lib("orber/include/ifr_types.hrl"). --include_lib("cosNotification/include/CosNotification.hrl"). -%% Application files --include("cosEventDomainApp.hrl"). --include("CosEventDomainAdmin.hrl"). - -%%--------------- EXPORTS ------------------------------------ -%% External MISC --export([get_option/3, - create_id/1, - is_debug_compiled/0, - install/0, - uninstall/0, - start_factory/0, - start_factory/1, - start_factory_link/0, - start_factory_link/1, - stop_factory/1, - start/0, - stop/0, - create_link/3, - get_qos/1, - get_admin/1]). - -%% Application callbacks --export([start/2, init/1, stop/1]). - -%%--------------- DEFINES ------------------------------------ - --define(SUPERVISOR_NAME, oe_cosEventDomainSup). --define(SUP_FLAG, {simple_one_for_one,50,10}). - --define(SUP_SPEC(Name, Args), - ['CosEventDomainAdmin_EventDomain',Args, - [{sup_child, true}, {regname, {global, Name}}]]). --define(SUP_CHILD, - {"oe_EventDomainChild", - {cosEventDomainApp,create_link, []}, - transient,100000,worker, - ['CosEventDomainAdmin_EventDomain']}). - - --define(DEFAULT_OPTIONS, []). - -%%--------------- DEFINITIONS OF CONSTANTS ------------------- -%%--------------- EXTERNAL MISC FUNCTIONS -------------------- -%%-----------------------------------------------------------% -%% function : install -%% Arguments: -%% Returns : -%% Exception: -%% Effect : -%%------------------------------------------------------------ -install() -> - oe_CosEventDomainAdmin:oe_register(). - -%%-----------------------------------------------------------% -%% function : uninstall -%% Arguments: -%% Returns : -%% Exception: -%% Effect : -%%------------------------------------------------------------ -uninstall() -> - oe_CosEventDomainAdmin:oe_unregister(). - -%%-----------------------------------------------------------% -%% function : start/stop -%% Arguments: -%% Returns : -%% Effect : Starts or stops the cosTime application. -%%------------------------------------------------------------ - -start() -> - application:start(cosEventDomain). -stop() -> - application:stop(cosEventDomain). - -%%-----------------------------------------------------------% -%% function : start -%% Arguments: Type - see module application -%% Arg - see module application -%% Returns : -%% Effect : Module callback for application -%%------------------------------------------------------------ - -start(_, _) -> - supervisor:start_link({local, ?SUPERVISOR_NAME}, cosEventDomainApp, app_init). - - -%%-----------------------------------------------------------% -%% function : stop -%% Arguments: Arg - see module application -%% Returns : -%% Effect : Module callback for application -%%------------------------------------------------------------ - -stop(_) -> - ok. - -%%-----------------------------------------------------------% -%% function : start_channel -%% Arguments: - -%% Returns : -%% Effect : -%%------------------------------------------------------------ -start_factory() -> - start_factory(?DEFAULT_OPTIONS). - -start_factory(Options) when is_list(Options) -> - 'CosEventDomainAdmin_EventDomainFactory':oe_create(Options); -start_factory(Options) -> - orber:dbg("[~p] cosEventDomainApp:start_factory(~p);~n" - "Options not correct.", - [?LINE, Options], ?DEBUG_LEVEL), - corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}). - -%%-----------------------------------------------------------% -%% function : start_channel -%% Arguments: - -%% Returns : -%% Effect : -%%------------------------------------------------------------ -start_factory_link() -> - start_factory_link(?DEFAULT_OPTIONS). - -start_factory_link(Options) when is_list(Options) -> - 'CosEventDomainAdmin_EventDomainFactory':oe_create_link(Options); -start_factory_link(Options) -> - orber:dbg("[~p] cosEventDomainApp:start_factory_link(~p);~n" - "Options not correct.", - [?LINE, Options], ?DEBUG_LEVEL), - corba:raise(#'BAD_PARAM'{completion_status=?COMPLETED_NO}). - -%%-----------------------------------------------------------% -%% function : stop_factory -%% Arguments: ChannelObj -%% Returns : -%% Effect : -%%------------------------------------------------------------ -stop_factory(ChannelObj) -> - corba:dispose(ChannelObj). - -%%-----------------------------------------------------------% -%% function : init -%% Arguments: -%% Returns : -%% Effect : -%%------------------------------------------------------------ - -%% Starting using create_factory/X -init(own_init) -> - {ok,{?SUP_FLAG, [?SUP_CHILD]}}; -%% When starting as an application. -init(app_init) -> - {ok,{?SUP_FLAG, [?SUP_CHILD]}}. - - -%%------------------------------------------------------------ -%% function : create_link -%% Arguments: Module - which Module to call -%% Env/ArgList - ordinary oe_create arguments. -%% Returns : -%% Exception: -%% Effect : Necessary since we want the supervisor to be a -%% 'simple_one_for_one'. Otherwise, using for example, -%% 'one_for_one', we have to call supervisor:delete_child -%% to remove the childs startspecification from the -%% supervisors internal state. -%%------------------------------------------------------------ -create_link(Module, Env, ArgList) -> - Module:oe_create_link(Env, ArgList). - -%%-----------------------------------------------------------% -%% function : get_option -%% Arguments: -%% Returns : -%% Exception: -%% Effect : -%%------------------------------------------------------------ -get_option(Key, OptionList, DefaultList) -> - case lists:keysearch(Key, 1, OptionList) of - {value,{Key,Value}} -> - Value; - _ -> - case lists:keysearch(Key, 1, DefaultList) of - {value,{Key,Value}} -> - Value; - _-> - {error, "Invalid option"} - end - end. - -%%------------------------------------------------------------ -%% function : create_id/1 -%% Arguments: CosEventDomainAdmin::DomainID (long) -%% Returns : CosEventDomainAdmin::DomainID (long) -%% Exception: -%% Purpose : -%%------------------------------------------------------------ -create_id(2147483647) -> - -2147483648; -create_id(OldID) -> - OldID+1. - -%%------------------------------------------------------------ -%% function : get_qos -%% Arguments: -%% Returns : -%% Exception: -%% Effect : -%%------------------------------------------------------------ -get_qos([]) -> - []; -get_qos(Properties) -> - case get_qos(Properties, [], []) of - {ok, Supported} -> - Supported; - {error, Unsupported} -> - corba:raise(#'CosNotification_UnsupportedQoS'{qos_err = Unsupported}) - end. - -get_qos([], Supported, []) -> - {ok, Supported}; -get_qos([], _, Unsupported) -> - {error, Unsupported}; -get_qos([#'CosNotification_Property'{name = ?CycleDetection, - value= #any{value = ?AuthorizeCycles}}|T], - Supported, Unsupported) -> - get_qos(T, [{?CycleDetection, ?AuthorizeCycles}|Supported], Unsupported); -get_qos([#'CosNotification_Property'{name = ?CycleDetection, - value= #any{value = ?ForbidCycles}}|T], - Supported, Unsupported) -> - get_qos(T, [{?CycleDetection, ?ForbidCycles}|Supported], Unsupported); -get_qos([#'CosNotification_Property'{name = ?CycleDetection}|T], - Supported, Unsupported) -> - %% Illegal value supplied. - get_qos(T, Supported, - [#'CosNotification_PropertyError' - {code = 'UNSUPPORTED_VALUE', - name = ?CycleDetection, - available_range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:short(), ?AuthorizeCycles), - high_val=any:create(orber_tc:short(), ?ForbidCycles)}}|Unsupported]); -get_qos([#'CosNotification_Property'{name = ?DiamondDetection, - value= #any{value = ?AuthorizeDiamonds}}|T], - Supported, Unsupported) -> - get_qos(T, [{?DiamondDetection, ?AuthorizeDiamonds}|Supported], Unsupported); -get_qos([#'CosNotification_Property'{name = ?DiamondDetection, - value= #any{value = ?ForbidDiamonds}}|T], - Supported, Unsupported) -> - get_qos(T, [{?DiamondDetection, ?ForbidDiamonds}|Supported], Unsupported); -get_qos([#'CosNotification_Property'{name = ?DiamondDetection}|T], - Supported, Unsupported) -> - %% Illegal value supplied. - get_qos(T, Supported, - [#'CosNotification_PropertyError' - {code = 'UNSUPPORTED_VALUE', - name = ?DiamondDetection, - available_range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:short(), ?AuthorizeDiamonds), - high_val=any:create(orber_tc:short(), ?ForbidDiamonds) - }} | Unsupported]); -get_qos([#'CosNotification_Property'{name = Name}|T], Supported, Unsupported) -> - %% Unknown QoS supplied. - get_qos(T, Supported, - [#'CosNotification_PropertyError' - {code = 'BAD_PROPERTY', - name = Name, - available_range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:null(), null), - high_val=any:create(orber_tc:null(), null)}} | Unsupported]). - -%%------------------------------------------------------------ -%% function : get_admin -%% Arguments: -%% Returns : {"EXCEPTION', #'CosNotification_PropertyError'{}} -%% Exception: -%% Effect : No Admin supported. -%%------------------------------------------------------------ -get_admin([]) -> - []; -get_admin(Properties) -> - get_admin(Properties, []). - -get_admin([], Unsupported) -> - corba:raise(#'CosNotification_UnsupportedAdmin'{admin_err = Unsupported}); -get_admin([#'CosNotification_Property'{name = Name}|T], Unsupported) -> - %% Unknown QoS supplied. - get_admin(T, [#'CosNotification_PropertyError' - {code = 'BAD_PROPERTY', - name = Name, - available_range = #'CosNotification_PropertyRange' - {low_val=any:create(orber_tc:null(), null), - high_val=any:create(orber_tc:null(), null)}} | Unsupported]). - - -%%------------------------------------------------------------ -%% function : is_debug_compiled -%% Arguments: -%% Returns : -%% Exception: -%% Effect : -%%------------------------------------------------------------ --ifdef(debug). - is_debug_compiled() -> true. --else. - is_debug_compiled() -> false. --endif. - -%%--------------- END OF MODULE ------------------------------ diff --git a/lib/cosEventDomain/src/cosEventDomainApp.hrl b/lib/cosEventDomain/src/cosEventDomainApp.hrl deleted file mode 100644 index 6df20692be..0000000000 --- a/lib/cosEventDomain/src/cosEventDomainApp.hrl +++ /dev/null @@ -1,70 +0,0 @@ -%%---------------------------------------------------------------------- -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2001-2016. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% -%% -%%---------------------------------------------------------------------- -%% File : cosEventDomainApp.hrl -%% Purpose : -%%---------------------------------------------------------------------- - - -%%--------------- INCLUDES ----------------------------------- -%% External - -%% Local - --define(write_ErrorMsg(Txt, Arg), -error_logger:error_msg("============== CosEventDomain =============~n" - Txt - "===========================================~n", - Arg)). - --define(DEBUG_LEVEL, 3). - --ifdef(debug). --define(DBG(F,A), - io:format("[LINE: ~p MODULE: ~p] "++F,[?LINE, ?MODULE]++A)). --else. --define(DBG(F,A), ok). --endif. - -%%%%%% WARNING! These definitions are defined in the CosEventDomainAdmin.idl -%%%%%% file. If the specification is changed so must the definitions!! -%%%%%% We use this approach to be able to use them as guards. - -%%%% Constant: 'CycleDetection' --define(CycleDetection, "CycleDetection"). - -%%%% Constant: 'AuthorizeCycles' --define(AuthorizeCycles, 0). - -%%%% Constant: 'ForbidCycles' --define(ForbidCycles, 1). - -%%%% Constant: 'DiamondDetection' --define(DiamondDetection, "DiamondDetection"). - -%%%% Constant: 'AuthorizeDiamonds' --define(AuthorizeDiamonds, 0). - -%%%% Constant: 'ForbidDiamonds' --define(ForbidDiamonds, 1). - -%%--------------- END OF MODULE ------------------------------ diff --git a/lib/cosEventDomain/test/Makefile b/lib/cosEventDomain/test/Makefile deleted file mode 100644 index 1841676be7..0000000000 --- a/lib/cosEventDomain/test/Makefile +++ /dev/null @@ -1,104 +0,0 @@ -# -# %CopyrightBegin% -# -# Copyright Ericsson AB 2001-2016. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# %CopyrightEnd% -# -# -include $(ERL_TOP)/make/target.mk -include $(ERL_TOP)/make/$(TARGET)/otp.mk - -# ---------------------------------------------------- -# Application version -# ---------------------------------------------------- -include ../vsn.mk -VSN=$(COSEVENTDOMAIN_VSN) -# ---------------------------------------------------- -# Release directory specification -# ---------------------------------------------------- -RELSYSDIR = $(RELEASE_PATH)/cosEventDomain_test - -# ---------------------------------------------------- -# Target Specs -# ---------------------------------------------------- -TEST_SPEC_FILE = cosEventDomain.spec -COVER_FILE = cosEventDomain.cover - - -MODULES = \ - event_domain_SUITE \ - generated_SUITE - -ERL_FILES = $(MODULES:%=%.erl) - -HRL_FILES = - -SUITE_TARGET_FILES = $(MODULES:%=%.$(EMULATOR)) - -TARGET_FILES = \ - $(SUITE_TARGET_FILES) - -# ---------------------------------------------------- -# PROGRAMS -# ---------------------------------------------------- -# ---------------------------------------------------- -# FLAGS -# ---------------------------------------------------- -ERL_IDL_FLAGS += -pa $(ERL_TOP)/lib/orber/ebin -pa $(ERL_TOP)/lib/ic/ebin - -ERL_COMPILE_FLAGS += \ - $(ERL_IDL_FLAGS) \ - -pa $(ERL_TOP)/lib/cosEventDomain/ebin \ - -pa $(ERL_TOP)/lib/cosEventDomain/include \ - -pa $(ERL_TOP)/lib/cosNotification/ebin \ - -pa $(ERL_TOP)/lib/cosNotification/include \ - -I$(ERL_TOP)/lib/cosEventDomain/include \ - -I$(ERL_TOP)/lib/cosNotification/include \ - -I$(ERL_TOP)/lib/cosNotification/ebin - -# ---------------------------------------------------- -# Targets -# ---------------------------------------------------- -tests debug opt: $(TARGET_FILES) - -clean: - rm -f $(TARGET_FILES) - rm -f errs core *~ - - -docs: - -# ---------------------------------------------------- -# Special Targets -# ---------------------------------------------------- - -# ---------------------------------------------------- -# Release Targets -# ---------------------------------------------------- -# We don't copy generated intermediate erlang and hrl files - -include $(ERL_TOP)/make/otp_release_targets.mk - -release_spec: - -release_docs_spec: - -release_tests_spec: tests - $(INSTALL_DIR) "$(RELSYSDIR)" - $(INSTALL_DATA) $(TEST_SPEC_FILE) \ - $(COVER_FILE) $(ERL_FILES) "$(RELSYSDIR)" - $(INSTALL_DATA) $(SUITE_TARGET_FILES) "$(RELSYSDIR)" - diff --git a/lib/cosEventDomain/test/cosEventDomain.cover b/lib/cosEventDomain/test/cosEventDomain.cover deleted file mode 100644 index f87f6d97bf..0000000000 --- a/lib/cosEventDomain/test/cosEventDomain.cover +++ /dev/null @@ -1,2 +0,0 @@ -{incl_app,cosEventDomain,details}. - diff --git a/lib/cosEventDomain/test/cosEventDomain.spec b/lib/cosEventDomain/test/cosEventDomain.spec deleted file mode 100644 index bcee74c5f1..0000000000 --- a/lib/cosEventDomain/test/cosEventDomain.spec +++ /dev/null @@ -1 +0,0 @@ -{suites,"../cosEventDomain_test",all}. diff --git a/lib/cosEventDomain/test/event_domain_SUITE.erl b/lib/cosEventDomain/test/event_domain_SUITE.erl deleted file mode 100644 index 031b7726c5..0000000000 --- a/lib/cosEventDomain/test/event_domain_SUITE.erl +++ /dev/null @@ -1,464 +0,0 @@ -%%----------------------------------------------------------------- -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2001-2016. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% -%% -%%----------------------------------------------------------------- - --module(event_domain_SUITE). - --include_lib("common_test/include/ct.hrl"). --include_lib("orber/include/corba.hrl"). --include_lib("cosNotification/include/CosNotifyChannelAdmin.hrl"). --include_lib("cosNotification/include/CosNotification.hrl"). - --include_lib("cosEventDomain/include/CosEventDomainAdmin.hrl"). --include_lib("cosEventDomain/src/cosEventDomainApp.hrl"). - -%%----------------------------------------------------------------- -%% Macros -%%----------------------------------------------------------------- - --define(default_timeout, test_server:minutes(5)). - - --define(match(ExpectedRes, Expr), - fun() -> - AcTuAlReS = (catch (Expr)), - case AcTuAlReS of - ExpectedRes -> - io:format("------ CORRECT RESULT ------~n~p~n", - [AcTuAlReS]), - AcTuAlReS; - _ -> - io:format("###### ERROR ERROR ######~n~p~n", - [AcTuAlReS]), - exit(AcTuAlReS) - end - end()). - - -%%----------------------------------------------------------------- -%% External exports -%%----------------------------------------------------------------- --export([all/0, suite/0,groups/0,init_per_group/2,end_per_group/2, - event_domain_api/1, event_domain_factory_api/1, - cases/0, init_per_suite/1, end_per_suite/1, - init_per_testcase/2, end_per_testcase/2, app_test/1]). - -%%----------------------------------------------------------------- -%% Internal exports -%%----------------------------------------------------------------- - -suite() -> [{ct_hooks,[ts_install_cth]}]. - -all() -> - cases(). - -groups() -> - []. - -init_per_group(_GroupName, Config) -> - Config. - -end_per_group(_GroupName, Config) -> - Config. - - -cases() -> - [event_domain_api, event_domain_factory_api, app_test]. - -%%----------------------------------------------------------------- -%% Init and cleanup functions. -%%----------------------------------------------------------------- - -init_per_testcase(_Case, Config) -> - Dog=test_server:timetrap(?default_timeout), - [{watchdog, Dog}|Config]. - - -end_per_testcase(_Case, Config) -> - Dog = proplists:get_value(watchdog, Config), - test_server:timetrap_cancel(Dog), - ok. - -init_per_suite(Config) when is_list(Config) -> - mnesia:delete_schema([node()]), - mnesia:create_schema([node()]), - ok = corba:orb_init([{flags, 16#02}, - {orber_debug_level, 10}]), - orber:install([node()]), - application:start(mnesia), - application:start(orber), - cosEventApp:install(), - cosEventApp:start(), - cosNotificationApp:install(), - cosNotificationApp:start(), - cosEventDomainApp:install(), - cosEventDomainApp:start(), - Config. - -end_per_suite(Config) when is_list(Config) -> - cosEventDomainApp:stop(), - cosEventDomainApp:uninstall(), - cosNotificationApp:stop(), - cosNotificationApp:uninstall(), - cosEventApp:stop(), - cosEventApp:uninstall(), - application:stop(orber), - application:stop(mnesia), - mnesia:delete_schema([node()]), - Config. - -%%----------------------------------------------------------------- -%% Tests app file -%%----------------------------------------------------------------- -app_test(_Config) -> - ok=test_server:app_test(cosEventDomain), - ok. - - -%% Testing the CosEventDomain Domain API -event_domain_api(_Config) -> - - %% We will setup a cluster looking like: - %% 7-8---> - %% / - %% 2 - 4 6-> - %% \ / - %% 5---9-1-3 - - %% 2-4 - %% 4-1 - %% 1-3 - %% 3-6 - %% 5-9 - %% 9-1 - %% 4-7 - %% 7-8 - - - ChFac = ?match({_,key,_,_,_,_}, - cosNotificationApp:start_global_factory([{pullInterval,1}])), - {Ch0,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - Fac = ?match({_,key,_,_,_,_}, - cosEventDomainApp:start_factory()), - {ED, _} = ?match({{_,key,_,_,_,_}, _}, - 'CosEventDomainAdmin_EventDomainFactory':create_event_domain(Fac, [], [])), - ID0 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch0), - ?match(Ch0, 'CosEventDomainAdmin_EventDomain':get_channel(ED, ID0)), - ?match([0], 'CosEventDomainAdmin_EventDomain':get_all_channels(ED)), - ?match({'EXCEPTION',{'CosNotifyChannelAdmin_ChannelNotFound',_}}, - 'CosEventDomainAdmin_EventDomain':get_channel(ED, 100)), - ?match({'EXCEPTION',{'CosNotifyChannelAdmin_ChannelNotFound',_}}, - 'CosEventDomainAdmin_EventDomain':remove_channel(ED, 100)), - ?match(ok, 'CosEventDomainAdmin_EventDomain':remove_channel(ED, 0)), - ?match([], 'CosEventDomainAdmin_EventDomain':get_all_channels(ED)), - ?match({'EXCEPTION',{'CosNotifyChannelAdmin_ChannelNotFound',_}}, - 'CosEventDomainAdmin_EventDomain':remove_channel(ED, 0)), - - %% Create a new event channel. - {Ch1,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - {Ch2,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - {Ch3,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - {Ch4,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - {Ch5,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - {Ch6,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - {Ch7,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - {Ch8,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - {Ch9,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosNotifyChannelAdmin_EventChannelFactory':create_channel(ChFac, [], [])), - - ID1 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch1), - ID2 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch2), - ID3 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch3), - ID4 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch4), - ID5 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch5), - ID6 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch6), - ID7 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch7), - ID8 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch8), - ID9 = 'CosEventDomainAdmin_EventDomain':add_channel(ED, Ch9), - ?match([_,_,_,_,_,_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_all_channels(ED)), - - ?match([], 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - C1 = #'CosEventDomainAdmin_Connection'{supplier_id=ID2, - consumer_id=ID4, - ctype='STRUCTURED_EVENT', - notification_style='Pull'}, - C2 = #'CosEventDomainAdmin_Connection'{supplier_id=ID4, - consumer_id=ID1, - ctype='ANY_EVENT', - notification_style='Push'}, - C3 = #'CosEventDomainAdmin_Connection'{supplier_id=ID1, - consumer_id=ID3, - ctype='ANY_EVENT', - notification_style='Pull'}, - C4 = #'CosEventDomainAdmin_Connection'{supplier_id=ID3, - consumer_id=ID6, - ctype='STRUCTURED_EVENT', - notification_style='Push'}, - C5 = #'CosEventDomainAdmin_Connection'{supplier_id=ID5, - consumer_id=ID9, - ctype='ANY_EVENT', - notification_style='Pull'}, - C6 = #'CosEventDomainAdmin_Connection'{supplier_id=ID9, - consumer_id=ID1, - ctype='ANY_EVENT', - notification_style='Push'}, - C7 = #'CosEventDomainAdmin_Connection'{supplier_id=ID4, - consumer_id=ID7, - ctype='STRUCTURED_EVENT', - notification_style='Pull'}, - C8 = #'CosEventDomainAdmin_Connection'{supplier_id=ID7, - consumer_id=ID8, - ctype='ANY_EVENT', - notification_style='Push'}, - C9 = #'CosEventDomainAdmin_Connection'{supplier_id=ID8, - consumer_id=ID4, - ctype='ANY_EVENT', - notification_style='Pull'}, - C10 = #'CosEventDomainAdmin_Connection'{supplier_id=ID5, - consumer_id=ID4, - ctype='ANY_EVENT', - notification_style='Pull'}, - C11 = #'CosEventDomainAdmin_Connection'{supplier_id=ID4, - consumer_id=ID6, - ctype='ANY_EVENT', - notification_style='Pull'}, - C12 = #'CosEventDomainAdmin_Connection'{supplier_id=ID8, - consumer_id=ID6, - ctype='ANY_EVENT', - notification_style='Pull'}, - - CID1 = 'CosEventDomainAdmin_EventDomain':add_connection(ED, C1), - ?match([CID1], 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - _CID2 = 'CosEventDomainAdmin_EventDomain':add_connection(ED, C2), - ?match([_,_], - 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - _CID3 = 'CosEventDomainAdmin_EventDomain':add_connection(ED, C3), - ?match([_,_,_], - 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - _CID4 = 'CosEventDomainAdmin_EventDomain':add_connection(ED, C4), - ?match([_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - _CID5 = 'CosEventDomainAdmin_EventDomain':add_connection(ED, C5), - ?match([_,_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - _CID6 = 'CosEventDomainAdmin_EventDomain':add_connection(ED, C6), - ?match([_,_,_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - CID7 = 'CosEventDomainAdmin_EventDomain':add_connection(ED, C7), - ?match([_,_,_,_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - _CID8 = 'CosEventDomainAdmin_EventDomain':add_connection(ED, C8), - ?match([_,_,_,_,_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - - ?match({'EXCEPTION',{'CosEventDomainAdmin_AlreadyExists', _}}, - 'CosEventDomainAdmin_EventDomain':add_connection(ED, C8)), - %% No cycles should exist. - ?match([], 'CosEventDomainAdmin_EventDomain':get_cycles(ED)), - - ?match([_, _], 'CosEventDomainAdmin_EventDomain':get_qos(ED)), - AllowCyclic = #'CosNotification_Property'{name=?CycleDetection, - value=any:create(orber_tc:short(), - ?AuthorizeCycles)}, - ?match({'EXCEPTION',{'CosNotification_UnsupportedQoS',_,_}}, - 'CosEventDomainAdmin_EventDomain':set_qos(ED, [AllowCyclic])), - ForbidCyclic = #'CosNotification_Property'{name=?CycleDetection, - value=any:create(orber_tc:short(), - ?ForbidCycles)}, - %% The same as before; must work. - ?match(ok, 'CosEventDomainAdmin_EventDomain':set_qos(ED, [ForbidCyclic])), - - AllowDiamonds = #'CosNotification_Property'{name=?DiamondDetection, - value=any:create(orber_tc:short(), - ?AuthorizeDiamonds)}, - %% Since no diamonds allowed before this is always ok. - ?match(ok, 'CosEventDomainAdmin_EventDomain':set_qos(ED, [AllowDiamonds])), - - ?match([_, _], 'CosEventDomainAdmin_EventDomain':get_qos(ED)), - - ForbidDiamonds = #'CosNotification_Property'{name=?DiamondDetection, - value=any:create(orber_tc:short(), - ?ForbidDiamonds)}, - %% No diamonds created before. Hence, will work. - ?match(ok, 'CosEventDomainAdmin_EventDomain':set_qos(ED, [ForbidDiamonds])), - - ?match([_, _], 'CosEventDomainAdmin_EventDomain':get_qos(ED)), - - ?match({ok, [_]}, 'CosEventDomainAdmin_EventDomain':validate_qos(ED, - [ForbidDiamonds, - ForbidCyclic])), - %% No diamonds exists, hence, this is ok. - ?match({ok, [_]}, 'CosEventDomainAdmin_EventDomain':validate_qos(ED, - [AllowDiamonds, - ForbidCyclic])), - ?match({'EXCEPTION',{'CosNotification_UnsupportedQoS',_,_}}, - 'CosEventDomainAdmin_EventDomain':validate_qos(ED, [ForbidDiamonds, - AllowCyclic])), - - %% Since the ED is started is asyclic we may not succeed with this invokation. - ?match({'EXCEPTION',{'CosEventDomainAdmin_CycleCreationForbidden',_,_}}, - 'CosEventDomainAdmin_EventDomain':add_connection(ED, C9)), - ?match([], 'CosEventDomainAdmin_EventDomain':get_offer_channels(ED, ID2)), - - ?match([2], 'CosEventDomainAdmin_EventDomain':get_offer_channels(ED, ID4)), - ?match([_,_,_], 'CosEventDomainAdmin_EventDomain':get_offer_channels(ED, ID8)), - ?match({'EXCEPTION',{'CosNotifyChannelAdmin_ChannelNotFound',_}}, - 'CosEventDomainAdmin_EventDomain':get_offer_channels(ED, 100)), - ?match([], 'CosEventDomainAdmin_EventDomain':get_subscription_channels(ED, ID8)), - ?match([_,_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_subscription_channels(ED, ID4)), - ?match([_,_,_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_subscription_channels(ED, ID2)), - ?match({'EXCEPTION',{'CosNotifyChannelAdmin_ChannelNotFound',_}}, - 'CosEventDomainAdmin_EventDomain':get_subscription_channels(ED, 100)), - Nil = corba:create_nil_objref(), - - P2=?match({_,key,_,_,_,_}, - 'CosEventDomainAdmin_EventDomain':connect_push_supplier_with_id(ED, Nil, ID2)), - P7=?match({_,key,_,_,_,_}, - 'CosEventDomainAdmin_EventDomain':connect_push_supplier_with_id(ED, Nil, ID7)), - P8=?match({_,key,_,_,_,_}, - 'CosEventDomainAdmin_EventDomain':connect_pull_consumer_with_id(ED, Nil, ID8)), - P6=?match({_,key,_,_,_,_}, - 'CosEventDomainAdmin_EventDomain':connect_pull_consumer_with_id(ED, Nil, ID6)), - E1 = #any{typecode=tk_long, value=1}, - E2 = #any{typecode=tk_long, value=2}, - - ?match(ok, 'CosNotifyChannelAdmin_ProxyPushConsumer':push(P2, E1)), - ?match(E1, 'CosNotifyChannelAdmin_ProxyPullSupplier':pull(P8)), - ?match(E1, 'CosNotifyChannelAdmin_ProxyPullSupplier':pull(P6)), - ?match(ok, 'CosNotifyChannelAdmin_ProxyPushConsumer':push(P7, E2)), - ?match(E2, 'CosNotifyChannelAdmin_ProxyPullSupplier':pull(P8)), - timer:sleep(10000), - ?match({_,false}, 'CosNotifyChannelAdmin_ProxyPullSupplier':try_pull(P6)), - - ?match(ok, 'CosEventDomainAdmin_EventDomain':remove_connection(ED, CID7)), - - ?match({'EXCEPTION',{'CosEventDomainAdmin_ConnectionNotFound',_}}, - 'CosEventDomainAdmin_EventDomain':remove_connection(ED, CID7)), - - ?match({'EXCEPTION',{'CosEventDomainAdmin_ConnectionNotFound',_}}, - 'CosEventDomainAdmin_EventDomain':remove_connection(ED, 100)), - - ?match([], 'CosEventDomainAdmin_EventDomain':get_offer_channels(ED, ID7)), - ?match([2], 'CosEventDomainAdmin_EventDomain':get_offer_channels(ED, ID4)), - - ?match([8], 'CosEventDomainAdmin_EventDomain':get_subscription_channels(ED, ID7)), - ?match([_,_,_], 'CosEventDomainAdmin_EventDomain':get_subscription_channels(ED, ID4)), - - CID10 = ?match(8, 'CosEventDomainAdmin_EventDomain':add_connection(ED, C7)), - - %% Now we'll check diamond management. - %% Currently it should not be possible to create a diamond (due to QoS-setting). - ?match({'EXCEPTION',{'CosEventDomainAdmin_DiamondCreationForbidden',_,_}}, - 'CosEventDomainAdmin_EventDomain':add_connection(ED, C11)), - ?match({'EXCEPTION',{'CosEventDomainAdmin_DiamondCreationForbidden',_,_}}, - 'CosEventDomainAdmin_EventDomain':add_connection(ED, C10)), - ?match({'EXCEPTION',{'CosEventDomainAdmin_DiamondCreationForbidden',_,_}}, - 'CosEventDomainAdmin_EventDomain':add_connection(ED, C12)), - ?match(ok, 'CosEventDomainAdmin_EventDomain':set_qos(ED, [AllowDiamonds])), - - CID11 = ?match(9, 'CosEventDomainAdmin_EventDomain':add_connection(ED, C10)), - ?match([_,_,_,_,_,_,_,_,_], - 'CosEventDomainAdmin_EventDomain':get_all_connections(ED)), - ?match([_], 'CosEventDomainAdmin_EventDomain':get_diamonds(ED)), - - CID12 = ?match(10, 'CosEventDomainAdmin_EventDomain':add_connection(ED, C11)), - ?match([_, _, _], 'CosEventDomainAdmin_EventDomain':get_diamonds(ED)), - - CID13 = ?match(11, 'CosEventDomainAdmin_EventDomain':add_connection(ED, C12)), - - ?match([_, _, _], 'CosEventDomainAdmin_EventDomain':get_diamonds(ED)), - - ?match({'EXCEPTION',{'CosNotification_UnsupportedQoS',_,_}}, - 'CosEventDomainAdmin_EventDomain':set_qos(ED, [ForbidDiamonds])), - - ?match(ok, 'CosEventDomainAdmin_EventDomain':remove_connection(ED, CID10)), - ?match(ok, 'CosEventDomainAdmin_EventDomain':remove_connection(ED, CID11)), - ?match(ok, 'CosEventDomainAdmin_EventDomain':remove_connection(ED, CID12)), - ?match(ok, 'CosEventDomainAdmin_EventDomain':remove_connection(ED, CID13)), - ?match(ok, 'CosEventDomainAdmin_EventDomain':set_qos(ED, [ForbidDiamonds])), - ?match([_, _], 'CosEventDomainAdmin_EventDomain':get_qos(ED)), - ?match({'EXCEPTION',{'CosEventDomainAdmin_DiamondCreationForbidden',_,_}}, - 'CosEventDomainAdmin_EventDomain':add_connection(ED, C10)), - - ?match(ok, 'CosEventDomainAdmin_EventDomain':destroy(ED)), - - ok. - -%% Testing the CosEventDomain Factory API -event_domain_factory_api(_Config) -> - - Cyclic = #'CosNotification_Property'{name=?CycleDetection, - value=any:create(orber_tc:short(), - ?ForbidCycles)}, - - BadProp = #'CosNotification_Property'{name="Wrong", - value=any:create(orber_tc:short(), - ?ForbidCycles)}, - - BadQoSVal = #'CosNotification_Property'{name=?CycleDetection, - value=any:create(orber_tc:short(), - 10)}, - - Fac = ?match({_,key,_,_,_,_}, - cosEventDomainApp:start_factory()), - ?match([], 'CosEventDomainAdmin_EventDomainFactory':get_all_domains(Fac)), - ?match({'EXCEPTION',{'CosEventDomainAdmin_DomainNotFound',_}}, - 'CosEventDomainAdmin_EventDomainFactory':get_event_domain(Fac, 0)), - {ED,_} = 'CosEventDomainAdmin_EventDomainFactory':create_event_domain(Fac, [Cyclic], []), - ?match([0], 'CosEventDomainAdmin_EventDomainFactory':get_all_domains(Fac)), - ED = 'CosEventDomainAdmin_EventDomainFactory':get_event_domain(Fac, 0), - ?match({'EXCEPTION',{'CosEventDomainAdmin_DomainNotFound',_}}, - 'CosEventDomainAdmin_EventDomainFactory':get_event_domain(Fac, 1)), - corba:dispose(ED), - timer:sleep(3000), - ?match([], 'CosEventDomainAdmin_EventDomainFactory':get_all_domains(Fac)), - ?match({'EXCEPTION',{'CosEventDomainAdmin_DomainNotFound',_}}, - 'CosEventDomainAdmin_EventDomainFactory':get_event_domain(Fac, 0)), - {ED2,_} = ?match({{_,key,_,_,_,_}, _}, - 'CosEventDomainAdmin_EventDomainFactory':create_event_domain(Fac, [], [])), - ?match([1], 'CosEventDomainAdmin_EventDomainFactory':get_all_domains(Fac)), - ?match(ED2, 'CosEventDomainAdmin_EventDomainFactory':get_event_domain(Fac, 1)), - corba:dispose(ED2), - - ?match({'EXCEPTION', {'CosNotification_UnsupportedQoS',_,_}}, - 'CosEventDomainAdmin_EventDomainFactory':create_event_domain(Fac, [BadProp], [])), - ?match({'EXCEPTION',{'CosNotification_UnsupportedAdmin',_,_}}, - 'CosEventDomainAdmin_EventDomainFactory':create_event_domain(Fac, [], [BadProp])), - ?match({'EXCEPTION',{'CosNotification_UnsupportedQoS',_,_}}, - 'CosEventDomainAdmin_EventDomainFactory':create_event_domain(Fac, [BadQoSVal], [])), - ?match({'EXCEPTION',{'CosNotification_UnsupportedAdmin',_,_}}, - 'CosEventDomainAdmin_EventDomainFactory':create_event_domain(Fac, [], [BadQoSVal])), - - corba:dispose(Fac), - ok. diff --git a/lib/cosEventDomain/test/generated_SUITE.erl b/lib/cosEventDomain/test/generated_SUITE.erl deleted file mode 100644 index 172465da2f..0000000000 --- a/lib/cosEventDomain/test/generated_SUITE.erl +++ /dev/null @@ -1,384 +0,0 @@ -%%----------------------------------------------------------------- -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2004-2016. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. -%% -%% %CopyrightEnd% -%% -%% -%%----------------------------------------------------------------- -%% File : generated_SUITE.erl -%% Purpose : -%%----------------------------------------------------------------- - --module(generated_SUITE). - --include_lib("common_test/include/ct.hrl"). --include_lib("orber/include/corba.hrl"). - --define(default_timeout, test_server:minutes(3)). - --define(match(ExpectedRes, Expr), - fun() -> - AcTuAlReS = (catch (Expr)), - case AcTuAlReS of - ExpectedRes -> - AcTuAlReS; - _ -> - io:format("###### ERROR ERROR ######~n~p~n", - [AcTuAlReS]), - exit(AcTuAlReS) - end - end()). - --define(nomatch(Not, Expr), - fun() -> - AcTuAlReS = (catch (Expr)), - case AcTuAlReS of - Not -> - io:format("###### ERROR ERROR ######~n~p~n", - [AcTuAlReS]), - exit(AcTuAlReS); - _ -> - AcTuAlReS - end - end()). - - --define(checktc(_Op), - fun(TC) -> - case orber_tc:check_tc(TC) of - false -> - io:format("###### ERROR ERROR ######~n~p - ~p~n", [Op, TC]), - exit(TC); - true -> - true - end - end). - -%%----------------------------------------------------------------- -%% External exports -%%----------------------------------------------------------------- --export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, init_per_group/2,end_per_group/2]). - -%%----------------------------------------------------------------- -%% Internal exports -%%----------------------------------------------------------------- --compile(export_all). - -%%----------------------------------------------------------------- -%% Func: all/1 -%% Args: -%% Returns: -%%----------------------------------------------------------------- -suite() -> [{ct_hooks,[ts_install_cth]}]. - -all() -> - ['CosEventDomainAdmin', - 'CosEventDomainAdmin_DiamondSeq', - 'CosEventDomainAdmin_AlreadyExists', - 'CosEventDomainAdmin_DomainIDSeq', - 'CosEventDomainAdmin_Connection', - 'CosEventDomainAdmin_ConnectionIDSeq', - 'CosEventDomainAdmin_ConnectionNotFound', - 'CosEventDomainAdmin_CycleCreationForbidden', - 'CosEventDomainAdmin_CycleSeq', - 'CosEventDomainAdmin_DiamondCreationForbidden', - 'CosEventDomainAdmin_DomainNotFound', - 'CosEventDomainAdmin_MemberIDSeq', - 'CosEventDomainAdmin_RouteSeq', - 'CosEventDomainAdmin_EventDomainFactory', - 'CosEventDomainAdmin_EventDomain']. - -groups() -> - []. - -init_per_suite(Config) -> - Config. - -end_per_suite(_Config) -> - ok. - -init_per_group(_GroupName, Config) -> - Config. - -end_per_group(_GroupName, Config) -> - Config. - - -%%----------------------------------------------------------------- -%% Init and cleanup functions. -%%----------------------------------------------------------------- -init_per_testcase(_Case, Config) -> - Dog=test_server:timetrap(?default_timeout), - [{watchdog, Dog}|Config]. - - -end_per_testcase(_Case, Config) -> - Dog = proplists:get_value(watchdog, Config), - test_server:timetrap_cancel(Dog), - ok. - - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin'(_) -> - ?match("CycleDetection", 'CosEventDomainAdmin':'CycleDetection'()), - ?match(0, 'CosEventDomainAdmin':'AuthorizeCycles'()), - ?match(1, 'CosEventDomainAdmin':'ForbidCycles'()), - ?match("DiamondDetection", 'CosEventDomainAdmin':'DiamondDetection'()), - ?match(0, 'CosEventDomainAdmin':'AuthorizeDiamonds'()), - ?match(1, 'CosEventDomainAdmin':'ForbidDiamonds'()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_DiamondSeq' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_DiamondSeq'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_DiamondSeq':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/DiamondSeq:1.0", - 'CosEventDomainAdmin_DiamondSeq':id()), - ?match("CosEventDomainAdmin_DiamondSeq", - 'CosEventDomainAdmin_DiamondSeq':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_AlreadyExists' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_AlreadyExists'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_AlreadyExists':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/AlreadyExists:1.0", - 'CosEventDomainAdmin_AlreadyExists':id()), - ?match("CosEventDomainAdmin_AlreadyExists", - 'CosEventDomainAdmin_AlreadyExists':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_DomainIDSeq' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_DomainIDSeq'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_DomainIDSeq':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/DomainIDSeq:1.0", - 'CosEventDomainAdmin_DomainIDSeq':id()), - ?match("CosEventDomainAdmin_DomainIDSeq", - 'CosEventDomainAdmin_DomainIDSeq':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_Connection' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_Connection'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_Connection':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/Connection:1.0", - 'CosEventDomainAdmin_Connection':id()), - ?match("CosEventDomainAdmin_Connection", - 'CosEventDomainAdmin_Connection':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_ConnectionIDSeq' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_ConnectionIDSeq'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_ConnectionIDSeq':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/ConnectionIDSeq:1.0", - 'CosEventDomainAdmin_ConnectionIDSeq':id()), - ?match("CosEventDomainAdmin_ConnectionIDSeq", - 'CosEventDomainAdmin_ConnectionIDSeq':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_ConnectionNotFound' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_ConnectionNotFound'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_ConnectionNotFound':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/ConnectionNotFound:1.0", - 'CosEventDomainAdmin_ConnectionNotFound':id()), - ?match("CosEventDomainAdmin_ConnectionNotFound", - 'CosEventDomainAdmin_ConnectionNotFound':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_CycleCreationForbidden' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_CycleCreationForbidden'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_CycleCreationForbidden':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/CycleCreationForbidden:1.0", - 'CosEventDomainAdmin_CycleCreationForbidden':id()), - ?match("CosEventDomainAdmin_CycleCreationForbidden", - 'CosEventDomainAdmin_CycleCreationForbidden':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_CycleSeq' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_CycleSeq'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_CycleSeq':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/CycleSeq:1.0", - 'CosEventDomainAdmin_CycleSeq':id()), - ?match("CosEventDomainAdmin_CycleSeq", - 'CosEventDomainAdmin_CycleSeq':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_DiamondCreationForbidden' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_DiamondCreationForbidden'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_DiamondCreationForbidden':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/DiamondCreationForbidden:1.0", - 'CosEventDomainAdmin_DiamondCreationForbidden':id()), - ?match("CosEventDomainAdmin_DiamondCreationForbidden", - 'CosEventDomainAdmin_DiamondCreationForbidden':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_DomainNotFound' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_DomainNotFound'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_DomainNotFound':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/DomainNotFound:1.0", - 'CosEventDomainAdmin_DomainNotFound':id()), - ?match("CosEventDomainAdmin_DomainNotFound", - 'CosEventDomainAdmin_DomainNotFound':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_MemberIDSeq' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_MemberIDSeq'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_MemberIDSeq':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/MemberIDSeq:1.0", - 'CosEventDomainAdmin_MemberIDSeq':id()), - ?match("CosEventDomainAdmin_MemberIDSeq", - 'CosEventDomainAdmin_MemberIDSeq':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_RouteSeq' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_RouteSeq'(_) -> - ?match(true, orber_tc:check_tc('CosEventDomainAdmin_RouteSeq':tc())), - ?match("IDL:omg.org/CosEventDomainAdmin/RouteSeq:1.0", - 'CosEventDomainAdmin_RouteSeq':id()), - ?match("CosEventDomainAdmin_RouteSeq", - 'CosEventDomainAdmin_RouteSeq':name()), - ok. - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_EventDomainFactory' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_EventDomainFactory'(_) -> - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomainFactory':oe_tc(create_event_domain)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomainFactory':oe_tc(get_all_domains)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomainFactory':oe_tc(get_event_domain)), - ?match(undefined, 'CosEventDomainAdmin_EventDomainFactory':oe_tc(undefined)), - ?match([_|_], 'CosEventDomainAdmin_EventDomainFactory':oe_get_interface()), - ?match("IDL:omg.org/CosEventDomainAdmin/EventDomainFactory:1.0", - 'CosEventDomainAdmin_EventDomainFactory':typeID()), - check_tc('CosEventDomainAdmin_EventDomainFactory':oe_get_interface()), - ?match(true, 'CosEventDomainAdmin_EventDomainFactory':oe_is_a('CosEventDomainAdmin_EventDomainFactory':typeID())), - ?match(false, 'CosEventDomainAdmin_EventDomainFactory':oe_is_a("wrong")), - ok. - - -%%----------------------------------------------------------------- -%% Test Case: 'CosEventDomainAdmin_EventDomain' -%% Description: -%%----------------------------------------------------------------- -'CosEventDomainAdmin_EventDomain'(_) -> - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(add_channel)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_all_channels)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_channel)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(remove_channel)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(add_connection)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_all_connections)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_connection)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(remove_connection)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_offer_channels)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_subscription_channels)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(destroy)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_cycles)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_diamonds)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(set_default_consumer_channel)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(set_default_supplier_channel)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_push_consumer)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_pull_consumer)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_push_supplier)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_pull_supplier)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_structured_push_consumer)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_structured_pull_consumer)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_structured_push_supplier)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_structured_pull_supplier)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_sequence_push_consumer)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_sequence_pull_consumer)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_sequence_push_supplier)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_sequence_pull_supplier)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_push_consumer_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_pull_consumer_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_push_supplier_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_pull_supplier_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_structured_push_consumer_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_structured_pull_consumer_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_structured_push_supplier_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_structured_pull_supplier_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_sequence_push_consumer_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_sequence_pull_consumer_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_sequence_push_supplier_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(connect_sequence_pull_supplier_with_id)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_qos)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(set_qos)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(validate_qos)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(get_admin)), - ?nomatch(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(set_admin)), - ?match(undefined, 'CosEventDomainAdmin_EventDomain':oe_tc(undefined)), - ?match([_|_], 'CosEventDomainAdmin_EventDomain':oe_get_interface()), - ?match("IDL:omg.org/CosEventDomainAdmin/EventDomain:1.0", - 'CosEventDomainAdmin_EventDomain':typeID()), - check_tc('CosEventDomainAdmin_EventDomain':oe_get_interface()), - ?match(true, 'CosEventDomainAdmin_EventDomain':oe_is_a('CosEventDomainAdmin_EventDomain':typeID())), - ?match(true, 'CosEventDomainAdmin_EventDomain':oe_is_a('CosNotification_QoSAdmin':typeID())), - ?match(true, 'CosEventDomainAdmin_EventDomain':oe_is_a('CosNotification_AdminPropertiesAdmin':typeID())), - ?match(false, 'CosEventDomainAdmin_EventDomain':oe_is_a("wrong")), - ok. - - - -%%----------------------------------------------------------------- -%% MISC functions -%%----------------------------------------------------------------- -check_tc([]) -> - ok; -check_tc([{Op, {RetType, InParameters, OutParameters}}|T]) -> - io:format("checked - ~s~n", [Op]), - lists:all(?checktc(Op), [RetType|InParameters]), - lists:all(?checktc(Op), OutParameters), - check_tc(T). - - diff --git a/lib/cosEventDomain/vsn.mk b/lib/cosEventDomain/vsn.mk deleted file mode 100644 index 0c063a00f9..0000000000 --- a/lib/cosEventDomain/vsn.mk +++ /dev/null @@ -1,2 +0,0 @@ -COSEVENTDOMAIN_VSN = 1.2.2 - |