Wed, 26 Feb 2014 14:43:56 -0800
Added tag jdk8u20-b03 for changeset 9059a1c85704
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 */
27 // minimal definitions to keep idltojava happy while compiling poa.idl
28 #pragma prefix "omg.org"
30 module CORBA {
32 typedef string Identifier;
33 typedef string RepositoryId;
35 // basic Policy definition
36 typedef unsigned long PolicyType ;
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;
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( );
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 };
68 typedef sequence <Policy> PolicyList;
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 };