work_item.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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 21WorkItem::WorkItem() : ignore_failure_(false) { 22} 23 24WorkItem::~WorkItem() { 25} 26 27CallbackWorkItem* WorkItem::CreateCallbackWorkItem( 28 base::Callback<bool(const CallbackWorkItem&)> callback) { 29 return new CallbackWorkItem(callback); 30} 31 32CopyRegKeyWorkItem* 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 41CopyTreeWorkItem* 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 51CreateDirWorkItem* WorkItem::CreateCreateDirWorkItem( 52 const base::FilePath& path) { 53 return new CreateDirWorkItem(path); 54} 55 56CreateRegKeyWorkItem* WorkItem::CreateCreateRegKeyWorkItem( 57 HKEY predefined_root, const std::wstring& path) { 58 return new CreateRegKeyWorkItem(predefined_root, path); 59} 60 61DeleteRegKeyWorkItem* WorkItem::CreateDeleteRegKeyWorkItem( 62 HKEY predefined_root, const std::wstring& path) { 63 return new DeleteRegKeyWorkItem(predefined_root, path); 64} 65 66DeleteRegValueWorkItem* 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 73DeleteTreeWorkItem* 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 80MoveTreeWorkItem* 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 91SetRegValueWorkItem* 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 101SetRegValueWorkItem* 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 111SetRegValueWorkItem* 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 121SelfRegWorkItem* 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 127WorkItemList* WorkItem::CreateWorkItemList() { 128 return new WorkItemList(); 129} 130 131// static 132WorkItemList* WorkItem::CreateNoRollbackWorkItemList() { 133 return new NoRollbackWorkItemList(); 134} 135 136WorkItemList* WorkItem::CreateConditionalWorkItemList(Condition* condition) { 137 return new ConditionalWorkItemList(condition); 138} 139