mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-15 17:41:45 +00:00
zmq: implement alignment
This commit is contained in:
@@ -50,11 +50,12 @@ class Message final : public fair::mq::Message
|
||||
fManager.IncrementMsgCounter();
|
||||
}
|
||||
|
||||
Message(Manager& manager, Alignment /* alignment */, FairMQTransportFactory* factory = nullptr)
|
||||
Message(Manager& manager, Alignment alignment, FairMQTransportFactory* factory = nullptr)
|
||||
: fair::mq::Message(factory)
|
||||
, fManager(manager)
|
||||
, fQueued(false)
|
||||
, fMeta{0, 0, 0, fManager.GetSegmentId(), -1}
|
||||
, fAlignment(alignment.alignment)
|
||||
, fRegionPtr(nullptr)
|
||||
, fLocalPtr(nullptr)
|
||||
{
|
||||
@@ -78,10 +79,11 @@ class Message final : public fair::mq::Message
|
||||
, fManager(manager)
|
||||
, fQueued(false)
|
||||
, fMeta{0, 0, 0, fManager.GetSegmentId(), -1}
|
||||
, fAlignment(alignment.alignment)
|
||||
, fRegionPtr(nullptr)
|
||||
, fLocalPtr(nullptr)
|
||||
{
|
||||
InitializeChunk(size, static_cast<size_t>(alignment));
|
||||
InitializeChunk(size, fAlignment);
|
||||
fManager.IncrementMsgCounter();
|
||||
}
|
||||
|
||||
@@ -142,6 +144,13 @@ class Message final : public fair::mq::Message
|
||||
fQueued = false;
|
||||
}
|
||||
|
||||
void Rebuild(Alignment alignment) override
|
||||
{
|
||||
CloseMessage();
|
||||
fQueued = false;
|
||||
fAlignment = alignment.alignment;
|
||||
}
|
||||
|
||||
void Rebuild(const size_t size) override
|
||||
{
|
||||
CloseMessage();
|
||||
@@ -149,6 +158,14 @@ class Message final : public fair::mq::Message
|
||||
InitializeChunk(size);
|
||||
}
|
||||
|
||||
void Rebuild(const size_t size, Alignment alignment) override
|
||||
{
|
||||
CloseMessage();
|
||||
fQueued = false;
|
||||
fAlignment = alignment.alignment;
|
||||
InitializeChunk(size, fAlignment);
|
||||
}
|
||||
|
||||
void Rebuild(void* data, const size_t size, fairmq_free_fn* ffn, void* hint = nullptr) override
|
||||
{
|
||||
CloseMessage();
|
||||
@@ -242,6 +259,7 @@ class Message final : public fair::mq::Message
|
||||
Manager& fManager;
|
||||
bool fQueued;
|
||||
MetaHeader fMeta;
|
||||
size_t fAlignment; // TODO: put this to debug mode
|
||||
mutable Region* fRegionPtr;
|
||||
mutable char* fLocalPtr;
|
||||
|
||||
@@ -276,8 +294,9 @@ class Message final : public fair::mq::Message
|
||||
}
|
||||
fLocalPtr = nullptr;
|
||||
fMeta.fSize = 0;
|
||||
fAlignment = 0;
|
||||
|
||||
fManager.DecrementMsgCounter();
|
||||
fManager.DecrementMsgCounter(); // TODO: put this to debug mode
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user