1 #include "serverinfo_user_container.h"
2 
3 #include "pb/serverinfo_user.pb.h"
4 
ServerInfo_User_Container(ServerInfo_User * _userInfo)5 ServerInfo_User_Container::ServerInfo_User_Container(ServerInfo_User *_userInfo) : userInfo(_userInfo)
6 {
7 }
8 
ServerInfo_User_Container(const ServerInfo_User & _userInfo)9 ServerInfo_User_Container::ServerInfo_User_Container(const ServerInfo_User &_userInfo)
10     : userInfo(new ServerInfo_User(_userInfo))
11 {
12 }
13 
ServerInfo_User_Container(const ServerInfo_User_Container & other)14 ServerInfo_User_Container::ServerInfo_User_Container(const ServerInfo_User_Container &other)
15 {
16     if (other.userInfo)
17         userInfo = new ServerInfo_User(*other.userInfo);
18     else
19         userInfo = 0;
20 }
21 
~ServerInfo_User_Container()22 ServerInfo_User_Container::~ServerInfo_User_Container()
23 {
24     delete userInfo;
25 }
26 
setUserInfo(const ServerInfo_User & _userInfo)27 void ServerInfo_User_Container::setUserInfo(const ServerInfo_User &_userInfo)
28 {
29     userInfo = new ServerInfo_User(_userInfo);
30 }
31 
copyUserInfo(ServerInfo_User & result,bool complete,bool internalInfo,bool sessionInfo) const32 ServerInfo_User &ServerInfo_User_Container::copyUserInfo(ServerInfo_User &result,
33                                                          bool complete,
34                                                          bool internalInfo,
35                                                          bool sessionInfo) const
36 {
37     if (userInfo) {
38         result.CopyFrom(*userInfo);
39         if (!sessionInfo) {
40             result.clear_session_id();
41             result.clear_address();
42             result.clear_clientid();
43         }
44         if (!internalInfo) {
45             result.clear_id();
46             result.clear_email();
47         }
48         if (!complete)
49             result.clear_avatar_bmp();
50     }
51     return result;
52 }
53 
copyUserInfo(bool complete,bool internalInfo,bool sessionInfo) const54 ServerInfo_User ServerInfo_User_Container::copyUserInfo(bool complete, bool internalInfo, bool sessionInfo) const
55 {
56     ServerInfo_User result;
57     return copyUserInfo(result, complete, internalInfo, sessionInfo);
58 }
59