mtc_buddy.h
9.2 KB
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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
/************************************************************************
Copyright (c) 2005-2011 by Juphoon System Software, Inc.
All rights reserved.
This software is confidential and proprietary to Juphoon System,
Inc. No part of this software may be reproduced, stored, transmitted,
disclosed or used in any form or by any means other than as expressly
provided by the written license agreement between Juphoon and its
licensee.
THIS SOFTWARE IS PROVIDED BY JUPHOON "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL JUPHOON BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Juphoon System Software, Inc.
Email: support@juphoon.com
Web: http://www.juphoon.com
************************************************************************/
/*************************************************
File name : mtc_buddy.h
Module : multimedia talk client
Author : xiangbo.hui
Created on : 2015-03-27
Description :
Data structure and function declare required by MTC statistics
Modify History:
1. Date: Author: Modification:
*************************************************/
#ifndef _MTC_BUDDY_H__
#define _MTC_BUDDY_H__
/**
* @file mtc_buddy.h
* @brief MTC Buddy Interface Functions
*
* This file includes buddy interface function.
*/
/**
* @defgroup MtcBuddyKey MTC notification key for buddy.
* @{
*/
/**
* @brief A key whose value is a string object reflecting
* the buddy's URI.
*/
#define MtcBuddyUriKey "MtcBuddyUriKey"
/**
* @brief A key whose value is a string object reflecting
* the buddy's reason key.
*/
#define MtcBuddyReasonKey "MtcBuddyReasonKey"
/**
* @brief A key whose value is a string object reflecting
* the property's name
*/
#define MtcBuddyPropertyNameKey "MtcBuddyPropertyNameKey"
/**
* @brief A key whose value is a string object reflecting
* the property's value
*/
#define MtcBuddyPropertyValueKey "MtcBuddyPropertyValueKey"
/**
* @brief A key whose value is a number reflecting the account's status,
* @ref group_def_account_status.
*/
#define MtcBuddyStatusKey "Status"
/**
* @brief A key whose value is a number object reflecting
* the login date time by UNIX timestamp.
*/
#define MtcBuddyPropertyDateKey "Date"
/**
* @brief A key whose value is a string object reflecting
* the brand of device.
*/
#define MtcBuddyPropertyBrandKey "Brand"
/**
* @brief A key whose value is a string object reflecting
* the model of device.
*/
#define MtcBuddyPropertyModelKey "Model"
/**
* @brief A key whose value is a string object reflecting
* the OS version of device.
*/
#define MtcBuddyPropertyVersionKey "Ver"
/**
* @brief A key whose value is a string object reflecting
* the application version.
*/
#define MtcBuddyPropertyAppVersionKey "AppVer"
/** @} */
/**
* @defgroup MtcBuddyNotification MTC notification names for buddy.
* @{
*/
/**
* @brief Posted when query buddy property successfully.
*
* The pcInfo of this notification contains
* @ref MtcBuddyUriKey, @ref MtcBuddyPropertyNameKey and @ref MtcBuddyPropertyValueKey.
*/
#define MtcBuddyQueryPropertyOkNotification "MtcBuddyQueryPropertyOkNotification"
/**
* @brief Posted when query buddy property failed.
*
* The pcInfo of this notification is contains
* @ref MtcBuddyUriKey, @ref MtcBuddyReasonKey.
*/
#define MtcBuddyQueryPropertyDidFailNotification "MtcBuddyQueryPropertyDidFailNotification"
/**
* @brief Posted when query buddy login information successfully.
*
* The pcInfo of this notification contains
* @ref MtcBuddyUriKey, @ref MtcBuddyStatusKey, @ref MtcBuddyPropertyDateKey,
* @ref MtcBuddyPropertyBrandKey, @ref MtcBuddyPropertyModelKey,
* @ref MtcBuddyPropertyVersionKey, @ref MtcBuddyPropertyAppVersionKey.
*/
#define MtcBuddyQueryLoginPropertiesOkNotification "MtcBuddyQueryLoginPropertiesOkNotification"
/**
* @brief Posted when query buddy login information failed.
*
* The pcInfo of this notification is contains
* @ref MtcBuddyUriKey, @ref MtcBuddyReasonKey.
*/
#define MtcBuddyQueryLoginPropertiesDidFailNotification "MtcBuddyQueryLoginPropertiesDidFailNotification"
/**
* @brief Posted when query buddy login information successfully.
*
* The pcInfo of this notification contains
* @ref MtcBuddyUriKey, @ref MtcBuddyStatusKey.
*/
#define MtcBuddyQueryLoginInfoOkNotification "MtcBuddyQueryLoginInfoOkNotification"
/**
* @brief Posted when query buddy login information failed.
*
* The pcInfo of this notification is contains
* @ref MtcBuddyUriKey, @ref MtcBuddyReasonKey.
*/
#define MtcBuddyQueryLoginInfoDidFailNotification "MtcBuddyQueryLoginInfoDidFailNotification"
/**
* @brief Posted when query buddys' UserId successfully.
*
* The pcInfo of this notification contains an array of UserId map item.
* Each item is an array of string, the first string is User's URI,
* the second string is corresponding UserId.
*/
#define MtcBuddyQueryUserIdOkNotification "MtcBuddyQueryUserIdOkNotification"
/**
* @brief Posted when query buddys' UserId failed.
*
* The pcInfo is ZNULL.
*/
#define MtcBuddyQueryUserIdDidFailNotification "MtcBuddyQueryUserIdDidFailNotification"
/**
* @brief Posted when query users' status successfully.
*
* The pcInfo of this notification is an array, each item contains
* @ref MtcBuddyUriKey, @ref MtcBuddyStatusKey.
*/
#define MtcBuddyQueryUsersStatusOkNotification "MtcBuddyQueryUsersStatusOkNotification"
/**
* @brief Posted when query users' status failed.
*
* The pcInfo is ZNULL.
*/
#define MtcBuddyQueryUsersStatusDidFailNotification "MtcBuddyQueryUsersStatusDidFailNotification"
/** @} */
/**
* @defgroup MtcBuddyReason MTC reason string.
* @{
*/
#define MTC_ERROR_BUDDY_NOT_FOUND "MtcBuddy.NotFound"
#define MTC_ERROR_BUDDY_NO_PROPERTY "MtcBuddy.NoProperty"
#define MTC_ERROR_BUDDY_TIMEOUT "MtcBuddy.Timeout"
/** @} */
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Query buddy's property.
*
* @param [in] zCookie The cookie which you want to set.
* @param [in] pcUri The query user's URI.
* @param [in] pcName The query property's name.
*
* @retval ZOK on invoke this interface successfully. The result will notify
* to user with @ref MtcBuddyQueryPropertyOkNotification
* or @ref MtcBuddyQueryPropertyDidFailNotification.
* @retval ZFAILED failed
*/
MTCFUNC ZINT Mtc_BuddyQueryProperty(ZCOOKIE zCookie,
ZCONST ZCHAR *pcUri, ZCONST ZCHAR *pcName);
/**
* @brief Query buddy's login information.
*
* @param [in] zCookie The cookie which you want to set.
* @param [in] pcUri The query user's URI.
*
* @retval ZOK on invoke this interface successfully. The result will notify
* to user with @ref MtcBuddyQueryLoginPropertiesOkNotification
* or @ref MtcBuddyQueryLoginPropertiesDidFailNotification.
* @retval ZFAILED failed
*/
MTCFUNC ZINT Mtc_BuddyQueryLoginProperties(ZCOOKIE zCookie,
ZCONST ZCHAR *pcUri);
/**
* @brief Query buddy's login information.
*
* @param [in] zCookie The cookie which you want to set.
* @param [in] pcUri The query user's URI.
* @param [in] iExpireSeconds The expiration seconds for query.
*
* @retval ZOK on invoke this interface successfully. The result will notify
* to user with @ref MtcBuddyQueryLoginInfoOkNotification
* or @ref MtcBuddyQueryLoginInfoDidFailNotification.
* @retval ZFAILED failed
*/
MTCFUNC ZINT Mtc_BuddyQueryLoginInfo(ZCOOKIE zCookie,
ZCONST ZCHAR *pcUri, ZINT iExpireSeconds);
/**
* @brief Query buddy's UserId information.
*
* @param zCookie The cookie value.
* @param pcInfo The query information. For just one user, using its URI directily.
* For multiple users, it must be a string in JSON format,
* which contains an array of string. Each string is the user's URI
* which wants be queried.
*
* @retval ZOK on invoke this interface successfully. The result will notify
* to user with @ref MtcBuddyQueryUserIdOkNotification
* or @ref MtcBuddyQueryUserIdDidFailNotification.
* @retval ZFAILED failed
*/
MTCFUNC ZINT Mtc_BuddyQueryUserId(ZCOOKIE zCookie, ZCONST ZCHAR *pcInfo);
/**
* @brief Query users' login status.
*
* @param zCookie The cookie value
* @param pcInfo The string of a JSON array, each item is the string of user's URI.
*
* @retval ZOK on invoke this interface successfully. The result will notify
* to user with @ref MtcBuddyQueryUsersStatusOkNotification
* or @ref MtcBuddyQueryUsersStatusDidFailNotification.
* @retval ZFAILED failed
*/
MTCFUNC ZINT Mtc_BuddyQueryUsersStatus(ZCOOKIE zCookie, ZCONST ZCHAR *pcInfo);
#ifdef __cplusplus
}
#endif
#endif /* _MTC_BUDDY_H__ */