summaryrefslogtreecommitdiffstats
path: root/src/server/events
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/events')
-rw-r--r--src/server/events/CreateGraph.cpp26
-rw-r--r--src/server/events/CreateGraph.hpp17
-rw-r--r--src/server/events/Delete.cpp7
-rw-r--r--src/server/events/Delete.hpp2
-rw-r--r--src/server/events/Delta.cpp36
-rw-r--r--src/server/events/Delta.hpp4
-rw-r--r--src/server/events/Disconnect.cpp14
-rw-r--r--src/server/events/Disconnect.hpp4
8 files changed, 43 insertions, 67 deletions
diff --git a/src/server/events/CreateGraph.cpp b/src/server/events/CreateGraph.cpp
index bd7079d9..5bb66a46 100644
--- a/src/server/events/CreateGraph.cpp
+++ b/src/server/events/CreateGraph.cpp
@@ -44,13 +44,6 @@ CreateGraph::CreateGraph(Engine& engine,
, _parent(nullptr)
{}
-CreateGraph::~CreateGraph()
-{
- for (Event* ev : _child_events) {
- delete ev;
- }
-}
-
void
CreateGraph::build_child_events()
{
@@ -76,10 +69,9 @@ CreateGraph::build_child_events()
Resource::Graph::EXTERNAL);
_child_events.push_back(
- new events::CreatePort(
- _engine, _request_client, -1, _time,
- _path.child(Raul::Symbol("control")),
- in_properties));
+ make_unique<events::CreatePort>(_engine, _request_client, -1, _time,
+ _path.child(Raul::Symbol("control")),
+ in_properties));
// Add notify port (message respond)
Properties out_properties(control_properties);
@@ -92,9 +84,9 @@ CreateGraph::build_child_events()
Resource::Graph::EXTERNAL);
_child_events.push_back(
- new events::CreatePort(_engine, _request_client, -1, _time,
- _path.child(Raul::Symbol("notify")),
- out_properties));
+ make_unique<events::CreatePort>(_engine, _request_client, -1, _time,
+ _path.child(Raul::Symbol("notify")),
+ out_properties));
}
bool
@@ -184,7 +176,7 @@ CreateGraph::pre_process(PreProcessContext& ctx)
// Build and pre-process child events to create standard ports
build_child_events();
- for (Event* ev : _child_events) {
+ for (const auto& ev : _child_events) {
ev->pre_process(ctx);
}
@@ -204,7 +196,7 @@ CreateGraph::execute(RunContext& context)
_graph->enable();
}
- for (Event* ev : _child_events) {
+ for (const auto& ev : _child_events) {
ev->execute(context);
}
}
@@ -219,7 +211,7 @@ CreateGraph::post_process()
}
if (_graph) {
- for (Event* ev : _child_events) {
+ for (const auto& ev : _child_events) {
ev->post_process();
}
}
diff --git a/src/server/events/CreateGraph.hpp b/src/server/events/CreateGraph.hpp
index 1537283e..565a3278 100644
--- a/src/server/events/CreateGraph.hpp
+++ b/src/server/events/CreateGraph.hpp
@@ -20,6 +20,7 @@
#include <list>
#include "ingen/Resource.hpp"
+#include "ingen/types.hpp"
#include "CompiledGraph.hpp"
#include "Event.hpp"
@@ -46,8 +47,6 @@ public:
const Raul::Path& path,
const Properties& properties);
- ~CreateGraph();
-
bool pre_process(PreProcessContext& ctx) override;
void execute(RunContext& context) override;
void post_process() override;
@@ -58,13 +57,13 @@ public:
private:
void build_child_events();
- const Raul::Path _path;
- Properties _properties;
- ClientUpdate _update;
- GraphImpl* _graph;
- GraphImpl* _parent;
- MPtr<CompiledGraph> _compiled_graph;
- std::list<Event*> _child_events;
+ const Raul::Path _path;
+ Properties _properties;
+ ClientUpdate _update;
+ GraphImpl* _graph;
+ GraphImpl* _parent;
+ MPtr<CompiledGraph> _compiled_graph;
+ std::list<UPtr<Event>> _child_events;
};
} // namespace events
diff --git a/src/server/events/Delete.cpp b/src/server/events/Delete.cpp
index 4e1aa69b..f6168c9c 100644
--- a/src/server/events/Delete.cpp
+++ b/src/server/events/Delete.cpp
@@ -51,7 +51,6 @@ Delete::Delete(Engine& engine,
Delete::~Delete()
{
- delete _disconnect_event;
for (ControlBindings::Binding* b : _removed_bindings) {
delete b;
}
@@ -92,12 +91,14 @@ Delete::pre_process(PreProcessContext& ctx)
if (_block) {
parent->remove_block(*_block);
- _disconnect_event = new DisconnectAll(_engine, parent, _block.get());
+ _disconnect_event =
+ make_unique<DisconnectAll>(_engine, parent, _block.get());
_disconnect_event->pre_process(ctx);
_compiled_graph = ctx.maybe_compile(*_engine.maid(), *parent);
} else if (_port) {
parent->remove_port(*_port);
- _disconnect_event = new DisconnectAll(_engine, parent, _port.get());
+ _disconnect_event =
+ make_unique<DisconnectAll>(_engine, parent, _port.get());
_disconnect_event->pre_process(ctx);
_compiled_graph = ctx.maybe_compile(*_engine.maid(), *parent);
diff --git a/src/server/events/Delete.hpp b/src/server/events/Delete.hpp
index 4b0c314b..4925a856 100644
--- a/src/server/events/Delete.hpp
+++ b/src/server/events/Delete.hpp
@@ -72,7 +72,7 @@ private:
EnginePort* _engine_port;
MPtr<GraphImpl::Ports> _ports_array; ///< New (external) ports for Graph
MPtr<CompiledGraph> _compiled_graph; ///< Graph's new process order
- DisconnectAll* _disconnect_event;
+ UPtr<DisconnectAll> _disconnect_event;
Store::Objects _removed_objects;
IndexChanges _port_index_changes;
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp
index da957fd3..efc50bce 100644
--- a/src/server/events/Delta.cpp
+++ b/src/server/events/Delta.cpp
@@ -84,7 +84,6 @@ Delta::Delta(Engine& engine,
SampleCount timestamp,
const ingen::SetProperty& msg)
: Event(engine, client, msg.seq, timestamp)
- , _create_event(nullptr)
, _subject(msg.subject)
, _properties{{msg.predicate, msg.value}}
, _object(nullptr)
@@ -100,11 +99,6 @@ Delta::Delta(Engine& engine,
Delta::~Delta()
{
- for (auto& s : _set_events) {
- delete s;
- }
-
- delete _create_event;
}
void
@@ -137,11 +131,10 @@ Delta::add_set_event(const char* port_symbol,
return;
}
- SetPortValue* ev = new SetPortValue(
- _engine, _request_client, _request_id, _time,
- port, Atom(size, type, value), false, true);
-
- _set_events.push_back(ev);
+ _set_events.emplace_back(
+ make_unique<SetPortValue>(
+ _engine, _request_client, _request_id, _time,
+ port, Atom(size, type, value), false, true));
}
static void
@@ -232,13 +225,13 @@ Delta::pre_process(PreProcessContext& ctx)
ingen::Resource::type(uris, _properties, is_graph, is_block, is_port, is_output);
if (is_graph) {
- _create_event = new CreateGraph(
+ _create_event = make_unique<CreateGraph>(
_engine, _request_client, _request_id, _time, path, _properties);
} else if (is_block) {
- _create_event = new CreateBlock(
+ _create_event = make_unique<CreateBlock>(
_engine, _request_client, _request_id, _time, path, _properties);
} else if (is_port) {
- _create_event = new CreatePort(
+ _create_event = make_unique<CreatePort>(
_engine, _request_client, _request_id, _time,
path, _properties);
}
@@ -333,10 +326,10 @@ Delta::pre_process(PreProcessContext& ctx)
_status = Status::BAD_VALUE_TYPE;
}
} else if (key == uris.ingen_value || key == uris.ingen_activity) {
- SetPortValue* ev = new SetPortValue(
- _engine, _request_client, _request_id, _time, port, value,
- key == uris.ingen_activity);
- _set_events.push_back(ev);
+ _set_events.emplace_back(
+ make_unique<SetPortValue>(
+ _engine, _request_client, _request_id, _time,
+ port, value, key == uris.ingen_activity));
} else if (key == uris.midi_binding) {
if (port->is_a(PortType::CONTROL) || port->is_a(PortType::CV)) {
if (value == uris.patch_wildcard) {
@@ -444,12 +437,11 @@ Delta::pre_process(PreProcessContext& ctx)
LilvNode* bundle = get_file_node(lworld, uris, value);
if (bundle) {
lilv_world_load_bundle(lworld, bundle);
- const std::set<PluginImpl*> new_plugins =
- _engine.block_factory()->refresh();
+ const auto new_plugins = _engine.block_factory()->refresh();
- for (PluginImpl* p : new_plugins) {
+ for (const auto& p : new_plugins) {
if (p->bundle_uri() == lilv_node_as_string(bundle)) {
- _update.put_plugin(p);
+ _update.put_plugin(p.get());
}
}
lilv_node_free(bundle);
diff --git a/src/server/events/Delta.hpp b/src/server/events/Delta.hpp
index d36e81aa..0fda067a 100644
--- a/src/server/events/Delta.hpp
+++ b/src/server/events/Delta.hpp
@@ -96,11 +96,11 @@ private:
LOADED_BUNDLE
};
- typedef std::vector<SetPortValue*> SetEvents;
+ typedef std::vector<UPtr<SetPortValue>> SetEvents;
void init();
- Event* _create_event;
+ UPtr<Event> _create_event;
SetEvents _set_events;
std::vector<SpecialType> _types;
std::vector<SpecialType> _remove_types;
diff --git a/src/server/events/Disconnect.cpp b/src/server/events/Disconnect.cpp
index e803ce3d..3abf23e4 100644
--- a/src/server/events/Disconnect.cpp
+++ b/src/server/events/Disconnect.cpp
@@ -44,15 +44,9 @@ Disconnect::Disconnect(Engine& engine,
: Event(engine, client, msg.seq, timestamp)
, _msg(msg)
, _graph(nullptr)
- , _impl(nullptr)
{
}
-Disconnect::~Disconnect()
-{
- delete _impl;
-}
-
Disconnect::Impl::Impl(Engine& e,
GraphImpl* graph,
PortImpl* t,
@@ -154,10 +148,10 @@ Disconnect::pre_process(PreProcessContext& ctx)
return Event::pre_process_done(Status::PARENT_NOT_FOUND, _msg.head);
}
- _impl = new Impl(_engine,
- _graph,
- dynamic_cast<PortImpl*>(tail),
- dynamic_cast<InputPort*>(head));
+ _impl = make_unique<Impl>(_engine,
+ _graph,
+ dynamic_cast<PortImpl*>(tail),
+ dynamic_cast<InputPort*>(head));
_compiled_graph = ctx.maybe_compile(*_engine.maid(), *_graph);
diff --git a/src/server/events/Disconnect.hpp b/src/server/events/Disconnect.hpp
index de4bfe57..566a7721 100644
--- a/src/server/events/Disconnect.hpp
+++ b/src/server/events/Disconnect.hpp
@@ -49,8 +49,6 @@ public:
SampleCount timestamp,
const ingen::Disconnect& msg);
- ~Disconnect();
-
bool pre_process(PreProcessContext& ctx) override;
void execute(RunContext& context) override;
void post_process() override;
@@ -76,7 +74,7 @@ public:
private:
const ingen::Disconnect _msg;
GraphImpl* _graph;
- Impl* _impl;
+ UPtr<Impl> _impl;
MPtr<CompiledGraph> _compiled_graph;
};