Merge pull request #11 from FGadvancer/main
refactor: change cpp structure.
This commit is contained in:
commit
8c78e767d8
@ -56,7 +56,7 @@ int main(int argc, char **argv)
|
||||
|
||||
printf("return :%s\n",loginUserID);
|
||||
char operationID1[] = "12345,create";
|
||||
char *message = create_text_message(operationID1, "哈哈");
|
||||
char *message = create_text_message(operationID1, "hello");
|
||||
printf("return :%s\n",message);
|
||||
char operationID2[] = "12345,get_all_conversation_list";
|
||||
get_all_conversation_list(c_base_callback, operationID2);
|
||||
|
@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "openimsdk.h"
|
||||
#include "libopenimsdk.h"
|
||||
#include <functional>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
@ -145,7 +145,8 @@ public:
|
||||
void GetAdvancedHistoryMessageList(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& getAdvancedHistoryCallback , const std::string& operationID, const std::string& getMessageOptions);
|
||||
|
||||
// send message
|
||||
void SendMessage(const std::function<void(const std::string&, int, const std::string&, const std::string&, int)>& callback, const std::string& operationID, const std::string& message, const std::string& recvID, const std::string& groupID, const std::string& offlinePushInfo);
|
||||
void SendMessage(const std::function<void(const std::string&, int, const std::string&, const std::string&, int)>& callback, const std::string& operationID,
|
||||
const std::string& message, const std::string& recvID, const std::string& groupID, const std::string& offlinePushInfo,bool isOnlineOnly);
|
||||
|
||||
// // =====================================================user===============================================
|
||||
// //
|
||||
@ -226,6 +227,10 @@ public:
|
||||
// remove black
|
||||
void RemoveBlack(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback, const std::string& operationID, const std::string& removeUserID);
|
||||
|
||||
// set friends ex
|
||||
void SetFriendsEx(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback,
|
||||
const std::string& operationID, const std::string& friendIDs,const std::string& ex);
|
||||
|
||||
|
||||
// // =====================================================group===============================================
|
||||
// //
|
||||
@ -234,7 +239,7 @@ public:
|
||||
void CreateGroup(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback, const std::string& operationID, const std::string& groupReqInfo);
|
||||
|
||||
// join group
|
||||
void JoinGroup(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback, const std::string& operationID, const std::string& groupID, const std::string& reqMsg, int joinSource);
|
||||
void JoinGroup(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback, const std::string& operationID, const std::string& groupID, const std::string& reqMsg, int joinSource,const std::string& ex);
|
||||
|
||||
// quit group
|
||||
void QuitGroup(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback, const std::string& operationID, const std::string& groupID);
|
@ -1,3 +1,13 @@
|
||||
/*
|
||||
Using C++ template functions and recursion to initialize a function pointer pool,
|
||||
combined with lambda expressions, this implementation manages function pointers,
|
||||
achieving acquisition and release of pointers.All wrappers are used to convert
|
||||
and map C++ functions to C functions, and with the use of indexed locking,
|
||||
a thread-safe function pointer pool is implemented.For example, the wrapping
|
||||
functions essentially map C++ functions to C functions. When a C function callback is triggered,
|
||||
the function pointer pool, initialized through template recursion, locates the corresponding C++ function and invokes it.
|
||||
*/
|
||||
|
||||
#define MAX_NUM_OF_CB_S 10
|
||||
#define MAX_NUM_OF_CB_I_S 10
|
||||
#define MAX_NUM_OF_CB_S_I_S_S 10
|
@ -1,6 +1,6 @@
|
||||
#include "openimsdkcc.h"
|
||||
#include "../include/libopenimsdk.h"
|
||||
|
||||
#include "wrapp_cpp_function.inc"
|
||||
#include "../include/wrapp_cpp_function.inc"
|
||||
|
||||
namespace openim {
|
||||
|
||||
@ -407,14 +407,16 @@ void OpenIMManager::GetAdvancedHistoryMessageList(const std::function<void(const
|
||||
}
|
||||
|
||||
// send message
|
||||
void SendMessage(const std::function<void(const std::string&, int, const std::string&, const std::string&,int)>& sendMessageCallback, const std::string& operationID, const std::string& message,const std::string& recvID,const std::string& groupID,const std::string& offlinePushInfo)
|
||||
void SendMessage(const std::function<void(const std::string&, int, const std::string&, const std::string&,int)>& sendMessageCallback,
|
||||
const std::string& operationID, const std::string& message,const std::string& recvID,const std::string& groupID,const std::string& offlinePushInfo,bool isOnlineOnly)
|
||||
{
|
||||
char* operationID_cs=const_cast<char*>(operationID.c_str());
|
||||
char* message_cs=const_cast<char*>(message.c_str());
|
||||
char* recvID_cs=const_cast<char*>(recvID.c_str());
|
||||
char* groupID_cs=const_cast<char*>(groupID.c_str());
|
||||
char* offlinePushInfo_cs=const_cast<char*>(offlinePushInfo.c_str());
|
||||
send_message(_wrapper_callonce_cpp_function(sendMessageCallback),operationID_cs,message_cs,recvID_cs,groupID_cs,offlinePushInfo_cs);
|
||||
int isOnlineOnly_c = isOnlineOnly ? 1 : 0;
|
||||
send_message(_wrapper_callonce_cpp_function(sendMessageCallback),operationID_cs,message_cs,recvID_cs,groupID_cs,offlinePushInfo_cs,isOnlineOnly_c);
|
||||
}
|
||||
|
||||
// // ===================================================== user ===============================================
|
||||
@ -588,11 +590,13 @@ void OpenIMManager::RefuseFriendApplication(const std::function<void(const std::
|
||||
}
|
||||
|
||||
// add black
|
||||
void OpenIMManager::AddBlack(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback,const std::string& operationID, const std::string& userIDs)
|
||||
void OpenIMManager::AddBlack(const std::function<void(const std::string&, int, const std::string&,
|
||||
const std::string&)>& callback,const std::string& operationID, const std::string& userIDs,const std::string& ex)
|
||||
{
|
||||
char* operationID_cs=const_cast<char*>(operationID.c_str());
|
||||
char* userIDs_cs=const_cast<char*>(userIDs.c_str());
|
||||
add_black(_wrapper_callonce_cpp_function(callback),operationID_cs,userIDs_cs);
|
||||
char* ex_cs = const_cast<char*>(ex.c_str());
|
||||
add_black(_wrapper_callonce_cpp_function(callback),operationID_cs,userIDs_cs,ex_cs);
|
||||
}
|
||||
|
||||
// get black list
|
||||
@ -610,6 +614,15 @@ void OpenIMManager::RemoveBlack(const std::function<void(const std::string&, int
|
||||
remove_black(_wrapper_callonce_cpp_function(callback),operationID_cs,userIDs_cs);
|
||||
}
|
||||
|
||||
// set friends ex
|
||||
void OpenIMManager::SetFriendsEx(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback, const std::string& operationID,const std::string& friendIDs, const std::string& ex)
|
||||
{
|
||||
char* operationID_cs=const_cast<char*>(operationID.c_str());
|
||||
char* friendIDs_cs=const_cast<char*>(friendIDs.c_str());
|
||||
char* ex_cs=const_cast<char*>(ex.c_str());
|
||||
set_friends_ex(_wrapper_callonce_cpp_function(callback),operationID_cs,friendIDs_cs,ex_cs);
|
||||
}
|
||||
|
||||
// // ===================================================== group ===============================================
|
||||
// //
|
||||
|
||||
@ -622,12 +635,14 @@ void OpenIMManager::CreateGroup(const std::function<void(const std::string&, int
|
||||
}
|
||||
|
||||
// join group
|
||||
void OpenIMManager::JoinGroup(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback, const std::string& operationID, const std::string& groupID, const std::string& reqMsg, int joinSource)
|
||||
void OpenIMManager::JoinGroup(const std::function<void(const std::string&, int, const std::string&, const std::string&)>& callback,
|
||||
const std::string& operationID, const std::string& groupID, const std::string& reqMsg, int joinSource,const std::string& ex)
|
||||
{
|
||||
char* operationID_cs=const_cast<char*>(operationID.c_str());
|
||||
char* groupID_cs=const_cast<char*>(groupID.c_str());
|
||||
char* reqMsg_cs=const_cast<char*>(reqMsg.c_str());
|
||||
join_group(_wrapper_callonce_cpp_function(callback),operationID_cs,groupID_cs,reqMsg_cs,joinSource);
|
||||
char* ex_cs = const_cast<char*>(ex.c_str());
|
||||
join_group(_wrapper_callonce_cpp_function(callback),operationID_cs,groupID_cs,reqMsg_cs,joinSource,ex_cs);
|
||||
}
|
||||
|
||||
// quit group
|
12
go/export.go
12
go/export.go
@ -594,6 +594,12 @@ func set_conversation_is_msg_destruct(cCallback C.CB_S_I_S_S, operationID *C.cha
|
||||
open_im_sdk.SetConversationIsMsgDestruct(baseCallback, C.GoString(operationID), C.GoString(conversationID), parseBool(int(isMsgDestruct)))
|
||||
}
|
||||
|
||||
//export set_conversation_ex
|
||||
func set_conversation_ex(cCallback C.CB_S_I_S_S, operationID *C.char, conversationID *C.char, ex *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.SetConversationEx(baseCallback, C.GoString(operationID), C.GoString(conversationID), C.GoString(ex))
|
||||
}
|
||||
|
||||
//export hide_conversation
|
||||
func hide_conversation(cCallback C.CB_S_I_S_S, operationID *C.char, conversationID *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
@ -935,6 +941,12 @@ func remove_black(cCallback C.CB_S_I_S_S, operationID *C.char, removeUserID *C.c
|
||||
open_im_sdk.RemoveBlack(baseCallback, C.GoString(operationID), C.GoString(removeUserID))
|
||||
}
|
||||
|
||||
//export set_friends_ex
|
||||
func set_friends_ex(cCallback C.CB_S_I_S_S, operationID, friendIDs, ex *C.char) {
|
||||
baseCallback := NewBaseCallback(cCallback, operationID)
|
||||
open_im_sdk.SetFriendsEx(baseCallback, C.GoString(operationID), C.GoString(friendIDs), ex)
|
||||
}
|
||||
|
||||
// =====================================================group===============================================
|
||||
// CreateGroup creates a group
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user