// // 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 UnpackStep.h * @brief This is the header file for the %UnpackStep class. * * This header file contains the declarations of the %UnpackStep class. */ #ifndef _UNPACK_STEP_H_ #define _UNPACK_STEP_H_ #include #include "IInstallationStep.h" /** * @class UnpackStep * @brief This class represents the class of UnpackStep. * @since 1.0 * * This class represents the class of UnpackStep. * */ class UnpackStep : public IInstallationStep { public: UnpackStep(void); virtual ~UnpackStep(void); virtual InstallerError Run(InstallationContext* pContext); private: enum { STATE_BACKUP, STATE_UNZIP, STATE_FILE_MOVE, STATE_CREATE_DIR, STATE_DONE }; void GoNextState(void); InstallerError OnStateBackup(void); InstallerError OnUnzip(void); InstallerError OnStateFileMove(void); InstallerError OnCreateDir(void); InstallerError OnStateDone(void); bool CreateDefaultDir(void); bool GetUncompressedInfo(const Tizen::Base::Utility::FileUnzipper& unzipper); bool AddDirectory(const Tizen::Base::String& directory); bool RemoveRoDirectory(const Tizen::Base::String& rootPath); bool RemoveSharedDirectory(const Tizen::Base::String& sharedPath); private: int __state; InstallationContext* __pContext; GList* __pDirectoryList; int __uncompressedSize; }; // UnpackStep #endif //_UNPACK_STEP_H_