* Copyright 2019, Andrew Lindesay <apl@lindesay.co.nz>.
*
* All rights reserved. Distributed under the terms of the MIT License.
*/
#include "UserDetail.h"
#define KEY_NICKNAME "nickname"
#define KEY_AGREEMENT "agreement"
#define KEY_IS_LATEST "isLatest"
#define KEY_CODE "code"
#define KEY_TIMESTAMP_AGREED "timestampAgreed"
UserUsageConditionsAgreement::UserUsageConditionsAgreement(BMessage* from)
{
from->FindUInt64(KEY_TIMESTAMP_AGREED, &fTimestampAgreed);
from->FindString(KEY_CODE, &fCode);
from->FindBool(KEY_IS_LATEST, &fIsLatest);
}
UserUsageConditionsAgreement::UserUsageConditionsAgreement()
:
fCode(),
fTimestampAgreed(0),
fIsLatest(false)
{
}
UserUsageConditionsAgreement::~UserUsageConditionsAgreement()
{
}
const BString&
UserUsageConditionsAgreement::Code() const
{
return fCode;
}
const uint64
UserUsageConditionsAgreement::TimestampAgreed() const
{
return fTimestampAgreed;
}
const bool
UserUsageConditionsAgreement::IsLatest() const
{
return fIsLatest;
}
void
UserUsageConditionsAgreement::SetCode(const BString& value)
{
fCode = value;
}
void
UserUsageConditionsAgreement::SetTimestampAgreed(uint64 value)
{
fTimestampAgreed = value;
}
void
UserUsageConditionsAgreement::SetIsLatest(const bool value)
{
fIsLatest = value;
}
UserUsageConditionsAgreement&
UserUsageConditionsAgreement::operator=(
const UserUsageConditionsAgreement& other)
{
fCode = other.fCode;
fTimestampAgreed = other.fTimestampAgreed;
fIsLatest = other.fIsLatest;
return *this;
}
status_t
UserUsageConditionsAgreement::Archive(BMessage* into, bool deep) const
{
status_t result = B_OK;
if (result == B_OK)
result = into->AddUInt64(KEY_TIMESTAMP_AGREED, fTimestampAgreed);
if (result == B_OK)
result = into->AddString(KEY_CODE, fCode);
if (result == B_OK)
result = into->AddBool(KEY_IS_LATEST, fIsLatest);
return result;
}
UserDetail::UserDetail(BMessage* from)
{
BMessage agreementMessage;
if (from->FindMessage(KEY_AGREEMENT,
&agreementMessage) == B_OK) {
fAgreement = UserUsageConditionsAgreement(&agreementMessage);
}
from->FindString(KEY_NICKNAME, &fNickname);
}
UserDetail::UserDetail()
:
fNickname(),
fAgreement()
{
}
UserDetail::~UserDetail()
{
}
const BString&
UserDetail::Nickname() const
{
return fNickname;
}
const UserUsageConditionsAgreement&
UserDetail::Agreement() const
{
return fAgreement;
}
void
UserDetail::SetNickname(const BString& value)
{
fNickname = value;
}
void
UserDetail::SetAgreement(
const UserUsageConditionsAgreement& value)
{
fAgreement = value;
}
UserDetail&
UserDetail::operator=(const UserDetail& other)
{
fNickname = other.fNickname;
fAgreement = other.fAgreement;
return *this;
}
status_t
UserDetail::Archive(BMessage* into, bool deep) const
{
status_t result = B_OK;
if (result == B_OK) {
BMessage agreementMessage;
result = fAgreement.Archive(&agreementMessage, true);
if (result == B_OK)
result = into->AddMessage(KEY_AGREEMENT, &agreementMessage);
}
if (result == B_OK)
result = into->AddString(KEY_NICKNAME, fNickname);
return result;
}