Source release 17.1.0
This commit is contained in:
79
core/include/okp_info.h
Normal file
79
core/include/okp_info.h
Normal file
@@ -0,0 +1,79 @@
|
||||
// Copyright 2021 Google LLC. All Rights Reserved. This file and proprietary
|
||||
// source code may only be used and distributed under the Widevine License
|
||||
// Agreement.
|
||||
#ifndef WVCDM_CORE_OKP_SYSTEM_INFO_H_
|
||||
#define WVCDM_CORE_OKP_SYSTEM_INFO_H_
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
namespace wvcdm {
|
||||
// OTA Keybox Provisioning (OKP)
|
||||
namespace okp {
|
||||
enum class SystemState {
|
||||
kUnknown = 0,
|
||||
kNeedsProvisioning = 1,
|
||||
kFallbackMode = 2, // Fallback indicates provisioning is needed.
|
||||
kProvisioned = 3
|
||||
// Note: "Not needed" is represented by an absence of info.
|
||||
};
|
||||
// Converts a SystemState value to a human readable string. Intended
|
||||
// to be used for debug logging.
|
||||
const char* SystemStateToString(SystemState state);
|
||||
|
||||
// Container for all the device information related to OKP.
|
||||
class SystemFallbackInfo {
|
||||
public:
|
||||
SystemState state() const { return state_; }
|
||||
void SetState(SystemState state) { state_ = state; }
|
||||
|
||||
bool HasFirstCheckedTime() const { return first_checked_time_ != 0; }
|
||||
int64_t first_checked_time() const { return first_checked_time_; }
|
||||
void SetFirstCheckedTime(int64_t time) {
|
||||
first_checked_time_ = (time > 0 ? time : 0);
|
||||
}
|
||||
|
||||
bool HasBackoffStartTime() const { return backoff_start_time_ > 0; }
|
||||
int64_t backoff_start_time() const { return backoff_start_time_; }
|
||||
void SetBackoffStartTime(int64_t time) {
|
||||
backoff_start_time_ = (time > 0 ? time : 0);
|
||||
}
|
||||
void ClearBackoffStartTime() { backoff_start_time_ = 0; }
|
||||
|
||||
bool HasBackoffDuration() const { return backoff_duration_ > 0; }
|
||||
int64_t backoff_duration() const { return backoff_duration_; }
|
||||
void SetBackoffDuration(int64_t duration) {
|
||||
backoff_duration_ = (duration > 0 ? duration : 0);
|
||||
}
|
||||
void DoubleBackoffDuration() { backoff_duration_ *= 2; }
|
||||
void ClearBackoffDuration() { backoff_duration_ = 0; }
|
||||
|
||||
bool HasProvisioningTime() const { return provisioning_time_ != 0; }
|
||||
int64_t provisioning_time() const { return provisioning_time_; }
|
||||
void SetProvisioningTime(int64_t time) {
|
||||
provisioning_time_ = (time > 0 ? time : 0);
|
||||
}
|
||||
void ClearProvisioningTime() { provisioning_time_ = 0; }
|
||||
|
||||
void Clear() {
|
||||
state_ = SystemState::kUnknown;
|
||||
first_checked_time_ = 0;
|
||||
backoff_start_time_ = 0;
|
||||
backoff_duration_ = 0;
|
||||
provisioning_time_ = 0;
|
||||
}
|
||||
|
||||
bool operator==(const SystemFallbackInfo& other) const;
|
||||
bool operator!=(const SystemFallbackInfo& other) const {
|
||||
return !(*this == other);
|
||||
}
|
||||
|
||||
private:
|
||||
SystemState state_ = SystemState::kUnknown;
|
||||
int64_t first_checked_time_ = 0;
|
||||
int64_t backoff_start_time_ = 0;
|
||||
int64_t backoff_duration_ = 0;
|
||||
int64_t provisioning_time_ = 0;
|
||||
}; // class SystemFallbackInfo
|
||||
} // namespace okp
|
||||
} // namespace wvcdm
|
||||
#endif // WVCDM_CORE_OKP_SYSTEM_INFO_H_
|
||||
Reference in New Issue
Block a user