File: Evolution-DataServer-Addressbook.idl

package info (click to toggle)
evolution-data-server 1.6.3-5etch3
  • links: PTS
  • area: main
  • in suites: etch
  • size: 59,384 kB
  • ctags: 43,218
  • sloc: ansic: 319,315; tcl: 30,499; xml: 19,166; sh: 18,776; perl: 11,529; cpp: 8,259; java: 7,653; makefile: 6,448; awk: 1,338; yacc: 1,103; sed: 772; cs: 505; lex: 134; asm: 14
file content (202 lines) | stat: -rw-r--r-- 6,037 bytes parent folder | download | duplicates (3)
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
 *
 * Author:
 *   Nat Friedman (nat@ximian.com)
 *
 * Copyright 2000, Ximian, Inc.
 */

#include <Bonobo.idl>

module GNOME {
module Evolution {
module Addressbook {
	typedef string ContactId;
	typedef string VCard;
	typedef sequence<VCard> VCardList;
	typedef sequence<ContactId> ContactIdList;
	typedef sequence<string> stringlist;

	enum BookChangeType {
		ContactAdded,
		ContactModified,
		ContactDeleted
	};

	struct BookChangeItem {
		BookChangeType changeType;
		VCard vcard;
	};

	typedef sequence<BookChangeItem> BookChangeList;

	enum CallStatus {
		Success,
		RepositoryOffline,
		PermissionDenied,
		ContactNotFound,
		ContactIdAlreadyExists,
		AuthenticationFailed,
		AuthenticationRequired,
		UnsupportedField,
		UnsupportedAuthenticationMethod,
		TLSNotAvailable,
		NoSuchBook,
		BookRemoved,
		OfflineUnavailable,
		
		/* These can be returned for successful searches, but
		   indicate the result set was truncated */
		SearchSizeLimitExceeded,
		SearchTimeLimitExceeded,

		InvalidQuery,
		QueryRefused,

		CouldNotCancel,

		OtherError,
		InvalidServerVersion	

	};

	typedef long BookMode;
	const BookMode MODE_LOCAL   = 1 << 0;
	const BookMode MODE_REMOTE  = 1 << 1;
	const BookMode MODE_ANY     = 0x07;

	/* 
	 * A book view is a live view of a book.  It's either a view
	 * of all the contacts in the book or a view of a query.  When
	 * created, it will get a series of notifyContactsAdded calls
	 * for all objects in the initial set.  After that, it will
	 * get added, removed, or changed signals whenever the book
	 * changes (if it affects the set of viewed contacts.)
	 */
	interface BookViewListener : Bonobo::Unknown {
		oneway void notifyContactsAdded    (in VCardList vcards);
		oneway void notifyContactsRemoved  (in ContactIdList ids);
		oneway void notifyContactsChanged  (in VCardList vcards);
		oneway void notifySequenceComplete (in CallStatus status);
		oneway void notifyProgress         (in string message, in short percent);
	};
	
	interface BookView : Bonobo::Unknown {
		oneway void start ();
		oneway void stop ();

		oneway void dispose ();
	};

	interface Book : Bonobo::Unknown {

		/*
		 * Opening/creating addressbooks.
		 */
		oneway void open (in long opid, in boolean only_if_exists);

		/*
		 * Removing addressbooks.
		 */
		oneway void remove (in long opid);

		/*
		 * Fetching contacts in the addresbook.
		 */
		oneway void getContact (in long opid, in ContactId id);

		oneway void authenticateUser (in long opid,
					      in string user, in string passwd,
					      in string authMethod);

		/*
		 * Adding and deleting contacts in the book.
		 */
		oneway void addContact     (in long opid, in VCard vcard);
		oneway void removeContacts (in long opid, in ContactIdList Id);
	        
		/*
		 * Modifying contacts in the addressbook.
		 */
		oneway void modifyContact (in long opid, in VCard vcard);
		
		/*
		 * These two functions return a book view to the book
		 * listener.  This is for people who want a live view
		 * of the addressbook.
		 */
		oneway void getBookView (in long opid,
					 in BookViewListener listener, in string query,
					 in stringlist requested_fields, in long max_results);

		oneway void getChanges  (in long opid, in string change_id);

		oneway void getContactList (in long opid, in string query);

		oneway void getSupportedFields (in long opid);
		oneway void getRequiredFields (in long pid);

		/*
		 * This function returns a list of strings
		 * representing the auth methods (e.g. SASL mechs)
		 * that a backend/server supports.
		 *
		 * Some examples are:
		 *
		 * "ldap/simple-email|By email Address"
		 * "sasl/CRAM-MD5|CRAM-MD5(SASL)"
		 *
		 * The format should be:
		 *
		 * <class>/<type>|<i18nized string>
		 *
		 * "i18nized string" is shown in the UI, and should be
		 * a user friendly representation of the auth method.
		 *
		 * in the case of SASL auth mechs, the text trailing
		 * the '/' should be the proper name of the mechanism,
		 * as it will be passed unchanged to the backend auth
		 * function (eg. ldap_sasl_bind)
		 */
		oneway void getSupportedAuthMethods (in long opid);

		string getStaticCapabilities ();

		string getName ();
		/* cancels the currently running operation, whatever
		   it is. */
		CallStatus cancelOperation ();
	};

	interface BookListener : Bonobo::Unknown {
		
		oneway void notifyContactCreated       (in long opid, in CallStatus status, in ContactId Id);
		oneway void notifyContactsRemoved      (in long opid, in CallStatus status);
		oneway void notifyContactModified      (in long opid, in CallStatus status);
		oneway void notifyProgress             (in string status_message, in short precent);
		oneway void notifyBookOpened           (in long opid, in CallStatus status);
		oneway void notifyBookRemoved          (in long opid, in CallStatus status);
		oneway void notifyViewRequested        (in long opid, in CallStatus status, in BookView view);
		oneway void notifyChangesRequested     (in long opid, in CallStatus status, in BookChangeList changes);
		oneway void notifyContactRequested     (in long opid, in CallStatus status, in VCard vcard);
		oneway void notifyContactListRequested (in long opid, in CallStatus status, in stringlist contacts);
		oneway void notifySupportedFields      (in long opid, in CallStatus status, in stringlist fields);
		oneway void notifyRequiredFields       (in long opid, in CallStatus status, in stringlist fields);
		oneway void notifyAuthenticationResult (in long opid, in CallStatus status);
		oneway void notifySupportedAuthMethods (in long opid, in CallStatus status, in stringlist auth_methods);
		
		oneway void notifyWritable (in boolean writable);
		oneway void notifyConnectionStatus (in boolean is_online);
		oneway void notifyAuthRequired ();
	};

	interface BookFactory : Bonobo::Unknown {
		exception ProtocolNotSupported {};

		Book getBook (in string source, in BookListener listener)
			raises (ProtocolNotSupported);
	};
};
};
};