Mars接口
2017-06-20 14:45:56 0 举报
AI智能生成
wechat mars 接口表示
作者其他创作
大纲/内容
xlog
初始化
xlogger_SetLevel(kLevelDebug);
appender_set_console_log(true);
appender_set_console_log(true);
appender_open(kAppednerAsync, logPath, "Test");
logAPI
xlogger_Write
xlogger_VPrint
xlogger_Print
...
关闭
appender_close();
stn
初始化
注册callback函数
mars::stn::SetCallback(Callback* const callback);
class Callback
{
public:
virtual ~Callback() {}
virtual bool MakesureAuthed() = 0;
//流量统计
virtual void TrafficData(ssize_t _send, ssize_t _recv);
//底层询问上层该host对应的ip列表
virtual std::vector<std::string> OnNewDns(const std::string& host);
//网络层收到push消息回调
virtual void OnPush(int32_t cmdid, const AutoBuffer& msgpayload) = 0;
//底层获取task要发送的数据
virtual bool Req2Buf(int32_t taskid, void* const user_context, AutoBuffer& outbuffer, int& error_code, const int channel_select) = 0;
//底层回包返回给上层解析
virtual int Buf2Resp(int32_t taskid, void* const user_context, const AutoBuffer& inbuffer, int& error_code, const int channel_select) = 0;
//任务执行结束
virtual int OnTaskEnd(int32_t taskid, void* const user_context, int error_type, int error_code) = 0;
//上报网络连接状态
virtual void ReportConnectStatus(int status, int longlink_status) = 0;
//长连信令校验 ECHECK_NOW = 0, ECHECK_NEXT = 1, ECHECK_NEVER = 2
virtual int GetLonglinkIdentifyCheckBuffer(AutoBuffer& identify_buffer, AutoBuffer& buffer_hash, int32_t& cmdid) = 0;
//长连信令校验回包
virtual bool OnLonglinkIdentifyResponse(const AutoBuffer& response_buffer, const AutoBuffer& identify_buffer_hash) = 0;
virtual void RequestSync() = 0;
//验证是否已登录
virtual bool IsLogoned() = 0;
};
{
public:
virtual ~Callback() {}
virtual bool MakesureAuthed() = 0;
//流量统计
virtual void TrafficData(ssize_t _send, ssize_t _recv);
//底层询问上层该host对应的ip列表
virtual std::vector<std::string> OnNewDns(const std::string& host);
//网络层收到push消息回调
virtual void OnPush(int32_t cmdid, const AutoBuffer& msgpayload) = 0;
//底层获取task要发送的数据
virtual bool Req2Buf(int32_t taskid, void* const user_context, AutoBuffer& outbuffer, int& error_code, const int channel_select) = 0;
//底层回包返回给上层解析
virtual int Buf2Resp(int32_t taskid, void* const user_context, const AutoBuffer& inbuffer, int& error_code, const int channel_select) = 0;
//任务执行结束
virtual int OnTaskEnd(int32_t taskid, void* const user_context, int error_type, int error_code) = 0;
//上报网络连接状态
virtual void ReportConnectStatus(int status, int longlink_status) = 0;
//长连信令校验 ECHECK_NOW = 0, ECHECK_NEXT = 1, ECHECK_NEVER = 2
virtual int GetLonglinkIdentifyCheckBuffer(AutoBuffer& identify_buffer, AutoBuffer& buffer_hash, int32_t& cmdid) = 0;
//长连信令校验回包
virtual bool OnLonglinkIdentifyResponse(const AutoBuffer& response_buffer, const AutoBuffer& identify_buffer_hash) = 0;
virtual void RequestSync() = 0;
//验证是否已登录
virtual bool IsLogoned() = 0;
};
mars::app::SetCallback(Callback* const callback)
class Callback {
public:
virtual ~Callback() {};
virtual std::string GetAppFilePath() = 0;
virtual AccountInfo GetAccountInfo() = 0;
virtual unsigned int GetClientVersion() = 0;
virtual DeviceInfo GetDeviceInfo() = 0;
};
public:
virtual ~Callback() {};
virtual std::string GetAppFilePath() = 0;
virtual AccountInfo GetAccountInfo() = 0;
virtual unsigned int GetClientVersion() = 0;
virtual DeviceInfo GetDeviceInfo() = 0;
};
触发mars创建signal,mars内部可以监听该signal并做一些内部初始化的工作
mars::baseevent::OnCreate();
设置客户端版本号
mars::stn::SetClientVersion(clientVersion);
设置短链接server地址
mars::stn::SetShortlinkSvrAddr(port, ipAddress);
设置长链接server地址
mars::stn::SetLonglinkSvrAddr(ipAddress,ports,debugIP);
客户端前台激活
mars::baseevent::OnForeground(true);
可能触发自动重连操作
可能触发自动重连操作
建立长链接
mars::stn::MakesureLonglinkConnected();
network API
前台激活
mars::baseevent::OnForeground(true);
切换到后台
mars::baseevent::OnForeground(false);
发送数据
mars::stn::StartTask(const Task *task);
struct Task {
public:
//require
uint32_t taskid;
uint32_t cmdid;
int32_t channel_select;
std::string cgi; // user
//optional
bool send_only; // user
bool need_authed; // user
bool limit_flow; // user
bool limit_frequency; // user
bool network_status_sensitive; // user
int32_t channel_strategy;
int32_t priority; // user
int32_t retry_count; // user
int32_t server_process_cost; // user
int32_t total_timetout; // user ms
void* user_context; // user
std::string report_arg; // user for cgi report
std::vector<std::string> shortlink_host_list;
};
public:
//require
uint32_t taskid;
uint32_t cmdid;
int32_t channel_select;
std::string cgi; // user
//optional
bool send_only; // user
bool need_authed; // user
bool limit_flow; // user
bool limit_frequency; // user
bool network_status_sensitive; // user
int32_t channel_strategy;
int32_t priority; // user
int32_t retry_count; // user
int32_t server_process_cost; // user
int32_t total_timetout; // user ms
void* user_context; // user
std::string report_arg; // user for cgi report
std::vector<std::string> shortlink_host_list;
};
关闭
mars::baseevent::OnDestroy();
stn
0 条评论
下一页