<?xml version="1.0" encoding="latin1" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<erlref>
  <header>
    <copyright>
      <year>1997</year><year>2009</year>
      <holder>Ericsson AB. All Rights Reserved.</holder>
    </copyright>
    <legalnotice>
      The contents of this file are subject to the Erlang Public License,
      Version 1.1, (the "License"); you may not use this file except in
      compliance with the License. You should have received a copy of the
      Erlang Public License along with this software. If not, it can be
      retrieved online at http://www.erlang.org/.
    
      Software distributed under the License is distributed on an "AS IS"
      basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
      the License for the specific language governing rights and limitations
      under the License.
    
    </legalnotice>

    <title>lname_component</title>
    <prepared></prepared>
    <responsible></responsible>
    <docno></docno>
    <approved></approved>
    <checked></checked>
    <date>1997-06-10</date>
    <rev>A</rev>
  </header>
  <module>lname_component</module>
  <modulesummary>Interface that supports the name pseudo-objects.</modulesummary>
  <description>
    <p>This interface is a part of the name library, which is used to hide the 
      representation of names. In Orbers Erlang mapping the pseudo-object names 
      and the real IDL names have the same representation but it is desirable that 
      the clients uses the names library so they will not be dependent of the representation.
      The lname_component interface supports handling of name components e.g. set and get
      of the struct members.</p>
    <p>Note that the lname_component interface in orber does not contain a destroy 
      function because the NameComponents are represented as Erlang records and 
      therefor will be removed by the garbage collector when not in use.</p>
    <p>The type <c>NameComponent</c> used below is defined as:</p>
    <code type="none">
      -record('CosNaming_NameComponent', {id, kind=""}).
    </code>
    <p><c>id</c> and <c>kind</c> are strings. </p>
    <p>The record is defined in the file <c>CosNaming.hrl</c> and it 
      is included with:</p>
    <code type="none">
      -include_lib("orber/COSS/CosNaming/CosNaming.hrl").
    </code>
  </description>
  <funcs>
    <func>
      <name>create() -> Return</name>
      <fsummary>Create a new name component</fsummary>
      <type>
        <v>Return = NameComponent</v>
      </type>
      <desc>
        <p>This function returns a new name component.</p>
      </desc>
    </func>
    <func>
      <name>get_id(NameComponent) -> Return</name>
      <fsummary>Get the id field of a name component</fsummary>
      <type>
        <v>Return = string()</v>
      </type>
      <desc>
        <p>This function returns the id string of a name component.</p>
      </desc>
    </func>
    <func>
      <name>set_id(NameComponent, Id) -> Return</name>
      <fsummary>Set the id field of a name component</fsummary>
      <type>
        <v>Id = string()</v>
        <v>Return = NameComponent</v>
      </type>
      <desc>
        <p>This function sets the id string of a name component and returns the component.</p>
      </desc>
    </func>
    <func>
      <name>get_kind(NameComponent) -> Return</name>
      <fsummary>Get the kind field of a name component</fsummary>
      <type>
        <v>Return = string()</v>
      </type>
      <desc>
        <p>This function returns the id string of a name component.</p>
      </desc>
    </func>
    <func>
      <name>set_kind(NameComponent, Kind) -> Return</name>
      <fsummary>Set the kind field of a name component</fsummary>
      <type>
        <v>Kind = string()</v>
        <v>Return = NameComponent</v>
      </type>
      <desc>
        <p>This function sets the kind string of a name component and returns the component.</p>
      </desc>
    </func>
  </funcs>
  
</erlref>

