//
//   COMPONENT_NAME: somnm
//
//   ORIGINS: 27
//
//
//    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1996,1996  
//   All Rights Reserved
//   Licensed Materials - Property of IBM
//   US Government Users Restricted Rights - Use, duplication or
//   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//
//#  @(#) 1.7 src/somnm/naming/lname.idl, somnm, som3.0 5/20/96 16:40:10 [12/22/96 21:32:07]

/*
 *    @(#) 1.7 @(#)lname.idl	1.7 1/24/94 10:34:07 [3/30/94 17:08:21]
 */

//#----------------------------------------------------------------------#
//#   lname.idl -                                                        #
//#----------------------------------------------------------------------#

#ifndef lname_idl
#define lname_idl

#include <lnamec.idl>

interface LName: SOMObject {
    exception NoComponent{};
    exception OverFlow{};
    exception InvalidName{};
    LName insert_component(in unsigned long i, in LNameComponent n)
        raises(NoComponent, OverFlow);

    LNameComponent get_component(in unsigned long i)
        raises(NoComponent);

    LNameComponent delete_component(in unsigned long i)
        raises(NoComponent);

    unsigned long num_components();

    boolean equal(in LName ln);

    boolean less_than(in LName ln);

    CosNaming::Name to_idl_form()
        raises(InvalidName);

    void from_idl_form(in CosNaming::Name n);

    void destroy();

    #ifdef __SOMIDL__
    implementation {
        releaseorder: to_idl_form, insert_component, get_component, 
			delete_component,
                      num_components, equal, less_than,
                      from_idl_form, destroy;

	somDefaultInit: override, init;
	somDestruct: override;
        dllname = "somnmf.dll";
	majorversion = 3;
	minorversion = 0;
    };
    #endif
};

#endif /* lname_idl */

