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

Unified Diff: goopdate/package.cc

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 | « goopdate/package.h ('k') | goopdate/package_cache.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: goopdate/package.cc
diff --git a/goopdate/package.cc b/goopdate/package.cc
deleted file mode 100644
index 6f2279614c33504fc19530c5bef04e79e877d28b..0000000000000000000000000000000000000000
--- a/goopdate/package.cc
+++ /dev/null
@@ -1,206 +0,0 @@
-// Copyright 2009-2010 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.
-// ========================================================================
-
-#include "omaha/goopdate/package.h"
-#include "omaha/base/debug.h"
-#include "omaha/base/logging.h"
-#include "omaha/base/scoped_ptr_address.h"
-#include "omaha/base/synchronized.h"
-#include "omaha/base/time.h"
-#include "omaha/base/utils.h"
-#include "omaha/goopdate/model.h"
-
-namespace omaha {
-
-Package::Package(AppVersion* app_version)
- : ModelObject(app_version->model()),
- app_version_(app_version),
- expected_size_(0),
- bytes_downloaded_(0),
- bytes_total_(0),
- next_download_retry_time_(0),
- progress_sampler_(5 * kMsPerSec, // Max sample time range.
- 1 * kMsPerSec), // Min range for meaningful average.
- is_downloading_(false) {
-}
-
-Package::~Package() {
-}
-
-AppVersion* Package::app_version() {
- __mutexScope(model()->lock());
- return app_version_;
-}
-
-const AppVersion* Package::app_version() const {
- __mutexScope(model()->lock());
- return app_version_;
-}
-
-STDMETHODIMP Package::get(BSTR dir) const {
- return model()->GetPackage(this, CString(dir));
-}
-
-STDMETHODIMP Package::get_isAvailable(VARIANT_BOOL* is_available) const {
- ASSERT1(is_available);
- *is_available = model()->IsPackageAvailable(this);
- return S_OK;
-}
-
-STDMETHODIMP Package::get_filename(BSTR* filename_as_bstr) const {
- __mutexScope(model()->lock());
- ASSERT1(filename_as_bstr);
- *filename_as_bstr = CComBSTR(filename()).Detach();
- return S_OK;
-}
-
-// status_text can be NULL.
-// TODO(omaha): Change bytes and bytes_total to uint64. Any logging will
-// need to use %llu.
-void Package::OnProgress(int bytes,
- int bytes_total,
- int status,
- const TCHAR* status_text) {
- __mutexScope(model()->lock());
-
- UNREFERENCED_PARAMETER(status);
- UNREFERENCED_PARAMETER(status_text);
- ASSERT1(status == WINHTTP_CALLBACK_STATUS_READ_COMPLETE ||
- status == WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER);
-
- CORE_LOG(L5, (_T("[Package::OnProgress][bytes %d][bytes_total %d][status %d]")
- _T("[status_text '%s']"),
- bytes, bytes_total, status, status_text));
-
- // TODO(omaha): What do we do if the following condition - bytes_total
- // is not what we expect - fails? Omaha 2 just divided bytes by bytes_total
- // to come up with the percentage, ignoring size. It didn't have to deal with
- // multiple downloads (much) and pre-determined total download size.
- // As an example, App::GetDownloadProgress() needs to know the expected
- // size before we've downloaded any bytes, but it might also want to know if
- // we are going to download less bytes. This could happen, for example, if
- // a proxy returned an HTML page instead. (I had to disable the first assert
- // because it fails when the actual file does not match the expected size.)
- // Even worse, what if the bytes_total has a different non-zero number on
- // successive calls?
-
- // ASSERT1(bytes_total == 0 ||
- // bytes_total == static_cast<int>(expected_size_));
- ASSERT1(bytes <= bytes_total);
-
- bytes_downloaded_ = bytes;
- bytes_total_ = bytes_total;
-
- progress_sampler_.AddSampleWithCurrentTimeStamp(bytes_downloaded_);
-}
-
-void Package::OnRequestBegin() {
- __mutexScope(model()->lock());
- next_download_retry_time_ = 0;
- bytes_downloaded_ = 0;
- bytes_total_ = 0;
- progress_sampler_.Reset();
-}
-
-void Package::OnRequestRetryScheduled(time64 next_download_retry_time) {
- __mutexScope(model()->lock());
- ASSERT1(next_download_retry_time >= GetCurrent100NSTime());
- next_download_retry_time_ = next_download_retry_time;
-}
-
-void Package::SetFileInfo(const CString& filename,
- uint64 size,
- const CString& hash) {
- __mutexScope(model()->lock());
-
- ASSERT1(!filename.IsEmpty());
- ASSERT1(0 < size);
- ASSERT1(!hash.IsEmpty());
-
- filename_ = filename;
- expected_size_ = size;
- expected_hash_ = hash;
-}
-
-CString Package::filename() const {
- __mutexScope(model()->lock());
- ASSERT1(!filename_.IsEmpty());
- return filename_;
-}
-
-uint64 Package::expected_size() const {
- __mutexScope(model()->lock());
- return expected_size_;
-}
-
-CString Package::expected_hash() const {
- __mutexScope(model()->lock());
- ASSERT1(!expected_hash_.IsEmpty());
- return expected_hash_;
-}
-
-uint64 Package::bytes_downloaded() const {
- __mutexScope(model()->lock());
- return bytes_downloaded_;
-}
-
-time64 Package::next_download_retry_time() const {
- __mutexScope(model()->lock());
- return next_download_retry_time_;
-}
-
-LONG Package::GetEstimatedRemainingDownloadTimeMs() const {
- __mutexScope(model()->lock());
-
- const LONG kUnknownRemainingTime = -1;
-
- if (bytes_total_ == 0) { // Don't know how many bytes to download.
- return kUnknownRemainingTime;
- }
-
- if (bytes_total_ == bytes_downloaded_) {
- return 0;
- }
-
- LONG time_remaining_ms = kUnknownRemainingTime;
- int average_speed = progress_sampler_.GetAverageProgressPerMs();
- if (average_speed == ProgressSampler<int>::kUnknownProgressPerMs) {
- return kUnknownRemainingTime;
- }
-
- if (bytes_total_ >= bytes_downloaded_ && average_speed > 0) {
- time_remaining_ms = static_cast<LONG>(
- CeilingDivide(bytes_total_ - bytes_downloaded_, average_speed));
- }
-
- return time_remaining_ms;
-}
-
-STDMETHODIMP PackageWrapper::get(BSTR dir) {
- __mutexScope(model()->lock());
- return wrapped_obj()->get(dir);
-}
-
-STDMETHODIMP PackageWrapper::get_isAvailable(VARIANT_BOOL* is_available) {
- __mutexScope(model()->lock());
- return wrapped_obj()->get_isAvailable(is_available);
-}
-
-STDMETHODIMP PackageWrapper::get_filename(BSTR* filename) {
- __mutexScope(model()->lock());
- return wrapped_obj()->get_filename(filename);
-}
-
-} // namespace omaha
« no previous file with comments | « goopdate/package.h ('k') | goopdate/package_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698