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

Side by Side Diff: chromeos/settings/timezone_settings.cc

Issue 2387783002: Remove stl_util's deletion functions from chromeos/. (Closed)
Patch Set: armansito Created 4 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 unified diff | Download patch
« no previous file with comments | « chromeos/settings/timezone_settings.h ('k') | chromeos/settings/timezone_settings_helper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/settings/timezone_settings.h" 5 #include "chromeos/settings/timezone_settings.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
14 #include "base/files/file_util.h" 14 #include "base/files/file_util.h"
15 #include "base/location.h" 15 #include "base/location.h"
16 #include "base/logging.h" 16 #include "base/logging.h"
17 #include "base/macros.h" 17 #include "base/macros.h"
18 #include "base/memory/ptr_util.h"
18 #include "base/memory/singleton.h" 19 #include "base/memory/singleton.h"
19 #include "base/observer_list.h" 20 #include "base/observer_list.h"
20 #include "base/stl_util.h"
21 #include "base/strings/string_util.h" 21 #include "base/strings/string_util.h"
22 #include "base/strings/utf_string_conversions.h" 22 #include "base/strings/utf_string_conversions.h"
23 #include "base/sys_info.h" 23 #include "base/sys_info.h"
24 #include "base/task_runner.h" 24 #include "base/task_runner.h"
25 #include "base/threading/worker_pool.h" 25 #include "base/threading/worker_pool.h"
26 #include "chromeos/settings/timezone_settings_helper.h" 26 #include "chromeos/settings/timezone_settings_helper.h"
27 27
28 namespace chromeos { 28 namespace chromeos {
29 namespace system { 29 namespace system {
30 const char kUTCTimezoneName[] = "Etc/GMT"; 30 const char kUTCTimezoneName[] = "Etc/GMT";
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 class TimezoneSettingsBaseImpl : public chromeos::system::TimezoneSettings { 272 class TimezoneSettingsBaseImpl : public chromeos::system::TimezoneSettings {
273 public: 273 public:
274 ~TimezoneSettingsBaseImpl() override; 274 ~TimezoneSettingsBaseImpl() override;
275 275
276 // TimezoneSettings implementation: 276 // TimezoneSettings implementation:
277 const icu::TimeZone& GetTimezone() override; 277 const icu::TimeZone& GetTimezone() override;
278 base::string16 GetCurrentTimezoneID() override; 278 base::string16 GetCurrentTimezoneID() override;
279 void SetTimezoneFromID(const base::string16& timezone_id) override; 279 void SetTimezoneFromID(const base::string16& timezone_id) override;
280 void AddObserver(Observer* observer) override; 280 void AddObserver(Observer* observer) override;
281 void RemoveObserver(Observer* observer) override; 281 void RemoveObserver(Observer* observer) override;
282 const std::vector<icu::TimeZone*>& GetTimezoneList() const override; 282 const std::vector<std::unique_ptr<icu::TimeZone>>& GetTimezoneList()
283 const override;
283 284
284 protected: 285 protected:
285 TimezoneSettingsBaseImpl(); 286 TimezoneSettingsBaseImpl();
286 287
287 // Returns |timezone| if it is an element of |timezones_|. 288 // Returns |timezone| if it is an element of |timezones_|.
288 // Otherwise, returns a timezone from |timezones_|, if such exists, that has 289 // Otherwise, returns a timezone from |timezones_|, if such exists, that has
289 // the same rule as the given |timezone|. 290 // the same rule as the given |timezone|.
290 // Otherwise, returns NULL. 291 // Otherwise, returns NULL.
291 // Note multiple timezones with the same time zone rules may exist 292 // Note multiple timezones with the same time zone rules may exist
292 // e.g. 293 // e.g.
293 // US/Pacific == America/Los_Angeles 294 // US/Pacific == America/Los_Angeles
294 const icu::TimeZone* GetKnownTimezoneOrNull( 295 const icu::TimeZone* GetKnownTimezoneOrNull(
295 const icu::TimeZone& timezone) const; 296 const icu::TimeZone& timezone) const;
296 297
297 base::ObserverList<Observer> observers_; 298 base::ObserverList<Observer> observers_;
298 std::vector<icu::TimeZone*> timezones_; 299 std::vector<std::unique_ptr<icu::TimeZone>> timezones_;
299 std::unique_ptr<icu::TimeZone> timezone_; 300 std::unique_ptr<icu::TimeZone> timezone_;
300 301
301 private: 302 private:
302 DISALLOW_COPY_AND_ASSIGN(TimezoneSettingsBaseImpl); 303 DISALLOW_COPY_AND_ASSIGN(TimezoneSettingsBaseImpl);
303 }; 304 };
304 305
305 // The TimezoneSettings implementation used in production. 306 // The TimezoneSettings implementation used in production.
306 class TimezoneSettingsImpl : public TimezoneSettingsBaseImpl { 307 class TimezoneSettingsImpl : public TimezoneSettingsBaseImpl {
307 public: 308 public:
308 // TimezoneSettings implementation: 309 // TimezoneSettings implementation:
(...skipping 19 matching lines...) Expand all
328 329
329 private: 330 private:
330 friend struct base::DefaultSingletonTraits<TimezoneSettingsStubImpl>; 331 friend struct base::DefaultSingletonTraits<TimezoneSettingsStubImpl>;
331 332
332 TimezoneSettingsStubImpl(); 333 TimezoneSettingsStubImpl();
333 334
334 DISALLOW_COPY_AND_ASSIGN(TimezoneSettingsStubImpl); 335 DISALLOW_COPY_AND_ASSIGN(TimezoneSettingsStubImpl);
335 }; 336 };
336 337
337 TimezoneSettingsBaseImpl::~TimezoneSettingsBaseImpl() { 338 TimezoneSettingsBaseImpl::~TimezoneSettingsBaseImpl() {
338 base::STLDeleteElements(&timezones_);
339 } 339 }
340 340
341 const icu::TimeZone& TimezoneSettingsBaseImpl::GetTimezone() { 341 const icu::TimeZone& TimezoneSettingsBaseImpl::GetTimezone() {
342 return *timezone_.get(); 342 return *timezone_.get();
343 } 343 }
344 344
345 base::string16 TimezoneSettingsBaseImpl::GetCurrentTimezoneID() { 345 base::string16 TimezoneSettingsBaseImpl::GetCurrentTimezoneID() {
346 return chromeos::system::TimezoneSettings::GetTimezoneID(GetTimezone()); 346 return chromeos::system::TimezoneSettings::GetTimezoneID(GetTimezone());
347 } 347 }
348 348
349 void TimezoneSettingsBaseImpl::SetTimezoneFromID( 349 void TimezoneSettingsBaseImpl::SetTimezoneFromID(
350 const base::string16& timezone_id) { 350 const base::string16& timezone_id) {
351 std::unique_ptr<icu::TimeZone> timezone(icu::TimeZone::createTimeZone( 351 std::unique_ptr<icu::TimeZone> timezone(icu::TimeZone::createTimeZone(
352 icu::UnicodeString(timezone_id.c_str(), timezone_id.size()))); 352 icu::UnicodeString(timezone_id.c_str(), timezone_id.size())));
353 SetTimezone(*timezone); 353 SetTimezone(*timezone);
354 } 354 }
355 355
356 void TimezoneSettingsBaseImpl::AddObserver(Observer* observer) { 356 void TimezoneSettingsBaseImpl::AddObserver(Observer* observer) {
357 observers_.AddObserver(observer); 357 observers_.AddObserver(observer);
358 } 358 }
359 359
360 void TimezoneSettingsBaseImpl::RemoveObserver(Observer* observer) { 360 void TimezoneSettingsBaseImpl::RemoveObserver(Observer* observer) {
361 observers_.RemoveObserver(observer); 361 observers_.RemoveObserver(observer);
362 } 362 }
363 363
364 const std::vector<icu::TimeZone*>& 364 const std::vector<std::unique_ptr<icu::TimeZone>>&
365 TimezoneSettingsBaseImpl::GetTimezoneList() const { 365 TimezoneSettingsBaseImpl::GetTimezoneList() const {
366 return timezones_; 366 return timezones_;
367 } 367 }
368 368
369 TimezoneSettingsBaseImpl::TimezoneSettingsBaseImpl() { 369 TimezoneSettingsBaseImpl::TimezoneSettingsBaseImpl() {
370 for (size_t i = 0; i < arraysize(kTimeZones); ++i) { 370 for (size_t i = 0; i < arraysize(kTimeZones); ++i) {
371 timezones_.push_back(icu::TimeZone::createTimeZone( 371 timezones_.push_back(base::WrapUnique(icu::TimeZone::createTimeZone(
372 icu::UnicodeString(kTimeZones[i], -1, US_INV))); 372 icu::UnicodeString(kTimeZones[i], -1, US_INV))));
373 } 373 }
374 } 374 }
375 375
376 const icu::TimeZone* TimezoneSettingsBaseImpl::GetKnownTimezoneOrNull( 376 const icu::TimeZone* TimezoneSettingsBaseImpl::GetKnownTimezoneOrNull(
377 const icu::TimeZone& timezone) const { 377 const icu::TimeZone& timezone) const {
378 return chromeos::system::GetKnownTimezoneOrNull(timezone, timezones_); 378 return chromeos::system::GetKnownTimezoneOrNull(timezone, timezones_);
379 } 379 }
380 380
381 void TimezoneSettingsImpl::SetTimezone(const icu::TimeZone& timezone) { 381 void TimezoneSettingsImpl::SetTimezone(const icu::TimeZone& timezone) {
382 // Replace |timezone| by a known timezone with the same rules. If none exists 382 // Replace |timezone| by a known timezone with the same rules. If none exists
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 475
476 // static 476 // static
477 base::string16 TimezoneSettings::GetTimezoneID(const icu::TimeZone& timezone) { 477 base::string16 TimezoneSettings::GetTimezoneID(const icu::TimeZone& timezone) {
478 icu::UnicodeString id; 478 icu::UnicodeString id;
479 timezone.getID(id); 479 timezone.getID(id);
480 return base::string16(id.getBuffer(), id.length()); 480 return base::string16(id.getBuffer(), id.length());
481 } 481 }
482 482
483 } // namespace system 483 } // namespace system
484 } // namespace chromeos 484 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/settings/timezone_settings.h ('k') | chromeos/settings/timezone_settings_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698