diff --git a/src/ListManagerInterface.hh b/src/ListManagerInterface.hh new file mode 100644 index 0000000..9134234 --- /dev/null +++ b/src/ListManagerInterface.hh @@ -0,0 +1,33 @@ +// This file is under GNU General Public License 3.0 +// see LICENSE.txt + +#ifndef LIBPEPADAPTER_LISTMANAGERINTERFACE_HH +#define LIBPEPADAPTER_LISTMANAGERINTERFACE_HH + +#include + +namespace pEp { + class ListManagerInterface { + public: + // update functions + // Group create/destroy + virtual void create( + pEp_identity *group_identity, + pEp_identity *manager, + identity_list *memberlist) = 0; + virtual void dissolve(pEp_identity *group_identity) = 0; + + // Members create/destroy + virtual void join(pEp_identity *group_identity, pEp_identity *as_member) = 0; + virtual void remove_member(pEp_identity *group_identity, pEp_identity *group_member) = 0; + + // query functions + virtual identity_list *groups() = 0; + virtual pEp_identity *manager(const pEp_identity *const group) = 0; + virtual identity_list *members(const pEp_identity *const group) = 0; + + private: + }; +} // namespace pEp + +#endif // LIBPEPADAPTER_LISTMANAGERINTERFACE_HH