1/* 2 * Copyright 2019, Andrew Lindesay <apl@lindesay.co.nz>. 3 * 4 * All rights reserved. Distributed under the terms of the MIT License. 5 */ 6#include "UserCredentials.h" 7 8 9// These are keys that are used to store this object's data into a BMessage 10// instance. 11 12#define KEY_NICKNAME "nickname" 13#define KEY_PASSWORD_CLEAR "passwordClear" 14#define KEY_IS_SUCCESSFUL "isSuccessful" 15 16 17UserCredentials::UserCredentials(BMessage* from) 18{ 19 from->FindString(KEY_NICKNAME, &fNickname); 20 from->FindString(KEY_PASSWORD_CLEAR, &fPasswordClear); 21 from->FindBool(KEY_IS_SUCCESSFUL, &fIsSuccessful); 22} 23 24 25UserCredentials::UserCredentials(const BString& nickname, 26 const BString& passwordClear) 27 : 28 fNickname(nickname), 29 fPasswordClear(passwordClear), 30 fIsSuccessful(false) 31{ 32} 33 34 35UserCredentials::UserCredentials(const UserCredentials& other) 36 : 37 fNickname(other.Nickname()), 38 fPasswordClear(other.PasswordClear()), 39 fIsSuccessful(false) 40{ 41} 42 43 44UserCredentials::UserCredentials() 45 : 46 fNickname(), 47 fPasswordClear(), 48 fIsSuccessful(false) 49{ 50} 51 52 53UserCredentials::~UserCredentials() 54{ 55} 56 57 58UserCredentials& 59UserCredentials::operator=(const UserCredentials& other) 60{ 61 fNickname = other.fNickname; 62 fPasswordClear = other.fPasswordClear; 63 fIsSuccessful = other.fIsSuccessful; 64 return *this; 65} 66 67 68bool 69UserCredentials::operator==(const UserCredentials& other) const 70{ 71 return fNickname == other.fNickname && fPasswordClear == other.fPasswordClear 72 && fIsSuccessful == other.fIsSuccessful; 73} 74 75 76bool 77UserCredentials::operator!=(const UserCredentials& other) const 78{ 79 return !(*this == other); 80} 81 82 83const BString& 84UserCredentials::Nickname() const 85{ 86 return fNickname; 87} 88 89 90const BString& 91UserCredentials::PasswordClear() const 92{ 93 return fPasswordClear; 94} 95 96 97const bool 98UserCredentials::IsSuccessful() const 99{ 100 return fIsSuccessful; 101} 102 103 104const bool 105UserCredentials::IsValid() const 106{ 107 return !fNickname.IsEmpty() && !fPasswordClear.IsEmpty(); 108} 109 110 111void 112UserCredentials::SetNickname(const BString& value) 113{ 114 fNickname = value; 115} 116 117 118void 119UserCredentials::SetPasswordClear(const BString& value) 120{ 121 fPasswordClear = value; 122} 123 124 125void 126UserCredentials::SetIsSuccessful(bool value) 127{ 128 fIsSuccessful = value; 129} 130 131 132status_t 133UserCredentials::Archive(BMessage* into, bool deep) const 134{ 135 status_t result = B_OK; 136 if (result == B_OK) 137 result = into->AddString(KEY_NICKNAME, fNickname); 138 if (result == B_OK) 139 result = into->AddString(KEY_PASSWORD_CLEAR, fPasswordClear); 140 if (result == B_OK) 141 result = into->AddBool(KEY_IS_SUCCESSFUL, fIsSuccessful); 142 return result; 143}