Chat-O-Matic/application/Account.cpp

86 lines
1.6 KiB
C++
Raw Normal View History

/*
2011-12-03 16:38:03 -06:00
* Copyright 2009-2011, Andrea Anzani. All rights reserved.
* Copyright 2009-2011, Pier Luigi Fiorini. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Andrea Anzani, andrea.anzani@gmail.com
* Pier Luigi Fiorini, pierluigi.fiorini@gmail.com
*/
#include <stdio.h>
#include <File.h>
#include <Message.h>
#include <Path.h>
#include "Account.h"
2021-06-20 12:44:20 -05:00
#include "Utils.h"
2021-06-20 12:44:20 -05:00
Account::Account(bigtime_t instanceId, ChatProtocol* cayap,
const char* name, const char* addOnSignature, BHandler* target)
2010-05-19 17:28:26 -05:00
:
fIdentifier(instanceId),
fName(name),
fStatus(B_ERROR),
fProtocol(cayap),
fMessenger(target),
fSettings(new BMessage())
{
fProtocol->Init(this);
// Find user's settings path
BPath path = AccountPath(addOnSignature, fProtocol->Signature());
if (path.InitCheck() == B_OK) {
path.Append(name);
fProtocol->SetName(name);
fProtocol->SetAccountCachePath(AccountCachePath(name));
fProtocol->SetAddOnCachePath(AddOnCachePath(addOnSignature));
// Load settings file
BFile file(path.Path(), B_READ_ONLY);
if (fSettings->Unflatten(&file) == B_OK)
if (fSettings->GetBool("disabled", false) == false)
fStatus = fProtocol->UpdateSettings(fSettings);
else
fStatus = B_DONT_DO_THAT;
}
}
Account::~Account()
{
delete fSettings;
}
status_t
Account::InitCheck()
{
return fStatus;
}
bigtime_t
Account::Identifier() const
{
return fIdentifier;
}
const char*
Account::Name() const
{
return fName.String();
}
2010-05-19 17:28:26 -05:00
status_t
Account::SendMessage(BMessage* message)
{
2010-05-20 16:31:55 -05:00
message->AddInt64("instance", fIdentifier);
return fMessenger.SendMessage(message);
}