7 #ifndef WRAPPER_NIM_CHATROOM_CPP_WRAPPER_HELPER_NIM_CHATROOM_HELPER_H_
8 #define WRAPPER_NIM_CHATROOM_CPP_WRAPPER_HELPER_NIM_CHATROOM_HELPER_H_
17 #if !defined(_WIN32) && !defined(WIN32)
21 #include "nim_chatroom_def_include.h"
22 #include "nim_wrapper_util/nim_json_util.h"
37 void SetNick(
const std::string& nick) { values_[kNIMChatRoomEnterKeyNick] = nick; }
44 void SetAvatar(
const std::string& avatar) { values_[kNIMChatRoomEnterKeyAvatar] = avatar; }
51 void SetExt(
const nim_cpp_wrapper_util::Json::Value& ext) { values_[kNIMChatRoomEnterKeyExt] = nim::GetJsonStringWithNoStyled(ext); }
58 void SetNotifyExt(
const nim_cpp_wrapper_util::Json::Value& notify_ext) {
59 values_[kNIMChatRoomEnterKeyNotifyExt] = nim::GetJsonStringWithNoStyled(notify_ext);
68 for (
auto& tag : login_tags) {
69 values_[kNIMChatRoomEnterLoginTags].append(tag);
78 void SetNotifyTags(
const std::string& expression) { values_[kNIMChatRoomEnterNotifyTags] = expression; }
86 values_[kNIMChatRoomEnterLocationX] = location.x_;
87 values_[kNIMChatRoomEnterLocationY] = location.y_;
88 values_[kNIMChatRoomEnterLocationZ] = location.z_;
89 values_[kNIMChatRoomEnterLocationDistance] = location.distance_;
97 void EnableLocation(
bool enable) { values_[kNIMChatRoomEnterEnableLocation] = enable; }
104 void SetAuthType(
int auth_type) { values_[kNIMChatRoomEnterAuthType] = auth_type; }
111 void SetLoginExt(
const std::string& login_ext) { values_[kNIMChatRoomEnterLoginExt] = login_ext; }
118 void SetAntiSpamBusinessID(
const std::string& anti_spam_business_id) { values_[kNIMChatRoomEnterAntiSpamBusinessID] = anti_spam_business_id; }
124 std::string
ToJsonString()
const {
return values_.empty() ?
"" : nim::GetJsonStringWithNoStyled(values_); }
127 nim_cpp_wrapper_util::Json::Value values_;
149 enable_location_ =
false;
158 nim_cpp_wrapper_util::Json::Value values;
159 nim_cpp_wrapper_util::Json::FastWriter fw;
160 std::string addr_str;
161 for (
auto& address : address_) {
162 values[kNIMChatRoomEnterKeyAddress].append(address);
164 std::string login_tags;
165 nim::StrListToJsonString(login_tags_, login_tags);
166 values[kNIMChatRoomEnterLoginTags] = login_tags;
167 values[kNIMChatRoomEnterKeyAppDataPath] = app_data_file_;
168 values[kNIMChatRoomEnterKeyLogLevel] = sdk_log_level_;
169 values[kNIMChatRoomEnterKeyAppKey] = app_key_;
170 values[kNIMChatRoomEnterKeyAccID] = accid_;
171 values[kNIMChatRoomEnterKeyToken] = token_;
172 values[kNIMChatRoomEnterNotifyTags] = notify_tags_;
173 values[kNIMChatRoomEnterLocationX] = location_.x_;
174 values[kNIMChatRoomEnterLocationY] = location_.y_;
175 values[kNIMChatRoomEnterLocationZ] = location_.z_;
176 values[kNIMChatRoomEnterLocationDistance] = location_.distance_;
177 values[kNIMChatRoomEnterEnableLocation] = enable_location_;
178 values[kNIMChatRoomEnterAuthType] = auth_type_;
179 values[kNIMChatRoomEnterLoginExt] = login_ext_;
180 values[kNIMChatRoomEnterAntiSpamBusinessID] = anti_spam_business_id_;
181 return fw.write(values);
207 nim_cpp_wrapper_util::Json::Value values;
208 nim_cpp_wrapper_util::Json::FastWriter fw;
209 std::string addr_str;
210 for (
auto& address : address_) {
211 values[kNIMChatRoomEnterKeyAddress].append(address);
213 std::string login_tags;
214 values[kNIMChatRoomEnterLoginTags] = login_tags;
215 values[kNIMChatRoomEnterKeyAppDataPath] = app_data_file_;
216 values[kNIMChatRoomEnterKeyLogLevel] = sdk_log_level_;
217 values[kNIMChatRoomEnterKeyAppKey] = app_key_;
218 values[kNIMChatRoomEnterKeyRandomID] = random_id_ ? 1 : 0;
220 values[kNIMChatRoomEnterKeyAccID] = accid_;
222 values[kNIMChatRoomEnterKeyToken] = token_;
223 return fw.write(values);
252 id_ = values[kNIMChatRoomInfoKeyID].asUInt64();
253 name_ = values[kNIMChatRoomInfoKeyName].asString();
254 announcement_ = values[kNIMChatRoomInfoKeyAnnouncement].asString();
255 broadcast_url_ = values[kNIMChatRoomInfoKeyBroadcastUrl].asString();
256 creator_id_ = values[kNIMChatRoomInfoKeyCreatorID].asString();
257 valid_flag_ = values[kNIMChatRoomInfoKeyValidFlag].asUInt();
258 ext_ = values[kNIMChatRoomInfoKeyExt].asString();
259 online_count_ = values[kNIMChatRoomInfoKeyOnlineCount].asUInt();
260 mute_all_ = values[kNIMChatRoomInfoKeyMuteAll].asUInt();
261 queuelevel = values[kNIMChatRoomInfoKeyQueuelevel].asInt();
269 nim_cpp_wrapper_util::Json::Value values;
270 values[kNIMChatRoomInfoKeyID] = id_;
271 values[kNIMChatRoomInfoKeyName] = name_;
272 values[kNIMChatRoomInfoKeyAnnouncement] = announcement_;
273 values[kNIMChatRoomInfoKeyBroadcastUrl] = broadcast_url_;
274 values[kNIMChatRoomInfoKeyCreatorID] = creator_id_;
275 values[kNIMChatRoomInfoKeyValidFlag] = valid_flag_;
276 values[kNIMChatRoomInfoKeyExt] = ext_;
277 values[kNIMChatRoomInfoKeyOnlineCount] = online_count_;
278 values[kNIMChatRoomInfoKeyMuteAll] = mute_all_;
279 values[kNIMChatRoomInfoKeyQueuelevel] = queuelevel;
280 return nim::GetJsonStringWithNoStyled(values);
286 NIMChatRoomNotificationId
id_;
307 : temp_mute_duration_(0)
318 id_ = (NIMChatRoomNotificationId)values[kChatRoomNotificationKeyID].asUInt();
319 ext_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyExt].asString();
320 operator_id_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyOpt].asString();
321 operator_nick_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyOptNick].asString();
322 nim::JsonStrArrayToList(values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyTargetNick], target_nick_);
323 nim::JsonStrArrayToList(values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyTarget], target_ids_);
324 if (id_ == kNIMChatRoomNotificationIdMemberTempMute || id_ == kNIMChatRoomNotificationIdMemberTempUnMute)
325 temp_mute_duration_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyTempMuteDuration].asInt64();
326 if (id_ == kNIMChatRoomNotificationIdMemberIn) {
327 if (values[kChatRoomNotificationKeyData].isMember(kChatRoomNotificationDataKeyMuteFlag))
328 muted_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyMuteFlag].asUInt() == 1;
329 if (values[kChatRoomNotificationKeyData].isMember(kChatRoomNotificationDataKeyTempMutedFlag))
330 temp_muted_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyTempMutedFlag].asUInt() == 1;
331 temp_mute_duration_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyMemberInTempMutedDuration].asInt64();
333 if (id_ == kNIMChatRoomNotificationIdQueueChanged || id_ == kNIMChatRoomNotificationIdQueueBatchChanged ||
334 id_ == kNIMChatRoomNotificationIdQueueBatchOffer) {
335 queue_change_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyQueueChange].asString();
337 if (id_ == kNIMChatRoomNotificationIdTagTempMuteAdd || id_ == kNIMChatRoomNotificationIdTagTempMuteRemove) {
338 if (values[kChatRoomNotificationKeyData].isMember(kChatRoomNotificationDataKeyTargetTag)) {
339 target_tag_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyTargetTag].asString();
342 if (id_ == kNIMChatRoomNotificationIdRecallMessage) {
343 if (values[kChatRoomNotificationKeyData].isMember(kChatRoomNotificationDataKeyMsgTimetag)) {
344 msg_timetag_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyMsgTimetag].asUInt64();
346 if (values[kChatRoomNotificationKeyData].isMember(kChatRoomNotificationDataKeyMsgId)) {
347 msg_id_ = values[kChatRoomNotificationKeyData][kChatRoomNotificationDataKeyMsgId].asString();
352 std::string ToJsonString()
const {
353 nim_cpp_wrapper_util::Json::Value values;
354 values[kNIMChatRoomInfoKeyID] = id_;
355 values[kChatRoomNotificationDataKeyExt] = ext_;
356 values[kChatRoomNotificationDataKeyOpt] = operator_id_;
357 values[kChatRoomNotificationDataKeyOptNick] = operator_nick_;
358 for (
const auto& nick : target_nick_) {
359 values[kChatRoomNotificationDataKeyTargetNick].append(nick);
361 for (
const auto&
id : target_ids_) {
362 values[kChatRoomNotificationDataKeyTarget].append(
id);
364 values[kChatRoomNotificationDataKeyTempMuteDuration] = temp_mute_duration_;
365 values[kChatRoomNotificationDataKeyMuteFlag] = muted_;
366 values[kChatRoomNotificationDataKeyTempMutedFlag] = temp_muted_;
367 values[kChatRoomNotificationDataKeyQueueChange] = queue_change_;
368 if (!target_tag_.empty())
369 values[kChatRoomNotificationDataKeyTargetTag] = target_tag_;
370 if (!msg_id_.empty()) {
371 values[kChatRoomNotificationDataKeyMsgTimetag] = msg_timetag_;
372 values[kChatRoomNotificationDataKeyMsgId] = msg_id_;
375 return nim::GetJsonStringWithNoStyled(values);
385 : transient_(false) {}
386 std::string ToJsonString()
const {
387 nim_cpp_wrapper_util::Json::Value values;
388 nim_cpp_wrapper_util::Json::FastWriter writer;
389 values[kNIMChatRoomQueueOfferOptionTransient] = transient_;
390 if (!element_accid_.empty())
391 values[kNIMChatRoomQueueOfferOptionElementAccId] = element_accid_;
392 return writer.write(values);
408 nim_cpp_wrapper_util::Json::Value values;
409 nim_cpp_wrapper_util::Json::Reader reader;
410 if (reader.parse(notification.
queue_change_, values) && values.isObject()) {
411 type_ = values[kNIMChatRoomNotificationQueueChangedKeyType].asString();
412 key_ = values[kNIMChatRoomNotificationQueueChangedKeyKey].asString();
413 value_ = values[kNIMChatRoomNotificationQueueChangedKeyValue].asString();
431 nim_cpp_wrapper_util::Json::Value values;
432 nim_cpp_wrapper_util::Json::Reader reader;
433 if (reader.parse(notification.
queue_change_, values) && values.isObject()) {
434 type_ = values[kNIMChatRoomNotificationQueueBatchChangedKeyType].asString();
435 if (values.isMember(kNIMChatRoomNotificationQueueBatchChangedKeyKey))
436 key_ = values[kNIMChatRoomNotificationQueueBatchChangedKeyKey].asString();
437 if (values.isMember(kNIMChatRoomNotificationQueueBatchChangedKeyValue))
438 value_ = values[kNIMChatRoomNotificationQueueBatchChangedKeyValue].asString();
439 if (values.isMember(kNIMChatRoomNotificationQueueBatchChangedKeyObject)) {
440 auto members_name = values[kNIMChatRoomNotificationQueueBatchChangedKeyObject].getMemberNames();
441 auto it = members_name.begin();
442 while (it != members_name.end()) {
443 changed_values_.insert(std::make_pair(*it, values[kNIMChatRoomNotificationQueueBatchChangedKeyObject][*it].asString()));
469 : resend_flag_(false)
470 , anti_spam_enable_(false)
471 , history_save_(true)
472 , anti_spam_bizid_(
"")
473 , anti_spam_using_yidun_(1)
475 , yidun_anti_cheating_(
"")
484 void ToJsonValue(nim_cpp_wrapper_util::Json::Value& message)
const {
485 message[kNIMChatRoomMsgKeyResendFlag] = resend_flag_ ? 1 : 0;
486 message[kNIMChatRoomMsgKeyExt] = ext_;
487 message[kNIMChatRoomMsgKeyAntiSpamEnable] = anti_spam_enable_ ? 1 : 0;
488 message[kNIMChatRoomMsgKeyAntiSpamContent] = anti_spam_content_;
489 if (!anti_spam_bizid_.empty())
490 message[kNIMChatRoomMsgKeyAntiSpamBizId] = anti_spam_bizid_;
491 message[kNIMChatRoomMsgKeyHistorySave] = history_save_ ? 1 : 0;
492 message[kNIMChatRoomMsgKeyAntiSpamUsingYiDun] = anti_spam_using_yidun_;
493 if (!yidun_anti_cheating_.empty())
494 message[kNIMChatRoomMsgKeyYiDunAntiCheating] = yidun_anti_cheating_;
495 if (!env_config_.empty())
496 message[kNIMChatRoomMsgKeyEnvConfig] = env_config_;
497 if (!anti_spam_ext_.empty())
498 message[kNIMChatRoomMsgKeyAntiSpamExt] = anti_spam_ext_;
499 message[kNIMChatRoomMsgKeyLocationX] = location_.x_;
500 message[kNIMChatRoomMsgKeyLocationY] = location_.y_;
501 message[kNIMChatRoomMsgKeyLocationZ] = location_.z_;
502 std::string to_accids_str;
503 nim::StrListToJsonString(to_accids, to_accids_str);
504 message[kNIMChatRoomMsgKeyToAccids] = to_accids_str;
513 resend_flag_ = message[kNIMChatRoomMsgKeyResendFlag].asUInt() == 1;
514 ext_ = message[kNIMChatRoomMsgKeyExt].asString();
515 if (message.isMember(kNIMChatRoomMsgKeyAntiSpamEnable))
516 anti_spam_enable_ = message[kNIMChatRoomMsgKeyAntiSpamEnable].asInt() == 1;
517 anti_spam_content_ = message[kNIMChatRoomMsgKeyAntiSpamContent].asString();
518 high_priority_ = message[kNIMChatRoomMsgKeyHighPriorityFlag].asInt();
519 if (message.isMember(kNIMChatRoomMsgKeyYiDunAntiCheating))
520 yidun_anti_cheating_ = message[kNIMChatRoomMsgKeyYiDunAntiCheating].asString();
521 if (message.isMember(kNIMChatRoomMsgKeyEnvConfig))
522 env_config_ = message[kNIMChatRoomMsgKeyEnvConfig].asString();
523 if (message.isMember(kNIMChatRoomMsgKeyAntiSpamExt))
524 anti_spam_ext_ = message[kNIMChatRoomMsgKeyAntiSpamExt].asString();
525 if (message.isMember(kNIMChatRoomMsgKeyLocationX))
526 location_.x_ = message[kNIMChatRoomMsgKeyLocationX].asFloat();
527 if (message.isMember(kNIMChatRoomMsgKeyLocationY))
528 location_.y_ = message[kNIMChatRoomMsgKeyLocationY].asFloat();
529 if (message.isMember(kNIMChatRoomMsgKeyLocationZ))
530 location_.z_ = message[kNIMChatRoomMsgKeyLocationZ].asFloat();
531 if (message.isMember(kNIMChatRoomMsgKeyToAccids)) {
533 nim::JsonStrArrayToList(message[kNIMChatRoomMsgKeyToAccids], to_accids);
572 , from_client_type_(kNIMChatRoomClientTypeDefault)
574 , third_party_callback_ext_(
"")
583 room_id_ = values[kNIMChatRoomMsgKeyRoomID].asUInt64();
584 from_id_ = values[kNIMChatRoomMsgKeyFromAccount].asString();
585 timetag_ = values[kNIMChatRoomMsgKeyTime].asUInt64();
586 from_client_type_ = (NIMChatRoomClientType)values[kNIMChatRoomMsgKeyFromClientType].asUInt();
587 from_nick_ = values[kNIMChatRoomMsgKeyFromNick].asString();
588 from_avatar_ = values[kNIMChatRoomMsgKeyFromAvatar].asString();
589 from_ext_ = values[kNIMChatRoomMsgKeyFromExt].asString();
590 msg_type_ = (NIMChatRoomMsgType)values[kNIMChatRoomMsgKeyType].asUInt();
591 msg_attach_ = values[kNIMChatRoomMsgKeyAttach].asString();
592 client_msg_id_ = values[kNIMChatRoomMsgKeyClientMsgid].asString();
593 local_res_path_ = values[kNIMChatRoomMsgKeyLocalFilePath].asString();
594 local_res_id_ = values[kNIMChatRoomMsgKeyLocalResId].asString();
595 msg_body_ = values[kNIMChatRoomMsgKeyBody].asString();
597 if (values.isMember(kNIMChatRoomMsgKeyThirdPartyCBEXT))
598 third_party_callback_ext_ = values[kNIMChatRoomMsgKeyThirdPartyCBEXT].asString();
599 if (values.isMember(kNIMChatRoomMsgKeySubType))
600 sub_type_ = values[kNIMChatRoomMsgKeySubType].asInt();
601 if (values.isMember(kNIMChatRoomMsgKeyNotifyTags))
602 notify_tags_ = values[kNIMChatRoomMsgKeyNotifyTags].asString();
603 if (values.isMember(kNIMChatRoomMsgKeyAntiSpamRes))
604 anti_spam_res_ = values[kNIMChatRoomMsgKeyAntiSpamRes].asString();
612 nim_cpp_wrapper_util::Json::Value values;
613 values[kNIMChatRoomMsgKeyType] = msg_type_;
614 values[kNIMChatRoomMsgKeyTime] = timetag_;
615 values[kNIMChatRoomMsgKeyAttach] = msg_attach_;
616 values[kNIMChatRoomMsgKeyClientMsgid] = client_msg_id_;
617 values[kNIMChatRoomMsgKeyLocalFilePath] = local_res_path_;
618 values[kNIMChatRoomMsgKeyLocalResId] = local_res_id_;
619 values[kNIMChatRoomMsgKeyBody] = msg_body_;
620 values[kNIMChatRoomMsgKeyThirdPartyCBEXT] = third_party_callback_ext_;
621 values[kNIMChatRoomMsgKeySubType] = sub_type_;
622 values[kNIMChatRoomMsgKeyAntiSpamRes] = anti_spam_res_;
624 return nim::GetJsonStringWithNoStyled(values);
636 : timestamp_offset_(0)
644 nim_cpp_wrapper_util::Json::Value values;
645 values[kNIMChatRoomGetMembersKeyType] = type_;
646 values[kNIMChatRoomGetMembersKeyOffset] = timestamp_offset_;
647 values[kNIMChatRoomGetMembersKeyLimit] = limit_;
648 return nim::GetJsonStringWithNoStyled(values);
660 : timestamp_offset_(0)
668 nim_cpp_wrapper_util::Json::Value values;
669 values[kNIMChatRoomGetMembersKeyTag] = tag_;
670 values[kNIMChatRoomGetMembersKeyOffset] = timestamp_offset_;
671 values[kNIMChatRoomGetMembersKeyLimit] = limit_;
672 return nim::GetJsonStringWithNoStyled(values);
687 if (kMsg_Types_List.empty()) {
688 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeText);
689 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeImage);
690 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeAudio);
691 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeVideo);
692 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeLocation);
693 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeNotification);
694 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeFile);
695 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeRobot);
696 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeTips);
697 kMsg_Types_List.emplace_back(kNIMChatRoomMsgTypeCustom);
699 msg_types_.assign(kMsg_Types_List.begin(), kMsg_Types_List.end());
702 void RemoveMessageType(NIMChatRoomMsgType type) {
703 auto it = std::find_if(msg_types_.begin(), msg_types_.end(), [&](
const NIMChatRoomMsgType& item) {
706 if (it != msg_types_.end())
707 msg_types_.erase(it);
708 if (msg_types_.empty())
709 msg_types_.emplace_back(kNIMChatRoomMsgTypeUnknown);
716 nim_cpp_wrapper_util::Json::Value values;
717 values[kNIMChatRoomGetMsgHistoryKeyStartTime] = start_timetag_;
718 values[kNIMChatRoomGetMsgHistoryKeyLimit] = limit_;
719 values[kNIMChatRoomGetMsgHistoryKeyReverse] = reverse_;
720 auto it = msg_types_.begin();
721 while (it != msg_types_.end()) {
722 values[kNIMChatRoomGetMsgHistoryKeyMsgtypes].append(nim_cpp_wrapper_util::Json::Value(*it));
725 return nim::GetJsonStringWithNoStyled(values);
729 static std::vector<NIMChatRoomMsgType> kMsg_Types_List;
748 nim_cpp_wrapper_util::Json::Value values;
749 values[kNIMChatRoomSetMemberAttributeKeyAccoutID] = account_id_;
750 values[kNIMChatRoomSetMemberAttributeKeyAttribute] = attribute_;
751 values[kNIMChatRoomSetMemberAttributeKeyOpt] = opt_;
752 values[kNIMChatRoomSetMemberAttributeKeyNotifyExt] = notify_ext_;
753 return nim::GetJsonStringWithNoStyled(values);
785 , state_(kNIMChatRoomOnlineStateOffline)
786 , guest_flag_(kNIMChatRoomGuestFlagGuest)
788 , is_blacklist_(false)
793 , temp_muted_duration_(0) {}
797 if (value.isMember(kNIMChatRoomMemberInfoKeyRoomID))
798 room_id_ = value[kNIMChatRoomMemberInfoKeyRoomID].asUInt64();
799 if (value.isMember(kNIMChatRoomMemberInfoKeyAccID))
800 account_id_ = value[kNIMChatRoomMemberInfoKeyAccID].asString();
801 if (value.isMember(kNIMChatRoomMemberInfoKeyType))
802 type_ = value[kNIMChatRoomMemberInfoKeyType].asInt();
803 if (value.isMember(kNIMChatRoomMemberInfoKeyLevel))
804 level_ = value[kNIMChatRoomMemberInfoKeyLevel].asInt();
805 if (value.isMember(kNIMChatRoomMemberInfoKeyNick))
806 nick_ = value[kNIMChatRoomMemberInfoKeyNick].asString();
807 if (value.isMember(kNIMChatRoomMemberInfoKeyAvatar))
808 avatar_ = value[kNIMChatRoomMemberInfoKeyAvatar].asString();
809 if (value.isMember(kNIMChatRoomMemberInfoKeyExt))
810 ext_ = value[kNIMChatRoomMemberInfoKeyExt].asString();
811 if (value.isMember(kNIMChatRoomMemberInfoKeyOnlineState))
812 state_ = (NIMChatRoomOnlineState)value[kNIMChatRoomMemberInfoKeyOnlineState].asInt();
813 if (value.isMember(kNIMChatRoomMemberInfoKeyGuestFlag))
814 guest_flag_ = (NIMChatRoomGuestFlag)value[kNIMChatRoomMemberInfoKeyGuestFlag].asInt();
815 if (value.isMember(kNIMChatRoomMemberInfoKeyEnterTimetag))
816 enter_timetag_ = value[kNIMChatRoomMemberInfoKeyEnterTimetag].asUInt64();
817 if (value.isMember(kNIMChatRoomMemberInfoKeyBlacklist))
818 is_blacklist_ = value[kNIMChatRoomMemberInfoKeyBlacklist].asInt() == 1;
819 if (value.isMember(kNIMChatRoomMemberInfoKeyMuted))
820 is_muted_ = value[kNIMChatRoomMemberInfoKeyMuted].asInt() == 1;
821 if (value.isMember(kNIMChatRoomMemberInfoKeyValid))
822 is_valid_ = value[kNIMChatRoomMemberInfoKeyValid].asInt() == 1;
823 if (value.isMember(kNIMChatRoomMemberInfoKeyUpdateTimetag))
824 update_timetag_ = value[kNIMChatRoomMemberInfoKeyUpdateTimetag].asUInt64();
825 if (value.isMember(kNIMChatRoomMemberInfoKeyTempMute))
826 temp_muted_ = value[kNIMChatRoomMemberInfoKeyTempMute].asInt() == 1;
827 if (value.isMember(kNIMChatRoomMemberInfoKeyTempMuteRestDuration))
828 temp_muted_duration_ = value[kNIMChatRoomMemberInfoKeyTempMuteRestDuration].asInt64();
829 if (value.isMember(kNIMChatRoomMemberInfoKeyTag))
830 tags_ = value[kNIMChatRoomMemberInfoKeyTag].asString();
831 if (value.isMember(kNIMChatRoomMemberInfoKeyNotifyTags))
832 notify_tags_ = value[kNIMChatRoomMemberInfoKeyNotifyTags].asString();
840 nim_cpp_wrapper_util::Json::Value values;
841 values[kNIMChatRoomMemberInfoKeyRoomID] = room_id_;
842 values[kNIMChatRoomMemberInfoKeyAccID] = account_id_;
843 values[kNIMChatRoomMemberInfoKeyType] = type_;
844 values[kNIMChatRoomMemberInfoKeyLevel] = level_;
845 values[kNIMChatRoomMemberInfoKeyNick] = nick_;
846 values[kNIMChatRoomMemberInfoKeyAvatar] = avatar_;
847 values[kNIMChatRoomMemberInfoKeyExt] = ext_;
848 values[kNIMChatRoomMemberInfoKeyOnlineState] = state_;
849 values[kNIMChatRoomMemberInfoKeyGuestFlag] = guest_flag_;
850 values[kNIMChatRoomMemberInfoKeyEnterTimetag] = enter_timetag_;
851 values[kNIMChatRoomMemberInfoKeyBlacklist] = is_blacklist_ ? 1 : 0;
852 values[kNIMChatRoomMemberInfoKeyMuted] = is_muted_ ? 1 : 0;
853 values[kNIMChatRoomMemberInfoKeyValid] = is_valid_ ? 1 : 0;
854 values[kNIMChatRoomMemberInfoKeyUpdateTimetag] = update_timetag_;
855 values[kNIMChatRoomMemberInfoKeyTempMute] = temp_muted_ ? 1 : 0;
856 values[kNIMChatRoomMemberInfoKeyTempMuteRestDuration] = temp_muted_duration_;
857 return nim::GetJsonStringWithNoStyled(values);
882 operator NIMChatRoomExitReason()
const {
return code_; }
886 NIM_CHATROOM_SDK_CPPWRAPPER_DLL_API
bool operator==(
const NIMChatRoomExitReasonInfo& info, NIMChatRoomExitReason code);
896 ChatRoomInfo& room_info,
897 ChatRoomMemberInfo& my_info);
905 NIM_CHATROOM_SDK_CPPWRAPPER_DLL_API
bool ParseChatRoomMemberInfos(
const std::string& infos_json_str, std::list<ChatRoomMemberInfo>& infos);
913 NIM_CHATROOM_SDK_CPPWRAPPER_DLL_API
bool ParseChatRoomMsgs(
const std::string& msgs_json_str, std::list<ChatRoomMessage>& msgs);
919 void SetAccid(
const std::string& accid) { robot_info_[kNIMRobotInfoKeyAccid] = accid; }
922 std::string
GetAccid()
const {
return robot_info_[kNIMRobotInfoKeyAccid].asString(); }
925 void SetName(
const std::string& name) { robot_info_[kNIMRobotInfoKeyName] = name; }
928 std::string
GetName()
const {
return robot_info_[kNIMRobotInfoKeyName].asString(); }
931 void SetIcon(
const std::string& icon) { robot_info_[kNIMRobotInfoKeyIcon] = icon; }
934 std::string
GetIcon()
const {
return robot_info_[kNIMRobotInfoKeyIcon].asString(); }
937 void SetIntro(
const std::string& intro) { robot_info_[kNIMRobotInfoKeyIntro] = intro; }
940 std::string
GetIntro()
const {
return robot_info_[kNIMRobotInfoKeyIntro].asString(); }
943 void SetRobotID(
const std::string&
id) { robot_info_[kNIMRobotInfoKeyRobotId] = id; }
946 std::string
GetRobotID()
const {
return robot_info_[kNIMRobotInfoKeyRobotId].asString(); }
949 void SetCreateTime(
const uint64_t time) { robot_info_[kNIMRobotInfoKeyCreateTime] = time; }
952 uint64_t
GetCreateTime()
const {
return robot_info_[kNIMRobotInfoKeyCreateTime].asUInt64(); }
955 void SetUpdateTime(
const uint64_t time) { robot_info_[kNIMRobotInfoKeyUpdateTime] = time; }
958 uint64_t
GetUpdateTime()
const {
return robot_info_[kNIMRobotInfoKeyUpdateTime].asUInt64(); }
961 nim_cpp_wrapper_util::Json::Value robot_info_;
965 typedef std::list<RobotInfo> RobotInfos;
983 typedef ChatRoomQueueElement ChatRoomMember;
986 std::map<std::string, std::string> members_values_;
990 : members_values_(members) {}
992 void ParseFromJsonValue(
const nim_cpp_wrapper_util::Json::Value& json_str) { assert(
false); }
999 nim_cpp_wrapper_util::Json::Value values;
1001 for (
auto it = members_values_.begin(); it != members_values_.end(); ++it) {
1002 values[i][kNIMChatRoomQueueElementKey] = it->first.c_str();
1003 values[i][kNIMChatRoomQueueElementValue] = it->second.c_str();
1006 return nim::GetJsonStringWithNoStyled(values);
1020 #endif //_NIM_CHATROOM_SDK_CPP_HELPER_H_