corba.idl revision 608:7e06bf1dcb09
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
30module 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
102