Skip to content

Commit 363613d

Browse files
committed
fix: add missing special functions for classes with destructors
1 parent cf4ee12 commit 363613d

File tree

8 files changed

+39
-2
lines changed

8 files changed

+39
-2
lines changed

src/closable.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@
44
up ZMQ resources at agent exit. */
55
namespace zmq {
66
struct Closable {
7+
Closable() = default;
8+
Closable(const Closable&) = default;
9+
Closable(Closable&&) = default;
10+
Closable& operator=(const Closable&) = default;
11+
Closable& operator=(Closable&&) = default;
712
virtual ~Closable() = default;
13+
814
virtual void Close() = 0;
915
};
10-
}
16+
} // namespace zmq

src/context.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ class Context : public Napi::ObjectWrap<Context>, public Closable {
1212
static void Initialize(Module& module, Napi::Object& exports);
1313

1414
explicit Context(const Napi::CallbackInfo& info);
15-
~Context() override;
1615

16+
Context(const Context&) = delete;
17+
Context& operator=(const Context&) = delete;
1718
Context(Context&&) = delete;
1819
Context& operator=(Context&&) = delete;
20+
~Context() override;
1921

2022
void Close() override;
2123

src/incoming_msg.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ class IncomingMsg {
1212

1313
IncomingMsg(const IncomingMsg&) = delete;
1414
IncomingMsg& operator=(const IncomingMsg&) = delete;
15+
IncomingMsg(IncomingMsg&&) = delete;
16+
IncomingMsg& operator=(IncomingMsg&&) = delete;
1517

1618
Napi::Value IntoBuffer(const Napi::Env& env);
1719

@@ -25,6 +27,10 @@ class IncomingMsg {
2527

2628
public:
2729
Reference();
30+
Reference(const Reference&) = delete;
31+
Reference(Reference&&) = delete;
32+
Reference& operator=(const Reference&) = delete;
33+
Reference& operator=(Reference&&) = delete;
2834
~Reference();
2935

3036
zmq_msg_t* get() {

src/observer.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ class Observer : public Napi::ObjectWrap<Observer>, public Closable {
1616
static void Initialize(Module& module, Napi::Object& exports);
1717

1818
explicit Observer(const Napi::CallbackInfo& info);
19+
20+
Observer(const Observer&) = delete;
21+
Observer(Observer&&) = delete;
22+
Observer& operator=(const Observer&) = delete;
23+
Observer& operator=(Observer&&) = delete;
1924
~Observer() override;
2025

2126
void Close() override;

src/outgoing_msg.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ class OutgoingMsg {
1717
nor should we have to copy messages with the right STL containers. */
1818
OutgoingMsg(const OutgoingMsg&) = delete;
1919
OutgoingMsg& operator=(const OutgoingMsg&) = delete;
20+
OutgoingMsg(OutgoingMsg&&) = delete;
21+
OutgoingMsg& operator=(OutgoingMsg&&) = delete;
2022

2123
/* Outgoing message. Takes a string or buffer argument and releases
2224
the underlying V8 resources whenever the message is sent, or earlier

src/proxy.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ class Proxy : public Napi::ObjectWrap<Proxy>, public Closable {
1515
static void Initialize(Module& module, Napi::Object& exports);
1616

1717
explicit Proxy(const Napi::CallbackInfo& info);
18+
19+
Proxy(const Proxy&) = delete;
20+
Proxy(Proxy&&) = delete;
21+
Proxy& operator=(const Proxy&) = delete;
22+
Proxy& operator=(Proxy&&) = delete;
1823
~Proxy() override;
1924

2025
void Close() override;

src/socket.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ class Socket : public Napi::ObjectWrap<Socket>, public Closable {
1515
static void Initialize(Module& module, Napi::Object& exports);
1616

1717
explicit Socket(const Napi::CallbackInfo& info);
18+
19+
Socket(const Socket&) = delete;
20+
Socket(Socket&&) = delete;
21+
Socket& operator=(const Socket&) = delete;
22+
Socket& operator=(Socket&&) = delete;
1823
~Socket() override;
1924

2025
void Close() override;

src/util/reaper.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ class Reaper {
2121
std::set<T*> pointers;
2222

2323
public:
24+
Reaper() = default;
25+
Reaper(const Reaper&) = delete;
26+
Reaper(Reaper&&) = delete;
27+
Reaper& operator=(const Reaper&) = delete;
28+
Reaper& operator=(Reaper&&) = delete;
29+
2430
~Reaper() {
2531
/* Copy pointers to vector to avoid issues with callbacks deregistering
2632
themselves from the reaper while we are still iterating. We iterate

0 commit comments

Comments
 (0)