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