<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<erlref>
  <header>
    <copyright>
      <year>2000</year>
      <year>2013</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>CosNotifyChannelAdmin_SupplierAdmin</title>
    <prepared></prepared>
    <responsible></responsible>
    <docno></docno>
    <approved>Niclas Eklund</approved>
    <checked></checked>
    <date>2000-02-01</date>
    <rev>1.0</rev>
  </header>
  <module>CosNotifyChannelAdmin_SupplierAdmin</module>
  <modulesummary>This module implements the OMG CosNotifyChannelAdmin::SupplierAdmin interface.</modulesummary>
  <description>
    <p>To get access to the record definitions for the structures use:      <br></br>
<c>-include_lib("cosNotification/include/*.hrl").</c></p>
    <p>This module also exports the functions described in:</p>
    <list type="bulleted">
      <item>
        <p><seealso marker="CosNotification_QoSAdmin">CosNotification_QoSAdmin</seealso></p>
      </item>
      <item>
        <p><seealso marker="CosNotifyComm_NotifySubscribe">CosNotifyComm_NotifyPublish</seealso></p>
      </item>
      <item>
        <p><seealso marker="CosNotifyFilter_FilterAdmin">CosNotifyFilter_FilterAdmin</seealso></p>
      </item>
    </list>
  </description>
  <funcs>
    <func>
      <name>_get_MyID(SupplierAdmin) -> AdminID</name>
      <fsummary>Return the objects Id</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>AdminID = long()</v>
      </type>
      <desc>
        <p>When a <c>SupplierAdmin</c> object is created it is given a unique Id
          by the creating channel. This readonly attribute maintains this Id.</p>
      </desc>
    </func>
    <func>
      <name>_get_MyChannel(SupplierAdmin) -> Channel</name>
      <fsummary>Return the objects associated channel</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>Channel = #objref</v>
      </type>
      <desc>
        <p>The creating channel's reference is maintained by this readonly attribute.</p>
      </desc>
    </func>
    <func>
      <name>_get_MyOperator(SupplierAdmin) -> OpType</name>
      <fsummary>Return the filter scheme</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>OpType = 'AND_OP' | 'OR_OP'</v>
      </type>
      <desc>
        <p>The Operation Type, which determines the semantics the target object will
          use for any associated <c>Filters</c>, is maintained by this readonly attribute.</p>
      </desc>
    </func>
    <func>
      <name>_get_pull_consumers(SupplierAdmin) -> ProxyIDSeq</name>
      <fsummary>Return all associated pull consumers Id:s</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>ProxyIDSeq = [ProxyID]</v>
        <v>ProxyID = long()</v>
      </type>
      <desc>
        <p>A sequence of all associated <c>PullProxy</c> Id's is maintained by this
          readonly attribute.</p>
      </desc>
    </func>
    <func>
      <name>_get_push_consumers(SupplierAdmin) -> ProxyIDSeq</name>
      <fsummary>Return all associated push consumers Id:s</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>ProxyIDSeq = [ProxyID]</v>
        <v>ProxyID = long()</v>
      </type>
      <desc>
        <p>This operation returns all <c>PushProxy</c> Id's created by the target
          object.</p>
      </desc>
    </func>
    <func>
      <name>get_proxy_consumer(SupplierAdmin, ProxyID) -> Reply</name>
      <fsummary>Return the Proxy which corresponds to the given Id</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>ProxyID = long()</v>
        <v>Reply = Proxy |  {'EXCEPTION', #'CosNotifyChannelAdmin_ProxyNotFound'{}}</v>
        <v>Proxy = #objref</v>
      </type>
      <desc>
        <p>The Proxy which corresponds to the given Id is returned by this operation.</p>
      </desc>
    </func>
    <func>
      <name>obtain_notification_pull_consumer(SupplierAdmin, SupplierType) -> Reply</name>
      <fsummary>Create a new proxy</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>SupplierType = 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT'</v>
        <v>Reply = {Proxy, ProxyID}</v>
        <v>Proxy = #objref</v>
        <v>ProxyID = long()</v>
      </type>
      <desc>
        <p>This operation creates a new proxy and returns its object reference along with its ID.
          The <c>SupplierType</c> parameter determines the event type accepted by the proxy.</p>
      </desc>
    </func>
    <func>
      <name>obtain_pull_consumer(SupplierAdmin) -> Proxy</name>
      <fsummary>Create a new proxy</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>Proxy = #objref</v>
      </type>
      <desc>
        <p>A proxy which accepts <c>#any{}</c> events is created by this operation.</p>
      </desc>
    </func>
    <func>
      <name>obtain_notification_push_consumer(SupplierAdmin, SupplierType) -> Reply</name>
      <fsummary>Create a new proxy</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>SupplierType = 'ANY_EVENT' | 'STRUCTURED_EVENT' | 'SEQUENCE_EVENT'</v>
        <v>Reply = {Proxy, ProxyID}</v>
        <v>Proxy = #objref</v>
        <v>ProxyID = long()</v>
      </type>
      <desc>
        <p>Determined by the <c>SupplierType</c> parameter a compliant proxy is created and
          its object reference along with its Id is returned by this operation.</p>
      </desc>
    </func>
    <func>
      <name>obtain_push_consumer(SupplierAdmin) -> Proxy</name>
      <fsummary>Create a new proxy</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
        <v>Proxy = #objref</v>
      </type>
      <desc>
        <p>A proxy which accepts <c>#any{}</c> events is created by this operation.</p>
      </desc>
    </func>
    <func>
      <name>destroy(SupplierAdmin) -> ok</name>
      <fsummary>Terminate the target object</fsummary>
      <type>
        <v>SupplierAdmin = #objref</v>
      </type>
      <desc>
        <p>This operation terminates the SupplierAdmin object and notifies the creating channel
          that the target object no longer is active.</p>
      </desc>
    </func>
  </funcs>
  
</erlref>

