fix: add listener interface.
Signed-off-by: Gordon <46924906+FGadvancer@users.noreply.github.com>
This commit is contained in:
parent
c4fafedebf
commit
2da933ce9e
@ -19,3 +19,74 @@ const (
|
||||
KICKED_OFFLINE
|
||||
USER_TOKEN_EXPIRED
|
||||
)
|
||||
const (
|
||||
JOINED_GROUP_ADDED = iota
|
||||
JOINED_GROUP_DELETED
|
||||
GROUP_MEMBER_ADDED
|
||||
GROUP_MEMBER_DELETED
|
||||
GROUP_APPLICATION_ADDED
|
||||
GROUP_APPLICATION_DELETED
|
||||
GROUP_INFO_CHANGED
|
||||
GROUP_DISMISSED
|
||||
GROUP_MEMBER_INFO_CHANGED
|
||||
GROUP_APPLICATION_ACCEPTED
|
||||
GROUP_APPLICATION_REJECTED
|
||||
)
|
||||
const (
|
||||
FRIEND_APPLICATION_ADDED = iota
|
||||
FRIEND_APPLICATION_DELETED
|
||||
FRIEND_APPLICATION_ACCEPTED
|
||||
FRIEND_APPLICATION_REJECTED
|
||||
FRIEND_ADDED
|
||||
FRIEND_DELETED
|
||||
FRIEND_INFO_CHANGED
|
||||
BLACK_ADDED
|
||||
BLACK_DELETED
|
||||
)
|
||||
|
||||
const (
|
||||
SYNC_SERVER_START = iota
|
||||
SYNC_SERVER_FINISH
|
||||
SYNC_SERVER_PROGRESS
|
||||
SYNC_SERVER_FAILED
|
||||
NEW_CONVERSATION
|
||||
CONVERSATION_CHANGED
|
||||
TOTAL_UNREAD_MESSAGE_COUNT_CHANGED
|
||||
)
|
||||
|
||||
const (
|
||||
RECV_NEW_MESSAGE = iota
|
||||
RECV_C2C_READ_RECEIPT
|
||||
RECV_GROUP_READ_RECEIPT
|
||||
NEW_RECV_MESSAGE_REVOKED
|
||||
RECV_MESSAGE_EXTENSIONS_CHANGED
|
||||
RECV_MESSAGE_EXTENSIONS_DELETED
|
||||
RECV_MESSAGE_EXTENSIONS_ADDED
|
||||
RECV_OFFLINE_NEW_MESSAGE
|
||||
MSG_DELETED
|
||||
)
|
||||
const (
|
||||
RECV_NEW_MESSAGES = iota
|
||||
RECV_OFFLINE_NEW_MESSAGES
|
||||
)
|
||||
const (
|
||||
SELF_INFO_UPDATED = iota
|
||||
USER_STATUS_CHANGED
|
||||
)
|
||||
const (
|
||||
RECV_CUSTOM_BUSINESS_MESSAGE = iota
|
||||
)
|
||||
const (
|
||||
MESSAGE_KV_INFO_CHANGED = iota
|
||||
)
|
||||
|
||||
const (
|
||||
UPLOAD_FILE_CALLBACK_OPEN = iota
|
||||
UPLOAD_FILE_CALLBACK_PART_SIZE
|
||||
UPLOAD_FILE_CALLBACK_HASH_PART_PROGRESS
|
||||
UPLOAD_FILE_CALLBACK_HASH_PART_COMPLETE
|
||||
UPLOAD_FILE_CALLBACK_UPLOAD_ID
|
||||
UPLOAD_FILE_CALLBACK_UPLOAD_PART_COMPLETE
|
||||
UPLOAD_FILE_CALLBACK_UPLOAD_COMPLETE
|
||||
UPLOAD_FILE_CALLBACK_COMPLETE
|
||||
)
|
||||
|
@ -19,6 +19,9 @@ type Base struct {
|
||||
ErrCode int32 `json:"errCode"`
|
||||
ErrMsg string `json:"errMsg"`
|
||||
}
|
||||
|
||||
// =====================================================listener===============================================
|
||||
|
||||
type ConnCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
@ -49,6 +52,246 @@ func (c ConnCallback) OnUserTokenExpired() {
|
||||
C.Call_CB_I_S(c.cCallback, USER_TOKEN_EXPIRED, NO_DATA)
|
||||
}
|
||||
|
||||
type ConversationCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
|
||||
func NewConversationCallback(cCallback C.CB_I_S) *ConversationCallback {
|
||||
return &ConversationCallback{cCallback: cCallback}
|
||||
}
|
||||
|
||||
func (c ConversationCallback) OnSyncServerStart() {
|
||||
C.Call_CB_I_S(c.cCallback, SYNC_SERVER_START, NO_DATA)
|
||||
}
|
||||
|
||||
func (c ConversationCallback) OnSyncServerFinish() {
|
||||
C.Call_CB_I_S(c.cCallback, SYNC_SERVER_FINISH, NO_DATA)
|
||||
}
|
||||
|
||||
func (c ConversationCallback) OnSyncServerFailed() {
|
||||
C.Call_CB_I_S(c.cCallback, SYNC_SERVER_FAILED, NO_DATA)
|
||||
}
|
||||
|
||||
func (c ConversationCallback) OnNewConversation(conversationList string) {
|
||||
C.Call_CB_I_S(c.cCallback, NEW_CONVERSATION, C.CString(conversationList))
|
||||
}
|
||||
|
||||
func (c ConversationCallback) OnConversationChanged(conversationList string) {
|
||||
C.Call_CB_I_S(c.cCallback, CONVERSATION_CHANGED, C.CString(conversationList))
|
||||
}
|
||||
|
||||
func (c ConversationCallback) OnTotalUnreadMessageCountChanged(totalUnreadCount int32) {
|
||||
C.Call_CB_I_S(c.cCallback, TOTAL_UNREAD_MESSAGE_COUNT_CHANGED, C.CString(Int32ToString(totalUnreadCount)))
|
||||
}
|
||||
|
||||
type AdvancedMsgCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnRecvNewMessage(message string) {
|
||||
C.Call_CB_I_S(a.cCallback, RECV_NEW_MESSAGE, C.CString(message))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnRecvC2CReadReceipt(msgReceiptList string) {
|
||||
C.Call_CB_I_S(a.cCallback, RECV_C2C_READ_RECEIPT, C.CString(msgReceiptList))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnRecvGroupReadReceipt(groupMsgReceiptList string) {
|
||||
C.Call_CB_I_S(a.cCallback, RECV_GROUP_READ_RECEIPT, C.CString(groupMsgReceiptList))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnNewRecvMessageRevoked(messageRevoked string) {
|
||||
C.Call_CB_I_S(a.cCallback, NEW_RECV_MESSAGE_REVOKED, C.CString(messageRevoked))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnRecvMessageExtensionsChanged(msgID string, reactionExtensionList string) {
|
||||
m := make(map[string]string)
|
||||
m["msgID"] = msgID
|
||||
m["reactionExtensionList"] = reactionExtensionList
|
||||
C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_CHANGED, C.CString(StructToJsonString(m)))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnRecvMessageExtensionsDeleted(msgID string, reactionExtensionKeyList string) {
|
||||
m := make(map[string]string)
|
||||
m["msgID"] = msgID
|
||||
m["reactionExtensionKeyList"] = reactionExtensionKeyList
|
||||
C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_DELETED, C.CString(StructToJsonString(m)))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnRecvMessageExtensionsAdded(msgID string, reactionExtensionList string) {
|
||||
m := make(map[string]string)
|
||||
m["msgID"] = msgID
|
||||
m["reactionExtensionList"] = reactionExtensionList
|
||||
C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_ADDED, C.CString(StructToJsonString(m)))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnRecvOfflineNewMessage(message string) {
|
||||
C.Call_CB_I_S(a.cCallback, RECV_OFFLINE_NEW_MESSAGE, C.CString(message))
|
||||
}
|
||||
|
||||
func (a AdvancedMsgCallback) OnMsgDeleted(message string) {
|
||||
C.Call_CB_I_S(a.cCallback, MSG_DELETED, C.CString(message))
|
||||
}
|
||||
|
||||
func NewAdvancedMsgCallback(cCallback C.CB_I_S) *AdvancedMsgCallback {
|
||||
return &AdvancedMsgCallback{cCallback: cCallback}
|
||||
}
|
||||
|
||||
type BatchMessageCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
|
||||
func (b BatchMessageCallback) OnRecvNewMessages(messageList string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (b BatchMessageCallback) OnRecvOfflineNewMessages(messageList string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func NewBatchMessageCallback(cCallback C.CB_I_S) *BatchMessageCallback {
|
||||
return &BatchMessageCallback{cCallback: cCallback}
|
||||
}
|
||||
|
||||
type FriendCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnFriendApplicationAdded(friendApplication string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnFriendApplicationDeleted(friendApplication string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnFriendApplicationAccepted(friendApplication string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnFriendApplicationRejected(friendApplication string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnFriendAdded(friendInfo string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnFriendDeleted(friendInfo string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnFriendInfoChanged(friendInfo string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnBlackAdded(blackInfo string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (f FriendCallback) OnBlackDeleted(blackInfo string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func NewFriendCallback(cCallback C.CB_I_S) *FriendCallback {
|
||||
return &FriendCallback{cCallback: cCallback}
|
||||
}
|
||||
|
||||
type GroupCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
|
||||
func NewGroupCallback(cCallback C.CB_I_S) *GroupCallback {
|
||||
return &GroupCallback{cCallback: cCallback}
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnJoinedGroupAdded(groupInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, JOINED_GROUP_ADDED, C.CString(groupInfo))
|
||||
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnJoinedGroupDeleted(groupInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, JOINED_GROUP_DELETED, C.CString(groupInfo))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupMemberAdded(groupMemberInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_MEMBER_ADDED, C.CString(groupMemberInfo))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupMemberDeleted(groupMemberInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_MEMBER_DELETED, C.CString(groupMemberInfo))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupApplicationAdded(groupApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_APPLICATION_ADDED, C.CString(groupApplication))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupApplicationDeleted(groupApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_APPLICATION_DELETED, C.CString(groupApplication))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupInfoChanged(groupInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_INFO_CHANGED, C.CString(groupInfo))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupDismissed(groupInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_DISMISSED, C.CString(groupInfo))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupMemberInfoChanged(groupMemberInfo string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_MEMBER_INFO_CHANGED, C.CString(groupMemberInfo))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupApplicationAccepted(groupApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_APPLICATION_ACCEPTED, C.CString(groupApplication))
|
||||
}
|
||||
|
||||
func (g GroupCallback) OnGroupApplicationRejected(groupApplication string) {
|
||||
C.Call_CB_I_S(g.cCallback, GROUP_APPLICATION_REJECTED, C.CString(groupApplication))
|
||||
}
|
||||
|
||||
type CustomBusinessCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
|
||||
func (c CustomBusinessCallback) OnRecvCustomBusinessMessage(businessMessage string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func NewCustomBusinessCallback(cCallback C.CB_I_S) *CustomBusinessCallback {
|
||||
return &CustomBusinessCallback{cCallback: cCallback}
|
||||
}
|
||||
|
||||
type UserCallback struct {
|
||||
cCallback C.CB_I_S
|
||||
}
|
||||
|
||||
func (u UserCallback) OnSelfInfoUpdated(userInfo string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (u UserCallback) OnUserStatusChanged(statusMap string) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func NewUserCallback(cCallback C.CB_I_S) *UserCallback {
|
||||
return &UserCallback{cCallback: cCallback}
|
||||
}
|
||||
|
||||
type SendMessageCallback struct {
|
||||
cCallback C.CB_S_I_S_S_I
|
||||
operationID *C.char
|
||||
@ -87,6 +330,50 @@ func (b BaseCallback) OnSuccess(data string) {
|
||||
C.Call_CB_S_I_S_S(b.cCallback, b.operationID, NO_ERR, NO_ERR_MSG, C.CString(data))
|
||||
}
|
||||
|
||||
// =====================================================global_callback===============================================
|
||||
|
||||
//export set_group_listener
|
||||
func set_group_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetGroupListener(NewGroupCallback(cCallback))
|
||||
}
|
||||
|
||||
//export set_conversation_listener
|
||||
func set_conversation_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetConversationListener(NewConversationCallback(cCallback))
|
||||
}
|
||||
|
||||
//export set_advanced_msg_listener
|
||||
func set_advanced_msg_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetAdvancedMsgListener(NewAdvancedMsgCallback(cCallback))
|
||||
}
|
||||
|
||||
//export set_batch_msg_listener
|
||||
func set_batch_msg_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetBatchMsgListener(NewBatchMessageCallback(cCallback))
|
||||
}
|
||||
|
||||
//export set_user_listener
|
||||
func set_user_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetUserListener(NewUserCallback(cCallback))
|
||||
}
|
||||
|
||||
//export set_friend_listener
|
||||
func set_friend_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetFriendListener(NewFriendCallback(cCallback))
|
||||
}
|
||||
|
||||
//export set_custom_business_listener
|
||||
func set_custom_business_listener(cCallback C.CB_I_S) {
|
||||
open_im_sdk.SetCustomBusinessListener(NewCustomBusinessCallback(cCallback))
|
||||
}
|
||||
|
||||
////export set_messsage_kv_listener
|
||||
//func set_messsage_kv_listener(cCallback C.CB_I_S) {
|
||||
// open_im_sdk.SetMessageKvInfoListener(NewMessageKVCallback(cCallback))
|
||||
//}
|
||||
|
||||
// =====================================================conversation_msg===============================================
|
||||
|
||||
//export init_sdk
|
||||
func init_sdk(
|
||||
cCallback C.CB_I_S,
|
||||
|
@ -8,6 +8,7 @@ import "C"
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"strconv"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
@ -29,3 +30,6 @@ func FreeCString(strList ...*C.char) {
|
||||
C.free(unsafe.Pointer(str))
|
||||
}
|
||||
}
|
||||
func Int32ToString(intValue int32) string {
|
||||
return strconv.Itoa(int(intValue))
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user