You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1018 lines
33 KiB
1018 lines
33 KiB
/************************************************************************ |
|
|
|
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__ |
|
|
|
#include "mtc_def.h" |
|
|
|
/** |
|
* @file mtc_buddy.h |
|
* @brief MTC Buddy Interface Functions |
|
* |
|
* This file includes buddy interface function. |
|
*/ |
|
|
|
/** @brief Failure reasons. */ |
|
typedef enum EN_MTC_BUDDY_REASON_TYPE |
|
{ |
|
EN_MTC_BUDDY_REASON_BASE = 2000, /**< @brief Base of reason number. */ |
|
EN_MTC_BUDDY_REASON_GET_AGENT, /**< @brief Internal error get agent failed. */ |
|
EN_MTC_BUDDY_REASON_SERVER, /**< @brief Server error. */ |
|
EN_MTC_BUDDY_REASON_SERVER_UPDATE_TIME_INVALID, /**< @brief Server error update time invalid. */ |
|
EN_MTC_BUDDY_REASON_SERVER_PERMISSION_DENIED, /**< @brief Server error permission denied. */ |
|
EN_MTC_BUDDY_REASON_SERVER_UID_NOT_FOUND, /**< @brief Server error uid is not found. */ |
|
EN_MTC_BUDDY_REASON_SERVER_GROUP_ID_INVALID, /**< @brief Server error group id invalid. */ |
|
EN_MTC_BUDDY_REASON_SERVER_CHANGE_NOT_EXISTS, /**< @brief Server error change relation that not exists. */ |
|
EN_MTC_BUDDY_REASON_SERVER_ADD_ALREADY_EXISTS, /**< @brief Server error add relation that already exists. */ |
|
EN_MTC_BUDDY_REASON_SERVER_ADD_SELF, /**< @brief Server error add self. */ |
|
EN_MTC_BUDDY_REASON_SERVER_RELATION_TYPE_INVALID, /**< @brief Server error relation type invalid. */ |
|
EN_MTC_BUDDY_REASON_SERVER_REMOVE_NOT_EXIST, /**< @brief Server error remove relation that not exists. */ |
|
EN_MTC_BUDDY_REASON_SERVER_STATUS_TYPE_INVALID, /**< @brief Server error status type invalid. */ |
|
EN_MTC_BUDDY_REASON_SERVER_WRITE_OWNER_ERROR, /**< @brief Server error only one owner in group. */ |
|
EN_MTC_BUDDY_REASON_SERVER_SET_WRITE_PROP, /**< @brief Server error try to set write only prop. */ |
|
EN_MTC_BUDDY_REASON_SERVER_APPLY_TYPE_GRANTED, /**< @brief Server error apply type granted. */ |
|
EN_MTC_BUDDY_REASON_SERVER_LACK_OF_ORG_NAME, /**< @brief Server error lack of org name. */ |
|
EN_MTC_BUDDY_REASON_SERVER_UNKNOW_ORG_TYPE, /**< @brief Server error unknow org type. */ |
|
EN_MTC_BUDDY_REASON_SERVER_OWNER_NOT_INVOKER, /**< @brief Server error not assign self as owner. */ |
|
EN_MTC_BUDDY_REASON_SERVER_NOT_IN_GROUP, /**< @brief Server error not in relation list of target. */ |
|
EN_MTC_BUDDY_REASON_SERVER_BLACKLIST, /**< @brief Server error block by blacklist. */ |
|
EN_MTC_BUDDY_REASON_SERVER_CAPACITY_FULL, /**< @brief Server error capacity of the group is full. */ |
|
EN_MTC_BUDDY_REASON_SERVER_NOT_BELOG_OT_ORG, /**< @brief Server error caller not belong to the group. */ |
|
EN_MTC_BUDDY_REASON_SERVER_WRITE_EXCEED_RIGHT, /**< @brief Server error try to change the member who has higher level . */ |
|
EN_MTC_BUDDY_REASON_SERVER_DBERROR, /**< @brief Server error try to connect db server . */ |
|
EN_MTC_BUDDY_REASON_SERVER_TARGET_TYPE_GRANTED, /**< @brief Server error target type granted. */ |
|
EN_MTC_BUDDY_REASON_SERVER_APPLY_MSG_EXPIRE, /**< @brief Server error apply message expire. */ |
|
EN_MTC_BUDDY_REASON_QUERY_UID, /**< @brief Query UID failed. */ |
|
EN_MTC_BUDDY_REASON_BUDDY_NOT_FOUND, /**< @brief Buddy not found. */ |
|
EN_MTC_BUDDY_REASON_NO_PROPERTY, /**< @brief Property not exist. */ |
|
EN_MTC_BUDDY_REASON_TIMEOUT, /**< @brief Request timeout. */ |
|
EN_MTC_BUDDY_REASON_SERVER_GROUP_ID_DELETED, /**< @brief Request group id deleted. */ |
|
} EN_MTC_BUDDY_REASON_TYPE; |
|
|
|
/** @brief Relation type. */ |
|
typedef enum EN_MTC_BUDDY_RELATION_TYPE |
|
{ |
|
EN_MTC_BUDDY_RELATION_WITH_PERSON = 11, |
|
EN_MTC_BUDDY_RELATION_CLOSE_FRIEND = EN_MTC_BUDDY_RELATION_WITH_PERSON, /**< @brief Close friend. */ |
|
EN_MTC_BUDDY_RELATION_FRIEND = 12, /**< @brief Friend. */ |
|
EN_MTC_BUDDY_RELATION_CONTACT = 13, /**< @brief Contact. */ |
|
EN_MTC_BUDDY_RELATION_FOLLOW = 14, /**< @brief Follow. */ |
|
EN_MTC_BUDDY_RELATION_STRANGER = 15, /**< @brief Stragner. */ |
|
EN_MTC_BUDDY_RELATION_BLACKLIST = 16, /**< @brief Blacklist. */ |
|
EN_MTC_BUDDY_RELATION_SYSTEM = 18, /**< @brief System. */ |
|
} EN_MTC_BUDDY_RELATION_TYPE; |
|
|
|
/** |
|
* @defgroup MtcBuddyKey MTC notification key for buddy. |
|
* @{ |
|
*/ |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the buddy's URI. |
|
*/ |
|
#define MtcBuddyUriKey "UserUri" |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the buddy's UserID. |
|
*/ |
|
#define MtcBuddyUidKey "Rid" |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the invitee's UserID. |
|
*/ |
|
#define MtcBuddyInviteeUidKey "InviteeUid" |
|
|
|
/** |
|
* @brief A key whose value is a number object reflecting |
|
* the buddy's reason key. |
|
*/ |
|
#define MtcBuddyReasonKey "MtcBuddyReasonKey" |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the failure details. |
|
*/ |
|
#define MtcBuddyReasonDetailKey "ReasonDetail" |
|
|
|
/** |
|
* @brief A key whose value is a list of relation object reflecting |
|
* the property(s) name and value map of user. |
|
*/ |
|
#define MtcBuddyPropertyKey "MtcBuddyPropertyKey" |
|
|
|
/** |
|
* @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 string object reflecting |
|
* the status name. |
|
*/ |
|
#define MtcBuddyStatusNameKey "MtcBuddyStatusNameKey" |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the status value. |
|
*/ |
|
#define MtcBuddyStatusValueKey "MtcBuddyStatusValueKey" |
|
|
|
/** |
|
* @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" |
|
|
|
/** |
|
* @brief A key whose value is an integer object reflecting |
|
* the update time of server change. |
|
*/ |
|
#define MtcBuddyUpdateTimeKey "UpdateTime" |
|
|
|
/** |
|
* @brief A key whose value is an integer object reflecting |
|
* the base time of server change. |
|
*/ |
|
#define MtcBuddyBaseTimeKey "BaseTime" |
|
|
|
/** |
|
* @brief A key whose value is an integer object reflecting |
|
* the time of server. |
|
*/ |
|
#define MtcBuddyTimeKey "Time" |
|
|
|
/** |
|
* @brief A key whose value is an boolean object reflecting |
|
* the update information is full or partial. |
|
*/ |
|
#define MtcBuddyIsPartialUpdateKey "IsPartialUpdate" |
|
|
|
/** |
|
* @brief A key whose value is an integer reflecting |
|
* the relation type of a relation, @ref EN_MTC_BUDDY_RELATION_TYPE |
|
*/ |
|
#define MtcBuddyRelationTypeKey "RelationType" |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the display name of a relation. |
|
*/ |
|
#define MtcBuddyDisplayNameKey "DisplayName" |
|
|
|
/** |
|
* @brief A key whose value is a object contains |
|
* the cfgs of a relation. |
|
*/ |
|
#define MtcBuddyCfgsKey "Cfgs" |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the tag of a relation. |
|
*/ |
|
#define MtcBuddyTagKey "Tag" |
|
|
|
/** |
|
* @brief A key whose value is a list of relation objects |
|
* that representing relations. |
|
* Each object contains several fields: |
|
* @ref MtcBuddyRelationTypeKey, |
|
* @ref MtcBuddyUidKey, |
|
* @ref MtcBuddyDisplayNameKey. |
|
* @ref MtcBuddyTagKey. |
|
*/ |
|
#define MtcBuddyRelationListKey "RelationList" |
|
|
|
/** |
|
* @brief A key whose value is a array of relation objects |
|
* that representing new added relations. |
|
* Each object contains several fields: |
|
* @ref MtcBuddyRelationTypeKey, |
|
* @ref MtcBuddyUidKey, |
|
* @ref MtcBuddyDisplayNameKey, |
|
* @ref MtcBuddyTagKey, |
|
* @ref MtcBuddyCfgsKey. |
|
*/ |
|
#define MtcBuddyAddedRelationListKey "AddedRelationList" |
|
|
|
/** |
|
* @brief A key whose value is a array of relation objects |
|
* that representing changed relations. |
|
* Each object contains several fields: |
|
* @ref MtcBuddyRelationTypeKey, |
|
* @ref MtcBuddyUidKey, |
|
* @ref MtcBuddyDisplayNameKey, |
|
* @ref MtcBuddyTagKey, |
|
* @ref MtcBuddyCfgsKey. |
|
*/ |
|
#define MtcBuddyUpdatedRelationListKey "UpdatedRelationList" |
|
|
|
/** |
|
* @brief A key whose value is a array of string objects |
|
* that representing removed UserIDs |
|
*/ |
|
#define MtcBuddyRemovedRelationListKey "RemovedRelationList" |
|
|
|
/** |
|
* @brief A key whose value is a relation objects |
|
* that representing changed relation. |
|
* @ref MtcBuddyRelationTypeKey, |
|
* @ref MtcBuddyUidKey, |
|
* @ref MtcBuddyDisplayNameKey. |
|
* @ref MtcBuddyTagKey. |
|
*/ |
|
#define MtcBuddyUpdatedRelationKey "MtcBuddyUpdatedRelationKey" |
|
|
|
/** |
|
* @brief A key whose value is a array of relation objects |
|
* that representing new added relations. |
|
* Each object contains several fields: |
|
* @ref MtcBuddyRelationTypeKey, @ref MtcBuddyUriKey, @ref MtcBuddyDisplayNameKey, @ref MtcBuddyTagKey. |
|
*/ |
|
#define MtcBuddyListToAddKey "ListToAdd" |
|
|
|
/** |
|
* @brief A key whose value is a array of relation objects |
|
* that representing changed relations. |
|
* Each object contains several fields: |
|
* @ref MtcBuddyRelationTypeKey, @ref MtcBuddyUriKey, @ref MtcBuddyDisplayNameKey, @ref MtcBuddyTagKey. |
|
*/ |
|
#define MtcBuddyListToUpdateKey "ListToUpdate" |
|
|
|
/** |
|
* @brief A key whose value is a array of string objects |
|
* that representing removed URIs. |
|
*/ |
|
#define MtcBuddyListToRemoveKey "ListToRemove" |
|
|
|
/** |
|
* @brief A key whose value is a list of relation objects |
|
* that representing relations. |
|
* Each object contains several fields: |
|
* @ref MtcBuddyUidKey, |
|
* and other key value set by Mtc_BuddySetMyStatus. |
|
*/ |
|
#define MtcBuddyStatusListKey "StatusList" |
|
|
|
/** |
|
* @brief A key whose value is a number object reflecting |
|
* the unique ID of a buddy apply. |
|
*/ |
|
#define MtcBuddyApplyIdKey "ApplyId" |
|
|
|
/** |
|
* @brief A key whose value is a number object reflecting |
|
* the unique ID of a buddy apply message id. |
|
*/ |
|
#define MtcBuddyMsgIdKey "MsgId" |
|
|
|
/** |
|
* @brief A key whose value is a number object reflecting |
|
* the box name of a buddy apply message. |
|
*/ |
|
#define MtcBuddyBoxKey "Box" |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the description of a buddy apply. |
|
*/ |
|
#define MtcBuddyApplyDescriptionKey "Description" |
|
|
|
/** |
|
* @brief A key whose value is a string object reflecting |
|
* the ImPush of a relation, "T"/"F". |
|
*/ |
|
#define MtcBuddyImPushKey "ImPush" |
|
|
|
/** @} */ |
|
|
|
/** |
|
* @defgroup MtcBuddyNotification MTC notification names for buddy. |
|
* @{ |
|
*/ |
|
|
|
/** |
|
* @brief Posted when query buddy property successfully. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUriKey, @ref MtcBuddyPropertyKey. |
|
*/ |
|
#define MtcBuddyQueryPropertyOkNotification "MtcBuddyQueryPropertyOkNotification" |
|
|
|
/** |
|
* @brief Posted when query buddy property failed. |
|
* |
|
* The pcInfo of this notification is contains |
|
* @ref MtcBuddyUriKey, @ref MtcBuddyReasonKey, @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#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, @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#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, @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#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 of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyQueryUserIdDidFailNotification "MtcBuddyQueryUserIdDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when query buddys' AccountId successfully. |
|
* |
|
* The pcInfo of this notification contains an array of AccountId map item. |
|
* Each item is an array of string, the first string is User's UserId, |
|
* following string is the AccountId associated with this user. |
|
*/ |
|
#define MtcBuddyQueryAccountIdOkNotification "MtcBuddyQueryAccountIdOkNotification" |
|
|
|
/** |
|
* @brief Posted when query buddys' AccountId failed. |
|
* |
|
* The pcInfo is ZNULL. |
|
*/ |
|
#define MtcBuddyQueryAccountIdDidFailNotification "MtcBuddyQueryAccountIdDidFailNotification" |
|
|
|
/** |
|
* @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 of this notification is an array of string, each item is user's URI. |
|
*/ |
|
#define MtcBuddyQueryUsersStatusDidFailNotification "MtcBuddyQueryUsersStatusDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when refresh successfully. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUpdateTimeKey, |
|
* @ref MtcBuddyBaseTimeKey, |
|
* @ref MtcBuddyIsPartialUpdateKey, |
|
* @ref MtcBuddyRelationListKey, |
|
* @ref MtcBuddyAddedRelationListKey, |
|
* @ref MtcBuddyUpdatedRelationListKey |
|
* @ref MtcBuddyRemovedRelationListKey. |
|
*/ |
|
#define MtcBuddyRefreshOkNotification "MtcBuddyRefreshOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to refresh. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyRefreshDidFailNotification "MtcBuddyRefreshDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when buddy list changed. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUpdateTimeKey, |
|
* @ref MtcBuddyBaseTimeKey, |
|
* @ref MtcBuddyIsPartialUpdateKey, |
|
* @ref MtcBuddyAddedRelationListKey, |
|
* @ref MtcBuddyUpdatedRelationListKey, |
|
* @ref MtcBuddyRemovedRelationListKey. |
|
*/ |
|
#define MtcBuddyChangedNotification "MtcBuddyChangedNotification" |
|
|
|
/** |
|
* @brief Posted when add relation successfully. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUpdateTimeKey. |
|
*/ |
|
#define MtcBuddyAddRelationOkNotification "MtcBuddyAddRelationOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to add relation. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyAddRelationDidFailNotification "MtcBuddyAddRelationDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when update relation successfully. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUpdateTimeKey. |
|
*/ |
|
#define MtcBuddyUpdateRelationOkNotification "MtcBuddyUpdateRelationOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to update relation. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyUpdateRelationDidFailNotification "MtcBuddyUpdateRelationDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when remove relation successfully. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUpdateTimeKey. |
|
*/ |
|
#define MtcBuddyRemoveRelationOkNotification "MtcBuddyRemoveRelationOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to remove relation. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyRemoveRelationDidFailNotification "MtcBuddyRemoveRelationDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when set relation status successfully. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUidKey, |
|
*/ |
|
#define MtcBuddySetMyStatusOkNotification "MtcBuddySetMyStatusOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to set relation status. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUidKey, |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddySetMyStatusDidFailNotification "MtcBuddySetMyStatusDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when recv buddy status changed. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyUidKey, |
|
* @ref MtcBuddyStatusNameKey, |
|
|
|
* @ref MtcBuddyStatusValueKey, |
|
* @ref MtcBuddyUpdateTimeKey. |
|
*/ |
|
#define MtcBuddyStatusChangedNotification "MtcBuddyStatusChangedNotification" |
|
|
|
/** |
|
* @brief Posted when get relation status successfully. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyStatusListKey. |
|
*/ |
|
#define MtcBuddyGetRelationStatusOkNotification "MtcBuddyGetRelationStatusOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to get relation status. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyGetRelationStatusDidFailNotification "MtcBuddyGetRelationStatusDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when set relations successfully. |
|
* |
|
* The pcInfo of this notification contains @ref MtcBuddyUpdateTimeKey, @ref MtcBuddyBaseTimeKey. |
|
*/ |
|
#define MtcBuddySetRelationsOkNotification "MtcBuddySetRelationsOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to set relations. |
|
* |
|
* The pcInfo of this notification contains @ref MtcBuddyReasonKey, @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddySetRelationsDidFailNotification "MtcBuddySetRelationsDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when apply relation successfully. |
|
* |
|
* The pcInfo of this notification is ZNULL. |
|
*/ |
|
#define MtcBuddyApplyRelationOkNotification "MtcBuddyApplyRelationOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to apply relation. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyApplyRelationDidFailNotification "MtcBuddyApplyRelationDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when accept relation successfully. |
|
* |
|
* The pcInfo of this notification contains is ZNULL. |
|
*/ |
|
#define MtcBuddyAcceptRelationOkNotification "MtcBuddyAcceptRelationOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to accept relation. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyAcceptRelationDidFailNotification "MtcBuddyAcceptRelationDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when receive buddy apply message. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyApplyIdKey, |
|
* @ref MtcBuddyUidKey, |
|
* @ref MtcBuddyInviteeUidKey, |
|
* @ref MtcBuddyRelationTypeKey, |
|
* @ref MtcBuddyDisplayNameKey, |
|
* @ref MtcBuddyApplyDescriptionKey. |
|
*/ |
|
#define MtcBuddyApplyReceivedNotification "MtcBuddyApplyReceivedNotification" |
|
|
|
/** |
|
* @brief Posted when receive buddy apply complete message. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyApplyIdKey, |
|
* If apply success maybe also contain |
|
* @ref MtcBuddyUpdateTimeKey, |
|
* @ref MtcBuddyBaseTimeKey, |
|
* @ref MtcBuddyIsPartialUpdateKey, |
|
* @ref MtcBuddyAddedRelationListKey, |
|
* @ref MtcBuddyUpdatedRelationListKey, |
|
* @ref MtcBuddyRemovedRelationListKey. |
|
*/ |
|
#define MtcBuddyApplyCompletedNotification "MtcBuddyApplyCompletedNotification" |
|
|
|
|
|
/** |
|
* @brief Posted when check relation ok. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyRelationTypeKey. |
|
*/ |
|
#define MtcBuddyCheckRelationOkNotification "MtcBuddyCheckRelationOkNotification" |
|
|
|
/** |
|
* @brief Posted when check relation failed. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyCheckRelationDidFailNotification "MtcBuddyCheckRelationDidFailNotification" |
|
|
|
/** |
|
* @brief Posted when Im Push successfully. |
|
* |
|
* The pcInfo of this notification contains @ref MtcBuddyUpdateTimeKey, @ref MtcBuddyBaseTimeKey. |
|
*/ |
|
#define MtcBuddyImPushOkNotification "MtcBuddyImPushOkNotification" |
|
|
|
/** |
|
* @brief Posted when failed to Im Push. |
|
* |
|
* The pcInfo of this notification contains |
|
* @ref MtcBuddyReasonKey, |
|
* @ref MtcBuddyReasonDetailKey. |
|
*/ |
|
#define MtcBuddyImPushDidFailNotification "MtcBuddyImPushDidFailNotification" |
|
|
|
/** @} */ |
|
|
|
/** |
|
* @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 |
|
EXPORT_FLAG { |
|
#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] pcPropInfo The query property's name(s) info. For just one property, using its name directily. |
|
* For multiple propertys, it must be a string in JSON format, |
|
* which contains an array of string. Each string is the name of property. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyQueryPropertyOkNotification |
|
* or @ref MtcBuddyQueryPropertyDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyQueryProperty(cookie_t zCookie, |
|
const char *pcUri, const char *pcPropInfo); |
|
|
|
/** |
|
* @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 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyQueryLoginPropertiesOkNotification |
|
* or @ref MtcBuddyQueryLoginPropertiesDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyQueryLoginProperties(cookie_t zCookie, |
|
const char *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 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyQueryLoginInfoOkNotification |
|
* or @ref MtcBuddyQueryLoginInfoDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyQueryLoginInfo(cookie_t zCookie, |
|
const char *pcUri, int 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 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyQueryUserIdOkNotification |
|
* or @ref MtcBuddyQueryUserIdDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyQueryUserId(cookie_t zCookie, const char *pcInfo); |
|
|
|
/** |
|
* @brief Query buddy's AccountId information. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcInfo The query information. For just one user, using its UserId directily. |
|
* For multiple users, it must be a string in JSON format, |
|
* which contains an array of string. Each string is the user's UserId |
|
* which wants be queried. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyQueryAccountIdOkNotification |
|
* or @ref MtcBuddyQueryAccountIdDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyQueryAccountId(cookie_t zCookie, const char *pcInfo); |
|
|
|
/** |
|
* @brief Query users' login status. |
|
* |
|
* @param zCookie The cookie value |
|
* @param pcInfo For just one user, using its URI directily. |
|
* For multiple users, it is a JSON array, each item is the string of user's URI. |
|
* @param pcTypes The query status type. ZNULL for all. |
|
* For just one type, using its type stinrg directily. |
|
* For multiple types, it is a JSON array, each item is the string of type. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyQueryUsersStatusOkNotification |
|
* or @ref MtcBuddyQueryUsersStatusDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyQueryUsersStatus(cookie_t zCookie, const char *pcInfo, |
|
const char *pcTypes); |
|
|
|
/** |
|
* @brief Refresh all relations |
|
* |
|
* @param zCookie The cookie value. |
|
* @param qwUpdateTime The start time point to refresh |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyRefreshOkNotification |
|
* or @ref MtcBuddyRefreshDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyRefresh(cookie_t zCookie, long long qwUpdateTime); |
|
|
|
/** |
|
* @brief Add relation |
|
* |
|
* @param zCookie The cookie value. |
|
* @param iRelationType The relation type, @ref EN_MTC_BUDDY_RELATION_TYPE |
|
* @param pcUri The user URI. |
|
* @param pcDisplayName The display name of the relation |
|
* @param pcTag The tag info of the relation. |
|
* @param pcCfgs The cfgs info of the relation. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyAddRelationOkNotification |
|
* or @ref MtcBuddyAddRelationDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyAddRelation(cookie_t zCookie, int iRelationType, |
|
const char *pcUri, const char *pcDisplayName, const char *pcTag, const char *pcCfgs); |
|
|
|
/** |
|
* @brief Update relation |
|
* |
|
* @param zCookie The cookie value. |
|
* @param iRelationType The relation type, @ref EN_MTC_BUDDY_RELATION_TYPE |
|
* @param pcUri The UserID |
|
* @param pcDisplayName The display name of the relation |
|
* @param pcTag The tag info of the relation. |
|
* @param pcInfo The properties information in JSON. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyUpdateRelationOkNotification |
|
* or @ref MtcBuddyUpdateRelationDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyUpdateRelation(cookie_t zCookie, int iRelationType, |
|
const char *pcUri, const char *pcDisplayName, const char *pcTag, const char *pcCfgs); |
|
|
|
/** |
|
* @brief Remove relation |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcUri The UserID |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyRemoveRelationOkNotification |
|
* or @ref MtcBuddyRemoveRelationDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyRemoveRelation(cookie_t zCookie, |
|
const char *pcUri); |
|
|
|
/** |
|
* @brief Set status of mine to one buddy. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcUid The uid of the user |
|
* @param pcKey The status key |
|
* @param pcValue The status value |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddySetMyStatusOkNotification |
|
* or @ref MtcBuddySetMyStatusDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddySetMyStatus(cookie_t zCookie, |
|
const char *pcUid, const char *pcKey, const char *pcValue); |
|
|
|
/** |
|
* @brief Get status of my buddies. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcUids The uid of the user, or a string which is a JSON array, each item |
|
* is the uid of the user. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyGetRelationStatusOkNotification |
|
* or @ref MtcBuddyGetRelationStatusDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyGetRelationStatus(cookie_t zCookie, |
|
const char *pcUids); |
|
|
|
/** |
|
* @brief Set batch relations |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcInfo The string in JSON, which contains |
|
@ref MtcBuddyListToAddKey, @ref MtcBuddyListToUpdateKey, @ref MtcBuddyListToRemoveKey. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddySetRelationsOkNotification |
|
* or @ref MtcBuddySetRelationsDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddySetRelations(cookie_t zCookie, const char *pcInfo); |
|
|
|
/** |
|
* @brief Apply relation. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcUri The uri or uid of the user. |
|
* @param iRelationType The relation type, @ref EN_MTC_BUDDY_RELATION_TYPE. |
|
* @param pcDescription The description about how you find the relation. |
|
* @param pcTag The tag of user. |
|
* @param pcTagName The tagname of user. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyApplyRelationOkNotification |
|
* or @ref MtcBuddyApplyRelationDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyApplyRelation(cookie_t zCookie, const char *pcUri, |
|
unsigned int iRelationType, const char *pcDescription, const char* pcTag, const char* pcTagName); |
|
|
|
/** |
|
* @brief Accept relation. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param dwMsgId The message id of apply request. |
|
* @param pcDisplayName The display name of the relation. |
|
* @param pcTag The tag info of the relation that may contains |
|
* @ref MtcGroupTagKey. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyAcceptRelationOkNotification |
|
* or @ref MtcBuddyAcceptRelationDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyAcceptRelation(cookie_t zCookie, long long dwMsgId, |
|
const char *pcDisplayName, const char *pcTag); |
|
|
|
/** |
|
* @brief Check relation. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcTargetUid The target user uid or uri. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyCheckRelationOkNotification |
|
* or @ref MtcBuddyCheckRelationDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyCheckRelation(cookie_t zCookie, const char *pcTargetUid); |
|
|
|
/** |
|
* @brief Set transient status of mine to one buddy. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcUid The uid of the user |
|
* @param pcKey The status key |
|
* @param pcValue The status value |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddySetMyStatusOkNotification |
|
* or @ref MtcBuddySetMyStatusDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddySetTransientStatus(cookie_t zCookie, |
|
const char *pcUid, const char *pcKey, const char *pcValue); |
|
|
|
/** |
|
* @brief Set persistent status of mine to one buddy. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcUid The uid of the user |
|
* @param pcKey The status key |
|
* @param pcValue The status value |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddySetMyStatusOkNotification |
|
* or @ref MtcBuddySetMyStatusDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddySetPersistentStatus(cookie_t zCookie, |
|
const char *pcUid, const char *pcKey, const char *pcValue); |
|
|
|
/** |
|
* @brief Im Push. |
|
* |
|
* @param zCookie The cookie value. |
|
* @param pcUid The uid of the user. |
|
* @param bImPush is im push. |
|
* |
|
* @retval 0 on invoke this interface successfully. The result will notify |
|
* to user with @ref MtcBuddyImPushOkNotification |
|
* or @ref MtcBuddyImPushDidFailNotification. |
|
* @retval 1 failed |
|
*/ |
|
MTCFUNC int Mtc_BuddyImPush(cookie_t zCookie, const char *pcUid, bool bImPush); |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif /* _MTC_BUDDY_H__ */
|
|
|