SET(target "${target_prefix}-my-place")
SET(DEPS ${DEPS}
+ gmodule-2.0
capi-location-manager
capi-network-wifi
)
-FILE(GLOB_RECURSE SRCS *.cpp)
+FILE(GLOB SRCS *.cpp facade/*.cpp place/*.cpp utils/*.cpp visit-detector/*.cpp)
INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(PKG_MYPLACE REQUIRED ${DEPS})
TARGET_LINK_LIBRARIES(${target} ${PKG_MYPLACE_LDFLAGS} ${target_shared})
INSTALL(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR}/${target_dir})
+
+ADD_SUBDIRECTORY(visit-categer)
\ No newline at end of file
#include "../facade/UserPlacesTypes.h"
#include "VisitDetector.h"
#include "../facade/UserPlacesParams.h"
-#include "../visit-categer/VisitCateger.h"
#include "../utils/Similarity.h"
#include "../utils/Median.h"
#include "../utils/DebugUtils.h"
+#include <gmodule.h>
+
+#define SO_PATH "/usr/lib/context-service/libctx-prvd-my-place-visit-categer.so"
+
+typedef void (*visit_categer_t)(ctx::Visit &visit);
#ifdef TIZEN_ENGINEER_MODE
#define __VISIT_TABLE_COLUMNS \
Interval interval(__entranceTime, __departureTime);
Visit visit(interval, __representativesMacs);
- VisitCateger::categorize(visit);
+ __categorize(visit);
__putLocationToVisit(visit);
__wifiLogger->setMode(energyMode);
}
+void ctx::VisitDetector::__categorize(ctx::Visit &visit)
+{
+ _D("mmastern try to categorize from visit detector");
+ GModule *soHandle = g_module_open(SO_PATH, G_MODULE_BIND_LAZY);
+ IF_FAIL_VOID_TAG(soHandle, _E, "%s", g_module_error());
+
+ gpointer symbol;
+ if (!g_module_symbol(soHandle, "categorize", &symbol) || symbol == NULL) {
+ _E("mmastern %s", g_module_error());
+ g_module_close(soHandle);
+ return;
+ }
+ visit_categer_t categorize = reinterpret_cast<visit_categer_t>(symbol);
+ categorize(visit);
+ g_module_close(soHandle);
+}