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