//#  @(#) 2.21 src/somd/principl.idl, somd, som3.0 9/26/96 14:02:09 [12/22/96 21:11:49]

//
//   COMPONENT_NAME: somd
//
//   ORIGINS: 27
//
//
//    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1994,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.
//


//   This is a class interface definition which defines the CORBA-defined
//   Principal object. CORBA defines the Principal object but (at this
//   time) does not define the interface to this object. The methods for
//   this object are, therefore, subject to change in future implementations.
//
//   The BOA guarantees that for every method invocation it will identify
//   the principal on whose behalf the request is performed. An object
//   implementation may request an instance of this class to determine
//   if a method invocation has been made by someone with the appropriate
//   authority. An instance of this class is returned when the following
//   method is invoked on the BOA:
//
//     get_principal(in BOA boaobj, in Environment lcl_ev,
//                   in SOMDObject obj, in Environment req_ev);
//
#ifndef principl_idl
#define principl_idl

#include <somobj.idl>


interface Principal : SOMObject

{
  attribute string userName;
  // User who made the request.

  attribute string hostName;
  // Host from which the request was made.


#ifdef __SOMIDL__

// D21548 
  implementation
  {
    releaseorder: _set_userName, _get_userName,
                  _set_hostName, _get_hostName,
                  private1, private2;


    // Class Modifiers
    callstyle = idl;
    dllname = "somd.dll";
    majorversion = 2;
    minorversion = 2;

    // Attribute Modifiers
    userName : noset;
    hostName : noset;
    object_group : noset;
    somDefaultInit : override, init;
    somDestruct: override;
    _get_userName : dual_owned_result;
    _get_hostName : dual_owned_result;

  };

#endif /* __SOMIDL__ */

};

#endif  /* principl_idl */

