1 /*
   2  * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 
  27 // minimal definitions to keep idltojava happy while compiling poa.idl
  28 #pragma prefix "omg.org" 
  29 
  30 module CORBA {   
  31 
  32         typedef string Identifier;
  33         typedef string RepositoryId;
  34 
  35         // basic Policy definition 
  36         typedef unsigned long PolicyType ;
  37 
  38         /** The Policy interface provides a mechanism for ORBs and Object
  39         * Services to allow access to certain choices that affect their 
  40         * operation.  This information is accessed in a structured manner
  41         * using interfaces derived from the org.omg.CORBA.Policy interface.
  42         */
  43         interface Policy { 
  44                 /** Return the constant value that corresponds to the 
  45                 * type of the policy object.  The values of 
  46                 * the polivy objectys are allocated by the OMG.
  47                 * New values for PolicyType should be obtained from the OMG by
  48                 * sending mail to request@omg.org.  In general the constant
  49                 * values that are allocated are defined in conjunction with
  50                 * the definition of the corresponding policy object.
  51                 * @return the constant value that corresponds to the type of
  52                 * the policy object.
  53                 */
  54                 readonly attribute PolicyType policy_type;
  55 
  56                 /** Copies the policy object. The copy does not retain any
  57                 * relationships that the policy had with any domain or object.
  58                 * @return the copy of the policy object.
  59                 */
  60                 Policy copy( ); 
  61 
  62                 /** Destroys the policy object.  It is the responsibility of
  63                 * the policy object to determine whether it can be destroyed.
  64                 */
  65                 void destroy( ); 
  66         }; 
  67 
  68         typedef sequence <Policy> PolicyList; 
  69 
  70         /**
  71          * An interface that makes it possible to access information
  72          * associated with a particular thread of execution, such as
  73          * security information or a transaction identifier.
  74          * <P>
  75          * An ORB or CORBA service that needs its own thread-specific
  76          * state extends the CORBA package's <code>Current</code>.
  77          * Users of the service can obtain an instance of the appropriate
  78          * <code>Current</code> interface by invoking
  79          * <code>ORB.resolve_initial_references</code>.
  80          * For example, the Security service obtains the <code>Current</code>
  81          * relevant to it by invoking
  82          * <PRE>
  83          *    ORB.resolve_initial_references("SecurityCurrent");
  84          * </PRE>
  85          * <P>
  86          * A CORBA service does not have to use this method of keeping context
  87          * but may choose to do so.
  88          * <P>
  89          * Methods on classes that implement from <code>Current</code> access state
  90          * associated with the thread in which they are invoked, not state associated
  91          * with the thread from which the <code>Current</code> was obtained.
  92          *  Current objects must not be exported to other processes, or externalized
  93          *  with ORB.object_to_string. If any attempt is made to do so, the offending
  94          *  operation will raise a MARSHAL system exception.
  95          * @see <a href="package-summary.html#unimpl"><code>portable</code>
  96          * package comments for unimplemented features</a>
  97          */
  98         interface Current { };
  99 };
 100 
 101