FairMQ: add FairMQMessage::Copy(const FairMQMessage& msg), deprecate the old one.

This commit is contained in:
Alexey Rybalchenko
2017-12-08 12:02:08 +01:00
committed by Mohammad Al-Turany
parent e340a52bf2
commit ba78964e29
10 changed files with 90 additions and 21 deletions

View File

@@ -131,12 +131,12 @@ void FairMQMessageNN::Rebuild(void* data, const size_t size, fairmq_free_fn* ffn
}
}
void* FairMQMessageNN::GetMessage()
void* FairMQMessageNN::GetMessage() const
{
return fMessage;
}
void* FairMQMessageNN::GetData()
void* FairMQMessageNN::GetData() const
{
return fMessage;
}
@@ -173,6 +173,30 @@ FairMQ::Transport FairMQMessageNN::GetType() const
return fTransportType;
}
void FairMQMessageNN::Copy(const FairMQMessage& msg)
{
if (fMessage)
{
if (nn_freemsg(fMessage) < 0)
{
LOG(ERROR) << "failed freeing message, reason: " << nn_strerror(errno);
}
}
size_t size = msg.GetSize();
fMessage = nn_allocmsg(size, 0);
if (!fMessage)
{
LOG(ERROR) << "failed allocating message, reason: " << nn_strerror(errno);
}
else
{
memcpy(fMessage, static_cast<const FairMQMessageNN&>(msg).GetMessage(), size);
fSize = size;
}
}
void FairMQMessageNN::Copy(const FairMQMessagePtr& msg)
{
if (fMessage)

View File

@@ -41,13 +41,14 @@ class FairMQMessageNN : public FairMQMessage
void Rebuild(const size_t size) override;
void Rebuild(void* data, const size_t size, fairmq_free_fn* ffn, void* hint = nullptr) override;
void* GetData() override;
void* GetData() const override;
size_t GetSize() const override;
bool SetUsedSize(const size_t size) override;
FairMQ::Transport GetType() const override;
void Copy(const FairMQMessage& msg) override;
void Copy(const FairMQMessagePtr& msg) override;
~FairMQMessageNN() override;
@@ -59,7 +60,7 @@ class FairMQMessageNN : public FairMQMessage
FairMQUnmanagedRegion* fRegionPtr;
static FairMQ::Transport fTransportType;
void* GetMessage();
void* GetMessage() const;
void CloseMessage();
void SetMessage(void* data, const size_t size);
};