summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2016-10-30 12:23:54 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2016-10-30 12:23:54 +0100
commit90d77644cf5a715379019e4f09cb5868a02f3c69 (patch)
tree8a23752ac7af1a1de936422f2991d51fdff97bc5
parent7ab5c97051108d9d752896798efe0886573e730e (diff)
downloaddabmux-90d77644cf5a715379019e4f09cb5868a02f3c69.tar.gz
dabmux-90d77644cf5a715379019e4f09cb5868a02f3c69.tar.bz2
dabmux-90d77644cf5a715379019e4f09cb5868a02f3c69.zip
Avoid manual pointer management of the TCPDataDispatcher
-rw-r--r--src/dabOutput/dabOutput.h7
-rw-r--r--src/dabOutput/dabOutputTcp.cpp10
2 files changed, 2 insertions, 15 deletions
diff --git a/src/dabOutput/dabOutput.h b/src/dabOutput/dabOutput.h
index eaa623f..c10d358 100644
--- a/src/dabOutput/dabOutput.h
+++ b/src/dabOutput/dabOutput.h
@@ -222,11 +222,6 @@ class TCPDataDispatcher;
class DabOutputTcp : public DabOutput
{
public:
- DabOutputTcp() {}
- DabOutputTcp(const DabOutputTcp& other) = delete;
- const DabOutputTcp& operator=(const DabOutputTcp& other) = delete;
- ~DabOutputTcp();
-
int Open(const char* name);
int Write(void* buffer, int size);
int Close();
@@ -238,7 +233,7 @@ class DabOutputTcp : public DabOutput
private:
std::string uri_;
- TCPDataDispatcher* dispatcher_;
+ std::shared_ptr<TCPDataDispatcher> dispatcher_;
};
// -------------- Simul ------------------
diff --git a/src/dabOutput/dabOutputTcp.cpp b/src/dabOutput/dabOutputTcp.cpp
index 6485d15..94d379e 100644
--- a/src/dabOutput/dabOutputTcp.cpp
+++ b/src/dabOutput/dabOutputTcp.cpp
@@ -151,14 +151,6 @@ class TCPDataDispatcher
std::list<TCPConnection> m_connections;
};
-DabOutputTcp::~DabOutputTcp()
-{
- if (dispatcher_) {
- delete dispatcher_;
- dispatcher_ = nullptr;
- }
-}
-
static bool parse_uri(const char *uri, long *port, string& addr)
{
char* const hostport = strdup(uri); // the uri is actually an tuple host:port
@@ -205,7 +197,7 @@ int DabOutputTcp::Open(const char* name)
uri_ = name;
if (success) {
- dispatcher_ = new TCPDataDispatcher();
+ dispatcher_ = make_shared<TCPDataDispatcher>();
try {
dispatcher_->start(port, address);
}