2020-05-12 17:39:01 +08:00

51 lines
994 B
C++

#pragma once
#include <a8/timer_attacher.h>
struct GroupMember
{
std::string account_id;
std::string nickname;
std::string avatar_url;
int sex = 0;
int online = 0;
long long group_id = 0;
int data_version1 = 0;
};
namespace cs
{
class MFGroupDB;
}
struct timer_list;
class Group
{
public:
long long group_id = 0;
std::string group_name;
std::string owner_id;
std::string creator_id;
int createtime = 0;
a8::TimerAttacher timer_attacher;
void Init();
void UnInit();
bool IsFull();
void Rename(const std::string& new_group_name);
GroupMember* GetMember(const std::string& account_id);
void AddMember(GroupMember* member);
void RemoveMember(const std::string& account_id);
void MarkDirty();
private:
void FillGroupDB(cs::MFGroupDB& group_dto);
void SaveToDB();
private:
bool dirty_ = false;
timer_list* dirty_timer_ = nullptr;
std::map<std::string, GroupMember*> member_hash_;
};