Add parameter to StepRemovePerUserStorageDirectories
[platform/core/appfw/app-installers.git] / src / common / step / filesystem / step_remove_per_user_storage_directories.h
1 // Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
2 // Use of this source code is governed by an apache 2.0 license that can be
3 // found in the LICENSE file.
4
5 #ifndef COMMON_STEP_FILESYSTEM_STEP_REMOVE_PER_USER_STORAGE_DIRECTORIES_H_
6 #define COMMON_STEP_FILESYSTEM_STEP_REMOVE_PER_USER_STORAGE_DIRECTORIES_H_
7
8 #include <manifest_parser/utils/logging.h>
9
10 #include "common/step/step.h"
11
12 namespace common_installer {
13 namespace filesystem {
14
15 /**
16  * \brief Uninstallation.
17  *        Responsible for removing shared directories (wgt/tpk) for users.
18  *
19  * * process method implements removal of data and shared directories for
20  *   package in case of global installation for each user. Normally, directories
21  *   are removed in StepRemoveFiles.
22  *
23  * * Other methods are empty.
24  *
25  */
26
27 class StepRemovePerUserStorageDirectories : public common_installer::Step {
28  public:
29   using Step::Step;
30
31   explicit StepRemovePerUserStorageDirectories(InstallerContext* context)
32       : Step(context) {}
33
34   StepRemovePerUserStorageDirectories(InstallerContext* context,
35       const std::vector<const char*> additional_shared_dirs)
36       : Step(context),
37         additional_shared_dirs_(std::move(additional_shared_dirs)) {}
38
39   Status process() override;
40   Status clean() override { return Status::OK; }
41   Status undo() override;
42   Status precheck() override { return Status::OK; }
43
44   std::vector<const char*> additional_shared_dirs_;
45
46   STEP_NAME(RemovePerUserStorageDirectories)
47 };
48
49 }  // namespace filesystem
50 }  // namespace common_installer
51
52 #endif  // COMMON_STEP_FILESYSTEM_STEP_REMOVE_PER_USER_STORAGE_DIRECTORIES_H_