From 5c9d867b72e22db0723fa6c68557a6799129aea0 Mon Sep 17 00:00:00 2001 From: Mu-Woong Lee Date: Thu, 21 Apr 2016 14:50:29 +0900 Subject: [PATCH] Code cleanup: activity providers Change-Id: I652e9847753c61b53b78bcce436bb90923e9c0b4 Signed-off-by: Mu-Woong Lee --- .../{ActivityBase.cpp => Activity.cpp} | 29 ++++++----- src/activity/Activity.h | 44 +++++++++++++---- src/activity/ActivityBase.h | 48 ------------------- src/activity/ActivityTypes.h | 32 ++++++------- src/shared/DeviceContextProvider.cpp | 8 ++-- 5 files changed, 68 insertions(+), 93 deletions(-) rename src/activity/{ActivityBase.cpp => Activity.cpp} (76%) delete mode 100644 src/activity/ActivityBase.h diff --git a/src/activity/ActivityBase.cpp b/src/activity/Activity.cpp similarity index 76% rename from src/activity/ActivityBase.cpp rename to src/activity/Activity.cpp index b677b6e..faf864d 100644 --- a/src/activity/ActivityBase.cpp +++ b/src/activity/Activity.cpp @@ -15,30 +15,29 @@ */ #include -#include "ActivityTypes.h" -#include "ActivityBase.h" +#include "Activity.h" using namespace ctx; -UserActivityBase::UserActivityBase(const char *subject, activity_type_e type) : +ActivityProvider::ActivityProvider(const char *subject, activity_type_e type) : BasicProvider(subject), __activityType(type), __activityHandle(NULL) { } -UserActivityBase::~UserActivityBase() +ActivityProvider::~ActivityProvider() { if (__activityHandle) activity_release(__activityHandle); } -bool UserActivityBase::isSupported() +bool ActivityProvider::isSupported() { return util::getSystemInfoBool("tizen.org/feature/sensor.activity_recognition"); } -void UserActivityBase::submitTriggerItem() +void ActivityProvider::submitTriggerItem() { registerTriggerItem(OPS_SUBSCRIBE, "{\"Event\":{\"type\":\"string\", \"values\":[\"Detected\"]}}", @@ -46,40 +45,40 @@ void UserActivityBase::submitTriggerItem() ); } -void UserActivityBase::__updateCb(activity_type_e activity, const activity_data_h data, double timestamp, activity_error_e error, void* userData) +void ActivityProvider::__updateCb(activity_type_e activity, const activity_data_h data, double timestamp, activity_error_e error, void* userData) { IF_FAIL_VOID_TAG(error == ACTIVITY_ERROR_NONE, _E, "Error: %d", error); - UserActivityBase *instance = static_cast(userData); + ActivityProvider *instance = static_cast(userData); instance->__handleUpdate(activity, data, timestamp); } -void UserActivityBase::__handleUpdate(activity_type_e activity, const activity_data_h data, double timestamp) +void ActivityProvider::__handleUpdate(activity_type_e activity, const activity_data_h data, double timestamp) { IF_FAIL_VOID_TAG(activity == __activityType, _E, "Invalid activity: %d", activity); Json dataRead; - dataRead.set(NULL, USER_ACT_EVENT, USER_ACT_DETECTED); + dataRead.set(NULL, CTX_ACTIVITY_EVENT, CTX_ACTIVITY_DETECTED); activity_accuracy_e accuracy = ACTIVITY_ACCURACY_LOW; activity_get_accuracy(data, &accuracy); switch (accuracy) { case ACTIVITY_ACCURACY_HIGH: - dataRead.set(NULL, USER_ACT_ACCURACY, USER_ACT_HIGH); + dataRead.set(NULL, CTX_ACTIVITY_ACCURACY, CTX_ACTIVITY_HIGH); break; case ACTIVITY_ACCURACY_MID: - dataRead.set(NULL, USER_ACT_ACCURACY, USER_ACT_NORMAL); + dataRead.set(NULL, CTX_ACTIVITY_ACCURACY, CTX_ACTIVITY_NORMAL); break; default: - dataRead.set(NULL, USER_ACT_ACCURACY, USER_ACT_LOW); + dataRead.set(NULL, CTX_ACTIVITY_ACCURACY, CTX_ACTIVITY_LOW); break; } publish(NULL, ERR_NONE, dataRead); } -int UserActivityBase::subscribe() +int ActivityProvider::subscribe() { IF_FAIL_RETURN(__activityHandle == NULL, ERR_NONE); @@ -97,7 +96,7 @@ int UserActivityBase::subscribe() return ERR_NONE; } -int UserActivityBase::unsubscribe() +int ActivityProvider::unsubscribe() { IF_FAIL_RETURN(__activityHandle, ERR_NONE); diff --git a/src/activity/Activity.h b/src/activity/Activity.h index ab5be2e..c3c3dfe 100644 --- a/src/activity/Activity.h +++ b/src/activity/Activity.h @@ -14,23 +14,47 @@ * limitations under the License. */ -#ifndef _DEVICE_ACTIVITY_STATUS_H_ -#define _DEVICE_ACTIVITY_STATUS_H_ +#ifndef _CONTEXT_ACTIVITY_PROVIDER_H_ +#define _CONTEXT_ACTIVITY_PROVIDER_H_ -#include "ActivityBase.h" +#include +#include +#include #include "ActivityTypes.h" #define GENERATE_ACTIVITY_PROVIDER(actPrvd, actSubj, actType) \ - class actPrvd : public UserActivityBase { \ + class actPrvd : public ActivityProvider { \ public: \ - actPrvd() : UserActivityBase(actSubj, actType) {} \ + actPrvd() : ActivityProvider(actSubj, actType) {} \ }; \ namespace ctx { - GENERATE_ACTIVITY_PROVIDER(UserActivityStationary, USER_ACT_SUBJ_STATIONARY, ACTIVITY_STATIONARY); - GENERATE_ACTIVITY_PROVIDER(UserActivityWalking, USER_ACT_SUBJ_WALKING, ACTIVITY_WALK); - GENERATE_ACTIVITY_PROVIDER(UserActivityRunning, USER_ACT_SUBJ_RUNNING, ACTIVITY_RUN); - GENERATE_ACTIVITY_PROVIDER(UserActivityInVehicle, USER_ACT_SUBJ_IN_VEHICLE, ACTIVITY_IN_VEHICLE); + + class ActivityProvider : public BasicProvider { + public: + ActivityProvider(const char *subject, activity_type_e type); + virtual ~ActivityProvider(); + + int subscribe(); + int unsubscribe(); + + bool isSupported(); + void submitTriggerItem(); + + protected: + activity_type_e __activityType; + activity_h __activityHandle; + + private: + void __handleUpdate(activity_type_e activity, const activity_data_h data, double timestamp); + static void __updateCb(activity_type_e activity, const activity_data_h data, double timestamp, activity_error_e error, void* userData); + }; + + + GENERATE_ACTIVITY_PROVIDER(StationaryActivityProvider, CTX_ACTIVITY_SUBJ_STATIONARY, ACTIVITY_STATIONARY); + GENERATE_ACTIVITY_PROVIDER(WalkingActivityProvider, CTX_ACTIVITY_SUBJ_WALKING, ACTIVITY_WALK); + GENERATE_ACTIVITY_PROVIDER(RunningActivityProvider, CTX_ACTIVITY_SUBJ_RUNNING, ACTIVITY_RUN); + GENERATE_ACTIVITY_PROVIDER(InVehicleActivityProvider, CTX_ACTIVITY_SUBJ_IN_VEHICLE, ACTIVITY_IN_VEHICLE); } -#endif // _DEVICE_ACTIVITY_STATUS_H_ +#endif // _CONTEXT_ACTIVITY_PROVIDER_H_ diff --git a/src/activity/ActivityBase.h b/src/activity/ActivityBase.h deleted file mode 100644 index 16235c6..0000000 --- a/src/activity/ActivityBase.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _DEVICE_ACTIVITY_STATUS_BASE_H_ -#define _DEVICE_ACTIVITY_STATUS_BASE_H_ - -#include -#include -#include "../shared/BasicProvider.h" - -namespace ctx { - - class UserActivityBase : public BasicProvider { - public: - UserActivityBase(const char *subject, activity_type_e type); - virtual ~UserActivityBase(); - - int subscribe(); - int unsubscribe(); - - bool isSupported(); - void submitTriggerItem(); - - protected: - activity_type_e __activityType; - activity_h __activityHandle; - - private: - void __handleUpdate(activity_type_e activity, const activity_data_h data, double timestamp); - static void __updateCb(activity_type_e activity, const activity_data_h data, double timestamp, activity_error_e error, void* userData); - }; - -} - -#endif // _DEVICE_ACTIVITY_STATUS_BASE_H_ diff --git a/src/activity/ActivityTypes.h b/src/activity/ActivityTypes.h index 4562b7b..8a58776 100644 --- a/src/activity/ActivityTypes.h +++ b/src/activity/ActivityTypes.h @@ -14,23 +14,23 @@ * limitations under the License. */ -#ifndef _DEVICE_ACTIVITY_STATUS_TYPES_H_ -#define _DEVICE_ACTIVITY_STATUS_TYPES_H_ +#ifndef _CONTEXT_ACTIVITY_TYPES_H_ +#define _CONTEXT_ACTIVITY_TYPES_H_ -// Subject -#define USER_ACT_SUBJ_IN_VEHICLE "activity/in_vehicle" -#define USER_ACT_SUBJ_RUNNING "activity/running" -#define USER_ACT_SUBJ_STATIONARY "activity/stationary" -#define USER_ACT_SUBJ_WALKING "activity/walking" +/* Subject */ +#define CTX_ACTIVITY_SUBJ_IN_VEHICLE "activity/in_vehicle" +#define CTX_ACTIVITY_SUBJ_RUNNING "activity/running" +#define CTX_ACTIVITY_SUBJ_STATIONARY "activity/stationary" +#define CTX_ACTIVITY_SUBJ_WALKING "activity/walking" -// Data Key -#define USER_ACT_EVENT "Event" -#define USER_ACT_ACCURACY "Accuracy" +/* Data Key */ +#define CTX_ACTIVITY_EVENT "Event" +#define CTX_ACTIVITY_ACCURACY "Accuracy" -// Data Value -#define USER_ACT_DETECTED "Detected" -#define USER_ACT_LOW "Low" -#define USER_ACT_NORMAL "Normal" -#define USER_ACT_HIGH "High" +/* Data Value */ +#define CTX_ACTIVITY_DETECTED "Detected" +#define CTX_ACTIVITY_LOW "Low" +#define CTX_ACTIVITY_NORMAL "Normal" +#define CTX_ACTIVITY_HIGH "High" -#endif // _DEVICE_ACTIVITY_STATUS_TYPES_H_ +#endif /* _CONTEXT_ACTIVITY_TYPES_H_ */ diff --git a/src/shared/DeviceContextProvider.cpp b/src/shared/DeviceContextProvider.cpp index 5ff533d..f0a8d79 100644 --- a/src/shared/DeviceContextProvider.cpp +++ b/src/shared/DeviceContextProvider.cpp @@ -69,10 +69,10 @@ SO_EXPORT bool ctx::initDeviceContextProvider() registerProvider(DEVICE_ST_SUBJ_BATTERY, NULL); registerProvider(DEVICE_ST_SUBJ_PSMODE, NULL); - registerProvider(USER_ACT_SUBJ_STATIONARY, NULL); - registerProvider(USER_ACT_SUBJ_WALKING, NULL); - registerProvider(USER_ACT_SUBJ_RUNNING, NULL); - registerProvider(USER_ACT_SUBJ_IN_VEHICLE, NULL); + registerProvider(CTX_ACTIVITY_SUBJ_STATIONARY, NULL); + registerProvider(CTX_ACTIVITY_SUBJ_WALKING, NULL); + registerProvider(CTX_ACTIVITY_SUBJ_RUNNING, NULL); + registerProvider(CTX_ACTIVITY_SUBJ_IN_VEHICLE, NULL); #ifdef _MOBILE_ registerProvider(SOCIAL_ST_SUBJ_CALL, PRIV_TELEPHONY); -- 2.34.1