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

<erlref>
  <header>
    <copyright>
      <year>1997</year><year>2017</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>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="erl">
-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="erl">
-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>

