Go to the documentation of this file.
7 #ifndef _NIM_SDK_CPP_SUBSCRIBE_EVENT_HELPER_H_
8 #define _NIM_SDK_CPP_SUBSCRIBE_EVENT_HELPER_H_
14 #include "nim_define_include.h"
16 #include "nim_wrapper_util/nim_json_util.h"
51 , broadcast_type_(kNIMEventBroadcastTypeOnline)
52 , sync_self_(kNIMEventSyncTypeNoSelf)
53 , readonly_ttl_type(0)
54 , readonly_durable_(0)
55 , readonly_event_time_(0)
56 , readonly_client_type_(0) {}
63 nim_cpp_wrapper_util::Json::Value values;
64 values[kNIMEventEventType] = event_type_;
65 values[kNIMEventEventValue] = event_value_;
66 values[kNIMEventMsgIdClient] = client_msg_id_;
67 values[kNIMEventConfig] = config_;
68 values[kNIMEventTTL] = ttl_;
69 values[kNIMEventBroadcastType] = broadcast_type_;
70 values[kNIMEventSyncSelf] = sync_self_;
72 return GetJsonStringWithNoStyled(values);
86 nim_cpp_wrapper_util::Json::Value values;
87 nim_cpp_wrapper_util::Json::Reader reader;
88 if (reader.parse(multi_config_json, values) && values.isObject()) {
89 if (values.isMember(kNIMEventNimConfigOnlineClient)) {
90 nim_cpp_wrapper_util::Json::Value online_values = values[kNIMEventNimConfigOnlineClient];
91 if (online_values.isArray()) {
92 for (
int i = 0; i < (int)online_values.size(); ++i) {
93 NIMClientType client_type = (NIMClientType)online_values[i].asUInt();
94 online_client_type_.insert(client_type);
119 , sync_event_(kNIMEventSubscribeSyncTypeUnSync)
120 , subscribe_time_(0) {}
129 NIM_SDK_CPPWRAPPER_DLL_API
bool ParseEventData(
const std::string& event_json, EventData& event_data);
137 NIM_SDK_CPPWRAPPER_DLL_API
bool ParseEventData(
const nim_cpp_wrapper_util::Json::Value& values, EventData& event_data);
145 NIM_SDK_CPPWRAPPER_DLL_API
bool ParseEventDataList(
const std::string& event_list_json, std::list<EventData>& event_data_list);
153 NIM_SDK_CPPWRAPPER_DLL_API
bool ParseEventSubscribeData(
const nim_cpp_wrapper_util::Json::Value& values, EventSubscribeData& event_subscribe);
162 std::list<EventSubscribeData>& event_subscribe_list);
166 #endif //_NIM_SDK_CPP_SUBSCRIBE_EVENT_HELPER_H_
NIMEventBroadcastType broadcast_type_
Definition: nim_subscribe_event_helper.h:30
在线客户端类型,此结构体只用于在线状态事件的kNIMEventNimConfig字段
Definition: nim_subscribe_event_helper.h:77
int event_type_
Definition: nim_subscribe_event_helper.h:25
std::string readonly_nim_config_
Definition: nim_subscribe_event_helper.h:39
EventSubscribeData()
Definition: nim_subscribe_event_helper.h:116
NIMEventSubscribeSyncEventType sync_event_
Definition: nim_subscribe_event_helper.h:110
int64_t readonly_event_time_
Definition: nim_subscribe_event_helper.h:36
EventData()
Definition: nim_subscribe_event_helper.h:47
std::string publisher_accid_
Definition: nim_subscribe_event_helper.h:112
NIM_SDK_CPPWRAPPER_DLL_API bool ParseEventDataList(const std::string &event_list_json, std::list< EventData > &event_data_list)
解析批量事件数据
NIM_SDK_CPPWRAPPER_DLL_API bool ParseEventSubscribeData(const nim_cpp_wrapper_util::Json::Value &values, EventSubscribeData &event_subscribe)
解析事件订阅数据
int readonly_client_type_
Definition: nim_subscribe_event_helper.h:38
std::string subscribe_accid_
Definition: nim_subscribe_event_helper.h:113
int readonly_durable_
Definition: nim_subscribe_event_helper.h:35
std::string readonly_multi_config_
Definition: nim_subscribe_event_helper.h:40
NIM_SDK_CPPWRAPPER_DLL_API bool ParseEventData(const std::string &event_json, EventData &event_data)
解析事件数据
int readonly_ttl_type
Definition: nim_subscribe_event_helper.h:34
NIMEventSyncType sync_self_
Definition: nim_subscribe_event_helper.h:31
事件订阅数据
Definition: nim_subscribe_event_helper.h:107
int64_t subscribe_time_
Definition: nim_subscribe_event_helper.h:114
int event_type_
Definition: nim_subscribe_event_helper.h:108
std::string client_msg_id_
Definition: nim_subscribe_event_helper.h:27
int64_t ttl_
Definition: nim_subscribe_event_helper.h:29
std::string readonly_publisher_accid_
Definition: nim_subscribe_event_helper.h:43
int64_t ttl_
Definition: nim_subscribe_event_helper.h:109
std::string readonly_consid_
Definition: nim_subscribe_event_helper.h:44
std::string readonly_server_msg_id_
Definition: nim_subscribe_event_helper.h:37
std::set< NIMClientType > online_client_type_
Definition: nim_subscribe_event_helper.h:78
事件数据
Definition: nim_subscribe_event_helper.h:24
NIM_SDK_CPPWRAPPER_DLL_API bool ParseEventSubscribeDataList(const std::string &subscribe_list_json, std::list< EventSubscribeData > &event_subscribe_list)
解析事件订阅数据列表
std::string config_
Definition: nim_subscribe_event_helper.h:28
int event_value_
Definition: nim_subscribe_event_helper.h:26
bool ParseConfig(const std::string &multi_config_json)
针对在线状态事件,从kNIMEventNimConfig的Json Value解析出在线客户端类型
Definition: nim_subscribe_event_helper.h:85
std::string ToJsonString() const
组装Json Value字符串
Definition: nim_subscribe_event_helper.h:62