Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(739)

Unified Diff: base/file.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/extractor_unittest.cc ('k') | base/file.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/file.h
diff --git a/base/file.h b/base/file.h
deleted file mode 100644
index ca266ef7adcee26a3da0eba84549942d472495ee..0000000000000000000000000000000000000000
--- a/base/file.h
+++ /dev/null
@@ -1,249 +0,0 @@
-// Copyright 2003-2009 Google Inc.
-//
-// 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 handling routines
-//
-// encryption is not currently active
-//
-#ifndef OMAHA_BASE_FILE_H_
-#define OMAHA_BASE_FILE_H_
-
-#include <windows.h>
-#include <vector>
-#include "base/basictypes.h"
-#include "omaha/base/scoped_any.h"
-#include "omaha/base/store_watcher.h"
-
-namespace omaha {
-
-class File {
- public:
-
- File();
- ~File();
-
- HRESULT Open(const TCHAR* file_name, bool write, bool async);
- HRESULT OpenShareMode(const TCHAR* file_name,
- bool write,
- bool async,
- DWORD share_mode);
-
- HRESULT Close();
-
- static bool Exists(const TCHAR* file_name);
- static bool IsDirectory(const TCHAR *file_name);
- static HRESULT GetWildcards(const TCHAR* dir, const TCHAR* wildcard,
- std::vector<CString>* matching_paths);
- // returns S_OK on successful removal or if not existing
- static HRESULT Remove(const TCHAR* file_name);
- // CopyWildcards doesn't work recursively
- static HRESULT CopyWildcards(const TCHAR* from_dir, const TCHAR* to_dir,
- const TCHAR* wildcard,
- bool replace_existing_files);
- static HRESULT CopyTree(const TCHAR* from_dir, const TCHAR* to_dir,
- bool replace_existing_files);
- // to_dir need not exist
- static HRESULT Copy(const TCHAR* from, const TCHAR* to,
- bool replace_existing_file);
- static HRESULT Move(const TCHAR* from, const TCHAR* to,
- bool replace_existing_file);
- // DeleteAfterReboot tries to delete the files by either moving them to
- // the TEMP directory and deleting them on reboot, or if that fails, by
- // trying to delete them in-place on reboot
- static HRESULT DeleteAfterReboot(const TCHAR* from);
- static HRESULT MoveAfterReboot(const TCHAR* from, const TCHAR* to);
- // Remove any moves pending a reboot from the PendingFileRenameOperations
- // in the registry.
- // The prefix_match boolean controls whether we do an exact match on
- // in_directory, or remove all entries with the in_directory prefix.
- static HRESULT RemoveFromMovesPendingReboot(const TCHAR* in_directory,
- bool prefix_match);
- // Did the user try to uninstall a previous install of the same version,
- // and we couldn't clean up without a reboot?
- // We check if there are any moves pending a reboot from the
- // PendingFileRenameOperations in the registry.
- // The prefix_match boolean controls whether we do an exact match on
- // in_directory, or check all entries with the in_directory prefix.
- static bool AreMovesPendingReboot(const TCHAR* in_directory,
- bool prefix_match);
-
- // The GetFileTime function retrieves the date and time that a file was
- // created, last accessed, and last modified. The parameters 'created',
- // 'accessed', 'modified' can be null if the caller does not require that
- // information. All times are utc
- // (http://support.microsoft.com/default.aspx?scid=kb;%5BLN%5D;158588)
- // To compare FILETIME values, use CompareFileTime API.
- static HRESULT GetFileTime(const TCHAR* file_name, FILETIME* created,
- FILETIME* accessed, FILETIME* modified);
-
- // Sets the file time
- static HRESULT SetFileTime(const TCHAR* file_name,
- const FILETIME* created,
- const FILETIME* accessed,
- const FILETIME* modified);
-
- // sync flushes any pending writes to disk
- HRESULT Sync();
- // static HRESULT SyncAllFiles();
-
- HRESULT SeekToBegin();
- HRESULT SeekFromBegin(uint32 n);
-
- HRESULT ReadFromStartOfFile(const uint32 max_len, byte *buf,
- uint32 *bytes_read);
- HRESULT ReadLineAnsi(uint32 max_len, char *line, uint32 *len);
-
- // read len bytes, reading 0 bytes is invalid
- HRESULT Read(const uint32 len, byte *buf, uint32 *bytes_read);
- // read len bytes starting at position n, reading 0 bytes is invalid
- HRESULT ReadAt(const uint32 offset, byte *buf, const uint32 len,
- const uint32 async_id, uint32 *bytes_read);
-
- // write len bytes, writing 0 bytes is invalid
- HRESULT Write(const byte *buf, const uint32 len, uint32 *bytes_written);
- // write len bytes, writing 0 bytes is invalid
- HRESULT WriteAt(const uint32 offset, const byte *buf, const uint32 len,
- const uint32 async_id, uint32 *bytes_written);
-
- // write buffer n times
- HRESULT WriteN(const byte *buf, const uint32 len, const uint32 n,
- uint32 *bytes_written);
-
- // zeros section of file
- HRESULT ClearAt(const uint32 offset, const uint32 len,
- uint32 *bytes_written);
-
- // set length of file
- // if new length is greater than current length, new data is undefined
- // unless zero_data == true in which case the new data is zeroed.
- HRESULT SetLength(const uint32 n, bool zero_data);
- HRESULT ExtendInBlocks(const uint32 block_size, uint32 size_needed,
- uint32 *new_size, bool clear_new_space);
- HRESULT GetLength(uint32 *len);
-
- // Sets the last write time to the current time
- HRESULT Touch();
-
- // all the data storage classes contain these functions
- // we implemenent them here for consistency
- // e.g., so we can do object->GetSizeOnDisk independent of the object type
- HRESULT GetSizeOnDisk(uint64 *size_on_disk);
- HRESULT GetReloadDiskSpaceNeeded(uint64 *bytes_needed);
- HRESULT Reload(uint32 *number_errors);
- HRESULT Verify(uint32 *number_errors);
- HRESULT Dump();
-
- // Gets the size of a file, without opening it [the regular GetFileSize
- // requires a file handle, which conflicts if the file is already opened
- // and locked]
- static HRESULT GetFileSizeUnopen(const TCHAR * filename,
- uint32 * out_size);
-
- // Optimized function that gets the last write time and size
- static HRESULT GetLastWriteTimeAndSize(const TCHAR* file_path,
- SYSTEMTIME* out_time,
- unsigned int* out_size);
-
- // Returns true if the two files are binary-identical.
- static bool AreFilesIdentical(const TCHAR* filename1,
- const TCHAR* filename2);
-
- private:
- // See if we have any moves pending a reboot. Return SUCCESS if we do
- // not encounter errors (not finding a move is not an error). We need to
- // also check the value of *found_ptr for whether we actually found a move.
- // On return, *value_multisz_ptr is the value within
- // "PendingFileRenameOperations", but with any moves for in_directory
- // removed from it.
- // The prefix_match boolean controls whether we do an exact match on
- // in_directory, or remove all entries with the in_directory prefix.
- // NOTE: If the only values found were our own keys, the whole
- // PendingFileRenameOperations MULTISZ needs to be deleted. This is
- // signified by a returned *value_size_chars_ptr of 0.
- static HRESULT GetPendingRenamesValueMinusDir(const TCHAR* in_directory,
- bool prefix_match, TCHAR** value_multisz_ptr, DWORD* value_size_chars_ptr,
- bool* found_ptr);
-
- HANDLE handle_;
- CString file_name_;
- bool read_only_;
- bool sync_write_done_;
- uint32 pos_;
- uint32 encryption_seed_;
- uint32 sequence_id_;
- enum EncryptionTypes encryption_;
-
- static const int kMaxFileSize = kint32max;
-
- DISALLOW_EVIL_CONSTRUCTORS(File);
-};
-
-// File lock
-class FileLock {
- public:
- // Default constructor
- FileLock();
-
- // Destructor
- ~FileLock();
-
- // Lock a single file
- HRESULT Lock(const TCHAR* file);
-
- // Lock multiple files (atomic)
- HRESULT Lock(const std::vector<CString>& files);
-
- // Unlock all
- HRESULT Unlock();
-
- private:
- std::vector<HANDLE> handles_;
-
- DISALLOW_EVIL_CONSTRUCTORS(FileLock);
-};
-
-
-// Does the common things necessary for watching
-// changes in a directory. If there are file change or other watchers,
-// there could be a common interface for the three methods to decouple
-// the code that is doing the watching from the code that owns the store.
-class FileWatcher : public StoreWatcher {
- public:
- // path_name: the directory to watch
- // watch_subtree: watch all subdirectory changes or
- // only immediate child values
- // notify_filter: See the documentation for FindFirstChangeNotification
- FileWatcher(const TCHAR* path_name, bool watch_subtree, DWORD notify_filter);
-
- // Called to create/reset the event that gets signaled
- // any time the store changes. Access the created
- // event using change_event().
- virtual HRESULT EnsureEventSetup();
-
- // Get the event that is signaled on store changes.
- virtual HANDLE change_event() const;
-
- private:
- scoped_hfind_change_notification change_event_;
- CString path_name_;
- bool watch_subtree_;
- DWORD notify_filter_;
-
- DISALLOW_EVIL_CONSTRUCTORS(FileWatcher);
-};
-
-} // namespace omaha
-
-#endif // OMAHA_BASE_FILE_H_
-
« no previous file with comments | « base/extractor_unittest.cc ('k') | base/file.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698