fix: sdk add function for upload file.

dev_1
Gordon 1 year ago
parent b491181258
commit e8ccae6349
  1. 16
      go/constant.go
  2. 80
      go/export.go
  3. 5
      go/tools.go

@ -65,14 +65,14 @@ const (
MESSAGE_KV_INFO_CHANGED MESSAGE_KV_INFO_CHANGED
UPLOAD_FILE_CALLBACK_OPEN OPEN
UPLOAD_FILE_CALLBACK_PART_SIZE PART_SIZE
UPLOAD_FILE_CALLBACK_HASH_PART_PROGRESS HASH_PART_PROGRESS
UPLOAD_FILE_CALLBACK_HASH_PART_COMPLETE HASH_PART_COMPLETE
UPLOAD_FILE_CALLBACK_UPLOAD_ID UPLOAD_ID
UPLOAD_FILE_CALLBACK_UPLOAD_PART_COMPLETE UPLOAD_PART_COMPLETE
UPLOAD_FILE_CALLBACK_UPLOAD_COMPLETE UPLOAD_COMPLETE
UPLOAD_FILE_CALLBACK_COMPLETE COMPLETE
CONVERSATION_USER_INPUT_STATUS_CHANGED CONVERSATION_USER_INPUT_STATUS_CHANGED
RECV_ONLINE_ONLY_MESSAGE RECV_ONLINE_ONLY_MESSAGE
) )

@ -94,7 +94,7 @@ func (c ConversationCallback) OnConversationChanged(conversationList string) {
} }
func (c ConversationCallback) OnTotalUnreadMessageCountChanged(totalUnreadCount int32) { func (c ConversationCallback) OnTotalUnreadMessageCountChanged(totalUnreadCount int32) {
C.Call_CB_I_S(c.cCallback, TOTAL_UNREAD_MESSAGE_COUNT_CHANGED, C.CString(Int32ToString(totalUnreadCount))) C.Call_CB_I_S(c.cCallback, TOTAL_UNREAD_MESSAGE_COUNT_CHANGED, C.CString(IntToString(totalUnreadCount)))
} }
func (c ConversationCallback) OnConversationUserInputStatusChanged(change string) { func (c ConversationCallback) OnConversationUserInputStatusChanged(change string) {
@ -126,21 +126,21 @@ func (a AdvancedMsgCallback) OnNewRecvMessageRevoked(messageRevoked string) {
} }
func (a AdvancedMsgCallback) OnRecvMessageExtensionsChanged(msgID string, reactionExtensionList string) { func (a AdvancedMsgCallback) OnRecvMessageExtensionsChanged(msgID string, reactionExtensionList string) {
m := make(map[string]string) m := make(map[string]any)
m["msgID"] = msgID m["msgID"] = msgID
m["reactionExtensionList"] = reactionExtensionList m["reactionExtensionList"] = reactionExtensionList
C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_CHANGED, C.CString(StructToJsonString(m))) C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_CHANGED, C.CString(StructToJsonString(m)))
} }
func (a AdvancedMsgCallback) OnRecvMessageExtensionsDeleted(msgID string, reactionExtensionKeyList string) { func (a AdvancedMsgCallback) OnRecvMessageExtensionsDeleted(msgID string, reactionExtensionKeyList string) {
m := make(map[string]string) m := make(map[string]any)
m["msgID"] = msgID m["msgID"] = msgID
m["reactionExtensionKeyList"] = reactionExtensionKeyList m["reactionExtensionKeyList"] = reactionExtensionKeyList
C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_DELETED, C.CString(StructToJsonString(m))) C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_DELETED, C.CString(StructToJsonString(m)))
} }
func (a AdvancedMsgCallback) OnRecvMessageExtensionsAdded(msgID string, reactionExtensionList string) { func (a AdvancedMsgCallback) OnRecvMessageExtensionsAdded(msgID string, reactionExtensionList string) {
m := make(map[string]string) m := make(map[string]any)
m["msgID"] = msgID m["msgID"] = msgID
m["reactionExtensionList"] = reactionExtensionList m["reactionExtensionList"] = reactionExtensionList
C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_ADDED, C.CString(StructToJsonString(m))) C.Call_CB_I_S(a.cCallback, RECV_MESSAGE_EXTENSIONS_ADDED, C.CString(StructToJsonString(m)))
@ -336,6 +336,68 @@ func (b BaseCallback) OnSuccess(data string) {
C.Call_CB_S_I_S_S(b.cCallback, C.CString(b.operationID), NO_ERR, NO_ERR_MSG, C.CString(data)) C.Call_CB_S_I_S_S(b.cCallback, C.CString(b.operationID), NO_ERR, NO_ERR_MSG, C.CString(data))
} }
type UploadFileCallback struct {
cCallback C.CB_I_S
}
func NewUploadFileCallback(cCallback C.CB_I_S) *UploadFileCallback {
return &UploadFileCallback{cCallback: cCallback}
}
func (u UploadFileCallback) Open(size int64) {
C.Call_CB_I_S(u.cCallback, OPEN, C.CString(IntToString(size)))
}
func (u UploadFileCallback) PartSize(partSize int64, num int) {
m := make(map[string]any)
m["partSize"] = partSize
m["num"] = num
C.Call_CB_I_S(u.cCallback, PART_SIZE, C.CString(StructToJsonString(m)))
}
func (u UploadFileCallback) HashPartProgress(index int, size int64, partHash string) {
m := make(map[string]any)
m["index"] = index
m["size"] = size
m["partHash"] = partHash
C.Call_CB_I_S(u.cCallback, HASH_PART_PROGRESS, C.CString(StructToJsonString(m)))
}
func (u UploadFileCallback) HashPartComplete(partsHash string, fileHash string) {
m := make(map[string]any)
m["partsHash"] = partsHash
m["fileHash"] = fileHash
C.Call_CB_I_S(u.cCallback, HASH_PART_COMPLETE, C.CString(StructToJsonString(m)))
}
func (u UploadFileCallback) UploadID(uploadID string) {
C.Call_CB_I_S(u.cCallback, UPLOAD_ID, C.CString(uploadID))
}
func (u UploadFileCallback) UploadPartComplete(index int, partSize int64, partHash string) {
m := make(map[string]any)
m["index"] = index
m["partSize"] = partSize
m["partHash"] = partHash
C.Call_CB_I_S(u.cCallback, UPLOAD_PART_COMPLETE, C.CString(StructToJsonString(m)))
}
func (u UploadFileCallback) UploadComplete(fileSize int64, streamSize int64, storageSize int64) {
m := make(map[string]any)
m["fileSize"] = fileSize
m["streamSize"] = streamSize
m["storageSize"] = storageSize
C.Call_CB_I_S(u.cCallback, UPLOAD_COMPLETE, C.CString(StructToJsonString(m)))
}
func (u UploadFileCallback) Complete(size int64, url string, typ int) {
m := make(map[string]any)
m["size"] = size
m["url"] = url
m["typ"] = typ
C.Call_CB_I_S(u.cCallback, COMPLETE, C.CString(StructToJsonString(m)))
}
// =====================================================global_callback=============================================== // =====================================================global_callback===============================================
//export set_group_listener //export set_group_listener
@ -849,6 +911,16 @@ func get_user_status(cCallback C.CB_S_I_S_S, operationID *C.char, userIDs *C.cha
open_im_sdk.GetUserStatus(baseCallback, C.GoString(operationID), C.GoString(userIDs)) open_im_sdk.GetUserStatus(baseCallback, C.GoString(operationID), C.GoString(userIDs))
} }
// =====================================================file===============================================
//
//export upload_file
func upload_file(cCallback C.CB_S_I_S_S, operationID *C.char, req *C.char, uploadCallback C.CB_I_S) {
baseCallback := NewBaseCallback(cCallback, operationID)
uploadFileCallback := NewUploadFileCallback(uploadCallback)
open_im_sdk.UploadFile(baseCallback, C.GoString(operationID), C.GoString(req), uploadFileCallback)
}
// =====================================================friend=============================================== // =====================================================friend===============================================
// //
//export get_specified_friends_info //export get_specified_friends_info

@ -27,6 +27,7 @@ func FreeCString(strList ...*C.char) {
C.free(unsafe.Pointer(str)) C.free(unsafe.Pointer(str))
} }
} }
func Int32ToString(intValue int32) string {
return strconv.Itoa(int(intValue)) func IntToString[T int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64](intValue T) string {
return strconv.FormatInt(int64(intValue), 10)
} }

Loading…
Cancel
Save