FairMQ  1.2.3
C++ Message Passing Framework
FairMQMessage.h
1 /********************************************************************************
2  * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 
9 #ifndef FAIRMQMESSAGE_H_
10 #define FAIRMQMESSAGE_H_
11 
12 #include <cstddef> // for size_t
13 #include <memory> // unique_ptr
14 
15 #include <fairmq/Transports.h>
16 
17 using fairmq_free_fn = void(void* data, void* hint);
18 
20 {
21  public:
22  virtual void Rebuild() = 0;
23  virtual void Rebuild(const size_t size) = 0;
24  virtual void Rebuild(void* data, const size_t size, fairmq_free_fn* ffn, void* hint = nullptr) = 0;
25 
26  virtual void* GetData() const = 0;
27  virtual size_t GetSize() const = 0;
28 
29  virtual bool SetUsedSize(const size_t size) = 0;
30 
31  virtual fair::mq::Transport GetType() const = 0;
32 
33  virtual void Copy(const std::unique_ptr<FairMQMessage>& msg) __attribute__((deprecated("Use 'Copy(const FairMQMessage& msg)'"))) = 0;
34  virtual void Copy(const FairMQMessage& msg) = 0;
35 
36  virtual ~FairMQMessage() {};
37 };
38 
39 using FairMQMessagePtr = std::unique_ptr<FairMQMessage>;
40 
41 namespace fair
42 {
43 namespace mq
44 {
45 
46 using Message = FairMQMessage;
47 using MessagePtr = FairMQMessagePtr;
48 struct MessageError : std::runtime_error { using std::runtime_error::runtime_error; };
49 
50 } /* namespace mq */
51 } /* namespace fair */
52 
53 #endif /* FAIRMQMESSAGE_H_ */
Definition: DeviceRunner.h:23
Definition: FairMQMessage.h:19
Definition: FairMQMessage.h:48