diff --git a/src/pEpmodule.cc b/src/pEpmodule.cc index d2e80fe..3208f42 100644 --- a/src/pEpmodule.cc +++ b/src/pEpmodule.cc @@ -198,9 +198,14 @@ BOOST_PYTHON_MODULE(pEp) auto sync_mixin_class = class_( "SyncMixIn", "p≡p Sync MixIn") - .def("messageToSend", &SyncMixIn::messageToSend) - .def("showHandshake", &SyncMixIn::showHandshake) - .def("deliverHandshakeResult", &SyncMixIn::deliverHandshakeResult); + .def("messageToSend", &SyncMixIn::messageToSend, "overwrite this method") + .def("showHandshake", &SyncMixIn::showHandshake, "overwrite this method") +#ifndef NDEBUG + .def("_inject", &SyncMixIn::_inject, + "inject an event into the sync state machine (for debugging purposes only") +#endif + .def("deliverHandshakeResult", &SyncMixIn::deliverHandshakeResult, + "call to deliver the handshake result"); // init() and release() diff --git a/src/sync_mixin.cc b/src/sync_mixin.cc index 451744b..70f3fe0 100644 --- a/src/sync_mixin.cc +++ b/src/sync_mixin.cc @@ -1,5 +1,8 @@ #include "sync_mixin.hh" #include +#ifndef NDEBUG +#include +#endif #include namespace pEp { @@ -51,6 +54,14 @@ namespace pEp { ::deliverHandshakeResult(session, (sync_handshake_result) result); } +#ifndef NDEBUG + virtual void _inject(int event, Identity *partner, object extra) + { + PEP_SESSION session = fsm_DeviceState_inject(session, + (DeviceState_event) event, partner->detach(), NULL); + } +#endif + void SyncMixIn_callback::_messageToSend(Message msg) { call_method< void >(_self, "messageToSend", msg); diff --git a/src/sync_mixin.hh b/src/sync_mixin.hh index 5041be9..52c7f1d 100644 --- a/src/sync_mixin.hh +++ b/src/sync_mixin.hh @@ -18,6 +18,9 @@ namespace pEp { } virtual void deliverHandshakeResult(int result); +#ifndef NDEBUG + virtual void _inject(int event, Identity *partner, object extra); +#endif protected: static PEP_STATUS _messageToSend(void *obj, message *msg);