Style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37432 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -25,51 +25,52 @@ using BPrivate::Archiving::BUnarchiveManager;
|
|||||||
|
|
||||||
class BArchivable {
|
class BArchivable {
|
||||||
public:
|
public:
|
||||||
BArchivable(BMessage* from);
|
BArchivable(BMessage* from);
|
||||||
BArchivable();
|
BArchivable();
|
||||||
virtual ~BArchivable();
|
virtual ~BArchivable();
|
||||||
|
|
||||||
virtual status_t Archive(BMessage* into, bool deep = true) const;
|
virtual status_t Archive(BMessage* into, bool deep = true) const;
|
||||||
static BArchivable* Instantiate(BMessage* archive);
|
static BArchivable* Instantiate(BMessage* archive);
|
||||||
|
|
||||||
virtual status_t Perform(perform_code d, void* arg);
|
virtual status_t Perform(perform_code d, void* arg);
|
||||||
|
|
||||||
virtual status_t AllUnarchived(const BMessage* archive);
|
virtual status_t AllUnarchived(const BMessage* archive);
|
||||||
virtual status_t AllArchived(BMessage* archive) const;
|
virtual status_t AllArchived(BMessage* archive) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void _ReservedArchivable3();
|
virtual void _ReservedArchivable3();
|
||||||
|
|
||||||
uint32 _reserved[2];
|
uint32 _reserved[2];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class BArchiver {
|
class BArchiver {
|
||||||
public:
|
public:
|
||||||
BArchiver(BMessage* archive);
|
BArchiver(BMessage* archive);
|
||||||
~BArchiver();
|
~BArchiver();
|
||||||
|
|
||||||
status_t AddArchivable(const char* name,
|
status_t AddArchivable(const char* name,
|
||||||
BArchivable* archivable, bool deep = true);
|
BArchivable* archivable, bool deep = true);
|
||||||
|
|
||||||
status_t GetTokenForArchivable(BArchivable* archivable,
|
status_t GetTokenForArchivable(BArchivable* archivable,
|
||||||
int32& _token, bool deep = true);
|
int32& _token, bool deep = true);
|
||||||
|
|
||||||
bool IsArchived(BArchivable* archivable);
|
bool IsArchived(BArchivable* archivable);
|
||||||
status_t Finish();
|
status_t Finish();
|
||||||
BMessage* ArchiveMessage() const;
|
BMessage* ArchiveMessage() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class BArchivable;
|
friend class BArchivable;
|
||||||
|
|
||||||
BArchiver(); // not defined
|
BArchiver(); // not defined
|
||||||
BArchiver(const BArchiver&); // not defined
|
BArchiver(const BArchiver&); // not defined
|
||||||
|
|
||||||
void RegisterArchivable(const BArchivable* archivable);
|
void RegisterArchivable(
|
||||||
|
const BArchivable* archivable);
|
||||||
|
|
||||||
BArchiveManager* fManager;
|
BArchiveManager* fManager;
|
||||||
BMessage* fArchive;
|
BMessage* fArchive;
|
||||||
bool fFinished;
|
bool fFinished;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -100,6 +101,7 @@ public:
|
|||||||
|
|
||||||
static bool IsArchiveManaged(BMessage* archive);
|
static bool IsArchiveManaged(BMessage* archive);
|
||||||
static BMessage* PrepareArchive(BMessage*& archive);
|
static BMessage* PrepareArchive(BMessage*& archive);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class BArchivable;
|
friend class BArchivable;
|
||||||
|
|
||||||
|
|||||||
@@ -191,14 +191,12 @@ class BMessage::Private {
|
|||||||
reply, sendTimeout, replyTimeout);
|
reply, sendTimeout, replyTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void*
|
void*
|
||||||
ArchivingPointer()
|
ArchivingPointer()
|
||||||
{
|
{
|
||||||
return fMessage->fArchivingPointer;
|
return fMessage->fArchivingPointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
SetArchivingPointer(void* pointer)
|
SetArchivingPointer(void* pointer)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -295,8 +295,10 @@ BArchivable::AllArchived(BMessage* archive) const
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
BArchiver::BArchiver(BMessage* archive)
|
BArchiver::BArchiver(BMessage* archive)
|
||||||
:
|
:
|
||||||
fManager(BManagerBase::ArchiveManager(archive)),
|
fManager(BManagerBase::ArchiveManager(archive)),
|
||||||
@@ -744,9 +746,11 @@ find_instantiation_func(BMessage* archive)
|
|||||||
return find_instantiation_func(name, signature);
|
return find_instantiation_func(name, signature);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// BArchivable binary compatability
|
// BArchivable binary compatability
|
||||||
#if __GNUC__ == 2
|
#if __GNUC__ == 2
|
||||||
|
|
||||||
|
|
||||||
extern "C" status_t
|
extern "C" status_t
|
||||||
_ReservedArchivable1__11BArchivable(BArchivable* archivable,
|
_ReservedArchivable1__11BArchivable(BArchivable* archivable,
|
||||||
const BMessage* archive)
|
const BMessage* archive)
|
||||||
@@ -759,6 +763,7 @@ _ReservedArchivable1__11BArchivable(BArchivable* archivable,
|
|||||||
return performData.return_value;
|
return performData.return_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern "C" status_t
|
extern "C" status_t
|
||||||
_ReservedArchivable2__11BArchivable(BArchivable* archivable,
|
_ReservedArchivable2__11BArchivable(BArchivable* archivable,
|
||||||
BMessage* archive)
|
BMessage* archive)
|
||||||
@@ -771,8 +776,10 @@ _ReservedArchivable2__11BArchivable(BArchivable* archivable,
|
|||||||
return performData.return_value;
|
return performData.return_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#elif __GNUC__ > 2
|
#elif __GNUC__ > 2
|
||||||
|
|
||||||
|
|
||||||
extern "C" status_t
|
extern "C" status_t
|
||||||
_ZN11BArchivable20_ReservedArchivable1Ev(BArchivable* archivable,
|
_ZN11BArchivable20_ReservedArchivable1Ev(BArchivable* archivable,
|
||||||
const BMessage* archive)
|
const BMessage* archive)
|
||||||
@@ -785,6 +792,7 @@ _ZN11BArchivable20_ReservedArchivable1Ev(BArchivable* archivable,
|
|||||||
return performData.return_value;
|
return performData.return_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern "C" status_t
|
extern "C" status_t
|
||||||
_ZN11BArchivable20_ReservedArchivable2Ev(BArchivable* archivable,
|
_ZN11BArchivable20_ReservedArchivable2Ev(BArchivable* archivable,
|
||||||
BMessage* archive)
|
BMessage* archive)
|
||||||
@@ -797,8 +805,10 @@ _ZN11BArchivable20_ReservedArchivable2Ev(BArchivable* archivable,
|
|||||||
return performData.return_value;
|
return performData.return_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // _GNUC__ > 2
|
#endif // _GNUC__ > 2
|
||||||
|
|
||||||
|
|
||||||
void BArchivable::_ReservedArchivable3() {}
|
void BArchivable::_ReservedArchivable3() {}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ namespace Archiving {
|
|||||||
const char* kArchiveCountField = "_managed_archive_count";
|
const char* kArchiveCountField = "_managed_archive_count";
|
||||||
const char* kArchivableField = "_managed_archivable";
|
const char* kArchivableField = "_managed_archivable";
|
||||||
const char* kTokenField = "_managed_token";
|
const char* kTokenField = "_managed_token";
|
||||||
} }
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
using namespace BPrivate::Archiving;
|
using namespace BPrivate::Archiving;
|
||||||
@@ -111,6 +112,7 @@ BArchiveManager::GetTokenForArchivable(BArchivable* archivable, int32& _token)
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
BArchiveManager::ArchiveObject(BArchivable* archivable, bool deep)
|
BArchiveManager::ArchiveObject(BArchivable* archivable, bool deep)
|
||||||
{
|
{
|
||||||
@@ -127,9 +129,10 @@ BArchiveManager::ArchiveObject(BArchivable* archivable, bool deep)
|
|||||||
MarkArchive(info.archive);
|
MarkArchive(info.archive);
|
||||||
status_t err = archivable->Archive(info.archive, deep);
|
status_t err = archivable->Archive(info.archive, deep);
|
||||||
|
|
||||||
if (err != B_OK)
|
if (err != B_OK) {
|
||||||
fTokenMap.erase(archivable);
|
fTokenMap.erase(archivable);
|
||||||
// info.archive gets deleted here
|
// info.archive gets deleted here
|
||||||
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -141,7 +144,7 @@ BArchiveManager::IsArchived(BArchivable* archivable)
|
|||||||
if (!archivable)
|
if (!archivable)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return (fTokenMap.find(archivable) != fTokenMap.end());
|
return fTokenMap.find(archivable) != fTokenMap.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -149,14 +152,12 @@ status_t
|
|||||||
BArchiveManager::ArchiverLeaving(const BArchiver* archiver)
|
BArchiveManager::ArchiverLeaving(const BArchiver* archiver)
|
||||||
{
|
{
|
||||||
if (archiver == fCreator) {
|
if (archiver == fCreator) {
|
||||||
|
|
||||||
// first, we must sort the objects into the order they were archived in
|
// first, we must sort the objects into the order they were archived in
|
||||||
typedef std::pair<BMessage*, const BArchivable*> archivePair ;
|
typedef std::pair<BMessage*, const BArchivable*> ArchivePair;
|
||||||
archivePair pairs[fTokenMap.size()];
|
ArchivePair pairs[fTokenMap.size()];
|
||||||
|
|
||||||
for(TokenMap::iterator it = fTokenMap.begin(), end = fTokenMap.end();
|
for(TokenMap::iterator it = fTokenMap.begin(), end = fTokenMap.end();
|
||||||
it != end; it++) {
|
it != end; it++) {
|
||||||
|
|
||||||
ArchiveInfo& info = it->second;
|
ArchiveInfo& info = it->second;
|
||||||
pairs[info.token].first = info.archive;
|
pairs[info.token].first = info.archive;
|
||||||
pairs[info.token].second = it->first;
|
pairs[info.token].second = it->first;
|
||||||
@@ -169,8 +170,7 @@ BArchiveManager::ArchiverLeaving(const BArchiver* archiver)
|
|||||||
status_t err = B_ERROR;
|
status_t err = B_ERROR;
|
||||||
int32 count = fTokenMap.size();
|
int32 count = fTokenMap.size();
|
||||||
for (int32 i = 0; i < count; i++) {
|
for (int32 i = 0; i < count; i++) {
|
||||||
|
const ArchivePair& pair = pairs[i];
|
||||||
const archivePair& pair = pairs[i];
|
|
||||||
err = pair.second->AllArchived(pair.first);
|
err = pair.second->AllArchived(pair.first);
|
||||||
|
|
||||||
if (err == B_OK && i > 0) {
|
if (err == B_OK && i > 0) {
|
||||||
@@ -228,6 +228,7 @@ struct BUnarchiveManager::ArchiveInfo {
|
|||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
BUnarchiveManager::BUnarchiveManager(BMessage* archive)
|
BUnarchiveManager::BUnarchiveManager(BMessage* archive)
|
||||||
:
|
:
|
||||||
BManagerBase(archive, BManagerBase::UNARCHIVE_MANAGER),
|
BManagerBase(archive, BManagerBase::UNARCHIVE_MANAGER),
|
||||||
@@ -308,7 +309,6 @@ status_t
|
|||||||
BUnarchiveManager::UnarchiverLeaving(const BUnarchiver* unarchiver)
|
BUnarchiveManager::UnarchiverLeaving(const BUnarchiver* unarchiver)
|
||||||
{
|
{
|
||||||
if (--fRefCount == 0) {
|
if (--fRefCount == 0) {
|
||||||
|
|
||||||
fRefCount = -1;
|
fRefCount = -1;
|
||||||
// make sure we de not end up here again!
|
// make sure we de not end up here again!
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include <Archivable.h>
|
#include <Archivable.h>
|
||||||
|
|
||||||
|
|
||||||
namespace BPrivate {
|
namespace BPrivate {
|
||||||
namespace Archiving {
|
namespace Archiving {
|
||||||
|
|
||||||
@@ -21,6 +22,7 @@ extern const char* kArchiveCountField;
|
|||||||
extern const char* kArchivableField;
|
extern const char* kArchivableField;
|
||||||
extern const char* kTokenField;
|
extern const char* kTokenField;
|
||||||
|
|
||||||
|
|
||||||
class BManagerBase {
|
class BManagerBase {
|
||||||
public:
|
public:
|
||||||
enum manager_type {
|
enum manager_type {
|
||||||
@@ -80,11 +82,12 @@ public:
|
|||||||
static BUnarchiveManager* UnarchiveManager(const BMessage* archive);
|
static BUnarchiveManager* UnarchiveManager(const BMessage* archive);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
~BManagerBase()
|
~BManagerBase()
|
||||||
{
|
{
|
||||||
UnmarkArchive(fTopLevelArchive);
|
UnmarkArchive(fTopLevelArchive);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
BMessage* fTopLevelArchive;
|
BMessage* fTopLevelArchive;
|
||||||
manager_type fType;
|
manager_type fType;
|
||||||
};
|
};
|
||||||
@@ -92,21 +95,23 @@ protected:
|
|||||||
|
|
||||||
class BArchiveManager: public BManagerBase {
|
class BArchiveManager: public BManagerBase {
|
||||||
public:
|
public:
|
||||||
BArchiveManager(const BArchiver* creator);
|
BArchiveManager(const BArchiver* creator);
|
||||||
|
|
||||||
status_t GetTokenForArchivable(BArchivable* archivable,
|
status_t GetTokenForArchivable(BArchivable* archivable,
|
||||||
int32& _token);
|
int32& _token);
|
||||||
|
|
||||||
status_t ArchiveObject(BArchivable* archivable, bool deep);
|
status_t ArchiveObject(BArchivable* archivable,
|
||||||
|
bool deep);
|
||||||
|
|
||||||
bool IsArchived(BArchivable* archivable);
|
bool IsArchived(BArchivable* archivable);
|
||||||
|
|
||||||
status_t ArchiverLeaving(const BArchiver* archiver);
|
status_t ArchiverLeaving(const BArchiver* archiver);
|
||||||
void Acquire();
|
void Acquire();
|
||||||
void RegisterArchivable(const BArchivable* archivable);
|
void RegisterArchivable(
|
||||||
|
const BArchivable* archivable);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
~BArchiveManager();
|
~BArchiveManager();
|
||||||
|
|
||||||
struct ArchiveInfo;
|
struct ArchiveInfo;
|
||||||
typedef std::map<const BArchivable*, ArchiveInfo> TokenMap;
|
typedef std::map<const BArchivable*, ArchiveInfo> TokenMap;
|
||||||
@@ -120,27 +125,29 @@ private:
|
|||||||
|
|
||||||
class BUnarchiveManager: public BManagerBase {
|
class BUnarchiveManager: public BManagerBase {
|
||||||
public:
|
public:
|
||||||
BUnarchiveManager(BMessage* topLevelArchive);
|
BUnarchiveManager(BMessage* topLevelArchive);
|
||||||
|
|
||||||
status_t ArchivableForToken(BArchivable** archivable,
|
status_t ArchivableForToken(BArchivable** archivable,
|
||||||
int32 token);
|
int32 token);
|
||||||
|
|
||||||
bool IsInstantiated(int32 token);
|
bool IsInstantiated(int32 token);
|
||||||
|
|
||||||
void RegisterArchivable(BArchivable* archivable);
|
void RegisterArchivable(BArchivable* archivable);
|
||||||
status_t UnarchiverLeaving(const BUnarchiver* archiver);
|
status_t UnarchiverLeaving(const BUnarchiver* archiver);
|
||||||
void Acquire();
|
void Acquire();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
~BUnarchiveManager();
|
~BUnarchiveManager();
|
||||||
status_t _ExtractArchiveAt(int32 index);
|
|
||||||
status_t _InstantiateObjectForToken(int32 token);
|
|
||||||
|
|
||||||
struct ArchiveInfo;
|
status_t _ExtractArchiveAt(int32 index);
|
||||||
ArchiveInfo* fObjects;
|
status_t _InstantiateObjectForToken(int32 token);
|
||||||
int32 fObjectCount;
|
|
||||||
int32 fTokenInProgress;
|
struct ArchiveInfo;
|
||||||
int32 fRefCount;
|
|
||||||
|
ArchiveInfo* fObjects;
|
||||||
|
int32 fObjectCount;
|
||||||
|
int32 fTokenInProgress;
|
||||||
|
int32 fRefCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user