// Copyright 2016 Google Inc. All Rights Reserved. #ifndef WVCDM_METRICS_METRICS_GROUP_H_ #define WVCDM_METRICS_METRICS_GROUP_H_ #include #include #include "OEMCryptoCENC.h" #include "event_metric.h" #include "metric_publisher.h" #include "wv_cdm_types.h" namespace wvcdm { namespace metrics { /* * The metrics group is the group of all metrics that be be recorded. They * are kept together to allow calls to be correlated to one another. */ class MetricsGroup { public: /* CDM ENGINE */ EventMetric cdm_engine_add_key_; EventMetric<> cdm_engine_close_key_set_session_; EventMetric cdm_engine_close_session_; EventMetric cdm_engine_decrypt_; EventMetric cdm_engine_find_session_for_key_; EventMetric cdm_engine_generate_key_request_; EventMetric cdm_engine_get_provisioning_request_; EventMetric cdm_engine_get_usage_info_; EventMetric cdm_engine_handle_provisioning_response_; EventMetric<> cdm_engine_life_span_; EventMetric<> cdm_engine_notify_resolution_; EventMetric cdm_engine_open_key_set_session_; EventMetric cdm_engine_open_session_; EventMetric cdm_engine_query_key_status_; EventMetric cdm_engine_query_oemcrypto_session_id_; EventMetric cdm_engine_query_session_status_; EventMetric cdm_engine_query_status_; EventMetric cdm_engine_release_all_usage_info_; EventMetric cdm_engine_release_usage_info_; EventMetric cdm_engine_remove_keys_; EventMetric cdm_engine_restore_key_; EventMetric cdm_engine_unprovision_; /* CDM SESSION */ EventMetric cdm_session_add_key_; EventMetric cdm_session_decrypt_; EventMetric<> cdm_session_delete_license_; EventMetric cdm_session_generate_key_request_; EventMetric cdm_session_generate_release_request_; EventMetric cdm_session_generate_renewal_request_; EventMetric cdm_session_generic_decrypt_; EventMetric cdm_session_generic_encrypt_; EventMetric cdm_session_generic_sign_; EventMetric cdm_session_generic_verify_; EventMetric cdm_session_get_requested_security_level_; EventMetric cdm_session_is_key_loaded_; EventMetric<> cdm_session_life_span_; EventMetric cdm_session_query_key_allowed_usage_; EventMetric cdm_session_query_key_status_; EventMetric cdm_session_query_oemcrypto_session_id_; EventMetric cdm_session_query_status_; EventMetric<> cdm_session_release_crypto_; EventMetric cdm_session_renew_key_; EventMetric cdm_session_restore_offline_session_; EventMetric cdm_session_restore_usage_session_; EventMetric cdm_session_update_usage_information_; /* CRYPTO SESSION */ EventMetric<> crypto_session_close_; EventMetric crypto_session_decrypt_; EventMetric crypto_session_delete_all_usage_reports_; EventMetric crypto_session_delete_multiple_usage_information_; EventMetric crypto_session_generic_decrypt_; EventMetric crypto_session_generic_encrypt_; EventMetric crypto_session_generic_sign_; EventMetric crypto_session_generic_verify_; EventMetric crypto_session_get_api_version_; EventMetric crypto_session_get_device_unique_id_; EventMetric crypto_session_get_hdcp_capabilities_; EventMetric crypto_session_get_max_number_of_sessions_; EventMetric crypto_session_get_number_of_open_sessions_; EventMetric crypto_session_get_provisioning_id_; EventMetric crypto_session_get_random_; EventMetric crypto_session_get_security_level_; EventMetric crypto_session_get_system_id_; EventMetric crypto_session_get_token_; EventMetric<> crypto_session_life_span_; EventMetric crypto_session_load_certificate_private_key_; EventMetric crypto_session_open_; EventMetric crypto_session_query_oemcrypto_session_id_; EventMetric crypto_session_update_usage_information_; EventMetric crypto_session_usage_information_support_; /* OEMCRYPTO */ EventMetric oemcrypto_api_version_; EventMetric oemcrypto_close_session_; EventMetric oemcrypto_copy_buffer_; EventMetric oemcrypto_deactivate_usage_entry_; EventMetric oemcrypto_decrypt_cenc_; EventMetric oemcrypto_delete_usage_entry_; EventMetric oemcrypto_delete_usage_table_; EventMetric oemcrypto_derive_keys_from_session_key_; EventMetric oemcrypto_force_delete_usage_entry_; EventMetric oemcrypto_generate_derived_keys_; EventMetric oemcrypto_generate_nonce_; EventMetric oemcrypto_generate_rsa_signature_; EventMetric oemcrypto_generate_signature_; EventMetric oemcrypto_generic_decrypt_; EventMetric oemcrypto_generic_encrypt_; EventMetric oemcrypto_generic_sign_; EventMetric oemcrypto_generic_verify_; EventMetric oemcrypto_get_device_id_; EventMetric oemcrypto_get_hdcp_capability_; EventMetric oemcrypto_get_key_data_; EventMetric oemcrypto_get_max_number_of_sessions_; EventMetric oemcrypto_get_number_of_open_sessions_; EventMetric oemcrypto_get_oem_public_certificate_; EventMetric oemcrypto_get_provisioning_method_; EventMetric oemcrypto_get_random_; EventMetric oemcrypto_initialize_; EventMetric oemcrypto_install_keybox_; EventMetric oemcrypto_is_anti_rollback_hw_present_; EventMetric oemcrypto_is_keybox_valid_; EventMetric oemcrypto_load_device_rsa_key_; EventMetric oemcrypto_load_keys_; EventMetric oemcrypto_load_test_keybox_; EventMetric oemcrypto_load_test_rsa_key_; EventMetric oemcrypto_open_session_; EventMetric oemcrypto_query_key_control_; EventMetric oemcrypto_refresh_keys_; EventMetric oemcrypto_report_usage_; EventMetric oemcrypto_rewrap_device_rsa_key_; EventMetric oemcrypto_rewrap_device_rsa_key_30_; EventMetric oemcrypto_security_level_; EventMetric oemcrypto_security_patch_level_; EventMetric oemcrypto_select_key_; EventMetric oemcrypto_supports_usage_table_; EventMetric oemcrypto_update_usage_table_; EventMetric oemcrypto_wrap_keybox_; MetricsGroup(); ~MetricsGroup(); private: void Publish(MetricNotification* subscriber); }; } // namespace metrics } // namespace wvcdm #endif