aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/event.cpp38
-rw-r--r--src/network.cpp15
-rw-r--r--src/stream.cpp6
3 files changed, 48 insertions, 11 deletions
diff --git a/src/event.cpp b/src/event.cpp
index 6078c37..2e38e5f 100644
--- a/src/event.cpp
+++ b/src/event.cpp
@@ -12,14 +12,48 @@ void eventcontext_dispatch(eventcontext_t *self) { return self->dispatch(); }
void eventcontext_stop(eventcontext_t *self) { return self->stop(); }
-sigev_t *sigev_new(const eventcontext_t *self, sigev_callback_t cb) {
- return new sigev_t(*self, cb);
+sigev_t *sigev_new(const eventcontext_t *self, sigev_callback_t callback) {
+ return new sigev_t(*self, callback);
+}
+
+threadcall_t *threadcall_new(const eventcontext_t *ec) { return new threadcall_t(*ec); }
+
+void threadcall_free(threadcall_t *self) { delete self; }
+
+void threadcall_async_call(threadcall_t *self, threadcall_callback_t callback, void *userdata) {
+ self->async_call([=](salticidae::ThreadCall::Handle &h) {
+ callback(&h, userdata);
+ });
+}
+
+eventcontext_t *threadcall_get_ec(threadcall_t *self) {
+ return new eventcontext_t(self->get_ec());
}
void sigev_free(sigev_t *self) { delete self; }
void sigev_add(sigev_t *self, int sig) { self->add(sig); }
+timerev_t *timerev_new(const eventcontext_t *ec, timerev_callback_t callback) {
+ return new timerev_t(*ec, [callback](salticidae::TimerEvent &ev) {
+ callback(&ev);
+ });
+}
+
+void timerev_set_callback(timerev_t *self, timerev_callback_t callback) {
+ self->set_callback([callback](salticidae::TimerEvent &ev) {
+ callback(&ev);
+ });
+}
+
+void timerev_free(timerev_t *self) { delete self; }
+
+void timerev_add(timerev_t *self, double t_sec) { self->add(t_sec); }
+
+void timerev_del(timerev_t *self) { self->del(); }
+
+void timerev_clear(timerev_t *self) { self->clear(); }
+
}
#endif
diff --git a/src/network.cpp b/src/network.cpp
index eb32f62..c14531c 100644
--- a/src/network.cpp
+++ b/src/network.cpp
@@ -35,17 +35,20 @@ void msgnetwork_listen(msgnetwork_t *self, const netaddr_t *listen_addr) {
void msgnetwork_reg_handler(msgnetwork_t *self,
_opcode_t opcode,
- msgnetwork_msg_callback_t cb) {
+ msgnetwork_msg_callback_t cb,
+ void *userdata) {
self->set_handler(opcode,
- [cb](const msgnetwork_t::Msg &msg, const msgnetwork_conn_t &conn) {
- cb(&msg, &conn);
+ [=](const msgnetwork_t::Msg &msg, const msgnetwork_conn_t &conn) {
+ cb(&msg, &conn, userdata);
});
}
-void msgnetwork_reg_conn_handler(msgnetwork_t *self, msgnetwork_conn_callback_t cb) {
- self->reg_conn_handler([cb](const ConnPool::conn_t &_conn, bool connected) {
+void msgnetwork_reg_conn_handler(msgnetwork_t *self,
+ msgnetwork_conn_callback_t cb,
+ void *userdata) {
+ self->reg_conn_handler([=](const ConnPool::conn_t &_conn, bool connected) {
auto conn = salticidae::static_pointer_cast<msgnetwork_t::Conn>(_conn);
- cb(&conn, connected);
+ cb(&conn, connected, userdata);
});
}
diff --git a/src/stream.cpp b/src/stream.cpp
index 9dfe5fc..9ad41aa 100644
--- a/src/stream.cpp
+++ b/src/stream.cpp
@@ -77,9 +77,9 @@ uint256_t *datastream_get_hash(const datastream_t *self) {
return new uint256_t(self->get_hash());
}
-bytearray_t *datastream_to_bytearray(datastream_t *_moved_self) {
- auto res = new bytearray_t(std::move(*_moved_self));
- delete _moved_self;
+bytearray_t *bytearray_new_moved_from_datastream(datastream_t *_moved_src) {
+ auto res = new bytearray_t(std::move(*_moved_src));
+ delete _moved_src;
return res;
}