From: Wonki kim Date: Sun, 12 Apr 2020 15:01:45 +0000 (-0700) Subject: bootstrap: change bootstrap to a tizen service app X-Git-Tag: submit/tizen/20200417.234115~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bda664e018ec90b50f85010a88e0e17e4a9ccac6;p=platform%2Fcore%2Fuifw%2Faurum.git bootstrap: change bootstrap to a tizen service app to make user able to run/kill bootstrap server, this patch change bootstrap to a tizen service app. Change-Id: Id604c2fbeabae0fd44536367151f306a181a1167 --- diff --git a/bootstrap/meson.build b/bootstrap/meson.build deleted file mode 100644 index 874ed25..0000000 --- a/bootstrap/meson.build +++ /dev/null @@ -1 +0,0 @@ -subdir('server') diff --git a/bootstrap/server/aurum-bootstrap.service b/bootstrap/server/aurum-bootstrap.service deleted file mode 100644 index eafa1b2..0000000 --- a/bootstrap/server/aurum-bootstrap.service +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Server for testing UI testing - -[Service] -Type=simple -ExecStart=/usr/bin/aurum_bootstrap -EnvironmentFile=-/run/tizen-system-env diff --git a/bootstrap/server/inc/AurumServiceImpl.h b/bootstrap/server/inc/AurumServiceImpl.h deleted file mode 100644 index bf6ae41..0000000 --- a/bootstrap/server/inc/AurumServiceImpl.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef aurum_IMPL_H -#define aurum_IMPL_H - -#include -#include "Commands/Command.h" -#include "aurum.grpc.pb.h" - -class aurumServiceImpl final : public aurum::Bootstrap::Service { -public: - aurumServiceImpl(); - virtual ~aurumServiceImpl(); - -protected: - ::grpc::Status execute(Command *cmd); - -public: - ::grpc::Status sync(::grpc::ServerContext * context, - const ::aurum::ReqEmpty *request, - ::aurum::RspEmpty * response) override; - ::grpc::Status killServer(::grpc::ServerContext * context, - const ::aurum::ReqEmpty *request, - ::aurum::RspEmpty * response) override; - - ::grpc::Status findElement(::grpc::ServerContext * context, - const ::aurum::ReqFindElement *request, - ::aurum::RspFindElement *response) override; - - ::grpc::Status getValue(::grpc::ServerContext * context, - const ::aurum::ReqGetValue *request, - ::aurum::RspGetValue * response) override; - ::grpc::Status setValue(::grpc::ServerContext * context, - const ::aurum::ReqSetValue *request, - ::aurum::RspSetValue * response) override; - ::grpc::Status getAttribute(::grpc::ServerContext * context, - const ::aurum::ReqGetAttribute *request, - ::aurum::RspGetAttribute *response) override; - ::grpc::Status getSize(::grpc::ServerContext * context, - const ::aurum::ReqGetSize *request, - ::aurum::RspGetSize * response) override; - ::grpc::Status clear(::grpc::ServerContext * context, - const ::aurum::ReqClear *request, - ::aurum::RspClear * response) override; - ::grpc::Status installApp( - ::grpc::ServerContext * context, - ::grpc::ServerReader< ::aurum::ReqInstallApp> *reader, - ::aurum::RspInstallApp * response) override; - ::grpc::Status removeApp(::grpc::ServerContext * context, - const ::aurum::ReqRemoveApp *request, - ::aurum::RspRemoveApp * response) override; - ::grpc::Status getAppInfo(::grpc::ServerContext * context, - const ::aurum::ReqGetAppInfo *request, - ::aurum::RspGetAppInfo * response) override; - ::grpc::Status launchApp(::grpc::ServerContext * context, - const ::aurum::ReqLaunchApp *request, - ::aurum::RspLaunchApp * response) override; - ::grpc::Status closeApp(::grpc::ServerContext * context, - const ::aurum::ReqCloseApp *request, - ::aurum::RspCloseApp * response) override; - - ::grpc::Status click(::grpc::ServerContext * context, - const ::aurum::ReqClick *request, - ::aurum::RspClick * response) override; - ::grpc::Status longClick(::grpc::ServerContext * context, - const ::aurum::ReqClick *request, - ::aurum::RspClick * response) override; - ::grpc::Status flick(::grpc::ServerContext * context, - const ::aurum::ReqFlick *request, - ::aurum::RspFlick * response) override; - - ::grpc::Status touchDown(::grpc::ServerContext * context, - const ::aurum::ReqTouchDown *request, - ::aurum::RspTouchDown * response) override; - ::grpc::Status touchUp(::grpc::ServerContext * context, - const ::aurum::ReqTouchUp *request, - ::aurum::RspTouchUp * response) override; - ::grpc::Status touchMove(::grpc::ServerContext * context, - const ::aurum::ReqTouchMove *request, - ::aurum::RspTouchMove * response) override; - - ::grpc::Status getDeviceTime(::grpc::ServerContext * context, - const ::aurum::ReqGetDeviceTime *request, - ::aurum::RspGetDeviceTime *response) override; - ::grpc::Status getLocation(::grpc::ServerContext * context, - const ::aurum::ReqGetLocation *request, - ::aurum::RspGetLocation *response) override; - ::grpc::Status sendKey(::grpc::ServerContext *context, - const ::aurum::ReqKey *request, - ::aurum::RspKey * response) override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/ClearCommand.h b/bootstrap/server/inc/Commands/ClearCommand.h deleted file mode 100644 index 0197559..0000000 --- a/bootstrap/server/inc/Commands/ClearCommand.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef CLEAR_COMMAND_H -#define CLEAR_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class ClearCommand : public Command { -private: - const ::aurum::ReqClear* mRequest; - ::aurum::RspClear* mResponse; - -public: - ClearCommand(const ::aurum::ReqClear* request, ::aurum::RspClear* response); - ::grpc::Status execute() override; - -protected: - bool hasHintText(UiObject *obj); -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/ClickCommand.h b/bootstrap/server/inc/Commands/ClickCommand.h deleted file mode 100644 index cf03a01..0000000 --- a/bootstrap/server/inc/Commands/ClickCommand.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CLICK_COMMAND_H -#define CLICK_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" -class ClickCommand : public Command { -protected: - const ::aurum::ReqClick* mRequest; - ::aurum::RspClick* mResponse; - -public: - ClickCommand(const ::aurum::ReqClick* request, ::aurum::RspClick* response); - ::grpc::Status execute() override; - static std::unique_ptr createCommand(const ::aurum::ReqClick* request, ::aurum::RspClick* response); -}; - -class ClickElementCommand : public ClickCommand { - using ClickCommand::ClickCommand; -public: - ::grpc::Status execute() override; -}; - -class ClickCoordCommand : public ClickCommand { - using ClickCommand::ClickCommand; -public: - ::grpc::Status execute() override; -}; - -class ClickAtspiCommand : public ClickCommand { - using ClickCommand::ClickCommand; -public: - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/CloseAppCommand.h b/bootstrap/server/inc/Commands/CloseAppCommand.h deleted file mode 100644 index fb00f39..0000000 --- a/bootstrap/server/inc/Commands/CloseAppCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef CLOSE_APP_COMMAND_H -#define CLOSE_APP_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class CloseAppCommand : public Command { -private: - const ::aurum::ReqCloseApp* mRequest; - ::aurum::RspCloseApp* mResponse; - -public: - CloseAppCommand(const ::aurum::ReqCloseApp* request, - ::aurum::RspCloseApp* response); - ::grpc::Status execute() override; - ::grpc::Status executePost() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/Command.h b/bootstrap/server/inc/Commands/Command.h deleted file mode 100644 index 59bf76e..0000000 --- a/bootstrap/server/inc/Commands/Command.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef COMMAND_H -#define COMMAND_H - -#include -#include -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" - -#include "config.h" - -class Command { -public: - virtual ~Command(){}; - virtual ::grpc::Status execute() = 0; - virtual ::grpc::Status executePost(); - virtual ::grpc::Status executePre(); -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/Commands.h b/bootstrap/server/inc/Commands/Commands.h deleted file mode 100644 index 7a5acd8..0000000 --- a/bootstrap/server/inc/Commands/Commands.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef COMMANDS_H -#define COMMANDS_H - -#include "Commands/KillServerCommand.h" -#include "Commands/SyncCommand.h" - -#include "Commands/FindElementCommand.h" - -#include "Commands/GetAttributeCommand.h" -#include "Commands/GetValueCommand.h" -#include "Commands/SetValueCommand.h" - -#include "Commands/ClearCommand.h" -#include "Commands/GetSizeCommand.h" - -#include "Commands/ClickCommand.h" -#include "Commands/FlickCommand.h" -#include "Commands/LongClickCommand.h" - -#include "Commands/TouchDownCommand.h" -#include "Commands/TouchMoveCommand.h" -#include "Commands/TouchUpCommand.h" - -#include "Commands/CloseAppCommand.h" -#include "Commands/GetAppInfoCommand.h" -#include "Commands/InstallAppCommand.h" -#include "Commands/LaunchAppCommand.h" -#include "Commands/RemoveAppCommand.h" - -#include "Commands/GetDeviceTimeCommand.h" -#include "Commands/GetLocationCommand.h" -#include "Commands/SendKeyCommand.h" - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/FindElementCommand.h b/bootstrap/server/inc/Commands/FindElementCommand.h deleted file mode 100644 index 488e321..0000000 --- a/bootstrap/server/inc/Commands/FindElementCommand.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef FIND_ELEMENT_COMMAND_H -#define FIND_ELEMENT_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class FindElementCommand : public Command { -protected: - const ::aurum::ReqFindElement* mRequest; - ::aurum::RspFindElement* mResponse; - -protected: - ObjectMapper* mObjMap; - -public: - FindElementCommand(const ::aurum::ReqFindElement* request, - ::aurum::RspFindElement* response); - ::grpc::Status execute() override; -protected: - virtual ISearchable* getSearchableTop(void); - virtual std::shared_ptr getSelector(void); -}; -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/FlickCommand.h b/bootstrap/server/inc/Commands/FlickCommand.h deleted file mode 100644 index f78e1e4..0000000 --- a/bootstrap/server/inc/Commands/FlickCommand.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef FLICK_COMMAND_H -#define FLICK_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class FlickCommand : public Command { -private: - const ::aurum::ReqFlick* mRequest; - ::aurum::RspFlick* mResponse; - -public: - FlickCommand(const ::aurum::ReqFlick* request, ::aurum::RspFlick* response); - ; - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/GetAppInfoCommand.h b/bootstrap/server/inc/Commands/GetAppInfoCommand.h deleted file mode 100644 index 1a9a146..0000000 --- a/bootstrap/server/inc/Commands/GetAppInfoCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef IS_APP_INSTALLED_COMMAND_H -#define IS_APP_INSTALLED_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class GetAppInfoCommand : public Command { -private: - const ::aurum::ReqGetAppInfo* mRequest; - ::aurum::RspGetAppInfo* mResponse; - -public: - GetAppInfoCommand(const ::aurum::ReqGetAppInfo* request, - ::aurum::RspGetAppInfo* response); - ; - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/GetAttributeCommand.h b/bootstrap/server/inc/Commands/GetAttributeCommand.h deleted file mode 100644 index a1cac0b..0000000 --- a/bootstrap/server/inc/Commands/GetAttributeCommand.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef GET_ATTRIBUTE_COMMAND_H -#define GET_ATTRIBUTE_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class GetAttributeCommand : public Command { -protected: - const ::aurum::ReqGetAttribute* mRequest; - ::aurum::RspGetAttribute* mResponse; - ObjectMapper* mObjMap; - -public: - GetAttributeCommand(const ::aurum::ReqGetAttribute* request, - ::aurum::RspGetAttribute* response); - ::grpc::Status execute() override; - static std::unique_ptr createCommand(const ::aurum::ReqGetAttribute* request, - ::aurum::RspGetAttribute* response); -}; - -class GetVisibleAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetFocusedAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetFocusableAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetCheckableAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetCheckedAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetEnabledAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetClickableAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetScrollableAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetSelectableAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -class GetSelectedAttributeCommand : public GetAttributeCommand { - using GetAttributeCommand::GetAttributeCommand; -public: - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/GetDeviceTimeCommand.h b/bootstrap/server/inc/Commands/GetDeviceTimeCommand.h deleted file mode 100644 index 4521709..0000000 --- a/bootstrap/server/inc/Commands/GetDeviceTimeCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GET_DEVICE_TIME_COMMAND_H -#define GET_DEVICE_TIME_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class GetDeviceTimeCommand : public Command { -private: - const ::aurum::ReqGetDeviceTime* mRequest; - ::aurum::RspGetDeviceTime* mResponse; - -public: - GetDeviceTimeCommand(const ::aurum::ReqGetDeviceTime* request, - ::aurum::RspGetDeviceTime* response); - ; - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/GetLocationCommand.h b/bootstrap/server/inc/Commands/GetLocationCommand.h deleted file mode 100644 index 2cb1341..0000000 --- a/bootstrap/server/inc/Commands/GetLocationCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GET_LOCATION_COMMAND_H -#define GET_LOCATION_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class GetLocationCommand : public Command { -private: - const ::aurum::ReqGetLocation* mRequest; - ::aurum::RspGetLocation* mResponse; - -public: - GetLocationCommand(const ::aurum::ReqGetLocation* request, - ::aurum::RspGetLocation* response); - ; - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/GetSizeCommand.h b/bootstrap/server/inc/Commands/GetSizeCommand.h deleted file mode 100644 index d6c8a33..0000000 --- a/bootstrap/server/inc/Commands/GetSizeCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GET_SIZE_COMMAND_H -#define GET_SIZE_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class GetSizeCommand : public Command { -private: - const ::aurum::ReqGetSize* mRequest; - ::aurum::RspGetSize* mResponse; - -public: - GetSizeCommand(const ::aurum::ReqGetSize* request, - ::aurum::RspGetSize* response); - ; - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/GetValueCommand.h b/bootstrap/server/inc/Commands/GetValueCommand.h deleted file mode 100644 index ccbd6ec..0000000 --- a/bootstrap/server/inc/Commands/GetValueCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GET_VALUE_COMMAND_H -#define GET_VALUE_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class GetValueCommand : public Command { -private: - const ::aurum::ReqGetValue* mRequest; - ::aurum::RspGetValue* mResponse; - -public: - GetValueCommand(const ::aurum::ReqGetValue* request, - ::aurum::RspGetValue* response); - ; - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/InstallAppCommand.h b/bootstrap/server/inc/Commands/InstallAppCommand.h deleted file mode 100644 index 4ddc3e2..0000000 --- a/bootstrap/server/inc/Commands/InstallAppCommand.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef INSTALL_APP_COMMAND_H -#define INSTALL_APP_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class InstallAppCommand : public Command { -private: - ::grpc::ServerReader< ::aurum::ReqInstallApp>* mRequest; - ::aurum::RspInstallApp* mResponse; - -public: - InstallAppCommand(::grpc::ServerReader< ::aurum::ReqInstallApp>* request, - ::aurum::RspInstallApp* response); - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/KillServerCommand.h b/bootstrap/server/inc/Commands/KillServerCommand.h deleted file mode 100644 index 3121ac1..0000000 --- a/bootstrap/server/inc/Commands/KillServerCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef KILL_SERVER_COMMAND_H -#define KILL_SERVER_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class KillServerCommand : public Command { -private: - const ::aurum::ReqEmpty* mRequest; - ::aurum::RspEmpty* mResponse; - -public: - KillServerCommand(const ::aurum::ReqEmpty* request, - ::aurum::RspEmpty* response); - ; - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/LaunchAppCommand.h b/bootstrap/server/inc/Commands/LaunchAppCommand.h deleted file mode 100644 index 2227fed..0000000 --- a/bootstrap/server/inc/Commands/LaunchAppCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef LAUNCH_APP_COMMAND_H -#define LAUNCH_APP_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class LaunchAppCommand : public Command { -private: - const ::aurum::ReqLaunchApp* mRequest; - ::aurum::RspLaunchApp* mResponse; - -public: - LaunchAppCommand(const ::aurum::ReqLaunchApp* request, - ::aurum::RspLaunchApp* response); - ::grpc::Status execute() override; - ::grpc::Status executePost() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/LongClickCommand.h b/bootstrap/server/inc/Commands/LongClickCommand.h deleted file mode 100644 index 86a0b83..0000000 --- a/bootstrap/server/inc/Commands/LongClickCommand.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef LONG_CLICK_COMMAND_H -#define LONG_CLICK_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class LongClickCommand : public Command { -private: - const ::aurum::ReqClick* mRequest; - ::aurum::RspClick* mResponse; - -public: - LongClickCommand(const ::aurum::ReqClick* request, - ::aurum::RspClick* response); - ::grpc::Status execute() override; -private: - const static unsigned int LOGNCLICK_INTERVAL = 50; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/PostCommand.h b/bootstrap/server/inc/Commands/PostCommand.h deleted file mode 100644 index 29bd8a2..0000000 --- a/bootstrap/server/inc/Commands/PostCommand.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef POST_COMMAND_H -#define POST_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class PostCommand : public Command { -private: - Command *mCommand; - PostCommand(); - -public: - PostCommand(Command *cmd); - ::grpc::Status execute() override; - ::grpc::Status executePre() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/PreCommand.h b/bootstrap/server/inc/Commands/PreCommand.h deleted file mode 100644 index 7d59d2a..0000000 --- a/bootstrap/server/inc/Commands/PreCommand.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PRE_COMMAND_H -#define PRE_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class PreCommand : public Command { -private: - Command *mCommand; - PreCommand(); - -public: - PreCommand(Command *cmd); - ::grpc::Status execute() override; - ::grpc::Status executePost() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/RemoveAppCommand.h b/bootstrap/server/inc/Commands/RemoveAppCommand.h deleted file mode 100644 index 9ab28ba..0000000 --- a/bootstrap/server/inc/Commands/RemoveAppCommand.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef REMOVE_APP_COMMAND_H -#define REMOVE_APP_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class RemoveAppCommand : public Command { -private: - const ::aurum::ReqRemoveApp* mRequest; - ::aurum::RspRemoveApp* mResponse; - -public: - RemoveAppCommand(const ::aurum::ReqRemoveApp* request, - ::aurum::RspRemoveApp* response); - ; - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/SendKeyCommand.h b/bootstrap/server/inc/Commands/SendKeyCommand.h deleted file mode 100644 index 96fd071..0000000 --- a/bootstrap/server/inc/Commands/SendKeyCommand.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef SEND_KEY_COMMAND_H -#define SEND_KEY_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class SendKeyCommand : public Command { -private: - const ::aurum::ReqKey* mRequest; - ::aurum::RspKey* mResponse; - -public: - SendKeyCommand(const ::aurum::ReqKey* request, ::aurum::RspKey* response); - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/SetValueCommand.h b/bootstrap/server/inc/Commands/SetValueCommand.h deleted file mode 100644 index 13cf245..0000000 --- a/bootstrap/server/inc/Commands/SetValueCommand.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef SET_VALUE_COMMAND_H -#define SET_VALUE_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class SetValueCommand : public Command { -private: - const ::aurum::ReqSetValue* mRequest; - ::aurum::RspSetValue* mResponse; - -public: - SetValueCommand(const ::aurum::ReqSetValue* request, - ::aurum::RspSetValue* response); - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/SyncCommand.h b/bootstrap/server/inc/Commands/SyncCommand.h deleted file mode 100644 index ecc7d6a..0000000 --- a/bootstrap/server/inc/Commands/SyncCommand.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef SYNC_COMMAND_H -#define SYNC_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class SyncCommand : public Command { -private: - const ::aurum::ReqEmpty* mRequest; - ::aurum::RspEmpty* mResponse; - -public: - SyncCommand(const ::aurum::ReqEmpty* request, ::aurum::RspEmpty* response); - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/TouchDownCommand.h b/bootstrap/server/inc/Commands/TouchDownCommand.h deleted file mode 100644 index 29b796b..0000000 --- a/bootstrap/server/inc/Commands/TouchDownCommand.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef TOUCH_DOWN_COMMAND_H -#define TOUCH_DOWN_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class TouchDownCommand : public Command { -private: - const ::aurum::ReqTouchDown* mRequest; - ::aurum::RspTouchDown* mResponse; - -public: - TouchDownCommand(const ::aurum::ReqTouchDown* request, - ::aurum::RspTouchDown* response); - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/TouchMoveCommand.h b/bootstrap/server/inc/Commands/TouchMoveCommand.h deleted file mode 100644 index 12b719a..0000000 --- a/bootstrap/server/inc/Commands/TouchMoveCommand.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef TOUCH_MOVE_COMMAND_H -#define TOUCH_MOVE_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class TouchMoveCommand : public Command { -private: - const ::aurum::ReqTouchMove* mRequest; - ::aurum::RspTouchMove* mResponse; - -public: - TouchMoveCommand(const ::aurum::ReqTouchMove* request, - ::aurum::RspTouchMove* response); - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/Commands/TouchUpCommand.h b/bootstrap/server/inc/Commands/TouchUpCommand.h deleted file mode 100644 index 7ddc9e0..0000000 --- a/bootstrap/server/inc/Commands/TouchUpCommand.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef TOUCH_UP_COMMAND_H -#define TOUCH_UP_COMMAND_H - -#include -#include -#include "Commands/Command.h" -#include "ObjectMapper.h" -#include "aurum.grpc.pb.h" -#include "config.h" - -class TouchUpCommand : public Command { -private: - const ::aurum::ReqTouchUp* mRequest; - ::aurum::RspTouchUp* mResponse; - -public: - TouchUpCommand(const ::aurum::ReqTouchUp* request, - ::aurum::RspTouchUp* response); - ::grpc::Status execute() override; -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/inc/ObjectMapper.h b/bootstrap/server/inc/ObjectMapper.h deleted file mode 100644 index b1f127f..0000000 --- a/bootstrap/server/inc/ObjectMapper.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef OBJECT_MAPPER_H -#define OBJECT_MAPPER_H - -#include -#include - -#include "UiObject.h" - -class ObjectMapper { -private: - std::map> mObjectMap; - unsigned long long mObjCounter; - -private: - ObjectMapper(); - -public: - ~ObjectMapper(); - -public: - static ObjectMapper *getInstance(); - std::string addElement(std::unique_ptr object); - UiObject * getElement(const std::string &key); -}; - -#endif \ No newline at end of file diff --git a/bootstrap/server/meson.build b/bootstrap/server/meson.build deleted file mode 100644 index f51672e..0000000 --- a/bootstrap/server/meson.build +++ /dev/null @@ -1,75 +0,0 @@ -bootstrap_svr_inc = [ - libaurum_inc, - root_inc, - include_directories('inc'), - include_directories('inc/Commands'), - loguru_inc, -] - -bootstrap_svr_src = [ - files('src/BootstrapServer.cc'), - files('src/AurumServiceImpl.cc'), - files('src/ObjectMapper.cc'), -] - -bootstrap_svr_src += [ - files('src/Commands/ClearCommand.cc'), - files('src/Commands/ClickCommand.cc'), - files('src/Commands/CloseAppCommand.cc'), - files('src/Commands/FindElementCommand.cc'), - files('src/Commands/FlickCommand.cc'), - files('src/Commands/GetAttributeCommand.cc'), - files('src/Commands/GetDeviceTimeCommand.cc'), - files('src/Commands/GetLocationCommand.cc'), - files('src/Commands/GetSizeCommand.cc'), - files('src/Commands/GetValueCommand.cc'), - files('src/Commands/InstallAppCommand.cc'), - files('src/Commands/GetAppInfoCommand.cc'), - files('src/Commands/LaunchAppCommand.cc'), - files('src/Commands/LongClickCommand.cc'), - files('src/Commands/RemoveAppCommand.cc'), - files('src/Commands/SendKeyCommand.cc'), - files('src/Commands/SetValueCommand.cc'), - files('src/Commands/TouchDownCommand.cc'), - files('src/Commands/TouchMoveCommand.cc'), - files('src/Commands/TouchUpCommand.cc'), - files('src/Commands/SyncCommand.cc'), - files('src/Commands/KillServerCommand.cc'), - files('src/Commands/Command.cc'), - files('src/Commands/PreCommand.cc'), - files('src/Commands/PostCommand.cc'), -] - -bootstrap_svr_dep = [ - libaurum, - grpc_deps, - loguru_deps, -] - -if get_option('tizen') == true -bootstrap_svr_dep += [ - dependency('capi-appfw-app-control'), - dependency('capi-appfw-app-manager'), - dependency('capi-appfw-package-manager'), -] -endif - -bootstrap_svr_bin = executable( - 'aurum_bootstrap', - [bootstrap_svr_src, grpc_src, grpc_pb_src], - dependencies: bootstrap_svr_dep, - include_directories: bootstrap_svr_inc, - link_with: libloguru, - install:true, - pie:true, -) - -system_unit_dir = '' -user_unit_dir = '' - -systemd = dependency('systemd', required: false) -if systemd.found() - user_unit_dir = systemd.get_pkgconfig_variable('systemduserunitdir') -endif - -install_data('aurum-bootstrap.service', install_dir:user_unit_dir) diff --git a/bootstrap/server/src/AurumServiceImpl.cc b/bootstrap/server/src/AurumServiceImpl.cc deleted file mode 100644 index 89e7c60..0000000 --- a/bootstrap/server/src/AurumServiceImpl.cc +++ /dev/null @@ -1,183 +0,0 @@ -#include "AurumServiceImpl.h" - -#include -#include "Commands/Commands.h" -#include "Commands/PostCommand.h" -#include "Commands/PreCommand.h" - -#include "config.h" -#include "loguru.hpp" - -using namespace grpc; -using namespace aurum; - -aurumServiceImpl::aurumServiceImpl() -{ - AccessibleWatcher::getInstance(); -} - -::grpc::Status aurumServiceImpl::execute(Command* cmd) -{ - std::unique_ptr proxyPreCmd = std::make_unique(cmd); - std::unique_ptr proxyPostCmd = std::make_unique(proxyPreCmd.get()); - ::grpc::Status rst = proxyPostCmd->execute(); - return rst; -} - -aurumServiceImpl::~aurumServiceImpl() {} -::grpc::Status aurumServiceImpl::aurumServiceImpl::sync( - ::grpc::ServerContext* context, const ::aurum::ReqEmpty* request, - ::aurum::RspEmpty* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::aurumServiceImpl::killServer( - ::grpc::ServerContext* context, const ::aurum::ReqEmpty* request, - ::aurum::RspEmpty* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::aurumServiceImpl::findElement( - ::grpc::ServerContext* context, const ::aurum::ReqFindElement* request, - ::aurum::RspFindElement* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} - -::grpc::Status aurumServiceImpl::aurumServiceImpl::click( - ::grpc::ServerContext* context, const ::aurum::ReqClick* request, - ::aurum::RspClick* response) -{ - std::unique_ptr cmd = ClickCommand::createCommand(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::getValue(::grpc::ServerContext* context, - const ::aurum::ReqGetValue* request, - ::aurum::RspGetValue* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::setValue(::grpc::ServerContext* context, - const ::aurum::ReqSetValue* request, - ::aurum::RspSetValue* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::getAttribute( - ::grpc::ServerContext* context, const ::aurum::ReqGetAttribute* request, - ::aurum::RspGetAttribute* response) -{ - std::unique_ptr cmd = GetAttributeCommand::createCommand(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::getSize(::grpc::ServerContext* context, - const ::aurum::ReqGetSize* request, - ::aurum::RspGetSize* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::clear(::grpc::ServerContext* context, - const ::aurum::ReqClear* request, - ::aurum::RspClear* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::installApp( - ::grpc::ServerContext* context, - ::grpc::ServerReader< ::aurum::ReqInstallApp>* request, - ::aurum::RspInstallApp* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::removeApp(::grpc::ServerContext* context, - const ::aurum::ReqRemoveApp* request, - ::aurum::RspRemoveApp* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::getAppInfo( - ::grpc::ServerContext* context, const ::aurum::ReqGetAppInfo* request, - ::aurum::RspGetAppInfo* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::launchApp(::grpc::ServerContext* context, - const ::aurum::ReqLaunchApp* request, - ::aurum::RspLaunchApp* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::closeApp(::grpc::ServerContext* context, - const ::aurum::ReqCloseApp* request, - ::aurum::RspCloseApp* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::touchDown(::grpc::ServerContext* context, - const ::aurum::ReqTouchDown* request, - ::aurum::RspTouchDown* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::touchUp(::grpc::ServerContext* context, - const ::aurum::ReqTouchUp* request, - ::aurum::RspTouchUp* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::touchMove(::grpc::ServerContext* context, - const ::aurum::ReqTouchMove* request, - ::aurum::RspTouchMove* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::longClick(::grpc::ServerContext* context, - const ::aurum::ReqClick* request, - ::aurum::RspClick* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::flick(::grpc::ServerContext* context, - const ::aurum::ReqFlick* request, - ::aurum::RspFlick* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::getDeviceTime( - ::grpc::ServerContext* context, const ::aurum::ReqGetDeviceTime* request, - ::aurum::RspGetDeviceTime* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::getLocation( - ::grpc::ServerContext* context, const ::aurum::ReqGetLocation* request, - ::aurum::RspGetLocation* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} -::grpc::Status aurumServiceImpl::sendKey(::grpc::ServerContext* context, - const ::aurum::ReqKey* request, - ::aurum::RspKey* response) -{ - std::unique_ptr cmd = std::make_unique(request, response); - return execute(cmd.get()); -} diff --git a/bootstrap/server/src/BootstrapServer.cc b/bootstrap/server/src/BootstrapServer.cc deleted file mode 100644 index e053a49..0000000 --- a/bootstrap/server/src/BootstrapServer.cc +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -#include -#include -#include "aurum.grpc.pb.h" - -#include "AurumServiceImpl.h" -#include "config.h" -#include "loguru.hpp" - -using namespace grpc; - -static gpointer -_grpc_thread_func (gpointer data __attribute__((unused))) -{ - std::string binding("0.0.0.0:50051"); - aurumServiceImpl service; - ServerBuilder builder; - - LOG_F(INFO, "[T] Server Listening on %s", binding.c_str()); - builder.AddListeningPort(binding, grpc::InsecureServerCredentials()); - builder.RegisterService(&service); - std::unique_ptr server(builder.BuildAndStart()); - server->Wait(); - - return NULL; -} - -int main(int argc, char **argv) -{ - const char *logPath = "/tmp/ua.log"; - GMainLoop *loop; - - loguru::init(argc, argv); - loguru::g_preamble = false; - loguru::add_file(logPath, loguru::Append, loguru::Verbosity_MAX); - LOG_SCOPE_F(INFO, "Log : %s", logPath); - - loop = g_main_loop_new ( NULL , FALSE ); - g_thread_new("grpc_thread", _grpc_thread_func, loop); - - g_main_loop_run (loop); - g_main_loop_unref(loop); - - return 0; -} diff --git a/bootstrap/server/src/Commands/ClearCommand.cc b/bootstrap/server/src/Commands/ClearCommand.cc deleted file mode 100644 index 5c24358..0000000 --- a/bootstrap/server/src/Commands/ClearCommand.cc +++ /dev/null @@ -1,48 +0,0 @@ -#include "ClearCommand.h" -#include -#include -#include - -ClearCommand::ClearCommand(const ::aurum::ReqClear* request, - ::aurum::RspClear* response) - : mRequest{request}, mResponse{response} -{ -} - -bool ClearCommand::hasHintText(UiObject *obj) -{ - if (!obj) return false; - - auto old_text = obj->getText(); - obj->setText(""); - if (!old_text.compare(obj->getText())) { - return true; - } else { - obj->setText(old_text); - return false; - } -} - -::grpc::Status ClearCommand::execute() -{ - LOG_SCOPE_F(INFO, "Clear --------------- "); - ObjectMapper* mObjMap = ObjectMapper::getInstance(); - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - - if (obj) { - obj->setText(""); - obj->refresh(); - auto text = obj->getText(); - if (text.length() != 0) { - if (hasHintText(obj)) { - mResponse->set_status(::aurum::RspStatus::OK); - } else { - mResponse->set_status(::aurum::RspStatus::ERROR); - } - } else { - mResponse->set_status(::aurum::RspStatus::OK); - } - } - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/ClickCommand.cc b/bootstrap/server/src/Commands/ClickCommand.cc deleted file mode 100644 index 8ccc6ad..0000000 --- a/bootstrap/server/src/Commands/ClickCommand.cc +++ /dev/null @@ -1,58 +0,0 @@ -#include "ClickCommand.h" - -#include "UiObject.h" -#include "UiDevice.h" - -#include - -ClickCommand::ClickCommand(const ::aurum::ReqClick* request, - ::aurum::RspClick* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status ClickCommand::execute() -{ - return grpc::Status::CANCELLED; -} - -std::unique_ptr ClickCommand::createCommand(const ::aurum::ReqClick* request, ::aurum::RspClick* response) -{ - ::aurum::ReqClick_RequestType type = request->type(); - - if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_ELEMENTID) - return std::make_unique(request, response); - else if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_COORD) - return std::make_unique(request, response); - else if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_ATSPI) - return std::make_unique(request, response); - else - return std::make_unique(request, response); -} - -::grpc::Status ClickElementCommand::execute() -{ - ObjectMapper* mObjMap = ObjectMapper::getInstance(); - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - - if (obj) { - obj->click(); - mResponse->set_status(::aurum::RspStatus::OK); - } else - mResponse->set_status(::aurum::RspStatus::ERROR); - - return grpc::Status::OK; -} - -::grpc::Status ClickCoordCommand::execute() -{ - UiDevice* obj = UiDevice::getInstance(DeviceType::DEFAULT); - const ::aurum::Point& point = mRequest->coordination(); - obj->click(point.x(), point.y()); - mResponse->set_status(::aurum::RspStatus::OK); -} - -::grpc::Status ClickAtspiCommand::execute() -{ - return grpc::Status::CANCELLED; -} diff --git a/bootstrap/server/src/Commands/CloseAppCommand.cc b/bootstrap/server/src/Commands/CloseAppCommand.cc deleted file mode 100644 index 3221d36..0000000 --- a/bootstrap/server/src/Commands/CloseAppCommand.cc +++ /dev/null @@ -1,45 +0,0 @@ -#include "CloseAppCommand.h" -#include -#include -#include -#ifdef GBSBUILD -#include -#endif - -CloseAppCommand::CloseAppCommand(const ::aurum::ReqCloseApp* request, - ::aurum::RspCloseApp* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status CloseAppCommand::execute() -{ - LOG_SCOPE_F(INFO, "CloseApp --------------- "); -#ifdef GBSBUILD - std::string packageName = mRequest->packagename(); - app_context_h app_context = NULL; - - LOG_F(INFO, "close req : %s", packageName.c_str()); - - int ret = app_manager_get_app_context(packageName.c_str(), &app_context); - if (ret) { - LOG_SCOPE_F(INFO, "Terminate Failed(1/2) Err Code : %d", ret); - mResponse->set_status(::aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - ret = app_manager_terminate_app(app_context); - if (ret) { - LOG_SCOPE_F(INFO, "Terminate Failed(2/2) Err Code : %d", ret); - mResponse->set_status(::aurum::RspStatus::ERROR); - return grpc::Status::OK; - } -#endif - return grpc::Status::OK; -} - -::grpc::Status CloseAppCommand::executePost() -{ - LOG_SCOPE_F(INFO, "CloseAppCommand::executePost"); - std::this_thread::sleep_for(std::chrono::milliseconds{1500}); - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/Command.cc b/bootstrap/server/src/Commands/Command.cc deleted file mode 100644 index 71a6eb7..0000000 --- a/bootstrap/server/src/Commands/Command.cc +++ /dev/null @@ -1,12 +0,0 @@ -#include "Command.h" -#include - -::grpc::Status Command::executePost() -{ - return ::grpc::Status::OK; -} - -::grpc::Status Command::executePre() -{ - return ::grpc::Status::OK; -} diff --git a/bootstrap/server/src/Commands/FindElementCommand.cc b/bootstrap/server/src/Commands/FindElementCommand.cc deleted file mode 100644 index cc9912e..0000000 --- a/bootstrap/server/src/Commands/FindElementCommand.cc +++ /dev/null @@ -1,54 +0,0 @@ -#include "FindElementCommand.h" - -#include "ISearchable.h" - -#include "Sel.h" -#include "UiDevice.h" -#include "UiObject.h" -#include "UiSelector.h" - -#include - -FindElementCommand::FindElementCommand(const ::aurum::ReqFindElement* request, - ::aurum::RspFindElement* response) - : mRequest{request}, mResponse{response} -{ - mObjMap = ObjectMapper::getInstance(); -} -ISearchable* FindElementCommand::getSearchableTop(void) -{ - ISearchable* searchableObj = nullptr; - bool fromObject = mRequest->elementid().empty() == false; - - if (fromObject) searchableObj = mObjMap->getElement(mRequest->elementid()); - if (!searchableObj) searchableObj = UiDevice::getInstance(DeviceType::DEFAULT); - - return searchableObj; -} -std::shared_ptr FindElementCommand::getSelector(void) -{ - return Sel::text(mRequest->textfield()); -} - -::grpc::Status FindElementCommand::execute() -{ - LOG_SCOPE_F(INFO, "findElement --------------- "); - auto searchableObj = getSearchableTop(); - auto sel = getSelector(); - - std::vector> founds = searchableObj->findObjects(sel); - - if (founds.size() > 0) { - for (auto& found : founds) { - UiObject* obj = found.get(); - std::string key = mObjMap->addElement(std::move(found)); - LOG_F(INFO, "found object : %s key:%s", - obj->getResourceName().c_str(), key.c_str()); - ::aurum::Element* elm = mResponse->add_elements(); - elm->set_elementid(key); - } - mResponse->set_status(::aurum::RspStatus::OK); - } - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/FlickCommand.cc b/bootstrap/server/src/Commands/FlickCommand.cc deleted file mode 100644 index a2ff94f..0000000 --- a/bootstrap/server/src/Commands/FlickCommand.cc +++ /dev/null @@ -1,25 +0,0 @@ -#include "FlickCommand.h" -#include - -#include - -FlickCommand::FlickCommand(const ::aurum::ReqFlick *request, - ::aurum::RspFlick * response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status FlickCommand::execute() -{ - LOG_SCOPE_F(INFO, "Flick --------------- "); - - const ::aurum::Point &startPoint = mRequest->startpoint(); - const ::aurum::Point &endPoint = mRequest->endpoint(); - int durationMs = mRequest->durationms(); - - UiDevice *device = UiDevice::getInstance(DeviceType::DEFAULT); - device->drag(startPoint.x(), startPoint.y(), endPoint.x(), endPoint.y(), durationMs); - mResponse->set_status(::aurum::RspStatus::OK); - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/GetAppInfoCommand.cc b/bootstrap/server/src/Commands/GetAppInfoCommand.cc deleted file mode 100644 index 961fd82..0000000 --- a/bootstrap/server/src/Commands/GetAppInfoCommand.cc +++ /dev/null @@ -1,50 +0,0 @@ -#include "GetAppInfoCommand.h" -#include -#ifdef GBSBUILD -#include -#include -#endif - -GetAppInfoCommand::GetAppInfoCommand(const ::aurum::ReqGetAppInfo* request, - ::aurum::RspGetAppInfo* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status GetAppInfoCommand::execute() -{ - LOG_SCOPE_F(INFO, "GetAppInfo --------------- "); -#ifdef GBSBUILD - std::string packageName = mRequest->packagename(); - - app_context_h app_context; - package_info_h package_info; - app_state_e appState; - - char* label = nullptr; - int ret = -1; - - mResponse->set_status(::aurum::RspStatus::OK); - mResponse->set_isinstalled(false); - mResponse->set_isrunning(false); - mResponse->set_isfocused(false); - - if (!package_manager_get_package_info(packageName.c_str(), &package_info)) { - if (!package_info_get_label(package_info, &label)) { - if (label) { - free(label); - mResponse->set_isinstalled(true); - } - } - } - - if (!app_manager_get_app_context(packageName.c_str(), &app_context)) { - if (!app_context_get_app_state(app_context, &appState)) { - mResponse->set_isfocused(appState & APP_STATE_FOREGROUND); - mResponse->set_isrunning(!(appState & APP_STATE_TERMINATED)); - } - } - -#endif - return grpc::Status::OK; -} diff --git a/bootstrap/server/src/Commands/GetAttributeCommand.cc b/bootstrap/server/src/Commands/GetAttributeCommand.cc deleted file mode 100644 index f844c54..0000000 --- a/bootstrap/server/src/Commands/GetAttributeCommand.cc +++ /dev/null @@ -1,177 +0,0 @@ -#include "GetAttributeCommand.h" -#include - -#include -#include - -GetAttributeCommand::GetAttributeCommand( - const ::aurum::ReqGetAttribute* request, ::aurum::RspGetAttribute* response) - : mRequest{request}, mResponse{response}, mObjMap{ObjectMapper::getInstance()} -{ -} - -::grpc::Status GetAttributeCommand::execute() -{ - return grpc::Status::CANCELLED; -} - -std::unique_ptr GetAttributeCommand::createCommand(const ::aurum::ReqGetAttribute* request, - ::aurum::RspGetAttribute* response) -{ - ::aurum::ReqGetAttribute_RequestType type = request->attribute(); - - LOG_SCOPE_F(INFO, "type : %d", type); - - if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_VISIBLE) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_FOCUSABLE) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_FOCUSED) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_ENABLED) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CLICKABLE) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SCROLLABLE) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CHECKABLE) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CHECKED) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SELECTED) - return std::make_unique(request, response); - else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SELECTABLE) - return std::make_unique(request, response); - else - return std::make_unique(request, response); -} - -::grpc::Status GetVisibleAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isVisible()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetFocusedAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isFocused()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetFocusableAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isFocusable()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetCheckableAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isCheckable()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetCheckedAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isChecked()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetEnabledAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isEnabled()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetClickableAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isClickable()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetScrollableAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isScrollable()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetSelectableAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isSelectable()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} - -::grpc::Status GetSelectedAttributeCommand::execute() -{ - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (!obj) { - mResponse->set_boolvalue(false); - mResponse->set_status(aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - mResponse->set_boolvalue(obj->isSelected()); - mResponse->set_status(aurum::RspStatus::OK); - return grpc::Status::OK; -} diff --git a/bootstrap/server/src/Commands/GetDeviceTimeCommand.cc b/bootstrap/server/src/Commands/GetDeviceTimeCommand.cc deleted file mode 100644 index 6f9c2a6..0000000 --- a/bootstrap/server/src/Commands/GetDeviceTimeCommand.cc +++ /dev/null @@ -1,16 +0,0 @@ -#include "GetDeviceTimeCommand.h" -#include - -GetDeviceTimeCommand::GetDeviceTimeCommand( - const ::aurum::ReqGetDeviceTime* request, - ::aurum::RspGetDeviceTime* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status GetDeviceTimeCommand::execute() -{ - LOG_SCOPE_F(INFO, "GetDeviceTime --------------- "); - // ObjectMapper *mObjMap = ObjectMapper::getInstance(); - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/GetLocationCommand.cc b/bootstrap/server/src/Commands/GetLocationCommand.cc deleted file mode 100644 index a8a5aff..0000000 --- a/bootstrap/server/src/Commands/GetLocationCommand.cc +++ /dev/null @@ -1,15 +0,0 @@ -#include "GetLocationCommand.h" -#include - -GetLocationCommand::GetLocationCommand(const ::aurum::ReqGetLocation* request, - ::aurum::RspGetLocation* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status GetLocationCommand::execute() -{ - LOG_SCOPE_F(INFO, "CliGetLocation --------------- "); - // ObjectMapper *mObjMap = ObjectMapper::getInstance(); - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/GetSizeCommand.cc b/bootstrap/server/src/Commands/GetSizeCommand.cc deleted file mode 100644 index de77d0e..0000000 --- a/bootstrap/server/src/Commands/GetSizeCommand.cc +++ /dev/null @@ -1,28 +0,0 @@ -#include "GetSizeCommand.h" -#include - -#include - -GetSizeCommand::GetSizeCommand(const ::aurum::ReqGetSize* request, - ::aurum::RspGetSize* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status GetSizeCommand::execute() -{ - LOG_SCOPE_F(INFO, "GetSize --------------- "); - ObjectMapper *mObjMap = ObjectMapper::getInstance(); - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (obj) { - const Rect &size = obj->getBoundingBox(); - ::aurum::Rect rect; - rect.set_x(size.mTopLeft.x); - rect.set_y(size.mTopLeft.y); - rect.set_width(size.width()); - rect.set_height(size.height()); - mResponse->mutable_size()->CopyFrom(rect); - } - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/GetValueCommand.cc b/bootstrap/server/src/Commands/GetValueCommand.cc deleted file mode 100644 index 0eabcb5..0000000 --- a/bootstrap/server/src/Commands/GetValueCommand.cc +++ /dev/null @@ -1,25 +0,0 @@ -#include "GetValueCommand.h" -#include - -#include - -GetValueCommand::GetValueCommand(const ::aurum::ReqGetValue* request, - ::aurum::RspGetValue* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status GetValueCommand::execute() -{ - LOG_SCOPE_F(INFO, "GetValue --------------- "); - ObjectMapper* mObjMap = ObjectMapper::getInstance(); - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - - if (obj) { - std::string text = obj->getText(); - mResponse->set_stringvalue(text.c_str()); - mResponse->set_status(::aurum::RspStatus::OK); - } - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/InstallAppCommand.cc b/bootstrap/server/src/Commands/InstallAppCommand.cc deleted file mode 100644 index 454bda5..0000000 --- a/bootstrap/server/src/Commands/InstallAppCommand.cc +++ /dev/null @@ -1,37 +0,0 @@ -#include "InstallAppCommand.h" -#include -#include -#ifdef GBSBUILD -#include -#endif - -InstallAppCommand::InstallAppCommand( - ::grpc::ServerReader<::aurum::ReqInstallApp> *request, - ::aurum::RspInstallApp * response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status InstallAppCommand::execute() -{ - LOG_SCOPE_F(INFO, "InstallApp --------------- "); -#ifdef GBSBUILD - ::aurum::ReqInstallApp chunk; - - std::ofstream outfile("/tmp/app.tpk", std::ofstream::binary); - - while (mRequest->Read(&chunk)) { - std::size_t size = chunk.package().length(); - const char *bufptr = chunk.package().c_str(); - outfile.write(bufptr, size); - } - outfile.close(); - - package_manager_request_h pkgRequest; - int id; - - package_manager_request_create(&pkgRequest); - package_manager_request_install(pkgRequest, "/tmp/app.tpk", &id); -#endif - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/KillServerCommand.cc b/bootstrap/server/src/Commands/KillServerCommand.cc deleted file mode 100644 index 2e51682..0000000 --- a/bootstrap/server/src/Commands/KillServerCommand.cc +++ /dev/null @@ -1,17 +0,0 @@ -#include "KillServerCommand.h" -#include - -KillServerCommand::KillServerCommand(const ::aurum::ReqEmpty* request, - ::aurum::RspEmpty* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status KillServerCommand::execute() -{ - LOG_SCOPE_F(INFO, "Kill Server "); - - exit(1); - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/LaunchAppCommand.cc b/bootstrap/server/src/Commands/LaunchAppCommand.cc deleted file mode 100644 index 6002a94..0000000 --- a/bootstrap/server/src/Commands/LaunchAppCommand.cc +++ /dev/null @@ -1,54 +0,0 @@ -#include "LaunchAppCommand.h" -#include -#include -#include - -#ifdef GBSBUILD -#include -#endif - -LaunchAppCommand::LaunchAppCommand(const ::aurum::ReqLaunchApp* request, - ::aurum::RspLaunchApp* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status LaunchAppCommand::execute() -{ - LOG_SCOPE_F(INFO, "LaunchApp --------------- "); -#ifdef GBSBUILD - app_control_h appControl; - std::string packageName = mRequest->packagename(); - int ret = -1; - - if (packageName.empty()) return grpc::Status::OK; - - ret = app_control_create(&appControl); - if (ret) { - LOG_SCOPE_F(INFO, "Launch Failed(1/3) Err Code : %ull", ret); - mResponse->set_status(::aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - - ret = app_control_set_app_id(appControl, packageName.c_str()); - if (ret) { - LOG_SCOPE_F(INFO, "Launch Failed(2/3) Err Code : %ull", ret); - mResponse->set_status(::aurum::RspStatus::ERROR); - return grpc::Status::OK; - } - - ret = app_control_send_launch_request(appControl, NULL, NULL); - if (ret) { - LOG_SCOPE_F(INFO, "Launch Failed(3/3) Err Code : %ull", ret); - mResponse->set_status(::aurum::RspStatus::ERROR); - return grpc::Status::OK; - } -#endif - return grpc::Status::OK; -} -::grpc::Status LaunchAppCommand::executePost() -{ - LOG_SCOPE_F(INFO, "LaunchAppCommand::executePost"); - std::this_thread::sleep_for(std::chrono::milliseconds{1500}); - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/LongClickCommand.cc b/bootstrap/server/src/Commands/LongClickCommand.cc deleted file mode 100644 index 6dcc5a1..0000000 --- a/bootstrap/server/src/Commands/LongClickCommand.cc +++ /dev/null @@ -1,37 +0,0 @@ -#include "LongClickCommand.h" -#include - -#include -#include - -LongClickCommand::LongClickCommand(const ::aurum::ReqClick* request, - ::aurum::RspClick* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status LongClickCommand::execute() -{ - LOG_SCOPE_F(INFO, "LongClick --------------- "); - - ObjectMapper* mObjMap = ObjectMapper::getInstance(); - ::aurum::ReqClick_RequestType type = mRequest->type(); - - if (type == ::aurum::ReqClick_RequestType_ELEMENTID) { - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (obj) { - obj->longClick(LOGNCLICK_INTERVAL); - mResponse->set_status(::aurum::RspStatus::OK); - } else - mResponse->set_status(::aurum::RspStatus::ERROR); - } else if (type == ::aurum::ReqClick_RequestType_COORD) { - UiDevice* obj = UiDevice::getInstance(DeviceType::DEFAULT); - const ::aurum::Point& point = mRequest->coordination(); - obj->click(point.x(), point.y(), LOGNCLICK_INTERVAL); - mResponse->set_status(::aurum::RspStatus::OK); - } else if (type == ::aurum::ReqClick_RequestType_ATSPI) { - mResponse->set_status(::aurum::RspStatus::ERROR); - } - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/PostCommand.cc b/bootstrap/server/src/Commands/PostCommand.cc deleted file mode 100644 index 71f4692..0000000 --- a/bootstrap/server/src/Commands/PostCommand.cc +++ /dev/null @@ -1,20 +0,0 @@ -#include "PostCommand.h" -#include -#include - -PostCommand::PostCommand() : PostCommand(nullptr) {} -PostCommand::PostCommand(Command *cmd) : mCommand{cmd} {} - -::grpc::Status PostCommand::execute() -{ - ::grpc::Status rst = mCommand->execute(); - LOG_SCOPE_F(INFO, "PostCommand --------------- "); - mCommand->executePost(); - // do post-command - return rst; -} - -::grpc::Status PostCommand::executePre() -{ - return mCommand->executePre(); -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/PreCommand.cc b/bootstrap/server/src/Commands/PreCommand.cc deleted file mode 100644 index a0f13ff..0000000 --- a/bootstrap/server/src/Commands/PreCommand.cc +++ /dev/null @@ -1,26 +0,0 @@ -#include "PreCommand.h" -#include -#include - -PreCommand::PreCommand() : PreCommand(nullptr) {} -PreCommand::PreCommand(Command *cmd) : mCommand{cmd} {} - -::grpc::Status PreCommand::execute() -{ - { - LOG_SCOPE_F(INFO, "PreCommand --------------- "); - AtspiAccessible *n = atspi_get_desktop(0); - if (n) { - char *name = atspi_accessible_get_name(n, NULL); - if(name) free(name); - g_object_unref(n); - } - } - mCommand->executePre(); - return mCommand->execute(); -} - -::grpc::Status PreCommand::executePost() -{ - return mCommand->executePost(); -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/RemoveAppCommand.cc b/bootstrap/server/src/Commands/RemoveAppCommand.cc deleted file mode 100644 index 0fa6816..0000000 --- a/bootstrap/server/src/Commands/RemoveAppCommand.cc +++ /dev/null @@ -1,27 +0,0 @@ -#include "RemoveAppCommand.h" -#include -#ifdef GBSBUILD -#include -#endif - -RemoveAppCommand::RemoveAppCommand(const ::aurum::ReqRemoveApp* request, - ::aurum::RspRemoveApp* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status RemoveAppCommand::execute() -{ - LOG_SCOPE_F(INFO, "RemoveApp --------------- "); -#ifdef GBSBUILD - package_manager_request_h pkgRequest; - std::string name = mRequest->packagename(); - int id; - LOG_F(INFO, "package name :%s", name.c_str()); - - package_manager_request_create(&pkgRequest); - package_manager_request_uninstall(pkgRequest, name.c_str(), &id); -#endif - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/SendKeyCommand.cc b/bootstrap/server/src/Commands/SendKeyCommand.cc deleted file mode 100644 index 7897a7f..0000000 --- a/bootstrap/server/src/Commands/SendKeyCommand.cc +++ /dev/null @@ -1,37 +0,0 @@ -#include "SendKeyCommand.h" -#include - -#include - -SendKeyCommand::SendKeyCommand(const ::aurum::ReqKey* request, - ::aurum::RspKey* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status SendKeyCommand::execute() -{ - LOG_SCOPE_F(INFO, "SendKey --------------- "); - UiDevice* mDevice = UiDevice::getInstance(DeviceType::DEFAULT); - ::aurum::ReqKey_KeyType type = mRequest->type(); - - if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_BACK) - mDevice->pressBack(); - else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_HOME) - mDevice->pressHome(); - else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_MENU) - mDevice->pressMenu(); - else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_VOLUP) - mDevice->pressVolUp(); - else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_VOLDOWN) - mDevice->pressVolDown(); - else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_POWER) - mDevice->pressPower(); - else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_KEY) { - ; // TODO - } - else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_XF86) { - ; // TODO - } - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/SetValueCommand.cc b/bootstrap/server/src/Commands/SetValueCommand.cc deleted file mode 100644 index 9f574ee..0000000 --- a/bootstrap/server/src/Commands/SetValueCommand.cc +++ /dev/null @@ -1,17 +0,0 @@ -#include "SetValueCommand.h" -#include - -SetValueCommand::SetValueCommand(const ::aurum::ReqSetValue* request, - ::aurum::RspSetValue* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status SetValueCommand::execute() -{ - LOG_SCOPE_F(INFO, "SetValue (text:%s) --------------- ", mRequest->stringvalue().c_str()); - ObjectMapper* mObjMap = ObjectMapper::getInstance(); - UiObject* obj = mObjMap->getElement(mRequest->elementid()); - if (obj) obj->setText(const_cast(mRequest->stringvalue())); - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/SyncCommand.cc b/bootstrap/server/src/Commands/SyncCommand.cc deleted file mode 100644 index 9d09214..0000000 --- a/bootstrap/server/src/Commands/SyncCommand.cc +++ /dev/null @@ -1,23 +0,0 @@ -#include "SyncCommand.h" -#include - -#include -#include - -SyncCommand::SyncCommand(const ::aurum::ReqEmpty *request, - ::aurum::RspEmpty * response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status SyncCommand::execute() -{ - LOG_SCOPE_F(INFO, "Sync Command "); - const AccessibleWatcher *accObj = AccessibleWatcher::getInstance(); - - auto root = accObj->getRootNode(); - LOG_F(INFO, "root node tree / depth : 2"); - root->print(0, 2); - - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/TouchDownCommand.cc b/bootstrap/server/src/Commands/TouchDownCommand.cc deleted file mode 100644 index 4864cc5..0000000 --- a/bootstrap/server/src/Commands/TouchDownCommand.cc +++ /dev/null @@ -1,19 +0,0 @@ -#include "TouchDownCommand.h" -#include -#include - -TouchDownCommand::TouchDownCommand(const ::aurum::ReqTouchDown* request, - ::aurum::RspTouchDown* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status TouchDownCommand::execute() -{ - LOG_SCOPE_F(INFO, "TouchDown --------------- "); - const aurum::Point& point_ = mRequest->coordination(); - mResponse->set_seqid(0); - UiDevice::getInstance(DeviceType::DEFAULT) - ->touchDown(point_.x(), point_.y()); - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/TouchMoveCommand.cc b/bootstrap/server/src/Commands/TouchMoveCommand.cc deleted file mode 100644 index 18fbeb9..0000000 --- a/bootstrap/server/src/Commands/TouchMoveCommand.cc +++ /dev/null @@ -1,17 +0,0 @@ -#include "TouchMoveCommand.h" -#include -#include - -TouchMoveCommand::TouchMoveCommand(const ::aurum::ReqTouchMove* request, - ::aurum::RspTouchMove* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status TouchMoveCommand::execute() -{ - LOG_SCOPE_F(INFO, "TouchMove --------------- "); - const aurum::Point& point = mRequest->coordination(); - UiDevice::getInstance(DeviceType::DEFAULT)->touchMove(point.x(), point.y()); - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/Commands/TouchUpCommand.cc b/bootstrap/server/src/Commands/TouchUpCommand.cc deleted file mode 100644 index 20d8083..0000000 --- a/bootstrap/server/src/Commands/TouchUpCommand.cc +++ /dev/null @@ -1,17 +0,0 @@ -#include "TouchUpCommand.h" -#include -#include - -TouchUpCommand::TouchUpCommand(const ::aurum::ReqTouchUp* request, - ::aurum::RspTouchUp* response) - : mRequest{request}, mResponse{response} -{ -} - -::grpc::Status TouchUpCommand::execute() -{ - LOG_SCOPE_F(INFO, "TouchUp --------------- "); - const aurum::Point& point = mRequest->coordination(); - UiDevice::getInstance(DeviceType::DEFAULT)->touchUp(point.x(), point.y()); - return grpc::Status::OK; -} \ No newline at end of file diff --git a/bootstrap/server/src/ObjectMapper.cc b/bootstrap/server/src/ObjectMapper.cc deleted file mode 100644 index 75bf956..0000000 --- a/bootstrap/server/src/ObjectMapper.cc +++ /dev/null @@ -1,31 +0,0 @@ -#include "ObjectMapper.h" - -ObjectMapper::ObjectMapper() : mObjectMap{}, mObjCounter{0} {} - -ObjectMapper::~ObjectMapper() {} - -ObjectMapper *ObjectMapper::getInstance() -{ - static ObjectMapper *mInstance = new ObjectMapper(); - return mInstance; -} - -std::string ObjectMapper::addElement(std::unique_ptr object) -{ - ++mObjCounter; - std::string key = std::to_string(mObjCounter); - mObjectMap[key] = std::move(object); - return key; -} - -UiObject *ObjectMapper::getElement(const std::string &key) -{ - unsigned long long keyCnt = (unsigned long long)std::stoll(key); // this key is a result of calling std:to_string(mObjCounter) - if (keyCnt <= 0 || keyCnt > mObjCounter) return nullptr; - if (mObjectMap.count(key)) { - UiObject *obj = mObjectMap[key].get(); - const_cast(obj)->refresh(); - return obj; - } - return nullptr; -} diff --git a/meson.build b/meson.build index 748dd5e..ed0f20f 100644 --- a/meson.build +++ b/meson.build @@ -18,7 +18,7 @@ root_inc = include_directories('./') subdir('protocol') subdir('libloguru') subdir('libaurum') -subdir('bootstrap') +subdir('org.tizen.aurum-bootstrap') subdir('tests') configure_file( diff --git a/meson_options.txt b/meson_options.txt index 1bcc370..7f6e0a0 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -3,5 +3,13 @@ option('tizen', value: false, description: 'enable tizen specific dependancy' ) - - +option('tzapp_path', + type: 'string', + value: '/usr/apps/', + description: 'installation path for tizen app binary' +) +option('tzpackage_path', + type: 'string', + value: '/usr/share/packages/', + description: 'installation path for registering tizen service app' +) diff --git a/org.tizen.aurum-bootstrap/inc/AurumServiceImpl.h b/org.tizen.aurum-bootstrap/inc/AurumServiceImpl.h new file mode 100644 index 0000000..bf6ae41 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/AurumServiceImpl.h @@ -0,0 +1,91 @@ +#ifndef aurum_IMPL_H +#define aurum_IMPL_H + +#include +#include "Commands/Command.h" +#include "aurum.grpc.pb.h" + +class aurumServiceImpl final : public aurum::Bootstrap::Service { +public: + aurumServiceImpl(); + virtual ~aurumServiceImpl(); + +protected: + ::grpc::Status execute(Command *cmd); + +public: + ::grpc::Status sync(::grpc::ServerContext * context, + const ::aurum::ReqEmpty *request, + ::aurum::RspEmpty * response) override; + ::grpc::Status killServer(::grpc::ServerContext * context, + const ::aurum::ReqEmpty *request, + ::aurum::RspEmpty * response) override; + + ::grpc::Status findElement(::grpc::ServerContext * context, + const ::aurum::ReqFindElement *request, + ::aurum::RspFindElement *response) override; + + ::grpc::Status getValue(::grpc::ServerContext * context, + const ::aurum::ReqGetValue *request, + ::aurum::RspGetValue * response) override; + ::grpc::Status setValue(::grpc::ServerContext * context, + const ::aurum::ReqSetValue *request, + ::aurum::RspSetValue * response) override; + ::grpc::Status getAttribute(::grpc::ServerContext * context, + const ::aurum::ReqGetAttribute *request, + ::aurum::RspGetAttribute *response) override; + ::grpc::Status getSize(::grpc::ServerContext * context, + const ::aurum::ReqGetSize *request, + ::aurum::RspGetSize * response) override; + ::grpc::Status clear(::grpc::ServerContext * context, + const ::aurum::ReqClear *request, + ::aurum::RspClear * response) override; + ::grpc::Status installApp( + ::grpc::ServerContext * context, + ::grpc::ServerReader< ::aurum::ReqInstallApp> *reader, + ::aurum::RspInstallApp * response) override; + ::grpc::Status removeApp(::grpc::ServerContext * context, + const ::aurum::ReqRemoveApp *request, + ::aurum::RspRemoveApp * response) override; + ::grpc::Status getAppInfo(::grpc::ServerContext * context, + const ::aurum::ReqGetAppInfo *request, + ::aurum::RspGetAppInfo * response) override; + ::grpc::Status launchApp(::grpc::ServerContext * context, + const ::aurum::ReqLaunchApp *request, + ::aurum::RspLaunchApp * response) override; + ::grpc::Status closeApp(::grpc::ServerContext * context, + const ::aurum::ReqCloseApp *request, + ::aurum::RspCloseApp * response) override; + + ::grpc::Status click(::grpc::ServerContext * context, + const ::aurum::ReqClick *request, + ::aurum::RspClick * response) override; + ::grpc::Status longClick(::grpc::ServerContext * context, + const ::aurum::ReqClick *request, + ::aurum::RspClick * response) override; + ::grpc::Status flick(::grpc::ServerContext * context, + const ::aurum::ReqFlick *request, + ::aurum::RspFlick * response) override; + + ::grpc::Status touchDown(::grpc::ServerContext * context, + const ::aurum::ReqTouchDown *request, + ::aurum::RspTouchDown * response) override; + ::grpc::Status touchUp(::grpc::ServerContext * context, + const ::aurum::ReqTouchUp *request, + ::aurum::RspTouchUp * response) override; + ::grpc::Status touchMove(::grpc::ServerContext * context, + const ::aurum::ReqTouchMove *request, + ::aurum::RspTouchMove * response) override; + + ::grpc::Status getDeviceTime(::grpc::ServerContext * context, + const ::aurum::ReqGetDeviceTime *request, + ::aurum::RspGetDeviceTime *response) override; + ::grpc::Status getLocation(::grpc::ServerContext * context, + const ::aurum::ReqGetLocation *request, + ::aurum::RspGetLocation *response) override; + ::grpc::Status sendKey(::grpc::ServerContext *context, + const ::aurum::ReqKey *request, + ::aurum::RspKey * response) override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/ClearCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/ClearCommand.h new file mode 100644 index 0000000..0197559 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/ClearCommand.h @@ -0,0 +1,24 @@ +#ifndef CLEAR_COMMAND_H +#define CLEAR_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class ClearCommand : public Command { +private: + const ::aurum::ReqClear* mRequest; + ::aurum::RspClear* mResponse; + +public: + ClearCommand(const ::aurum::ReqClear* request, ::aurum::RspClear* response); + ::grpc::Status execute() override; + +protected: + bool hasHintText(UiObject *obj); +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/ClickCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/ClickCommand.h new file mode 100644 index 0000000..cf03a01 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/ClickCommand.h @@ -0,0 +1,39 @@ +#ifndef CLICK_COMMAND_H +#define CLICK_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" +class ClickCommand : public Command { +protected: + const ::aurum::ReqClick* mRequest; + ::aurum::RspClick* mResponse; + +public: + ClickCommand(const ::aurum::ReqClick* request, ::aurum::RspClick* response); + ::grpc::Status execute() override; + static std::unique_ptr createCommand(const ::aurum::ReqClick* request, ::aurum::RspClick* response); +}; + +class ClickElementCommand : public ClickCommand { + using ClickCommand::ClickCommand; +public: + ::grpc::Status execute() override; +}; + +class ClickCoordCommand : public ClickCommand { + using ClickCommand::ClickCommand; +public: + ::grpc::Status execute() override; +}; + +class ClickAtspiCommand : public ClickCommand { + using ClickCommand::ClickCommand; +public: + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/CloseAppCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/CloseAppCommand.h new file mode 100644 index 0000000..fb00f39 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/CloseAppCommand.h @@ -0,0 +1,23 @@ +#ifndef CLOSE_APP_COMMAND_H +#define CLOSE_APP_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class CloseAppCommand : public Command { +private: + const ::aurum::ReqCloseApp* mRequest; + ::aurum::RspCloseApp* mResponse; + +public: + CloseAppCommand(const ::aurum::ReqCloseApp* request, + ::aurum::RspCloseApp* response); + ::grpc::Status execute() override; + ::grpc::Status executePost() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/Command.h b/org.tizen.aurum-bootstrap/inc/Commands/Command.h new file mode 100644 index 0000000..59bf76e --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/Command.h @@ -0,0 +1,19 @@ +#ifndef COMMAND_H +#define COMMAND_H + +#include +#include +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" + +#include "config.h" + +class Command { +public: + virtual ~Command(){}; + virtual ::grpc::Status execute() = 0; + virtual ::grpc::Status executePost(); + virtual ::grpc::Status executePre(); +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/Commands.h b/org.tizen.aurum-bootstrap/inc/Commands/Commands.h new file mode 100644 index 0000000..7a5acd8 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/Commands.h @@ -0,0 +1,34 @@ +#ifndef COMMANDS_H +#define COMMANDS_H + +#include "Commands/KillServerCommand.h" +#include "Commands/SyncCommand.h" + +#include "Commands/FindElementCommand.h" + +#include "Commands/GetAttributeCommand.h" +#include "Commands/GetValueCommand.h" +#include "Commands/SetValueCommand.h" + +#include "Commands/ClearCommand.h" +#include "Commands/GetSizeCommand.h" + +#include "Commands/ClickCommand.h" +#include "Commands/FlickCommand.h" +#include "Commands/LongClickCommand.h" + +#include "Commands/TouchDownCommand.h" +#include "Commands/TouchMoveCommand.h" +#include "Commands/TouchUpCommand.h" + +#include "Commands/CloseAppCommand.h" +#include "Commands/GetAppInfoCommand.h" +#include "Commands/InstallAppCommand.h" +#include "Commands/LaunchAppCommand.h" +#include "Commands/RemoveAppCommand.h" + +#include "Commands/GetDeviceTimeCommand.h" +#include "Commands/GetLocationCommand.h" +#include "Commands/SendKeyCommand.h" + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/FindElementCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/FindElementCommand.h new file mode 100644 index 0000000..488e321 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/FindElementCommand.h @@ -0,0 +1,27 @@ +#ifndef FIND_ELEMENT_COMMAND_H +#define FIND_ELEMENT_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class FindElementCommand : public Command { +protected: + const ::aurum::ReqFindElement* mRequest; + ::aurum::RspFindElement* mResponse; + +protected: + ObjectMapper* mObjMap; + +public: + FindElementCommand(const ::aurum::ReqFindElement* request, + ::aurum::RspFindElement* response); + ::grpc::Status execute() override; +protected: + virtual ISearchable* getSearchableTop(void); + virtual std::shared_ptr getSelector(void); +}; +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/FlickCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/FlickCommand.h new file mode 100644 index 0000000..f78e1e4 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/FlickCommand.h @@ -0,0 +1,22 @@ +#ifndef FLICK_COMMAND_H +#define FLICK_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class FlickCommand : public Command { +private: + const ::aurum::ReqFlick* mRequest; + ::aurum::RspFlick* mResponse; + +public: + FlickCommand(const ::aurum::ReqFlick* request, ::aurum::RspFlick* response); + ; + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/GetAppInfoCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/GetAppInfoCommand.h new file mode 100644 index 0000000..1a9a146 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/GetAppInfoCommand.h @@ -0,0 +1,23 @@ +#ifndef IS_APP_INSTALLED_COMMAND_H +#define IS_APP_INSTALLED_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class GetAppInfoCommand : public Command { +private: + const ::aurum::ReqGetAppInfo* mRequest; + ::aurum::RspGetAppInfo* mResponse; + +public: + GetAppInfoCommand(const ::aurum::ReqGetAppInfo* request, + ::aurum::RspGetAppInfo* response); + ; + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/GetAttributeCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/GetAttributeCommand.h new file mode 100644 index 0000000..a1cac0b --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/GetAttributeCommand.h @@ -0,0 +1,85 @@ +#ifndef GET_ATTRIBUTE_COMMAND_H +#define GET_ATTRIBUTE_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class GetAttributeCommand : public Command { +protected: + const ::aurum::ReqGetAttribute* mRequest; + ::aurum::RspGetAttribute* mResponse; + ObjectMapper* mObjMap; + +public: + GetAttributeCommand(const ::aurum::ReqGetAttribute* request, + ::aurum::RspGetAttribute* response); + ::grpc::Status execute() override; + static std::unique_ptr createCommand(const ::aurum::ReqGetAttribute* request, + ::aurum::RspGetAttribute* response); +}; + +class GetVisibleAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetFocusedAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetFocusableAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetCheckableAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetCheckedAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetEnabledAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetClickableAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetScrollableAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetSelectableAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +class GetSelectedAttributeCommand : public GetAttributeCommand { + using GetAttributeCommand::GetAttributeCommand; +public: + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/GetDeviceTimeCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/GetDeviceTimeCommand.h new file mode 100644 index 0000000..4521709 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/GetDeviceTimeCommand.h @@ -0,0 +1,23 @@ +#ifndef GET_DEVICE_TIME_COMMAND_H +#define GET_DEVICE_TIME_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class GetDeviceTimeCommand : public Command { +private: + const ::aurum::ReqGetDeviceTime* mRequest; + ::aurum::RspGetDeviceTime* mResponse; + +public: + GetDeviceTimeCommand(const ::aurum::ReqGetDeviceTime* request, + ::aurum::RspGetDeviceTime* response); + ; + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/GetLocationCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/GetLocationCommand.h new file mode 100644 index 0000000..2cb1341 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/GetLocationCommand.h @@ -0,0 +1,23 @@ +#ifndef GET_LOCATION_COMMAND_H +#define GET_LOCATION_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class GetLocationCommand : public Command { +private: + const ::aurum::ReqGetLocation* mRequest; + ::aurum::RspGetLocation* mResponse; + +public: + GetLocationCommand(const ::aurum::ReqGetLocation* request, + ::aurum::RspGetLocation* response); + ; + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/GetSizeCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/GetSizeCommand.h new file mode 100644 index 0000000..d6c8a33 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/GetSizeCommand.h @@ -0,0 +1,23 @@ +#ifndef GET_SIZE_COMMAND_H +#define GET_SIZE_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class GetSizeCommand : public Command { +private: + const ::aurum::ReqGetSize* mRequest; + ::aurum::RspGetSize* mResponse; + +public: + GetSizeCommand(const ::aurum::ReqGetSize* request, + ::aurum::RspGetSize* response); + ; + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/GetValueCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/GetValueCommand.h new file mode 100644 index 0000000..ccbd6ec --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/GetValueCommand.h @@ -0,0 +1,23 @@ +#ifndef GET_VALUE_COMMAND_H +#define GET_VALUE_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class GetValueCommand : public Command { +private: + const ::aurum::ReqGetValue* mRequest; + ::aurum::RspGetValue* mResponse; + +public: + GetValueCommand(const ::aurum::ReqGetValue* request, + ::aurum::RspGetValue* response); + ; + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/InstallAppCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/InstallAppCommand.h new file mode 100644 index 0000000..4ddc3e2 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/InstallAppCommand.h @@ -0,0 +1,22 @@ +#ifndef INSTALL_APP_COMMAND_H +#define INSTALL_APP_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class InstallAppCommand : public Command { +private: + ::grpc::ServerReader< ::aurum::ReqInstallApp>* mRequest; + ::aurum::RspInstallApp* mResponse; + +public: + InstallAppCommand(::grpc::ServerReader< ::aurum::ReqInstallApp>* request, + ::aurum::RspInstallApp* response); + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/KillServerCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/KillServerCommand.h new file mode 100644 index 0000000..3121ac1 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/KillServerCommand.h @@ -0,0 +1,23 @@ +#ifndef KILL_SERVER_COMMAND_H +#define KILL_SERVER_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class KillServerCommand : public Command { +private: + const ::aurum::ReqEmpty* mRequest; + ::aurum::RspEmpty* mResponse; + +public: + KillServerCommand(const ::aurum::ReqEmpty* request, + ::aurum::RspEmpty* response); + ; + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/LaunchAppCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/LaunchAppCommand.h new file mode 100644 index 0000000..2227fed --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/LaunchAppCommand.h @@ -0,0 +1,23 @@ +#ifndef LAUNCH_APP_COMMAND_H +#define LAUNCH_APP_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class LaunchAppCommand : public Command { +private: + const ::aurum::ReqLaunchApp* mRequest; + ::aurum::RspLaunchApp* mResponse; + +public: + LaunchAppCommand(const ::aurum::ReqLaunchApp* request, + ::aurum::RspLaunchApp* response); + ::grpc::Status execute() override; + ::grpc::Status executePost() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/LongClickCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/LongClickCommand.h new file mode 100644 index 0000000..86a0b83 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/LongClickCommand.h @@ -0,0 +1,24 @@ +#ifndef LONG_CLICK_COMMAND_H +#define LONG_CLICK_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class LongClickCommand : public Command { +private: + const ::aurum::ReqClick* mRequest; + ::aurum::RspClick* mResponse; + +public: + LongClickCommand(const ::aurum::ReqClick* request, + ::aurum::RspClick* response); + ::grpc::Status execute() override; +private: + const static unsigned int LOGNCLICK_INTERVAL = 50; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/PostCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/PostCommand.h new file mode 100644 index 0000000..29bd8a2 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/PostCommand.h @@ -0,0 +1,21 @@ +#ifndef POST_COMMAND_H +#define POST_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class PostCommand : public Command { +private: + Command *mCommand; + PostCommand(); + +public: + PostCommand(Command *cmd); + ::grpc::Status execute() override; + ::grpc::Status executePre() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/PreCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/PreCommand.h new file mode 100644 index 0000000..7d59d2a --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/PreCommand.h @@ -0,0 +1,21 @@ +#ifndef PRE_COMMAND_H +#define PRE_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class PreCommand : public Command { +private: + Command *mCommand; + PreCommand(); + +public: + PreCommand(Command *cmd); + ::grpc::Status execute() override; + ::grpc::Status executePost() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/RemoveAppCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/RemoveAppCommand.h new file mode 100644 index 0000000..9ab28ba --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/RemoveAppCommand.h @@ -0,0 +1,23 @@ +#ifndef REMOVE_APP_COMMAND_H +#define REMOVE_APP_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class RemoveAppCommand : public Command { +private: + const ::aurum::ReqRemoveApp* mRequest; + ::aurum::RspRemoveApp* mResponse; + +public: + RemoveAppCommand(const ::aurum::ReqRemoveApp* request, + ::aurum::RspRemoveApp* response); + ; + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/SendKeyCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/SendKeyCommand.h new file mode 100644 index 0000000..96fd071 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/SendKeyCommand.h @@ -0,0 +1,21 @@ +#ifndef SEND_KEY_COMMAND_H +#define SEND_KEY_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class SendKeyCommand : public Command { +private: + const ::aurum::ReqKey* mRequest; + ::aurum::RspKey* mResponse; + +public: + SendKeyCommand(const ::aurum::ReqKey* request, ::aurum::RspKey* response); + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/SetValueCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/SetValueCommand.h new file mode 100644 index 0000000..13cf245 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/SetValueCommand.h @@ -0,0 +1,22 @@ +#ifndef SET_VALUE_COMMAND_H +#define SET_VALUE_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class SetValueCommand : public Command { +private: + const ::aurum::ReqSetValue* mRequest; + ::aurum::RspSetValue* mResponse; + +public: + SetValueCommand(const ::aurum::ReqSetValue* request, + ::aurum::RspSetValue* response); + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/SyncCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/SyncCommand.h new file mode 100644 index 0000000..ecc7d6a --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/SyncCommand.h @@ -0,0 +1,21 @@ +#ifndef SYNC_COMMAND_H +#define SYNC_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class SyncCommand : public Command { +private: + const ::aurum::ReqEmpty* mRequest; + ::aurum::RspEmpty* mResponse; + +public: + SyncCommand(const ::aurum::ReqEmpty* request, ::aurum::RspEmpty* response); + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/TouchDownCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/TouchDownCommand.h new file mode 100644 index 0000000..29b796b --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/TouchDownCommand.h @@ -0,0 +1,22 @@ +#ifndef TOUCH_DOWN_COMMAND_H +#define TOUCH_DOWN_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class TouchDownCommand : public Command { +private: + const ::aurum::ReqTouchDown* mRequest; + ::aurum::RspTouchDown* mResponse; + +public: + TouchDownCommand(const ::aurum::ReqTouchDown* request, + ::aurum::RspTouchDown* response); + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/TouchMoveCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/TouchMoveCommand.h new file mode 100644 index 0000000..12b719a --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/TouchMoveCommand.h @@ -0,0 +1,22 @@ +#ifndef TOUCH_MOVE_COMMAND_H +#define TOUCH_MOVE_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class TouchMoveCommand : public Command { +private: + const ::aurum::ReqTouchMove* mRequest; + ::aurum::RspTouchMove* mResponse; + +public: + TouchMoveCommand(const ::aurum::ReqTouchMove* request, + ::aurum::RspTouchMove* response); + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/Commands/TouchUpCommand.h b/org.tizen.aurum-bootstrap/inc/Commands/TouchUpCommand.h new file mode 100644 index 0000000..7ddc9e0 --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/Commands/TouchUpCommand.h @@ -0,0 +1,22 @@ +#ifndef TOUCH_UP_COMMAND_H +#define TOUCH_UP_COMMAND_H + +#include +#include +#include "Commands/Command.h" +#include "ObjectMapper.h" +#include "aurum.grpc.pb.h" +#include "config.h" + +class TouchUpCommand : public Command { +private: + const ::aurum::ReqTouchUp* mRequest; + ::aurum::RspTouchUp* mResponse; + +public: + TouchUpCommand(const ::aurum::ReqTouchUp* request, + ::aurum::RspTouchUp* response); + ::grpc::Status execute() override; +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/inc/ObjectMapper.h b/org.tizen.aurum-bootstrap/inc/ObjectMapper.h new file mode 100644 index 0000000..b1f127f --- /dev/null +++ b/org.tizen.aurum-bootstrap/inc/ObjectMapper.h @@ -0,0 +1,26 @@ +#ifndef OBJECT_MAPPER_H +#define OBJECT_MAPPER_H + +#include +#include + +#include "UiObject.h" + +class ObjectMapper { +private: + std::map> mObjectMap; + unsigned long long mObjCounter; + +private: + ObjectMapper(); + +public: + ~ObjectMapper(); + +public: + static ObjectMapper *getInstance(); + std::string addElement(std::unique_ptr object); + UiObject * getElement(const std::string &key); +}; + +#endif \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/meson.build b/org.tizen.aurum-bootstrap/meson.build new file mode 100644 index 0000000..aeb2413 --- /dev/null +++ b/org.tizen.aurum-bootstrap/meson.build @@ -0,0 +1,69 @@ +bootstrap_svr_inc = [ + libaurum_inc, + root_inc, + include_directories('inc'), + include_directories('inc/Commands'), + loguru_inc, +] + +bootstrap_svr_src = [ + files('src/BootstrapServer.cc'), + files('src/AurumServiceImpl.cc'), + files('src/ObjectMapper.cc'), +] + +bootstrap_svr_src += [ + files('src/Commands/ClearCommand.cc'), + files('src/Commands/ClickCommand.cc'), + files('src/Commands/CloseAppCommand.cc'), + files('src/Commands/FindElementCommand.cc'), + files('src/Commands/FlickCommand.cc'), + files('src/Commands/GetAttributeCommand.cc'), + files('src/Commands/GetDeviceTimeCommand.cc'), + files('src/Commands/GetLocationCommand.cc'), + files('src/Commands/GetSizeCommand.cc'), + files('src/Commands/GetValueCommand.cc'), + files('src/Commands/InstallAppCommand.cc'), + files('src/Commands/GetAppInfoCommand.cc'), + files('src/Commands/LaunchAppCommand.cc'), + files('src/Commands/LongClickCommand.cc'), + files('src/Commands/RemoveAppCommand.cc'), + files('src/Commands/SendKeyCommand.cc'), + files('src/Commands/SetValueCommand.cc'), + files('src/Commands/TouchDownCommand.cc'), + files('src/Commands/TouchMoveCommand.cc'), + files('src/Commands/TouchUpCommand.cc'), + files('src/Commands/SyncCommand.cc'), + files('src/Commands/KillServerCommand.cc'), + files('src/Commands/Command.cc'), + files('src/Commands/PreCommand.cc'), + files('src/Commands/PostCommand.cc'), +] + +bootstrap_svr_dep = [ + libaurum, + grpc_deps, + loguru_deps, +] + +if get_option('tizen') == true +bootstrap_svr_dep += [ + dependency('capi-appfw-app-control'), + dependency('capi-appfw-app-manager'), + dependency('capi-appfw-package-manager'), + dependency('capi-appfw-service-application'), +] +endif + +bootstrap_svr_bin = executable( + 'aurum-bootstrap', + [bootstrap_svr_src, grpc_src, grpc_pb_src], + dependencies: bootstrap_svr_dep, + include_directories: bootstrap_svr_inc, + link_with: libloguru, + install:true, + install_dir: join_paths(get_option('tzapp_path'), 'org.tizen.aurum-bootstrap', 'bin'), + pie:true, +) + +install_data('org.tizen.aurum-bootstrap.xml', install_dir: get_option('tzpackage_path')) diff --git a/org.tizen.aurum-bootstrap/org.tizen.aurum-bootstrap.xml b/org.tizen.aurum-bootstrap/org.tizen.aurum-bootstrap.xml new file mode 100644 index 0000000..50f0f21 --- /dev/null +++ b/org.tizen.aurum-bootstrap/org.tizen.aurum-bootstrap.xml @@ -0,0 +1,19 @@ + + + + Wonki Kim + autofilld + + + + + + http://tizen.org/privilege/datasharing + http://tizen.org/privilege/externalstroage + http://tizen.org/privilege/mediastorage + http://tizen.org/privilege/message.read + http://tizen.org/privilege/application.info + http://tizen.org/privilege/application.launch + + true + diff --git a/org.tizen.aurum-bootstrap/src/AurumServiceImpl.cc b/org.tizen.aurum-bootstrap/src/AurumServiceImpl.cc new file mode 100644 index 0000000..89e7c60 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/AurumServiceImpl.cc @@ -0,0 +1,183 @@ +#include "AurumServiceImpl.h" + +#include +#include "Commands/Commands.h" +#include "Commands/PostCommand.h" +#include "Commands/PreCommand.h" + +#include "config.h" +#include "loguru.hpp" + +using namespace grpc; +using namespace aurum; + +aurumServiceImpl::aurumServiceImpl() +{ + AccessibleWatcher::getInstance(); +} + +::grpc::Status aurumServiceImpl::execute(Command* cmd) +{ + std::unique_ptr proxyPreCmd = std::make_unique(cmd); + std::unique_ptr proxyPostCmd = std::make_unique(proxyPreCmd.get()); + ::grpc::Status rst = proxyPostCmd->execute(); + return rst; +} + +aurumServiceImpl::~aurumServiceImpl() {} +::grpc::Status aurumServiceImpl::aurumServiceImpl::sync( + ::grpc::ServerContext* context, const ::aurum::ReqEmpty* request, + ::aurum::RspEmpty* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::aurumServiceImpl::killServer( + ::grpc::ServerContext* context, const ::aurum::ReqEmpty* request, + ::aurum::RspEmpty* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::aurumServiceImpl::findElement( + ::grpc::ServerContext* context, const ::aurum::ReqFindElement* request, + ::aurum::RspFindElement* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} + +::grpc::Status aurumServiceImpl::aurumServiceImpl::click( + ::grpc::ServerContext* context, const ::aurum::ReqClick* request, + ::aurum::RspClick* response) +{ + std::unique_ptr cmd = ClickCommand::createCommand(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::getValue(::grpc::ServerContext* context, + const ::aurum::ReqGetValue* request, + ::aurum::RspGetValue* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::setValue(::grpc::ServerContext* context, + const ::aurum::ReqSetValue* request, + ::aurum::RspSetValue* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::getAttribute( + ::grpc::ServerContext* context, const ::aurum::ReqGetAttribute* request, + ::aurum::RspGetAttribute* response) +{ + std::unique_ptr cmd = GetAttributeCommand::createCommand(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::getSize(::grpc::ServerContext* context, + const ::aurum::ReqGetSize* request, + ::aurum::RspGetSize* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::clear(::grpc::ServerContext* context, + const ::aurum::ReqClear* request, + ::aurum::RspClear* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::installApp( + ::grpc::ServerContext* context, + ::grpc::ServerReader< ::aurum::ReqInstallApp>* request, + ::aurum::RspInstallApp* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::removeApp(::grpc::ServerContext* context, + const ::aurum::ReqRemoveApp* request, + ::aurum::RspRemoveApp* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::getAppInfo( + ::grpc::ServerContext* context, const ::aurum::ReqGetAppInfo* request, + ::aurum::RspGetAppInfo* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::launchApp(::grpc::ServerContext* context, + const ::aurum::ReqLaunchApp* request, + ::aurum::RspLaunchApp* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::closeApp(::grpc::ServerContext* context, + const ::aurum::ReqCloseApp* request, + ::aurum::RspCloseApp* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::touchDown(::grpc::ServerContext* context, + const ::aurum::ReqTouchDown* request, + ::aurum::RspTouchDown* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::touchUp(::grpc::ServerContext* context, + const ::aurum::ReqTouchUp* request, + ::aurum::RspTouchUp* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::touchMove(::grpc::ServerContext* context, + const ::aurum::ReqTouchMove* request, + ::aurum::RspTouchMove* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::longClick(::grpc::ServerContext* context, + const ::aurum::ReqClick* request, + ::aurum::RspClick* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::flick(::grpc::ServerContext* context, + const ::aurum::ReqFlick* request, + ::aurum::RspFlick* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::getDeviceTime( + ::grpc::ServerContext* context, const ::aurum::ReqGetDeviceTime* request, + ::aurum::RspGetDeviceTime* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::getLocation( + ::grpc::ServerContext* context, const ::aurum::ReqGetLocation* request, + ::aurum::RspGetLocation* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} +::grpc::Status aurumServiceImpl::sendKey(::grpc::ServerContext* context, + const ::aurum::ReqKey* request, + ::aurum::RspKey* response) +{ + std::unique_ptr cmd = std::make_unique(request, response); + return execute(cmd.get()); +} diff --git a/org.tizen.aurum-bootstrap/src/BootstrapServer.cc b/org.tizen.aurum-bootstrap/src/BootstrapServer.cc new file mode 100644 index 0000000..ad1db18 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/BootstrapServer.cc @@ -0,0 +1,79 @@ +#include +#include + +#include + +#include +#include +#include "aurum.grpc.pb.h" + +#include "AurumServiceImpl.h" +#include "config.h" +#include "loguru.hpp" + +using namespace grpc; + +typedef struct _ServiceContext { + GMainLoop *loop; + GThread *thread; + std::unique_ptr server; +} ServiceContext; + +static gpointer +_grpc_thread_func (gpointer data) +{ + ServiceContext *ctx = (ServiceContext*)data; + std::string binding("0.0.0.0:50051"); + aurumServiceImpl service; + ServerBuilder builder; + + LOG_F(INFO, "[T] Server Listening on %s", binding.c_str()); + builder.AddListeningPort(binding, grpc::InsecureServerCredentials()); + builder.RegisterService(&service); + //std::unique_ptr server(builder.BuildAndStart()); + ctx->server = std::move(builder.BuildAndStart()); + ctx->server->Wait(); + + return NULL; +} + +bool service_app_create(void *data) +{ + ServiceContext *ctx = (ServiceContext*)data; + const char *logPath = "/tmp/ua.log"; + + loguru::g_preamble = false; + loguru::add_file(logPath, loguru::Append, loguru::Verbosity_MAX); + LOG_SCOPE_F(INFO, "Log : %s", logPath); + + ctx->loop = g_main_loop_new ( NULL , FALSE ); + ctx->thread = g_thread_new("grpc_thread", _grpc_thread_func, ctx); + + return true; +} + +void service_app_terminate(void *data) +{ + ServiceContext *ctx = (ServiceContext*)data; + ctx->server->Shutdown(); + g_main_loop_unref(ctx->loop); + g_thread_join(ctx->thread); +} + +void service_app_control(app_control_h app_control, void *data) +{ + ServiceContext *ctx = (ServiceContext*)data; +} + +int main(int argc, char **argv) +{ + service_app_lifecycle_callback_s event_callback; + app_event_handler_h handlers[5] = {NULL, }; + ServiceContext ctx = {0,}; + + event_callback.create = service_app_create; + event_callback.terminate = service_app_terminate; + event_callback.app_control = service_app_control; + + return service_app_main(argc, argv, &event_callback, &ctx); +} diff --git a/org.tizen.aurum-bootstrap/src/Commands/ClearCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/ClearCommand.cc new file mode 100644 index 0000000..5c24358 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/ClearCommand.cc @@ -0,0 +1,48 @@ +#include "ClearCommand.h" +#include +#include +#include + +ClearCommand::ClearCommand(const ::aurum::ReqClear* request, + ::aurum::RspClear* response) + : mRequest{request}, mResponse{response} +{ +} + +bool ClearCommand::hasHintText(UiObject *obj) +{ + if (!obj) return false; + + auto old_text = obj->getText(); + obj->setText(""); + if (!old_text.compare(obj->getText())) { + return true; + } else { + obj->setText(old_text); + return false; + } +} + +::grpc::Status ClearCommand::execute() +{ + LOG_SCOPE_F(INFO, "Clear --------------- "); + ObjectMapper* mObjMap = ObjectMapper::getInstance(); + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + + if (obj) { + obj->setText(""); + obj->refresh(); + auto text = obj->getText(); + if (text.length() != 0) { + if (hasHintText(obj)) { + mResponse->set_status(::aurum::RspStatus::OK); + } else { + mResponse->set_status(::aurum::RspStatus::ERROR); + } + } else { + mResponse->set_status(::aurum::RspStatus::OK); + } + } + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/ClickCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/ClickCommand.cc new file mode 100644 index 0000000..8ccc6ad --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/ClickCommand.cc @@ -0,0 +1,58 @@ +#include "ClickCommand.h" + +#include "UiObject.h" +#include "UiDevice.h" + +#include + +ClickCommand::ClickCommand(const ::aurum::ReqClick* request, + ::aurum::RspClick* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status ClickCommand::execute() +{ + return grpc::Status::CANCELLED; +} + +std::unique_ptr ClickCommand::createCommand(const ::aurum::ReqClick* request, ::aurum::RspClick* response) +{ + ::aurum::ReqClick_RequestType type = request->type(); + + if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_ELEMENTID) + return std::make_unique(request, response); + else if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_COORD) + return std::make_unique(request, response); + else if (type == ::aurum::ReqClick_RequestType::ReqClick_RequestType_ATSPI) + return std::make_unique(request, response); + else + return std::make_unique(request, response); +} + +::grpc::Status ClickElementCommand::execute() +{ + ObjectMapper* mObjMap = ObjectMapper::getInstance(); + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + + if (obj) { + obj->click(); + mResponse->set_status(::aurum::RspStatus::OK); + } else + mResponse->set_status(::aurum::RspStatus::ERROR); + + return grpc::Status::OK; +} + +::grpc::Status ClickCoordCommand::execute() +{ + UiDevice* obj = UiDevice::getInstance(DeviceType::DEFAULT); + const ::aurum::Point& point = mRequest->coordination(); + obj->click(point.x(), point.y()); + mResponse->set_status(::aurum::RspStatus::OK); +} + +::grpc::Status ClickAtspiCommand::execute() +{ + return grpc::Status::CANCELLED; +} diff --git a/org.tizen.aurum-bootstrap/src/Commands/CloseAppCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/CloseAppCommand.cc new file mode 100644 index 0000000..3221d36 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/CloseAppCommand.cc @@ -0,0 +1,45 @@ +#include "CloseAppCommand.h" +#include +#include +#include +#ifdef GBSBUILD +#include +#endif + +CloseAppCommand::CloseAppCommand(const ::aurum::ReqCloseApp* request, + ::aurum::RspCloseApp* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status CloseAppCommand::execute() +{ + LOG_SCOPE_F(INFO, "CloseApp --------------- "); +#ifdef GBSBUILD + std::string packageName = mRequest->packagename(); + app_context_h app_context = NULL; + + LOG_F(INFO, "close req : %s", packageName.c_str()); + + int ret = app_manager_get_app_context(packageName.c_str(), &app_context); + if (ret) { + LOG_SCOPE_F(INFO, "Terminate Failed(1/2) Err Code : %d", ret); + mResponse->set_status(::aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + ret = app_manager_terminate_app(app_context); + if (ret) { + LOG_SCOPE_F(INFO, "Terminate Failed(2/2) Err Code : %d", ret); + mResponse->set_status(::aurum::RspStatus::ERROR); + return grpc::Status::OK; + } +#endif + return grpc::Status::OK; +} + +::grpc::Status CloseAppCommand::executePost() +{ + LOG_SCOPE_F(INFO, "CloseAppCommand::executePost"); + std::this_thread::sleep_for(std::chrono::milliseconds{1500}); + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/Command.cc b/org.tizen.aurum-bootstrap/src/Commands/Command.cc new file mode 100644 index 0000000..71a6eb7 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/Command.cc @@ -0,0 +1,12 @@ +#include "Command.h" +#include + +::grpc::Status Command::executePost() +{ + return ::grpc::Status::OK; +} + +::grpc::Status Command::executePre() +{ + return ::grpc::Status::OK; +} diff --git a/org.tizen.aurum-bootstrap/src/Commands/FindElementCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/FindElementCommand.cc new file mode 100644 index 0000000..cc9912e --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/FindElementCommand.cc @@ -0,0 +1,54 @@ +#include "FindElementCommand.h" + +#include "ISearchable.h" + +#include "Sel.h" +#include "UiDevice.h" +#include "UiObject.h" +#include "UiSelector.h" + +#include + +FindElementCommand::FindElementCommand(const ::aurum::ReqFindElement* request, + ::aurum::RspFindElement* response) + : mRequest{request}, mResponse{response} +{ + mObjMap = ObjectMapper::getInstance(); +} +ISearchable* FindElementCommand::getSearchableTop(void) +{ + ISearchable* searchableObj = nullptr; + bool fromObject = mRequest->elementid().empty() == false; + + if (fromObject) searchableObj = mObjMap->getElement(mRequest->elementid()); + if (!searchableObj) searchableObj = UiDevice::getInstance(DeviceType::DEFAULT); + + return searchableObj; +} +std::shared_ptr FindElementCommand::getSelector(void) +{ + return Sel::text(mRequest->textfield()); +} + +::grpc::Status FindElementCommand::execute() +{ + LOG_SCOPE_F(INFO, "findElement --------------- "); + auto searchableObj = getSearchableTop(); + auto sel = getSelector(); + + std::vector> founds = searchableObj->findObjects(sel); + + if (founds.size() > 0) { + for (auto& found : founds) { + UiObject* obj = found.get(); + std::string key = mObjMap->addElement(std::move(found)); + LOG_F(INFO, "found object : %s key:%s", + obj->getResourceName().c_str(), key.c_str()); + ::aurum::Element* elm = mResponse->add_elements(); + elm->set_elementid(key); + } + mResponse->set_status(::aurum::RspStatus::OK); + } + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/FlickCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/FlickCommand.cc new file mode 100644 index 0000000..a2ff94f --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/FlickCommand.cc @@ -0,0 +1,25 @@ +#include "FlickCommand.h" +#include + +#include + +FlickCommand::FlickCommand(const ::aurum::ReqFlick *request, + ::aurum::RspFlick * response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status FlickCommand::execute() +{ + LOG_SCOPE_F(INFO, "Flick --------------- "); + + const ::aurum::Point &startPoint = mRequest->startpoint(); + const ::aurum::Point &endPoint = mRequest->endpoint(); + int durationMs = mRequest->durationms(); + + UiDevice *device = UiDevice::getInstance(DeviceType::DEFAULT); + device->drag(startPoint.x(), startPoint.y(), endPoint.x(), endPoint.y(), durationMs); + mResponse->set_status(::aurum::RspStatus::OK); + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/GetAppInfoCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/GetAppInfoCommand.cc new file mode 100644 index 0000000..961fd82 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/GetAppInfoCommand.cc @@ -0,0 +1,50 @@ +#include "GetAppInfoCommand.h" +#include +#ifdef GBSBUILD +#include +#include +#endif + +GetAppInfoCommand::GetAppInfoCommand(const ::aurum::ReqGetAppInfo* request, + ::aurum::RspGetAppInfo* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status GetAppInfoCommand::execute() +{ + LOG_SCOPE_F(INFO, "GetAppInfo --------------- "); +#ifdef GBSBUILD + std::string packageName = mRequest->packagename(); + + app_context_h app_context; + package_info_h package_info; + app_state_e appState; + + char* label = nullptr; + int ret = -1; + + mResponse->set_status(::aurum::RspStatus::OK); + mResponse->set_isinstalled(false); + mResponse->set_isrunning(false); + mResponse->set_isfocused(false); + + if (!package_manager_get_package_info(packageName.c_str(), &package_info)) { + if (!package_info_get_label(package_info, &label)) { + if (label) { + free(label); + mResponse->set_isinstalled(true); + } + } + } + + if (!app_manager_get_app_context(packageName.c_str(), &app_context)) { + if (!app_context_get_app_state(app_context, &appState)) { + mResponse->set_isfocused(appState & APP_STATE_FOREGROUND); + mResponse->set_isrunning(!(appState & APP_STATE_TERMINATED)); + } + } + +#endif + return grpc::Status::OK; +} diff --git a/org.tizen.aurum-bootstrap/src/Commands/GetAttributeCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/GetAttributeCommand.cc new file mode 100644 index 0000000..f844c54 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/GetAttributeCommand.cc @@ -0,0 +1,177 @@ +#include "GetAttributeCommand.h" +#include + +#include +#include + +GetAttributeCommand::GetAttributeCommand( + const ::aurum::ReqGetAttribute* request, ::aurum::RspGetAttribute* response) + : mRequest{request}, mResponse{response}, mObjMap{ObjectMapper::getInstance()} +{ +} + +::grpc::Status GetAttributeCommand::execute() +{ + return grpc::Status::CANCELLED; +} + +std::unique_ptr GetAttributeCommand::createCommand(const ::aurum::ReqGetAttribute* request, + ::aurum::RspGetAttribute* response) +{ + ::aurum::ReqGetAttribute_RequestType type = request->attribute(); + + LOG_SCOPE_F(INFO, "type : %d", type); + + if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_VISIBLE) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_FOCUSABLE) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_FOCUSED) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_ENABLED) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CLICKABLE) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SCROLLABLE) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CHECKABLE) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_CHECKED) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SELECTED) + return std::make_unique(request, response); + else if (type == ::aurum::ReqGetAttribute_RequestType::ReqGetAttribute_RequestType_SELECTABLE) + return std::make_unique(request, response); + else + return std::make_unique(request, response); +} + +::grpc::Status GetVisibleAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isVisible()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetFocusedAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isFocused()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetFocusableAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isFocusable()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetCheckableAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isCheckable()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetCheckedAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isChecked()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetEnabledAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isEnabled()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetClickableAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isClickable()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetScrollableAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isScrollable()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetSelectableAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isSelectable()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} + +::grpc::Status GetSelectedAttributeCommand::execute() +{ + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (!obj) { + mResponse->set_boolvalue(false); + mResponse->set_status(aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + mResponse->set_boolvalue(obj->isSelected()); + mResponse->set_status(aurum::RspStatus::OK); + return grpc::Status::OK; +} diff --git a/org.tizen.aurum-bootstrap/src/Commands/GetDeviceTimeCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/GetDeviceTimeCommand.cc new file mode 100644 index 0000000..6f9c2a6 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/GetDeviceTimeCommand.cc @@ -0,0 +1,16 @@ +#include "GetDeviceTimeCommand.h" +#include + +GetDeviceTimeCommand::GetDeviceTimeCommand( + const ::aurum::ReqGetDeviceTime* request, + ::aurum::RspGetDeviceTime* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status GetDeviceTimeCommand::execute() +{ + LOG_SCOPE_F(INFO, "GetDeviceTime --------------- "); + // ObjectMapper *mObjMap = ObjectMapper::getInstance(); + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/GetLocationCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/GetLocationCommand.cc new file mode 100644 index 0000000..a8a5aff --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/GetLocationCommand.cc @@ -0,0 +1,15 @@ +#include "GetLocationCommand.h" +#include + +GetLocationCommand::GetLocationCommand(const ::aurum::ReqGetLocation* request, + ::aurum::RspGetLocation* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status GetLocationCommand::execute() +{ + LOG_SCOPE_F(INFO, "CliGetLocation --------------- "); + // ObjectMapper *mObjMap = ObjectMapper::getInstance(); + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/GetSizeCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/GetSizeCommand.cc new file mode 100644 index 0000000..de77d0e --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/GetSizeCommand.cc @@ -0,0 +1,28 @@ +#include "GetSizeCommand.h" +#include + +#include + +GetSizeCommand::GetSizeCommand(const ::aurum::ReqGetSize* request, + ::aurum::RspGetSize* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status GetSizeCommand::execute() +{ + LOG_SCOPE_F(INFO, "GetSize --------------- "); + ObjectMapper *mObjMap = ObjectMapper::getInstance(); + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (obj) { + const Rect &size = obj->getBoundingBox(); + ::aurum::Rect rect; + rect.set_x(size.mTopLeft.x); + rect.set_y(size.mTopLeft.y); + rect.set_width(size.width()); + rect.set_height(size.height()); + mResponse->mutable_size()->CopyFrom(rect); + } + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/GetValueCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/GetValueCommand.cc new file mode 100644 index 0000000..0eabcb5 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/GetValueCommand.cc @@ -0,0 +1,25 @@ +#include "GetValueCommand.h" +#include + +#include + +GetValueCommand::GetValueCommand(const ::aurum::ReqGetValue* request, + ::aurum::RspGetValue* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status GetValueCommand::execute() +{ + LOG_SCOPE_F(INFO, "GetValue --------------- "); + ObjectMapper* mObjMap = ObjectMapper::getInstance(); + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + + if (obj) { + std::string text = obj->getText(); + mResponse->set_stringvalue(text.c_str()); + mResponse->set_status(::aurum::RspStatus::OK); + } + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/InstallAppCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/InstallAppCommand.cc new file mode 100644 index 0000000..454bda5 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/InstallAppCommand.cc @@ -0,0 +1,37 @@ +#include "InstallAppCommand.h" +#include +#include +#ifdef GBSBUILD +#include +#endif + +InstallAppCommand::InstallAppCommand( + ::grpc::ServerReader<::aurum::ReqInstallApp> *request, + ::aurum::RspInstallApp * response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status InstallAppCommand::execute() +{ + LOG_SCOPE_F(INFO, "InstallApp --------------- "); +#ifdef GBSBUILD + ::aurum::ReqInstallApp chunk; + + std::ofstream outfile("/tmp/app.tpk", std::ofstream::binary); + + while (mRequest->Read(&chunk)) { + std::size_t size = chunk.package().length(); + const char *bufptr = chunk.package().c_str(); + outfile.write(bufptr, size); + } + outfile.close(); + + package_manager_request_h pkgRequest; + int id; + + package_manager_request_create(&pkgRequest); + package_manager_request_install(pkgRequest, "/tmp/app.tpk", &id); +#endif + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/KillServerCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/KillServerCommand.cc new file mode 100644 index 0000000..2e51682 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/KillServerCommand.cc @@ -0,0 +1,17 @@ +#include "KillServerCommand.h" +#include + +KillServerCommand::KillServerCommand(const ::aurum::ReqEmpty* request, + ::aurum::RspEmpty* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status KillServerCommand::execute() +{ + LOG_SCOPE_F(INFO, "Kill Server "); + + exit(1); + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/LaunchAppCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/LaunchAppCommand.cc new file mode 100644 index 0000000..6002a94 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/LaunchAppCommand.cc @@ -0,0 +1,54 @@ +#include "LaunchAppCommand.h" +#include +#include +#include + +#ifdef GBSBUILD +#include +#endif + +LaunchAppCommand::LaunchAppCommand(const ::aurum::ReqLaunchApp* request, + ::aurum::RspLaunchApp* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status LaunchAppCommand::execute() +{ + LOG_SCOPE_F(INFO, "LaunchApp --------------- "); +#ifdef GBSBUILD + app_control_h appControl; + std::string packageName = mRequest->packagename(); + int ret = -1; + + if (packageName.empty()) return grpc::Status::OK; + + ret = app_control_create(&appControl); + if (ret) { + LOG_SCOPE_F(INFO, "Launch Failed(1/3) Err Code : %ull", ret); + mResponse->set_status(::aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + + ret = app_control_set_app_id(appControl, packageName.c_str()); + if (ret) { + LOG_SCOPE_F(INFO, "Launch Failed(2/3) Err Code : %ull", ret); + mResponse->set_status(::aurum::RspStatus::ERROR); + return grpc::Status::OK; + } + + ret = app_control_send_launch_request(appControl, NULL, NULL); + if (ret) { + LOG_SCOPE_F(INFO, "Launch Failed(3/3) Err Code : %ull", ret); + mResponse->set_status(::aurum::RspStatus::ERROR); + return grpc::Status::OK; + } +#endif + return grpc::Status::OK; +} +::grpc::Status LaunchAppCommand::executePost() +{ + LOG_SCOPE_F(INFO, "LaunchAppCommand::executePost"); + std::this_thread::sleep_for(std::chrono::milliseconds{1500}); + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/LongClickCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/LongClickCommand.cc new file mode 100644 index 0000000..6dcc5a1 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/LongClickCommand.cc @@ -0,0 +1,37 @@ +#include "LongClickCommand.h" +#include + +#include +#include + +LongClickCommand::LongClickCommand(const ::aurum::ReqClick* request, + ::aurum::RspClick* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status LongClickCommand::execute() +{ + LOG_SCOPE_F(INFO, "LongClick --------------- "); + + ObjectMapper* mObjMap = ObjectMapper::getInstance(); + ::aurum::ReqClick_RequestType type = mRequest->type(); + + if (type == ::aurum::ReqClick_RequestType_ELEMENTID) { + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (obj) { + obj->longClick(LOGNCLICK_INTERVAL); + mResponse->set_status(::aurum::RspStatus::OK); + } else + mResponse->set_status(::aurum::RspStatus::ERROR); + } else if (type == ::aurum::ReqClick_RequestType_COORD) { + UiDevice* obj = UiDevice::getInstance(DeviceType::DEFAULT); + const ::aurum::Point& point = mRequest->coordination(); + obj->click(point.x(), point.y(), LOGNCLICK_INTERVAL); + mResponse->set_status(::aurum::RspStatus::OK); + } else if (type == ::aurum::ReqClick_RequestType_ATSPI) { + mResponse->set_status(::aurum::RspStatus::ERROR); + } + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/PostCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/PostCommand.cc new file mode 100644 index 0000000..71f4692 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/PostCommand.cc @@ -0,0 +1,20 @@ +#include "PostCommand.h" +#include +#include + +PostCommand::PostCommand() : PostCommand(nullptr) {} +PostCommand::PostCommand(Command *cmd) : mCommand{cmd} {} + +::grpc::Status PostCommand::execute() +{ + ::grpc::Status rst = mCommand->execute(); + LOG_SCOPE_F(INFO, "PostCommand --------------- "); + mCommand->executePost(); + // do post-command + return rst; +} + +::grpc::Status PostCommand::executePre() +{ + return mCommand->executePre(); +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/PreCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/PreCommand.cc new file mode 100644 index 0000000..a0f13ff --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/PreCommand.cc @@ -0,0 +1,26 @@ +#include "PreCommand.h" +#include +#include + +PreCommand::PreCommand() : PreCommand(nullptr) {} +PreCommand::PreCommand(Command *cmd) : mCommand{cmd} {} + +::grpc::Status PreCommand::execute() +{ + { + LOG_SCOPE_F(INFO, "PreCommand --------------- "); + AtspiAccessible *n = atspi_get_desktop(0); + if (n) { + char *name = atspi_accessible_get_name(n, NULL); + if(name) free(name); + g_object_unref(n); + } + } + mCommand->executePre(); + return mCommand->execute(); +} + +::grpc::Status PreCommand::executePost() +{ + return mCommand->executePost(); +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/RemoveAppCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/RemoveAppCommand.cc new file mode 100644 index 0000000..0fa6816 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/RemoveAppCommand.cc @@ -0,0 +1,27 @@ +#include "RemoveAppCommand.h" +#include +#ifdef GBSBUILD +#include +#endif + +RemoveAppCommand::RemoveAppCommand(const ::aurum::ReqRemoveApp* request, + ::aurum::RspRemoveApp* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status RemoveAppCommand::execute() +{ + LOG_SCOPE_F(INFO, "RemoveApp --------------- "); +#ifdef GBSBUILD + package_manager_request_h pkgRequest; + std::string name = mRequest->packagename(); + int id; + LOG_F(INFO, "package name :%s", name.c_str()); + + package_manager_request_create(&pkgRequest); + package_manager_request_uninstall(pkgRequest, name.c_str(), &id); +#endif + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/SendKeyCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/SendKeyCommand.cc new file mode 100644 index 0000000..7897a7f --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/SendKeyCommand.cc @@ -0,0 +1,37 @@ +#include "SendKeyCommand.h" +#include + +#include + +SendKeyCommand::SendKeyCommand(const ::aurum::ReqKey* request, + ::aurum::RspKey* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status SendKeyCommand::execute() +{ + LOG_SCOPE_F(INFO, "SendKey --------------- "); + UiDevice* mDevice = UiDevice::getInstance(DeviceType::DEFAULT); + ::aurum::ReqKey_KeyType type = mRequest->type(); + + if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_BACK) + mDevice->pressBack(); + else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_HOME) + mDevice->pressHome(); + else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_MENU) + mDevice->pressMenu(); + else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_VOLUP) + mDevice->pressVolUp(); + else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_VOLDOWN) + mDevice->pressVolDown(); + else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_POWER) + mDevice->pressPower(); + else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_KEY) { + ; // TODO + } + else if (type == ::aurum::ReqKey_KeyType::ReqKey_KeyType_XF86) { + ; // TODO + } + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/SetValueCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/SetValueCommand.cc new file mode 100644 index 0000000..9f574ee --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/SetValueCommand.cc @@ -0,0 +1,17 @@ +#include "SetValueCommand.h" +#include + +SetValueCommand::SetValueCommand(const ::aurum::ReqSetValue* request, + ::aurum::RspSetValue* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status SetValueCommand::execute() +{ + LOG_SCOPE_F(INFO, "SetValue (text:%s) --------------- ", mRequest->stringvalue().c_str()); + ObjectMapper* mObjMap = ObjectMapper::getInstance(); + UiObject* obj = mObjMap->getElement(mRequest->elementid()); + if (obj) obj->setText(const_cast(mRequest->stringvalue())); + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/SyncCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/SyncCommand.cc new file mode 100644 index 0000000..9d09214 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/SyncCommand.cc @@ -0,0 +1,23 @@ +#include "SyncCommand.h" +#include + +#include +#include + +SyncCommand::SyncCommand(const ::aurum::ReqEmpty *request, + ::aurum::RspEmpty * response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status SyncCommand::execute() +{ + LOG_SCOPE_F(INFO, "Sync Command "); + const AccessibleWatcher *accObj = AccessibleWatcher::getInstance(); + + auto root = accObj->getRootNode(); + LOG_F(INFO, "root node tree / depth : 2"); + root->print(0, 2); + + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/TouchDownCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/TouchDownCommand.cc new file mode 100644 index 0000000..4864cc5 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/TouchDownCommand.cc @@ -0,0 +1,19 @@ +#include "TouchDownCommand.h" +#include +#include + +TouchDownCommand::TouchDownCommand(const ::aurum::ReqTouchDown* request, + ::aurum::RspTouchDown* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status TouchDownCommand::execute() +{ + LOG_SCOPE_F(INFO, "TouchDown --------------- "); + const aurum::Point& point_ = mRequest->coordination(); + mResponse->set_seqid(0); + UiDevice::getInstance(DeviceType::DEFAULT) + ->touchDown(point_.x(), point_.y()); + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/TouchMoveCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/TouchMoveCommand.cc new file mode 100644 index 0000000..18fbeb9 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/TouchMoveCommand.cc @@ -0,0 +1,17 @@ +#include "TouchMoveCommand.h" +#include +#include + +TouchMoveCommand::TouchMoveCommand(const ::aurum::ReqTouchMove* request, + ::aurum::RspTouchMove* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status TouchMoveCommand::execute() +{ + LOG_SCOPE_F(INFO, "TouchMove --------------- "); + const aurum::Point& point = mRequest->coordination(); + UiDevice::getInstance(DeviceType::DEFAULT)->touchMove(point.x(), point.y()); + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/Commands/TouchUpCommand.cc b/org.tizen.aurum-bootstrap/src/Commands/TouchUpCommand.cc new file mode 100644 index 0000000..20d8083 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/Commands/TouchUpCommand.cc @@ -0,0 +1,17 @@ +#include "TouchUpCommand.h" +#include +#include + +TouchUpCommand::TouchUpCommand(const ::aurum::ReqTouchUp* request, + ::aurum::RspTouchUp* response) + : mRequest{request}, mResponse{response} +{ +} + +::grpc::Status TouchUpCommand::execute() +{ + LOG_SCOPE_F(INFO, "TouchUp --------------- "); + const aurum::Point& point = mRequest->coordination(); + UiDevice::getInstance(DeviceType::DEFAULT)->touchUp(point.x(), point.y()); + return grpc::Status::OK; +} \ No newline at end of file diff --git a/org.tizen.aurum-bootstrap/src/ObjectMapper.cc b/org.tizen.aurum-bootstrap/src/ObjectMapper.cc new file mode 100644 index 0000000..75bf956 --- /dev/null +++ b/org.tizen.aurum-bootstrap/src/ObjectMapper.cc @@ -0,0 +1,31 @@ +#include "ObjectMapper.h" + +ObjectMapper::ObjectMapper() : mObjectMap{}, mObjCounter{0} {} + +ObjectMapper::~ObjectMapper() {} + +ObjectMapper *ObjectMapper::getInstance() +{ + static ObjectMapper *mInstance = new ObjectMapper(); + return mInstance; +} + +std::string ObjectMapper::addElement(std::unique_ptr object) +{ + ++mObjCounter; + std::string key = std::to_string(mObjCounter); + mObjectMap[key] = std::move(object); + return key; +} + +UiObject *ObjectMapper::getElement(const std::string &key) +{ + unsigned long long keyCnt = (unsigned long long)std::stoll(key); // this key is a result of calling std:to_string(mObjCounter) + if (keyCnt <= 0 || keyCnt > mObjCounter) return nullptr; + if (mObjectMap.count(key)) { + UiObject *obj = mObjectMap[key].get(); + const_cast(obj)->refresh(); + return obj; + } + return nullptr; +} diff --git a/packaging/aurum.spec b/packaging/aurum.spec index 9c70332..60f5072 100644 --- a/packaging/aurum.spec +++ b/packaging/aurum.spec @@ -23,6 +23,21 @@ BuildRequires: pkgconfig(aul) BuildRequires: pkgconfig(capi-appfw-package-manager) BuildRequires: pkgconfig(capi-appfw-app-control) BuildRequires: pkgconfig(capi-appfw-app-manager) +BuildRequires: pkgconfig(capi-appfw-service-application) +BuildRequires: pkgconfig(libtzplatform-config) + +%if "%{?profile}" == "tv" + %define __hash_signing 0 +%else + %define __hash_signing 1 +%endif + +%if 0%{?__hash_signing} +BuildRequires: hash-signer +%if 0%{?sec_product_feature_profile_wearable} +Requires(post): signing-client +%endif +%endif %description aurum is a project for testing ui. @@ -54,6 +69,8 @@ meson \ --libdir %{_libdir} \ -Dcpp_std=c++17 \ -Dtizen=true \ + -Dtzapp_path=%{TZ_SYS_RO_APP} \ + -Dtzpackage_path=%{TZ_SYS_RO_PACKAGES} \ gbsbuild 2>&1 | sed \ -e 's%^.*: error: .*$%\x1b[37;41m&\x1b[m%' \ -e 's%^.*: warning: .*$%\x1b[30;43m&\x1b[m%' @@ -84,6 +101,14 @@ ninja \ export DESTDIR=%{buildroot} ninja -C gbsbuild install +%if 0%{?__hash_signing} +%define tizen_sign 1 +%define tizen_sign_base /usr/apps/org.tizen.aurum-bootstrap +%define tizen_sign_level platform +%define tizen_author_sign 1 +%define tizen_dist_sign 1 +%endif + %post sbin/ldconfig @@ -91,12 +116,16 @@ sbin/ldconfig sbin/ldconfig %post bootstrap -chsmack -e "User" %{_bindir}/aurum_bootstrap - +%if 0%{?sec_product_feature_profile_wearable} +echo "signing %{TZ_SYS_RO_APP}/org.tizen.aurum-bootstrap" +/usr/bin/signing-client/hash-signer-client.sh -a -d -p platform %{TZ_SYS_RO_APP}/org.tizen.aurum-bootstrap +%endif +#chsmack -e "User" %{_bindir}/aurum_bootstrap %postun bootstrap /sbin/ldconfig + %files %manifest %{name}.manifest %defattr(-,root,root) @@ -113,5 +142,8 @@ chsmack -e "User" %{_bindir}/aurum_bootstrap %manifest %{name}.manifest %defattr(-,root,root) %license COPYING -%{_bindir}/aurum_bootstrap -%{_unitdir_user}/aurum-bootstrap.service +#%{_bindir}/aurum_bootstrap +#%{_unitdir_user}/aurum-bootstrap.service +%{TZ_SYS_RO_PACKAGES}/org.tizen.aurum-bootstrap.xml +%{TZ_SYS_RO_APP}/org.tizen.aurum-bootstrap/* +