更改ACE_SDK位置

This commit is contained in:
2025-12-06 17:59:24 +08:00
parent baf547c71d
commit ae5479b583
31 changed files with 2 additions and 2 deletions
@@ -0,0 +1,211 @@
#ifndef __ACE_SDK_SERVER_IMPL_H__
#define __ACE_SDK_SERVER_IMPL_H__
#include "ace_sdk_common.h"
struct __AceSdkServerLibraryInfo;
struct __AceSdkServerAuthInfo;
struct __AceSdkServerDeploymentInfo;
#define ACE_SDK_SERVER_MAX_GAME_DEV_LANGUAGE_LEN 64
#pragma pack(push, 1)
typedef struct
{
char library_path_[ACE_SDK_MAX_LIBRARY_DIR_LENGTH * 2];
char game_dev_language_[ACE_SDK_SERVER_MAX_GAME_DEV_LANGUAGE_LEN];
} AceSdkServerExtendInfo;
#pragma pack(pop)
#if defined(ACE_CGO)
extern int __ace_sdk_init_succ;
#elif defined(_WIN32) && defined(_MSC_VER)
__declspec(selectany) int __ace_sdk_init_succ = 0;
#else
__attribute__((weak)) int __ace_sdk_init_succ = 0;
#endif
/***
* Internal functions' implementation
*/
inline AceSdkResult ace_sdk_server_report_extend_info(const AceSdkServerExtendInfo* extend_info)
{
if (extend_info == NULL)
{
return ACE_SDK_RESULT_OK;
}
typedef int(ACE_SDK_CALL* AceSdkServerExtendInfoReport)(const AceSdkServerExtendInfo* info);
AceSdkServerExtendInfoReport func_extend_info = (AceSdkServerExtendInfoReport)__ace_sdk_get_symbol("__ace_sdk_server_extend_info");
if (func_extend_info != NULL)
{
func_extend_info(extend_info);
}
return ACE_SDK_RESULT_OK;
}
/**
* Initialize the SDK using the specified interface.
*/
inline AceSdkResult ace_sdk_server_init_specified(const struct __AceSdkServerLibraryInfo* library_info, const struct __AceSdkServerAuthInfo* auth_info, const struct __AceSdkServerDeploymentInfo* deployment_info, const char* name)
{
int32_t ret = ACE_SDK_RESULT_OK;
if (library_info == NULL || auth_info == NULL || deployment_info == NULL || name == NULL)
{
return ACE_SDK_RESULT_INVALID_PARAMETER;
}
ACE_CHAR library_path[ACE_SDK_MAX_LIBRARY_DIR_LENGTH * 2] = {0};
#ifdef _WIN32
_snwprintf_s(library_path, sizeof(library_path)/sizeof(library_path[0]), _TRUNCATE, L"%s/%s", library_info->library_dir_, L"ace_sdk.dll");
#else
snprintf(library_path, sizeof(library_path), "%s/%s", library_info->library_dir_, "libace_sdk.so");
#endif
ret = __ace_sdk_load_library(library_path);
if (ret != 0)
{
return ACE_SDK_RESULT_LOAD_LIBRARY_FAILED;
}
typedef int(ACE_SDK_CALL* AceSdkServerInit)(const struct __AceSdkServerAuthInfo*, const struct __AceSdkServerDeploymentInfo*);
AceSdkServerInit func = (AceSdkServerInit)__ace_sdk_get_symbol(name);
if (func == NULL)
{
return ACE_SDK_RESULT_SYMBOL_NOT_FOUND;
}
ret = func(auth_info, deployment_info);
if (ret != 0)
{
return ACE_SDK_RESULT_INVALID_PARAMETER;
}
__ace_sdk_init_succ = 1;
// report extend info
AceSdkServerExtendInfo extend_info;
#ifdef _WIN32
char library_path_utf8[ACE_SDK_MAX_LIBRARY_DIR_LENGTH] = {0};
int library_path_utf8_len = WideCharToMultiByte(CP_UTF8, 0, library_info->library_dir_, -1, library_path_utf8, sizeof(library_path_utf8)-1, NULL, NULL);
if (library_path_utf8_len <= 0)
{
return ACE_SDK_RESULT_OK;
}
library_path_utf8[library_path_utf8_len] = 0;
snprintf(extend_info.library_path_, sizeof(extend_info.library_path_), "%s/%s", library_path_utf8, "ace_sdk.dll");
#else
snprintf(extend_info.library_path_, sizeof(extend_info.library_path_), "%s/%s", library_info->library_dir_, "libace_sdk.so");
#endif
snprintf(extend_info.game_dev_language_, sizeof(extend_info.game_dev_language_), "C/C++");
ace_sdk_server_report_extend_info(&extend_info);
return ACE_SDK_RESULT_OK;
}
inline AceSdkResult ace_sdk_server_init(const struct __AceSdkServerLibraryInfo* library_info, const struct __AceSdkServerAuthInfo* auth_info, const struct __AceSdkServerDeploymentInfo* deployment_info)
{
return ace_sdk_server_init_specified(library_info, auth_info, deployment_info, "__ace_sdk_server_init");
}
inline AceSdkResult ace_sdk_server_init_without_proc(const struct __AceSdkServerLibraryInfo* library_info, const struct __AceSdkServerAuthInfo* auth_info, const struct __AceSdkServerDeploymentInfo* deployment_info)
{
return ace_sdk_server_init_specified(library_info, auth_info, deployment_info, "__ace_sdk_server_init_without_proc");
}
inline AceSdkResult ace_sdk_server_proc()
{
if (!__ace_sdk_init_succ)
{
return ACE_SDK_RESULT_INIT_NOT_CALLED_OR_FAILED;
}
typedef int(ACE_SDK_CALL* ace_sdk_server_proc)();
ace_sdk_server_proc func = (ace_sdk_server_proc)__ace_sdk_get_symbol("__ace_sdk_server_proc");
if (func != NULL)
{
func();
}
return ACE_SDK_RESULT_OK;
}
inline AceSdkResult ace_sdk_server_deinit()
{
int32_t ret = ACE_SDK_RESULT_OK;
__ace_sdk_init_succ = 0;
typedef int(ACE_SDK_CALL* AceSdkServerDeinit)();
AceSdkServerDeinit func = (AceSdkServerDeinit)__ace_sdk_get_symbol("__ace_sdk_server_deinit");
if (func != NULL)
{
func();
}
ret = __ace_sdk_unload_library();
if (ret != 0)
{
return ACE_SDK_RESULT_UNLOAD_LIBRARY_FAILED;
}
return ACE_SDK_RESULT_OK;
}
/***
* Internal functions' implementation for special usage
*/
#pragma pack(push, 1)
/**
AceSdkServerEnvType
*/
typedef enum
{
ACE_SDK_SERVER_TEST = 101,
ACE_SDK_SERVER_PRODUCT = 1001
} AceSdkServerEnvType;
/**
AceSdkServerNetworkType
*/
typedef enum
{
ACE_SDK_SERVER_INTRA_NET = 0,
ACE_SDK_SERVER_PUBLIC_NET = 1,
} AceSdkServerNetType;
/**
AceSdkServerAccessInfo
*/
#define ACE_SDK_SERVER_MAX_DOMAIN_LEN 1024
typedef struct
{
char product_data_proxy_[ACE_SDK_SERVER_MAX_DOMAIN_LEN];
char product_busi_proxy_[ACE_SDK_SERVER_MAX_DOMAIN_LEN];
char test_data_proxy_[ACE_SDK_SERVER_MAX_DOMAIN_LEN];
char test_busi_proxy_[ACE_SDK_SERVER_MAX_DOMAIN_LEN];
AceSdkServerEnvType env_type_;
AceSdkServerNetType net_type_;
} AceSdkServerAccessInfo;
#pragma pack(pop)
inline AceSdkResult ace_sdk_server_customized_init(const struct __AceSdkServerLibraryInfo* library_info, const struct __AceSdkServerAuthInfo* auth_info, const AceSdkServerAccessInfo* access_info)
{
int32_t ret = ACE_SDK_RESULT_OK;
ACE_CHAR library_path[ACE_SDK_MAX_LIBRARY_DIR_LENGTH * 2] = {0};
#ifdef _WIN32
_snwprintf_s(library_path, sizeof(library_path)/sizeof(library_path[0]), _TRUNCATE, L"%s/%s", library_info->library_dir_, L"ace_sdk.dll");
#else
snprintf(library_path, sizeof(library_path), "%s/%s", library_info->library_dir_, "libace_sdk.so");
#endif
ret = __ace_sdk_load_library(library_path);
if (ret != 0)
{
return ACE_SDK_RESULT_LOAD_LIBRARY_FAILED;
}
typedef int(ACE_SDK_CALL* AceSdkServerInit)(const struct __AceSdkServerAuthInfo*, const AceSdkServerAccessInfo*);
AceSdkServerInit func = (AceSdkServerInit)__ace_sdk_get_symbol("__ace_sdk_server_customized_init");
if (func == NULL)
{
return ACE_SDK_RESULT_SYMBOL_NOT_FOUND;
}
ret = func(auth_info, access_info);
if (ret != 0)
{
return ACE_SDK_RESULT_INVALID_PARAMETER;
}
__ace_sdk_init_succ = 1;
return ACE_SDK_RESULT_OK;
}
#endif // __ACE_SDK_SERVER_IMPL_H__