Files
android/libwvdrmengine/cdm/profiler/src/profiled_scope.cpp
Aaron Vaage 0d77fecfb5 OEMCrypto Profiler - Merge of Widevine Updates
This change is a merge of the following changes:
1. Remove MultipleSessions (go/wvgerrit/16763)
2. Increase Memory Budget (go/wvgerrit/16764)
3. Fixing Possible Integer Overflow (go/wvgerrit/16765)
4. Creating Call Table (go/wvgerrit/16766)
5. Creating Call History (go/wvgerrit/16767)
6. Connecting Profiled Scope (go/wvgerrit/16768)
7. Adding Call Table Version Number (go/wvgerrit/16780)
8. Add Version Number to Call History (go/wvgerrit/16781)

bug: 27157796

Change-Id: Ia3f088a1714f3f5b426fee6141daa4ea8d832cf4
2016-02-13 00:27:09 +00:00

45 lines
904 B
C++

// Copyright 2016 Google Inc. All Rights Reserved
#include "profiled_scope.h"
#include <sys/time.h>
#include "profiler.h"
namespace wvcdm {
namespace oemprofiler {
ProfiledScope::ProfiledScope(OEM_FUNCTION fid) :
meta_data_(),
fid_(fid),
start_time_(GetNowUS()) {
}
ProfiledScope::~ProfiledScope() {
Submit(GetNowUS());
}
void ProfiledScope::Submit(uint64_t end_time) const {
Profiler::GetTable().Write(fid_, end_time - start_time_);
Profiler::GetHistory().Write(
fid_,
start_time_,
end_time,
meta_data_.GetData(),
meta_data_.GetSize());
}
uint64_t ProfiledScope::GetNowUS() const {
struct timeval tv;
gettimeofday(&tv, NULL);
const uint64_t kSecondsToUSeconds = 1000000;
return static_cast<uint64_t>(tv.tv_sec) * kSecondsToUSeconds +
static_cast<uint64_t>(tv.tv_usec);
}
} // namespace oemprofiler
} // namespace wvcdm