|
@ -5,14 +5,44 @@ |
|
|
#include "group_manager_api.h" |
|
|
#include "group_manager_api.h" |
|
|
#include "grp_driver_replicator.hh" |
|
|
#include "grp_driver_replicator.hh" |
|
|
#include "pEpLog.hh" |
|
|
#include "pEpLog.hh" |
|
|
|
|
|
#include "grp_driver_dummy.hh" |
|
|
|
|
|
#include "grp_driver_engine.hh" |
|
|
|
|
|
|
|
|
#ifdef __cplusplus |
|
|
#ifdef __cplusplus |
|
|
extern "C" { |
|
|
extern "C" { |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
using namespace std; |
|
|
using namespace std; |
|
|
|
|
|
using namespace pEp; |
|
|
|
|
|
|
|
|
pEp::Adapter::GroupDriverReplicator adapter_grp_manager{}; |
|
|
Adapter::GroupDriverReplicator adapter_grp_manager{}; |
|
|
|
|
|
shared_ptr<Adapter::GroupDriverDummy> grp_drv_dummy; |
|
|
|
|
|
shared_ptr<Adapter::GroupDriverEngine> grp_drv_engine; |
|
|
|
|
|
|
|
|
|
|
|
DYNAMIC_API PEP_STATUS adapter_group_init() |
|
|
|
|
|
{ |
|
|
|
|
|
PEP_STATUS status; |
|
|
|
|
|
try { |
|
|
|
|
|
const string lm_dummy_db_filename = "listman_dummy.db"; |
|
|
|
|
|
#ifdef WIN32 |
|
|
|
|
|
const string lm_dummy_db_path = string(::per_user_directory()) + "\\" + lm_dummy_db_filename; |
|
|
|
|
|
#else |
|
|
|
|
|
const string lm_dummy_db_path = string(::per_user_directory()) + "/" + lm_dummy_db_filename; |
|
|
|
|
|
#endif |
|
|
|
|
|
grp_drv_dummy = make_shared<Adapter::GroupDriverDummy>(lm_dummy_db_path); |
|
|
|
|
|
grp_drv_engine = make_shared<Adapter::GroupDriverEngine>(); |
|
|
|
|
|
adapter_grp_manager.set_replication_source(*grp_drv_dummy.get()); |
|
|
|
|
|
adapter_grp_manager.set_replication_destination(*grp_drv_engine.get()); |
|
|
|
|
|
// adapter_grp_manager.logger.set_enabled(true);
|
|
|
|
|
|
} catch (const std::exception &e) { |
|
|
|
|
|
pEpLog(Utils::nested_exception_to_string(e)); |
|
|
|
|
|
status = PEP_UNKNOWN_ERROR; |
|
|
|
|
|
} catch (...) { |
|
|
|
|
|
pEpLog("unknown exception"); |
|
|
|
|
|
status = PEP_UNKNOWN_ERROR; |
|
|
|
|
|
} |
|
|
|
|
|
return status; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/*************************************************************************************************
|
|
|
/*************************************************************************************************
|
|
|
* Group management functions |
|
|
* Group management functions |
|
@ -67,7 +97,7 @@ PEP_STATUS adapter_group_remove_member( |
|
|
/*************************************************************************************************
|
|
|
/*************************************************************************************************
|
|
|
* Group query functions |
|
|
* Group query functions |
|
|
*************************************************************************************************/ |
|
|
*************************************************************************************************/ |
|
|
DYNAMIC_API PEP_STATUS group_query_groups(PEP_SESSION session, identity_list **groups) |
|
|
DYNAMIC_API PEP_STATUS adapter_group_query_groups(PEP_SESSION session, identity_list **groups) |
|
|
{ |
|
|
{ |
|
|
pEpLog("called"); |
|
|
pEpLog("called"); |
|
|
PEP_STATUS status = adapter_grp_manager.group_query_groups(session, groups); |
|
|
PEP_STATUS status = adapter_grp_manager.group_query_groups(session, groups); |
|
@ -75,15 +105,17 @@ DYNAMIC_API PEP_STATUS group_query_groups(PEP_SESSION session, identity_list **g |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
DYNAMIC_API PEP_STATUS |
|
|
DYNAMIC_API PEP_STATUS |
|
|
group_query_manager(PEP_SESSION session, const pEp_identity *const group, pEp_identity **manager) |
|
|
adapter_group_query_manager(PEP_SESSION session, const pEp_identity *const group, pEp_identity **manager) |
|
|
{ |
|
|
{ |
|
|
pEpLog("called"); |
|
|
pEpLog("called"); |
|
|
PEP_STATUS status = adapter_grp_manager.group_query_manager(session, group, manager); |
|
|
PEP_STATUS status = adapter_grp_manager.group_query_manager(session, group, manager); |
|
|
return status; |
|
|
return status; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
DYNAMIC_API PEP_STATUS |
|
|
DYNAMIC_API PEP_STATUS adapter_group_query_members( |
|
|
group_query_members(PEP_SESSION session, const pEp_identity *const group, identity_list **members) |
|
|
PEP_SESSION session, |
|
|
|
|
|
const pEp_identity *const group, |
|
|
|
|
|
identity_list **members) |
|
|
{ |
|
|
{ |
|
|
pEpLog("called"); |
|
|
pEpLog("called"); |
|
|
PEP_STATUS status = adapter_grp_manager.group_query_members(session, group, members); |
|
|
PEP_STATUS status = adapter_grp_manager.group_query_members(session, group, members); |
|
|