NIM 跨平台 C++ SDK
载入中...
搜索中...
未找到
nim_session_helper.h
浏览该文件的文档.
1
7#ifndef _NIM_SDK_CPP_SESSION_HELPER_H_
8#define _NIM_SDK_CPP_SESSION_HELPER_H_
9
10#include <functional>
11#include <list>
12#include <string>
14#include "nim_define_include.h"
20namespace nim {
24 bool top_;
26 std::string id_;
30 std::string ext_;
32 int64_t create_time_;
34 int64_t update_time_;
37 : top_(false)
38 , id_("")
40 , ext_("")
41 , create_time_(0)
42 , update_time_(0) {}
43
44 static std::string ToJsonString(const StickTopSessionInfo& stickTopSessionInfo);
45 static void ToJsonObject(const StickTopSessionInfo& stickTopSessionInfo, nim_cpp_wrapper_util::Json::Value& value);
46};
47
51 std::string id_;
59 std::string msg_id_;
61 std::string msg_sender_accid_;
63 int64_t msg_timetag_;
67 std::string msg_content_;
69 std::string msg_attach_;
79 std::string extend_data_;
86 : unread_count_(0)
87 , msg_timetag_(0)
88 , type_(kNIMSessionTypeP2P)
89 , command_(kNIMSessionCommandAdd)
90 , msg_type_(kNIMMessageTypeUnknown)
91 , msg_status_(kNIMMsgLogStatusNone)
92 , msg_sub_status_(kNIMMsgLogSubStatusNone)
93 , last_updated_msg_(true)
94 , placed_on_top_(false)
95 , is_robot_session_(false) {}
96
97 static std::string ToJsonString(const SessionData& sessionData);
98 static void ToJsonObject(const SessionData& sessionData, nim_cpp_wrapper_util::Json::Value& value);
99};
100
108 std::list<SessionData> sessions_;
110 std::map<NIMSessionType, int> unread_count_map_;
112 std::multimap<NIMSessionType, SessionData> session_map_;
113
115 : count_(0)
116 , unread_count_(0) {}
117 static std::string ToJsonString(const SessionDataList& sessionData);
118};
124 static std::string ToJsonString(const StickTopSession& stick_session);
125 static void ToJsonObject(const StickTopSession& stick_session, nim_cpp_wrapper_util::Json::Value& value);
126};
127
137 std::list<StickTopSession> sessions_;
138 static std::string ToJsonString(const StickTopSessionList& stick_session_list);
139};
146NIM_SDK_CPPWRAPPER_DLL_API bool ParseSession(const std::string& session_json, SessionData& session);
147
155
162NIM_SDK_CPPWRAPPER_DLL_API bool ParseSessionList(const std::string& sessions_json, SessionDataList& session_list);
163
170NIM_SDK_CPPWRAPPER_DLL_API bool ParseStickTopSession(const std::string& session_json, StickTopSession& session);
171
179
186NIM_SDK_CPPWRAPPER_DLL_API bool ParseStickTopSessionList(const std::string& sessions_json, StickTopSessionList& stick_top_session_list);
187
188} // namespace nim
189
190#endif //_NIM_SDK_CPP_SESSION_HELPER_H_
Represents a JSON value.
Definition value.h:196
namespace nim
bool ParseSession(const std::string &session_json, SessionData &session)
解析会话信息
Definition nim_session_helper.cpp:105
bool ParseSessionList(const std::string &sessions_json, SessionDataList &session_list)
解析会话列表信息
Definition nim_session_helper.cpp:141
bool ParseStickTopSession(const std::string &session_json, StickTopSession &session)
解析置顶会话信息
Definition nim_session_helper.cpp:162
bool ParseStickTopSessionList(const std::string &sessions_json, StickTopSessionList &stick_top_session_list)
解析置顶会话列表信息
Definition nim_session_helper.cpp:196
NIM 公共数据类型定义总的包含文件
JSON辅助方法
NIMMsgLogStatus
Definition nim_msglog_def.h:343
@ kNIMMsgLogStatusNone
默认,不能当查询条件,意义太多
Definition nim_msglog_def.h:345
NIMMessageType
Definition nim_msglog_def.h:301
@ kNIMMessageTypeUnknown
未知类型消息,本地使用,发送时勿使用,作为默认值
Definition nim_msglog_def.h:325
NIMMsgLogSubStatus
Definition nim_msglog_def.h:465
@ kNIMMsgLogSubStatusNone
默认状态
Definition nim_msglog_def.h:467
定义导出宏
#define NIM_SDK_CPPWRAPPER_DLL_API
Definition nim_sdk_cpp_wrapper.h:38
NIMSessionCommand
Definition nim_session_def.h:26
@ kNIMSessionCommandAdd
添加会话项
Definition nim_session_def.h:28
NIMSessionType
Definition nim_session_def.h:16
@ kNIMSessionTypeP2P
个人,即点对点
Definition nim_session_def.h:18
#define true
Definition stdbool.h:30
#define false
Definition stdbool.h:33
Definition nim_session_helper.h:129
NIMSessionType type_
会话类型
Definition nim_session_helper.h:133
std::string id_
会话ID
Definition nim_session_helper.h:131
会话数据
Definition nim_session_helper.h:49
bool placed_on_top_
置顶标识
Definition nim_session_helper.h:77
NIMMsgLogStatus msg_status_
当前会话最新一条消息状态
Definition nim_session_helper.h:71
NIMMessageType msg_type_
当前会话最新一条消息类型
Definition nim_session_helper.h:65
int unread_count_
当前会话消息未读数
Definition nim_session_helper.h:55
NIMSessionType type_
会话类型
Definition nim_session_helper.h:53
StickTopSessionInfo stick_top_info_
置顶信息 v7.6添加,推荐使用此字段代替 "placed_on_top_" 字段
Definition nim_session_helper.h:83
bool is_robot_session_
是否为机器人会话, 默认为false
Definition nim_session_helper.h:81
int64_t msg_timetag_
当前会话最新一条消息时间戳(毫秒)
Definition nim_session_helper.h:63
std::string extend_data_
本地扩展字段,限制4096
Definition nim_session_helper.h:79
bool last_updated_msg_
(批量)消息变更或增加时是否是最后一条变更的信息
Definition nim_session_helper.h:75
SessionData()
Definition nim_session_helper.h:85
std::string msg_attach_
当前会话最新一条消息附件
Definition nim_session_helper.h:69
std::string msg_content_
当前会话最新一条消息内容
Definition nim_session_helper.h:67
std::string msg_sender_accid_
当前会话最新一条消息发送方ID
Definition nim_session_helper.h:61
std::string id_
会话ID
Definition nim_session_helper.h:51
std::string msg_id_
当前会话最新一条消息ID
Definition nim_session_helper.h:59
NIMMsgLogSubStatus msg_sub_status_
当前会话最新一条消息子状态
Definition nim_session_helper.h:73
NIMSessionCommand command_
会话修改命令
Definition nim_session_helper.h:57
会话列表数据
Definition nim_session_helper.h:102
int count_
会话列表项数量
Definition nim_session_helper.h:104
std::map< NIMSessionType, int > unread_count_map_
按会话类型聚类的未读数数据
Definition nim_session_helper.h:110
std::multimap< NIMSessionType, SessionData > session_map_
按会话类型聚类的会话列表项数据
Definition nim_session_helper.h:112
SessionDataList()
Definition nim_session_helper.h:114
int unread_count_
会话列表总的未读消息数
Definition nim_session_helper.h:106
std::list< SessionData > sessions_
会话列表项数据
Definition nim_session_helper.h:108
Definition nim_session_helper.h:119
SessionData session_data_
会话信息
Definition nim_session_helper.h:123
StickTopSessionInfo stick_top_info_
置顶信息
Definition nim_session_helper.h:121
会话数据
Definition nim_session_helper.h:22
StickTopSessionInfo()
Definition nim_session_helper.h:36
bool top_
是否置顶
Definition nim_session_helper.h:24
int64_t create_time_
创建时间
Definition nim_session_helper.h:32
int64_t update_time_
更新时间
Definition nim_session_helper.h:34
std::string id_
会话ID
Definition nim_session_helper.h:26
NIMSessionType type_
会话类型
Definition nim_session_helper.h:28
std::string ext_
扩展信息
Definition nim_session_helper.h:30
Definition nim_session_helper.h:135
std::list< StickTopSession > sessions_
置顶会话列表项数据
Definition nim_session_helper.h:137