• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chrome/installer/util/work_item.h"
6 
7 #include "chrome/installer/util/callback_work_item.h"
8 #include "chrome/installer/util/conditional_work_item_list.h"
9 #include "chrome/installer/util/copy_reg_key_work_item.h"
10 #include "chrome/installer/util/copy_tree_work_item.h"
11 #include "chrome/installer/util/create_dir_work_item.h"
12 #include "chrome/installer/util/create_reg_key_work_item.h"
13 #include "chrome/installer/util/delete_tree_work_item.h"
14 #include "chrome/installer/util/delete_reg_key_work_item.h"
15 #include "chrome/installer/util/delete_reg_value_work_item.h"
16 #include "chrome/installer/util/move_tree_work_item.h"
17 #include "chrome/installer/util/self_reg_work_item.h"
18 #include "chrome/installer/util/set_reg_value_work_item.h"
19 #include "chrome/installer/util/work_item_list.h"
20 
WorkItem()21 WorkItem::WorkItem() : ignore_failure_(false) {
22 }
23 
~WorkItem()24 WorkItem::~WorkItem() {
25 }
26 
CreateCallbackWorkItem(base::Callback<bool (const CallbackWorkItem &)> callback)27 CallbackWorkItem* WorkItem::CreateCallbackWorkItem(
28     base::Callback<bool(const CallbackWorkItem&)> callback) {
29   return new CallbackWorkItem(callback);
30 }
31 
CreateCopyRegKeyWorkItem(HKEY predefined_root,const std::wstring & source_key_path,const std::wstring & dest_key_path,CopyOverWriteOption overwrite_option)32 CopyRegKeyWorkItem* WorkItem::CreateCopyRegKeyWorkItem(
33     HKEY predefined_root,
34     const std::wstring& source_key_path,
35     const std::wstring& dest_key_path,
36     CopyOverWriteOption overwrite_option) {
37   return new CopyRegKeyWorkItem(predefined_root, source_key_path,
38                                 dest_key_path, overwrite_option);
39 }
40 
CreateCopyTreeWorkItem(const base::FilePath & source_path,const base::FilePath & dest_path,const base::FilePath & temp_dir,CopyOverWriteOption overwrite_option,const base::FilePath & alternative_path)41 CopyTreeWorkItem* WorkItem::CreateCopyTreeWorkItem(
42     const base::FilePath& source_path,
43     const base::FilePath& dest_path,
44     const base::FilePath& temp_dir,
45     CopyOverWriteOption overwrite_option,
46     const base::FilePath& alternative_path) {
47   return new CopyTreeWorkItem(source_path, dest_path, temp_dir,
48                               overwrite_option, alternative_path);
49 }
50 
CreateCreateDirWorkItem(const base::FilePath & path)51 CreateDirWorkItem* WorkItem::CreateCreateDirWorkItem(
52     const base::FilePath& path) {
53   return new CreateDirWorkItem(path);
54 }
55 
CreateCreateRegKeyWorkItem(HKEY predefined_root,const std::wstring & path)56 CreateRegKeyWorkItem* WorkItem::CreateCreateRegKeyWorkItem(
57     HKEY predefined_root, const std::wstring& path) {
58   return new CreateRegKeyWorkItem(predefined_root, path);
59 }
60 
CreateDeleteRegKeyWorkItem(HKEY predefined_root,const std::wstring & path)61 DeleteRegKeyWorkItem* WorkItem::CreateDeleteRegKeyWorkItem(
62     HKEY predefined_root, const std::wstring& path) {
63   return new DeleteRegKeyWorkItem(predefined_root, path);
64 }
65 
CreateDeleteRegValueWorkItem(HKEY predefined_root,const std::wstring & key_path,const std::wstring & value_name)66 DeleteRegValueWorkItem* WorkItem::CreateDeleteRegValueWorkItem(
67     HKEY predefined_root,
68     const std::wstring& key_path,
69     const std::wstring& value_name) {
70   return new DeleteRegValueWorkItem(predefined_root, key_path, value_name);
71 }
72 
CreateDeleteTreeWorkItem(const base::FilePath & root_path,const base::FilePath & temp_path,const std::vector<base::FilePath> & key_paths)73 DeleteTreeWorkItem* WorkItem::CreateDeleteTreeWorkItem(
74     const base::FilePath& root_path,
75     const base::FilePath& temp_path,
76     const std::vector<base::FilePath>& key_paths) {
77   return new DeleteTreeWorkItem(root_path, temp_path, key_paths);
78 }
79 
CreateMoveTreeWorkItem(const base::FilePath & source_path,const base::FilePath & dest_path,const base::FilePath & temp_dir,MoveTreeOption duplicate_option)80 MoveTreeWorkItem* WorkItem::CreateMoveTreeWorkItem(
81     const base::FilePath& source_path,
82     const base::FilePath& dest_path,
83     const base::FilePath& temp_dir,
84     MoveTreeOption duplicate_option) {
85   return new MoveTreeWorkItem(source_path,
86                               dest_path,
87                               temp_dir,
88                               duplicate_option);
89 }
90 
CreateSetRegValueWorkItem(HKEY predefined_root,const std::wstring & key_path,const std::wstring & value_name,const std::wstring & value_data,bool overwrite)91 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem(
92     HKEY predefined_root,
93     const std::wstring& key_path,
94     const std::wstring& value_name,
95     const std::wstring& value_data,
96     bool overwrite) {
97   return new SetRegValueWorkItem(predefined_root, key_path,
98                                  value_name, value_data, overwrite);
99 }
100 
CreateSetRegValueWorkItem(HKEY predefined_root,const std::wstring & key_path,const std::wstring & value_name,DWORD value_data,bool overwrite)101 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem(
102     HKEY predefined_root,
103     const std::wstring& key_path,
104     const std::wstring& value_name,
105     DWORD value_data,
106     bool overwrite) {
107   return new SetRegValueWorkItem(predefined_root, key_path,
108                                  value_name, value_data, overwrite);
109 }
110 
CreateSetRegValueWorkItem(HKEY predefined_root,const std::wstring & key_path,const std::wstring & value_name,int64 value_data,bool overwrite)111 SetRegValueWorkItem* WorkItem::CreateSetRegValueWorkItem(
112     HKEY predefined_root,
113     const std::wstring& key_path,
114     const std::wstring& value_name,
115     int64 value_data,
116     bool overwrite) {
117   return new SetRegValueWorkItem(predefined_root, key_path,
118                                  value_name, value_data, overwrite);
119 }
120 
CreateSelfRegWorkItem(const std::wstring & dll_path,bool do_register,bool user_level_registration)121 SelfRegWorkItem* WorkItem::CreateSelfRegWorkItem(const std::wstring& dll_path,
122                                                  bool do_register,
123                                                  bool user_level_registration) {
124   return new SelfRegWorkItem(dll_path, do_register, user_level_registration);
125 }
126 
CreateWorkItemList()127 WorkItemList* WorkItem::CreateWorkItemList() {
128   return new WorkItemList();
129 }
130 
131 // static
CreateNoRollbackWorkItemList()132 WorkItemList* WorkItem::CreateNoRollbackWorkItemList() {
133   return new NoRollbackWorkItemList();
134 }
135 
CreateConditionalWorkItemList(Condition * condition)136 WorkItemList* WorkItem::CreateConditionalWorkItemList(Condition* condition) {
137   return new ConditionalWorkItemList(condition);
138 }
139