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

Unified Diff: statsreport/persistent_iterator-win32.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 | « statsreport/persistent_iterator-win32.h ('k') | statsreport/persistent_iterator-win32_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: statsreport/persistent_iterator-win32.cc
diff --git a/statsreport/persistent_iterator-win32.cc b/statsreport/persistent_iterator-win32.cc
deleted file mode 100644
index 5b527e14be6d513a7a717d45407695a5c1f1b6b7..0000000000000000000000000000000000000000
--- a/statsreport/persistent_iterator-win32.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright 2006-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.
-// ========================================================================
-//
-// Iterator over persisted metrics
-#include "persistent_iterator-win32.h"
-
-namespace stats_report {
-
-void PersistentMetricsIteratorWin32::Next() {
- current_value_.reset();
-
- // Try to open the top-level key if we didn't already.
- if (NULL == key_.m_hKey) {
- HKEY parent_key = is_machine_ ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
- LONG err = key_.Open(parent_key, key_name_, KEY_READ);
- if (err != ERROR_SUCCESS)
- return;
- }
-
- // Loop until we find a value
- while (state_ != kFinished) {
- if (NULL == sub_key_.m_hKey) {
- const wchar_t *subkey_name = NULL;
- switch (state_) {
- case kUninitialized:
- state_ = kCounts;
- subkey_name = kCountsKeyName;
- break;
- case kCounts:
- state_ = kTimings;
- subkey_name = kTimingsKeyName;
- break;
- case kTimings:
- state_ = kIntegers;
- subkey_name = kIntegersKeyName;
- break;
- case kIntegers:
- state_ = kBooleans;
- subkey_name = kBooleansKeyName;
- break;
- case kBooleans:
- state_ = kFinished;
- break;
- case kFinished:
- break;
- }
-
- if (NULL != subkey_name) {
- LONG err = sub_key_.Open(key_, subkey_name, KEY_READ);
- // go around the loop on error to try the next key type
- if (ERROR_SUCCESS != err)
- continue;
- }
-
- // reset value enumeration
- value_index_ = 0;
- }
-
- if (state_ != kFinished) {
- DCHECK(NULL != sub_key_.m_hKey);
- CString wide_value_name;
- DWORD value_name_len = 255;
- DWORD value_type = 0;
- BYTE buf[sizeof(TimingMetric::TimingData)];
- DWORD value_len = sizeof(buf);
-
- // Get the next key and value
- LONG err = ::RegEnumValue(sub_key_, value_index_,
- CStrBuf(wide_value_name, static_cast<int>(value_name_len)),
- &value_name_len,
- 0, &value_type,
- buf, &value_len);
-
- ++value_index_;
-
- if (ERROR_NO_MORE_ITEMS == err) {
- // done with this subkey, go around again
- sub_key_.Close();
- continue;
- } else if (ERROR_SUCCESS != err) {
- // some other error, broken into a separate case for ease of debugging
- DCHECK(false && "Unexpected error during reg value enumeration");
- } else {
- DCHECK(ERROR_SUCCESS == err);
-
- // convert value to ASCII
- current_value_name_ = wide_value_name;
-
- switch (state_) {
- case kCounts:
- if (value_len != sizeof(int64))
- continue;
- current_value_.reset(new CountMetric(current_value_name_ .GetString(),
- *reinterpret_cast<int64*>(&buf[0])));
- break;
- case kTimings:
- if (value_len != sizeof(TimingMetric::TimingData))
- continue;
- current_value_.reset(new TimingMetric(current_value_name_.GetString(),
- *reinterpret_cast<TimingMetric::TimingData*>(&buf[0])));
- break;
- case kIntegers:
- if (value_len != sizeof(int64))
- continue;
- current_value_.reset(new IntegerMetric(
- current_value_name_.GetString(),
- *reinterpret_cast<int64*>(&buf[0])));
- break;
- case kBooleans:
- if (value_len != sizeof(uint32))
- continue;
- current_value_.reset(new BoolMetric(current_value_name_.GetString(),
- *reinterpret_cast<uint32*>(&buf[0])));
- break;
- default:
- DCHECK(false && "Impossible state during reg value enumeration");
- break;
- }
-
- if (current_value_.get())
- return;
- }
- }
- }
-}
-
-} // namespace stats_report
« no previous file with comments | « statsreport/persistent_iterator-win32.h ('k') | statsreport/persistent_iterator-win32_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698