~ubuntu-branches/ubuntu/quantal/libbonobo/quantal-201207170711

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
 * bonobo-moniker.idl: Implements an object naming and resolution interface
 *
 * Copyright (C) 2000  Helix Code, Inc.
 *
 * Authors:
 *	Michael Meeks (michael@helixcode.com)
 *	Ettore Perazzoli (ettore@helixcode.com)
 */

#ifndef BONOBO_MONIKER_IDL
#define BONOBO_MONIKER_IDL

#include <Bonobo_Activation_types.idl>
#include "Bonobo_Unknown.idl"

module Bonobo {

	typedef long ResolveFlag;
	const ResolveFlag MONIKER_ALLOW_USER_INTERACTION = 1;

	struct ResolveOptions {
		ResolveFlag  flags;
		long         timeout; /* in ms */
	};

	interface Moniker : Bonobo::Unknown {
		exception InterfaceNotFound {};
		exception TimeOut           {};
		exception InvalidSyntax     {};
		exception UnknownPrefix     {};

		/**
		 * getParent:
		 *
		 * get the parent moniker.
		 */
		Moniker getParent ();

		/**
		 * setParent:
		 * @parent: parent moniker
		 * 
		 * sets the parent moniker.
		 */
		void setParent (in Moniker parent);

		/**
		 * getName:
		 * 
		 * Returns a human readable representation of the Moniker
		 */
		string  getName ()
			raises (InvalidSyntax);

 		/**
 		 * setName:
 		 * @name: the display name
 		 *
 		 * set the name of the moniker. This method parses the whole
		 * name and constructs the moniker chain.
 		 */
 		void setName (in string name)
			raises (InvalidSyntax, UnknownPrefix);
 		
		/**
		 * resolve:
		 * @options: resolution options
		 * @inferface: what interface we want from the result
		 *
		 * Resolves a moniker; this returns a reference to the
		 * activated object described by the moniker
		 */
		Unknown resolve            (in ResolveOptions options,
					    in string         requestedInterface)
			raises (InterfaceNotFound,
				TimeOut,
				GeneralError);

		/**
		 * equal:
		 * @name: the name of another moniker
		 *
		 *  Compares the full moniker with this @name,
		 * returns 0 if not equal, else the number of chars swallowed
		 * by the compare.
		 */
		long    equal              (in string name);

		void unImplemented1 ();
		void unImplemented2 ();
	};

        interface MonikerExtender : Bonobo::Unknown {
		/**
		 * resolve:
		 * @m: the moniker we are about to extend
		 * @options: resolve options
		 * @name: the name of 'm' by itself eg. 'file:/tmp/a'
		 * @requested_interface: the interface we want to get back
		 *
		 *  The interface for a later extension to a moniker that allows it
		 * to be resolved against new and exotic interfaces.
		 *
		 * Returns: The interface requested, or CORBA_OBJECT_NIL.
		 */
                Unknown resolve (in Moniker        m,
				 in ResolveOptions options,
                                 in string         name,
                                 in string         requestedInterface)
			raises (Moniker::InterfaceNotFound,
				Moniker::TimeOut,
				GeneralError);

		void unImplemented1 ();
		void unImplemented2 ();
		void unImplemented3 ();
		void unImplemented4 ();
        };
};

#endif /* BONOBO_MONIKER_IDL */