// // Open Service Platform // Copyright (c) 2012 Samsung Electronics Co., Ltd. // // Licensed under the Apache License, Version 2.0 (the License); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // /** * @file InstallerManager.h * @brief This is the header file for the %InstallerManager class. * * This header file contains the declarations of the %InstallerManager class. */ #ifndef _INSTALLER_MANAGER_H_ #define _INSTALLER_MANAGER_H_ #include "InstallationContext.h" #include "Installer.h" /** * @class InstallerManager * @brief This class represents the class of InstallerManager. * @since 1.0 * * This class represents the class of InstallerManager. * */ class InstallerManager { public: InstallerManager(void); InstallerError Construct(const Tizen::Base::String& path, InstallerOperation op, InstallerOption option); virtual ~InstallerManager(void); static InstallerManager* GetInstance(void); void Release(void); bool RemoveGarbage(const Tizen::Base::String& filePath); void PrintResult(void); void PrintError(int errorType); const Tizen::App::PackageId& GetId(void) const; void SetId(const Tizen::App::PackageId& appId); int GetErrorType(void) const; void SetErrorType(int errorType); void SetInstallerOperation(InstallerOperation op); InstallerOperation GetInstallerOperation(void) const; Tizen::Base::String GetLogFilePath() const; bool IsFileLogOn() const; static int Request(const Tizen::Base::String& path, InstallerOperation operation, InstallerOption option, Tizen::Base::String& packageId); static int RequestRecursiveDirectory(const Tizen::Base::String& path, int& errorType); static int RequestByCommand(int argc, char **argv); static int ReqeustByTest(void); static int RequestMove(const Tizen::App::PackageId& packageId, int moveType); private: InstallerManager(const InstallerManager& value); InstallerManager& operator =(const InstallerManager& source); InstallationStep GetNext(void); InstallerError Init(void); InstallerError Register(void); InstallerError End(void); InstallerError Error(void); InstallerError Rollback(void); InstallerError UserCancel(void); InstallerError Activate(void); InstallerError Progress(void); Installer* CreateInstaller(InstallerType installerType); InstallationContext* GetContext(void); static int ParseCommandArg(int argc, char **argv, int *mode, char *buf, bool *output); private: static InstallerManager* __pInstallerManager; InstallationContext* __pContext; Installer* __pInstaller; Tizen::App::PackageId __packageId; int __errorType; InstallerOperation __operation; long long __startTick; long long __endTick; Tizen::Base::String __logFilePath; bool __isFileLogOn; }; // InstallerManager #endif //_INSTALLER_MANAGER_H_