From 15c350e6b34692e68d1f744823704132a0831c4d Mon Sep 17 00:00:00 2001 From: Volker Birk Date: Wed, 10 Aug 2016 14:12:35 +0200 Subject: [PATCH] adding callbacks to MixIn --- src/sync_mixin.cc | 22 ++++++++++++++++++---- src/sync_mixin.hh | 4 ++-- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/sync_mixin.cc b/src/sync_mixin.cc index 8df8369..21aa695 100644 --- a/src/sync_mixin.cc +++ b/src/sync_mixin.cc @@ -15,17 +15,31 @@ namespace pEp { unregister_sync_callbacks(session); } - PEP_STATUS SyncMixIn::messageToSend(void *obj, const message *msg) + PEP_STATUS SyncMixIn::messageToSend(void *obj, message *msg) { - SyncMixIn *that = (SyncMixIn *) obj; + if (!obj) + return PEP_SEND_FUNCTION_NOT_REGISTERED; + + if (!msg) + return PEP_ILLEGAL_VALUE; + + object *that = (object *) obj; + that->attr("messageToSend")(Message(msg)); return PEP_STATUS_OK; } PEP_STATUS SyncMixIn::showHandshake(void *obj, - const pEp_identity *self, const pEp_identity *partner) + pEp_identity *self, pEp_identity *partner) { - SyncMixIn *that = (SyncMixIn *) obj; + if (!obj) + return PEP_SEND_FUNCTION_NOT_REGISTERED; + + if (!(self && partner)) + return PEP_ILLEGAL_VALUE; + + object *that = (object *) obj; + that->attr("showHandshake")(Identity(self), Identity(partner)); return PEP_STATUS_OK; } diff --git a/src/sync_mixin.hh b/src/sync_mixin.hh index 733a5be..eae6fa4 100644 --- a/src/sync_mixin.hh +++ b/src/sync_mixin.hh @@ -10,9 +10,9 @@ namespace pEp { virtual ~SyncMixIn(); protected: - static PEP_STATUS messageToSend(void *obj, const message *msg); + static PEP_STATUS messageToSend(void *obj, message *msg); static PEP_STATUS showHandshake(void *obj, - const pEp_identity *self, const pEp_identity *partner); + pEp_identity *self, pEp_identity *partner); }; } }