Define copy/move ctors and assignment ops

Delete special member functions where they are not used.
(as part of applying suggestions from cppcoreguidelines-special-member-functions)

These classes don't need to be copyable/movable:
  # copy/move not used:
  zmq:: TransportFactory, Socket, Message, UnmanagedRegion, Poller, Context
  shm:: TransportFactory, Socket, Message, UnmanagedRegion, Poller
  ofi:: TransportFactory, Socket, Message, Context
  shm:: ZMsg, Region, Monitor, TerminalConfig, Manager
  plugins:: Config, Control, TerminalConfig
  fairmq::StateQueue, StateMachine, ProgOptions, PluginServices, PluginManager, Plugin, Device, StateSubscription
  TestData, BadDevice, TestDevice (test suite heplers)

  # used via ptr interface:
  fairmq::UnmanagedRegion, TransportFactory, Socket, Poller, Message

These classes need to be movable/copyable:
 MyClass (test suite helper), fairmq::Channel, fairmq::Parts
This commit is contained in:
Alexey Rybalchenko 2021-09-14 11:38:33 +02:00 committed by Dennis Klein
parent 597d88277b
commit ad824b4de1
42 changed files with 174 additions and 47 deletions

View File

@ -9,7 +9,6 @@
#ifndef FAIR_MQ_CHANNEL_H #ifndef FAIR_MQ_CHANNEL_H
#define FAIR_MQ_CHANNEL_H #define FAIR_MQ_CHANNEL_H
#include <cstdint> // int64_t
#include <fairmq/Message.h> #include <fairmq/Message.h>
#include <fairmq/Parts.h> #include <fairmq/Parts.h>
#include <fairmq/Properties.h> #include <fairmq/Properties.h>
@ -17,8 +16,9 @@
#include <fairmq/TransportFactory.h> #include <fairmq/TransportFactory.h>
#include <fairmq/Transports.h> #include <fairmq/Transports.h>
#include <fairmq/UnmanagedRegion.h> #include <fairmq/UnmanagedRegion.h>
#include <cstdint> // int64_t
#include <memory> // unique_ptr, shared_ptr #include <memory> // unique_ptr, shared_ptr
#include <mutex>
#include <stdexcept> #include <stdexcept>
#include <string> #include <string>
#include <utility> // std::move #include <utility> // std::move
@ -73,16 +73,16 @@ class Channel
Channel(const Channel&, std::string name); Channel(const Channel&, std::string name);
/// Move constructor /// Move constructor
// Channel(Channel&&) = delete; Channel(Channel&&) = default;
/// Assignment operator /// Assignment operator
Channel& operator=(const Channel&); Channel& operator=(const Channel&);
/// Move assignment operator /// Move assignment operator
// Channel& operator=(Channel&&) = delete; Channel& operator=(Channel&&) = default;
/// Destructor /// Destructor
virtual ~Channel() = default; ~Channel() = default;
// { LOG(warn) << "Destroying channel '" << fName << "'"; } // { LOG(warn) << "Destroying channel '" << fName << "'"; }
struct ChannelConfigurationError : std::runtime_error { using std::runtime_error::runtime_error; }; struct ChannelConfigurationError : std::runtime_error { using std::runtime_error::runtime_error; };

View File

@ -47,6 +47,11 @@ struct StateSubscription
}); });
} }
StateSubscription(const StateSubscription&) = delete;
StateSubscription(StateSubscription&&) = delete;
StateSubscription& operator=(const StateSubscription&) = delete;
StateSubscription& operator=(StateSubscription&&) = delete;
~StateSubscription() { ~StateSubscription() {
fStateMachine.UnsubscribeFromStateChange(fId); fStateMachine.UnsubscribeFromStateChange(fId);
} }

View File

@ -61,7 +61,9 @@ class Device
public: public:
Device(const Device&) = delete; Device(const Device&) = delete;
Device operator=(const Device&) = delete; Device(Device&&) = delete;
Device& operator=(const Device&) = delete;
Device& operator=(Device&&) = delete;
virtual ~Device(); virtual ~Device();
/// Outputs the socket transfer rates /// Outputs the socket transfer rates

View File

@ -32,6 +32,11 @@ struct Message
: fTransport(factory) : fTransport(factory)
{} {}
Message(const Message&) = delete;
Message(Message&&) = delete;
Message& operator=(const Message&) = delete;
Message& operator=(Message&&) = delete;
virtual void Rebuild() = 0; virtual void Rebuild() = 0;
virtual void Rebuild(Alignment alignment) = 0; virtual void Rebuild(Alignment alignment) = 0;
virtual void Rebuild(size_t size) = 0; virtual void Rebuild(size_t size) = 0;

View File

@ -25,13 +25,11 @@ class Parts
public: public:
Parts() = default; Parts() = default;
Parts(const Parts&) = delete; Parts(const Parts&) = delete;
Parts(Parts&& p) = default; Parts(Parts&&) = default;
Parts& operator=(const Parts&) = delete;
template<typename... Ts> template<typename... Ts>
Parts(Ts&&... messages) Parts(Ts&&... messages) { AddPart(std::forward<Ts>(messages)...); }
{ Parts& operator=(const Parts&) = delete;
AddPart(std::forward<Ts>(messages)...); Parts& operator=(Parts&&) = default;
}
~Parts() = default; ~Parts() = default;
/// Adds part (Message) to the container /// Adds part (Message) to the container

View File

@ -48,7 +48,9 @@ class Plugin
PluginServices* pluginServices); PluginServices* pluginServices);
Plugin(const Plugin&) = delete; Plugin(const Plugin&) = delete;
Plugin operator=(const Plugin&) = delete; Plugin(Plugin&&) = delete;
Plugin& operator=(const Plugin&) = delete;
Plugin& operator=(Plugin&&) = delete;
virtual ~Plugin(); virtual ~Plugin();

View File

@ -49,6 +49,10 @@ class PluginManager
using PluginFactory = std::unique_ptr<fair::mq::Plugin>(PluginServices&); using PluginFactory = std::unique_ptr<fair::mq::Plugin>(PluginServices&);
PluginManager(); PluginManager();
PluginManager(const PluginManager&) = delete;
PluginManager(PluginManager&&) = delete;
PluginManager& operator=(const PluginManager&) = delete;
PluginManager& operator=(PluginManager&&) = delete;
PluginManager(const std::vector<std::string>& args); PluginManager(const std::vector<std::string>& args);
~PluginManager() ~PluginManager()

View File

@ -51,7 +51,9 @@ class PluginServices
} }
PluginServices(const PluginServices&) = delete; PluginServices(const PluginServices&) = delete;
PluginServices operator=(const PluginServices&) = delete; PluginServices(PluginServices&&) = delete;
PluginServices& operator=(const PluginServices&) = delete;
PluginServices& operator=(PluginServices&&) = delete;
using DeviceState = fair::mq::State; using DeviceState = fair::mq::State;
using DeviceStateTransition = fair::mq::Transition; using DeviceStateTransition = fair::mq::Transition;

View File

@ -17,6 +17,12 @@ namespace fair::mq {
struct Poller struct Poller
{ {
Poller() = default;
Poller(const Poller&) = delete;
Poller(Poller&&) = delete;
Poller& operator=(const Poller&) = delete;
Poller& operator=(Poller&&) = delete;
virtual void Poll(int timeout) = 0; virtual void Poll(int timeout) = 0;
virtual bool CheckInput(int index) = 0; virtual bool CheckInput(int index) = 0;
virtual bool CheckOutput(int index) = 0; virtual bool CheckOutput(int index) = 0;

View File

@ -33,7 +33,11 @@ class ProgOptions
{ {
public: public:
ProgOptions(); ProgOptions();
virtual ~ProgOptions() = default; ProgOptions(const ProgOptions&) = delete;
ProgOptions(ProgOptions&&) = delete;
ProgOptions& operator=(const ProgOptions&) = delete;
ProgOptions& operator=(ProgOptions&&) = delete;
~ProgOptions() = default;
void ParseAll(const std::vector<std::string>& cmdArgs, bool allowUnregistered); void ParseAll(const std::vector<std::string>& cmdArgs, bool allowUnregistered);
void ParseAll(int argc, char const* const* argv, bool allowUnregistered = true); void ParseAll(int argc, char const* const* argv, bool allowUnregistered = true);

View File

@ -30,9 +30,11 @@ enum class TransferCode : int
struct Socket struct Socket
{ {
Socket() = default; Socket() = default;
Socket(TransportFactory* fac) Socket(TransportFactory* fac) : fTransport(fac) {}
: fTransport(fac) Socket(const Socket&) = delete;
{} Socket(Socket&&) = delete;
Socket& operator=(const Socket&) = delete;
Socket& operator=(Socket&&) = delete;
virtual std::string GetId() const = 0; virtual std::string GetId() const = 0;

View File

@ -84,8 +84,6 @@ struct Machine_ : public state_machine_def<Machine_>
, fNewStatePending(false) , fNewStatePending(false)
{} {}
virtual ~Machine_() = default;
// initial states // initial states
using initial_state = bmpl::vector<IDLE_S, OK_S>; using initial_state = bmpl::vector<IDLE_S, OK_S>;

View File

@ -23,7 +23,11 @@ class StateMachine
{ {
public: public:
StateMachine(); StateMachine();
virtual ~StateMachine(); StateMachine(const StateMachine&) = delete;
StateMachine(StateMachine&&) = delete;
StateMachine& operator=(const StateMachine&) = delete;
StateMachine& operator=(StateMachine&&) = delete;
~StateMachine();
bool ChangeState(Transition transition); bool ChangeState(Transition transition);
bool ChangeState(const std::string& transition) { return ChangeState(GetTransition(transition)); } bool ChangeState(const std::string& transition) { return ChangeState(GetTransition(transition)); }

View File

@ -24,6 +24,10 @@ class StateQueue
{ {
public: public:
StateQueue() = default; StateQueue() = default;
StateQueue(const StateQueue&) = delete;
StateQueue(StateQueue&&) = delete;
StateQueue& operator=(const StateQueue&) = delete;
StateQueue& operator=(StateQueue&&) = delete;
~StateQueue() = default; ~StateQueue() = default;
fair::mq::State WaitForNext() fair::mq::State WaitForNext()

View File

@ -43,6 +43,11 @@ class TransportFactory
: fkId(std::move(id)) : fkId(std::move(id))
{} {}
TransportFactory(const TransportFactory&) = delete;
TransportFactory(TransportFactory&&) = delete;
TransportFactory& operator=(const TransportFactory&) = delete;
TransportFactory& operator=(TransportFactory&&) = delete;
auto GetId() const -> const std::string { return fkId; }; auto GetId() const -> const std::string { return fkId; };
/// Get a pointer to the associated polymorphic memory resource /// Get a pointer to the associated polymorphic memory resource

View File

@ -78,6 +78,11 @@ struct UnmanagedRegion
: fTransport(factory) : fTransport(factory)
{} {}
UnmanagedRegion(const UnmanagedRegion&) = delete;
UnmanagedRegion(UnmanagedRegion&&) = delete;
UnmanagedRegion& operator=(const UnmanagedRegion&) = delete;
UnmanagedRegion& operator=(UnmanagedRegion&&) = delete;
virtual void* GetData() const = 0; virtual void* GetData() const = 0;
virtual size_t GetSize() const = 0; virtual size_t GetSize() const = 0;
virtual uint16_t GetId() const = 0; virtual uint16_t GetId() const = 0;

View File

@ -54,6 +54,10 @@ class Context
Context(FairMQTransportFactory& sendFactory, Context(FairMQTransportFactory& sendFactory,
FairMQTransportFactory& receiveFactory, FairMQTransportFactory& receiveFactory,
int numberIoThreads = 1); int numberIoThreads = 1);
Context(const Context&) = delete;
Context(Context&&) = delete;
Context& operator=(const Context&) = delete;
Context& operator=(Context&&) = delete;
~Context(); ~Context();
auto GetAsiofiVersion() const -> std::string; auto GetAsiofiVersion() const -> std::string;

View File

@ -46,7 +46,9 @@ class Message final : public fair::mq::Message
void* hint = 0); void* hint = 0);
Message(const Message&) = delete; Message(const Message&) = delete;
Message operator=(const Message&) = delete; Message(Message&&) = delete;
Message& operator=(const Message&) = delete;
Message& operator=(Message&&) = delete;
auto Rebuild() -> void override; auto Rebuild() -> void override;
auto Rebuild(Alignment alignment) -> void override; auto Rebuild(Alignment alignment) -> void override;

View File

@ -36,7 +36,9 @@ class Socket final : public fair::mq::Socket
public: public:
Socket(Context& context, const std::string& type, const std::string& name, const std::string& id = ""); Socket(Context& context, const std::string& type, const std::string& name, const std::string& id = "");
Socket(const Socket&) = delete; Socket(const Socket&) = delete;
Socket operator=(const Socket&) = delete; Socket(Socket&&) = delete;
Socket& operator=(const Socket&) = delete;
Socket& operator=(Socket&&) = delete;
auto GetId() const -> std::string override { return fId; } auto GetId() const -> std::string override { return fId; }

View File

@ -55,10 +55,11 @@ struct TransportFactory final : mq::TransportFactory
} }
} }
TransportFactory(TransportFactory const&) = delete; TransportFactory(const TransportFactory&) = delete;
TransportFactory& operator=(TransportFactory const&) = delete; TransportFactory(TransportFactory&&) = delete;
TransportFactory(TransportFactory&&) = default; TransportFactory& operator=(const TransportFactory&) = delete;
TransportFactory& operator=(TransportFactory&&) = default; TransportFactory& operator=(TransportFactory&&) = delete;
~TransportFactory() = default;
auto CreateMessage() -> std::unique_ptr<mq::Message> override auto CreateMessage() -> std::unique_ptr<mq::Message> override
{ {

View File

@ -21,6 +21,10 @@ class Config : public Plugin
{ {
public: public:
Config(const std::string& name, Plugin::Version version, const std::string& maintainer, const std::string& homepage, PluginServices* pluginServices); Config(const std::string& name, Plugin::Version version, const std::string& maintainer, const std::string& homepage, PluginServices* pluginServices);
Config(const Config&) = delete;
Config(Config&&) = delete;
Config& operator=(const Config&) = delete;
Config& operator=(Config&&) = delete;
~Config(); ~Config();
}; };

View File

@ -119,9 +119,9 @@ auto ControlPluginProgramOptions() -> Plugin::ProgOptions
return pluginOptions; return pluginOptions;
} }
struct terminal_config struct TerminalConfig
{ {
terminal_config() TerminalConfig()
{ {
termios t; termios t;
tcgetattr(STDIN_FILENO, &t); // get the current terminal I/O structure tcgetattr(STDIN_FILENO, &t); // get the current terminal I/O structure
@ -130,7 +130,12 @@ struct terminal_config
tcsetattr(STDIN_FILENO, TCSANOW, &t); // apply the new settings tcsetattr(STDIN_FILENO, TCSANOW, &t); // apply the new settings
} }
~terminal_config() TerminalConfig(const TerminalConfig&) = delete;
TerminalConfig(TerminalConfig&&) = delete;
TerminalConfig& operator=(const TerminalConfig&) = delete;
TerminalConfig& operator=(TerminalConfig&&) = delete;
~TerminalConfig()
{ {
termios t; termios t;
tcgetattr(STDIN_FILENO, &t); // get the current terminal I/O structure tcgetattr(STDIN_FILENO, &t); // get the current terminal I/O structure
@ -150,7 +155,7 @@ try {
cinfd[0].events = POLLIN; cinfd[0].events = POLLIN;
cinfd[0].revents = 0; cinfd[0].revents = 0;
terminal_config tconfig; TerminalConfig tconfig;
bool color = GetProperty<bool>("color"); bool color = GetProperty<bool>("color");

View File

@ -28,6 +28,10 @@ class Control : public Plugin
{ {
public: public:
Control(const std::string& name, Plugin::Version version, const std::string& maintainer, const std::string& homepage, PluginServices* pluginServices); Control(const std::string& name, Plugin::Version version, const std::string& maintainer, const std::string& homepage, PluginServices* pluginServices);
Control(const Control&) = delete;
Control(Control&&) = delete;
Control& operator=(const Control&) = delete;
Control& operator=(Control&&) = delete;
~Control(); ~Control();

View File

@ -293,9 +293,10 @@ class Manager
} }
Manager() = delete; Manager() = delete;
Manager(const Manager&) = delete; Manager(const Manager&) = delete;
Manager operator=(const Manager&) = delete; Manager(Manager&&) = delete;
Manager& operator=(const Manager&) = delete;
Manager& operator=(Manager&&) = delete;
void ZeroSegment(uint16_t id) void ZeroSegment(uint16_t id)
{ {

View File

@ -136,7 +136,9 @@ class Message final : public fair::mq::Message
} }
Message(const Message&) = delete; Message(const Message&) = delete;
Message operator=(const Message&) = delete; Message(Message&&) = delete;
Message& operator=(const Message&) = delete;
Message& operator=(Message&&) = delete;
void Rebuild() override void Rebuild() override
{ {

View File

@ -60,6 +60,11 @@ struct TerminalConfig
tcsetattr(STDIN_FILENO, TCSANOW, &t); // apply the new settings tcsetattr(STDIN_FILENO, TCSANOW, &t); // apply the new settings
} }
TerminalConfig(const TerminalConfig&) = delete;
TerminalConfig(TerminalConfig&&) = delete;
TerminalConfig& operator=(const TerminalConfig&) = delete;
TerminalConfig& operator=(TerminalConfig&&) = delete;
~TerminalConfig() ~TerminalConfig()
{ {
termios t; termios t;

View File

@ -53,9 +53,10 @@ class Monitor
{ {
public: public:
Monitor(std::string shmId, bool selfDestruct, bool interactive, bool viewOnly, unsigned int timeoutInMS, unsigned int intervalInMS, bool runAsDaemon, bool cleanOnExit); Monitor(std::string shmId, bool selfDestruct, bool interactive, bool viewOnly, unsigned int timeoutInMS, unsigned int intervalInMS, bool runAsDaemon, bool cleanOnExit);
Monitor(const Monitor&) = delete; Monitor(const Monitor&) = delete;
Monitor operator=(const Monitor&) = delete; Monitor(Monitor&&) = delete;
Monitor& operator=(const Monitor&) = delete;
Monitor& operator=(Monitor&&) = delete;
virtual ~Monitor(); virtual ~Monitor();

View File

@ -102,7 +102,9 @@ class Poller final : public fair::mq::Poller
} }
Poller(const Poller&) = delete; Poller(const Poller&) = delete;
Poller operator=(const Poller&) = delete; Poller(Poller&&) = delete;
Poller& operator=(const Poller&) = delete;
Poller& operator=(Poller&&) = delete;
void SetItemEvents(zmq_pollitem_t& item, int type) void SetItemEvents(zmq_pollitem_t& item, int type)
{ {

View File

@ -113,6 +113,8 @@ struct Region
Region(const Region&) = delete; Region(const Region&) = delete;
Region(Region&&) = delete; Region(Region&&) = delete;
Region& operator=(const Region&) = delete;
Region& operator=(Region&&) = delete;
void InitializeQueues() void InitializeQueues()
{ {

View File

@ -35,6 +35,11 @@ struct ZMsg
explicit ZMsg(size_t size) { int rc __attribute__((unused)) = zmq_msg_init_size(&fMsg, size); assert(rc == 0); } explicit ZMsg(size_t size) { int rc __attribute__((unused)) = zmq_msg_init_size(&fMsg, size); assert(rc == 0); }
~ZMsg() { int rc __attribute__((unused)) = zmq_msg_close(&fMsg); assert(rc == 0); } ~ZMsg() { int rc __attribute__((unused)) = zmq_msg_close(&fMsg); assert(rc == 0); }
ZMsg(const ZMsg&) = delete;
ZMsg(ZMsg&&) = delete;
ZMsg& operator=(const ZMsg&) = delete;
ZMsg& operator=(ZMsg&&) = delete;
void* Data() { return zmq_msg_data(&fMsg); } void* Data() { return zmq_msg_data(&fMsg); }
size_t Size() { return zmq_msg_size(&fMsg); } size_t Size() { return zmq_msg_size(&fMsg); }
zmq_msg_t* Msg() { return &fMsg; } zmq_msg_t* Msg() { return &fMsg; }
@ -100,7 +105,9 @@ class Socket final : public fair::mq::Socket
} }
Socket(const Socket&) = delete; Socket(const Socket&) = delete;
Socket operator=(const Socket&) = delete; Socket(Socket&&) = delete;
Socket& operator=(const Socket&) = delete;
Socket& operator=(Socket&&) = delete;
std::string GetId() const override { return fId; } std::string GetId() const override { return fId; }

View File

@ -89,7 +89,9 @@ class TransportFactory final : public fair::mq::TransportFactory
} }
TransportFactory(const TransportFactory&) = delete; TransportFactory(const TransportFactory&) = delete;
TransportFactory operator=(const TransportFactory&) = delete; TransportFactory(TransportFactory&&) = delete;
TransportFactory& operator=(const TransportFactory&) = delete;
TransportFactory& operator=(TransportFactory&&) = delete;
MessagePtr CreateMessage() override MessagePtr CreateMessage() override
{ {

View File

@ -51,6 +51,11 @@ class UnmanagedRegion final : public fair::mq::UnmanagedRegion
fRegionId = result.second; fRegionId = result.second;
} }
UnmanagedRegion(const UnmanagedRegion&) = delete;
UnmanagedRegion(UnmanagedRegion&&) = delete;
UnmanagedRegion& operator=(const UnmanagedRegion&) = delete;
UnmanagedRegion& operator=(UnmanagedRegion&&) = delete;
void* GetData() const override { return fRegion->get_address(); } void* GetData() const override { return fRegion->get_address(); }
size_t GetSize() const override { return fRegion->get_size(); } size_t GetSize() const override { return fRegion->get_size(); }
uint16_t GetId() const override { return fRegionId; } uint16_t GetId() const override { return fRegionId; }

View File

@ -56,7 +56,9 @@ class Context
} }
Context(const Context&) = delete; Context(const Context&) = delete;
Context operator=(const Context&) = delete; Context(Context&&) = delete;
Context& operator=(const Context&) = delete;
Context& operator=(Context&&) = delete;
void SubscribeToRegionEvents(RegionEventCallback callback) void SubscribeToRegionEvents(RegionEventCallback callback)
{ {

View File

@ -33,6 +33,11 @@ class Message final : public fair::mq::Message
friend class Socket; friend class Socket;
public: public:
Message(const Message&) = delete;
Message(Message&&) = delete;
Message& operator=(const Message&) = delete;
Message& operator=(Message&&) = delete;
Message(FairMQTransportFactory* factory = nullptr) Message(FairMQTransportFactory* factory = nullptr)
: fair::mq::Message(factory) : fair::mq::Message(factory)
, fMsg(std::make_unique<zmq_msg_t>()) , fMsg(std::make_unique<zmq_msg_t>())

View File

@ -24,6 +24,12 @@ namespace fair::mq::zmq
class Poller final : public fair::mq::Poller class Poller final : public fair::mq::Poller
{ {
public: public:
Poller() = default;
Poller(const Poller&) = delete;
Poller(Poller&&) = delete;
Poller& operator=(const Poller&) = delete;
Poller& operator=(Poller&&) = delete;
Poller(const std::vector<Channel>& channels) Poller(const std::vector<Channel>& channels)
: fItems() : fItems()
, fNumItems(0) , fNumItems(0)
@ -102,9 +108,6 @@ class Poller final : public fair::mq::Poller
} }
} }
Poller(const Poller&) = delete;
Poller operator=(const Poller&) = delete;
void SetItemEvents(zmq_pollitem_t& item, int type) void SetItemEvents(zmq_pollitem_t& item, int type)
{ {
if (type == ZMQ_REQ || type == ZMQ_REP || type == ZMQ_PAIR || type == ZMQ_DEALER || type == ZMQ_ROUTER) { if (type == ZMQ_REQ || type == ZMQ_REP || type == ZMQ_PAIR || type == ZMQ_DEALER || type == ZMQ_ROUTER) {

View File

@ -72,7 +72,9 @@ class Socket final : public fair::mq::Socket
} }
Socket(const Socket&) = delete; Socket(const Socket&) = delete;
Socket operator=(const Socket&) = delete; Socket(Socket&&) = delete;
Socket& operator=(const Socket&) = delete;
Socket& operator=(Socket&&) = delete;
std::string GetId() const override { return fId; } std::string GetId() const override { return fId; }

View File

@ -44,7 +44,9 @@ class TransportFactory final : public FairMQTransportFactory
} }
TransportFactory(const TransportFactory&) = delete; TransportFactory(const TransportFactory&) = delete;
TransportFactory operator=(const TransportFactory&) = delete; TransportFactory(TransportFactory&&) = delete;
TransportFactory& operator=(const TransportFactory&) = delete;
TransportFactory& operator=(TransportFactory&&) = delete;
MessagePtr CreateMessage() override MessagePtr CreateMessage() override
{ {

View File

@ -59,7 +59,9 @@ class UnmanagedRegion final : public fair::mq::UnmanagedRegion
} }
UnmanagedRegion(const UnmanagedRegion&) = delete; UnmanagedRegion(const UnmanagedRegion&) = delete;
UnmanagedRegion operator=(const UnmanagedRegion&) = delete; UnmanagedRegion(UnmanagedRegion&&) = delete;
UnmanagedRegion& operator=(const UnmanagedRegion&) = delete;
UnmanagedRegion& operator=(UnmanagedRegion&&) = delete;
virtual void* GetData() const override { return fBuffer; } virtual void* GetData() const override { return fBuffer; }
virtual size_t GetSize() const override { return fSize; } virtual size_t GetSize() const override { return fSize; }

View File

@ -67,6 +67,11 @@ class TestDevice : public FairMQDevice
ChangeState(fair::mq::Transition::Run); ChangeState(fair::mq::Transition::Run);
} }
TestDevice(const TestDevice&) = delete;
TestDevice(TestDevice&&) = delete;
TestDevice& operator=(const TestDevice&) = delete;
TestDevice& operator=(TestDevice&&) = delete;
~TestDevice() ~TestDevice()
{ {
WaitForState(fair::mq::State::Running); WaitForState(fair::mq::State::Running);

View File

@ -44,6 +44,11 @@ class BadDevice : public FairMQDevice
parts.AddPart(NewMessage()); parts.AddPart(NewMessage());
} }
BadDevice(const BadDevice&) = delete;
BadDevice(BadDevice&&) = delete;
BadDevice& operator=(const BadDevice&) = delete;
BadDevice& operator=(BadDevice&&) = delete;
~BadDevice() ~BadDevice()
{ {
ChangeState(fair::mq::Transition::ResetDevice); ChangeState(fair::mq::Transition::ResetDevice);

View File

@ -39,6 +39,9 @@ struct TestData
++nallocations; ++nallocations;
} }
TestData& operator=(const TestData&) = delete;
TestData& operator=(TestData&&) = delete;
TestData(const TestData& in) TestData(const TestData& in)
: i{in.i} : i{in.i}
{ {

View File

@ -17,7 +17,10 @@ struct MyClass
MyClass() = default; MyClass() = default;
MyClass(std::string a) : msg(std::move(a)) {} MyClass(std::string a) : msg(std::move(a)) {}
MyClass(const MyClass&) = default; MyClass(const MyClass&) = default;
MyClass& operator=(const MyClass& b) = default; MyClass(MyClass&&) = default;
MyClass& operator=(const MyClass&) = default;
MyClass& operator=(MyClass&&) = default;
~MyClass() = default;
std::string msg; std::string msg;
}; };