OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/policy/device_status_collector.h" | 5 #include "chrome/browser/chromeos/policy/device_status_collector.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 #include <limits> | 8 #include <limits> |
9 #include <sys/statvfs.h> | 9 #include <sys/statvfs.h> |
10 | 10 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 | 63 |
64 // How many days in the future to store active periods for. | 64 // How many days in the future to store active periods for. |
65 const unsigned int kMaxStoredFutureActivityDays = 2; | 65 const unsigned int kMaxStoredFutureActivityDays = 2; |
66 | 66 |
67 // How often, in seconds, to update the device location. | 67 // How often, in seconds, to update the device location. |
68 const unsigned int kGeolocationPollIntervalSeconds = 30 * 60; | 68 const unsigned int kGeolocationPollIntervalSeconds = 30 * 60; |
69 | 69 |
70 // How often, in seconds, to sample the hardware state. | 70 // How often, in seconds, to sample the hardware state. |
71 static const unsigned int kHardwareStatusSampleIntervalSeconds = 120; | 71 static const unsigned int kHardwareStatusSampleIntervalSeconds = 120; |
72 | 72 |
73 const int64 kMillisecondsPerDay = Time::kMicrosecondsPerDay / 1000; | |
74 | |
75 // Keys for the geolocation status dictionary in local state. | 73 // Keys for the geolocation status dictionary in local state. |
76 const char kLatitude[] = "latitude"; | 74 const char kLatitude[] = "latitude"; |
77 const char kLongitude[] = "longitude"; | 75 const char kLongitude[] = "longitude"; |
78 const char kAltitude[] = "altitude"; | 76 const char kAltitude[] = "altitude"; |
79 const char kAccuracy[] = "accuracy"; | 77 const char kAccuracy[] = "accuracy"; |
80 const char kAltitudeAccuracy[] = "altitude_accuracy"; | 78 const char kAltitudeAccuracy[] = "altitude_accuracy"; |
81 const char kHeading[] = "heading"; | 79 const char kHeading[] = "heading"; |
82 const char kSpeed[] = "speed"; | 80 const char kSpeed[] = "speed"; |
83 const char kTimestamp[] = "timestamp"; | 81 const char kTimestamp[] = "timestamp"; |
84 | 82 |
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 base::DictionaryValue* activity_times = update.Get(); | 509 base::DictionaryValue* activity_times = update.Get(); |
512 | 510 |
513 for (base::DictionaryValue::Iterator it(*activity_times); !it.IsAtEnd(); | 511 for (base::DictionaryValue::Iterator it(*activity_times); !it.IsAtEnd(); |
514 it.Advance()) { | 512 it.Advance()) { |
515 int64 start_timestamp; | 513 int64 start_timestamp; |
516 int activity_milliseconds; | 514 int activity_milliseconds; |
517 if (base::StringToInt64(it.key(), &start_timestamp) && | 515 if (base::StringToInt64(it.key(), &start_timestamp) && |
518 it.value().GetAsInteger(&activity_milliseconds)) { | 516 it.value().GetAsInteger(&activity_milliseconds)) { |
519 // This is correct even when there are leap seconds, because when a leap | 517 // This is correct even when there are leap seconds, because when a leap |
520 // second occurs, two consecutive seconds have the same timestamp. | 518 // second occurs, two consecutive seconds have the same timestamp. |
521 int64 end_timestamp = start_timestamp + kMillisecondsPerDay; | 519 int64 end_timestamp = start_timestamp + Time::kMillisecondsPerDay; |
522 | 520 |
523 em::ActiveTimePeriod* active_period = request->add_active_period(); | 521 em::ActiveTimePeriod* active_period = request->add_active_period(); |
524 em::TimePeriod* period = active_period->mutable_time_period(); | 522 em::TimePeriod* period = active_period->mutable_time_period(); |
525 period->set_start_timestamp(start_timestamp); | 523 period->set_start_timestamp(start_timestamp); |
526 period->set_end_timestamp(end_timestamp); | 524 period->set_end_timestamp(end_timestamp); |
527 active_period->set_active_duration(activity_milliseconds); | 525 active_period->set_active_duration(activity_milliseconds); |
528 if (start_timestamp >= last_reported_day_) { | 526 if (start_timestamp >= last_reported_day_) { |
529 last_reported_day_ = start_timestamp; | 527 last_reported_day_ = start_timestamp; |
530 duration_for_last_reported_day_ = activity_milliseconds; | 528 duration_for_last_reported_day_ = activity_milliseconds; |
531 } | 529 } |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
872 ScheduleGeolocationUpdateRequest(); | 870 ScheduleGeolocationUpdateRequest(); |
873 } | 871 } |
874 | 872 |
875 void DeviceStatusCollector::ReceiveVolumeInfo( | 873 void DeviceStatusCollector::ReceiveVolumeInfo( |
876 const std::vector<em::VolumeInfo>& info) { | 874 const std::vector<em::VolumeInfo>& info) { |
877 if (report_hardware_status_) | 875 if (report_hardware_status_) |
878 volume_info_ = info; | 876 volume_info_ = info; |
879 } | 877 } |
880 | 878 |
881 } // namespace policy | 879 } // namespace policy |
OLD | NEW |