Merge "use vector<uint8_t> for byte[] in AIDL" into rvc-dev-plus-aosp

This commit is contained in:
Jooyung Han
2020-03-23 16:58:08 +00:00
committed by Android (Google) Code Review
3 changed files with 11 additions and 21 deletions

View File

@@ -1059,36 +1059,26 @@ void StatsService::OnLogEvent(LogEvent* event) {
}
}
Status StatsService::getData(int64_t key, const int32_t callingUid, vector<int8_t>* output) {
Status StatsService::getData(int64_t key, const int32_t callingUid, vector<uint8_t>* output) {
ENFORCE_UID(AID_SYSTEM);
VLOG("StatsService::getData with Uid %i", callingUid);
ConfigKey configKey(callingUid, key);
// TODO(b/149254662): Since libbinder_ndk uses int8_t instead of uint8_t,
// there are inconsistencies with internal statsd logic. Instead of
// modifying lots of files, we create a temporary output array of int8_t and
// copy its data into output. This is a bad hack, but hopefully
// libbinder_ndk will transition to using uint8_t soon: progress is tracked
// in b/144957764. Same applies to StatsService::getMetadata.
vector<uint8_t> unsignedOutput;
// The dump latency does not matter here since we do not include the current bucket, we do not
// need to pull any new data anyhow.
mProcessor->onDumpReport(configKey, getElapsedRealtimeNs(), false /* include_current_bucket*/,
true /* erase_data */, GET_DATA_CALLED, FAST, &unsignedOutput);
*output = vector<int8_t>(unsignedOutput.begin(), unsignedOutput.end());
true /* erase_data */, GET_DATA_CALLED, FAST, output);
return Status::ok();
}
Status StatsService::getMetadata(vector<int8_t>* output) {
Status StatsService::getMetadata(vector<uint8_t>* output) {
ENFORCE_UID(AID_SYSTEM);
vector<uint8_t> unsignedOutput;
StatsdStats::getInstance().dumpStats(&unsignedOutput, false); // Don't reset the counters.
*output = vector<int8_t>(unsignedOutput.begin(), unsignedOutput.end());
StatsdStats::getInstance().dumpStats(output, false); // Don't reset the counters.
return Status::ok();
}
Status StatsService::addConfiguration(int64_t key, const vector <int8_t>& config,
Status StatsService::addConfiguration(int64_t key, const vector <uint8_t>& config,
const int32_t callingUid) {
ENFORCE_UID(AID_SYSTEM);
@@ -1099,7 +1089,7 @@ Status StatsService::addConfiguration(int64_t key, const vector <int8_t>& config
}
}
bool StatsService::addConfigurationChecked(int uid, int64_t key, const vector<int8_t>& config) {
bool StatsService::addConfigurationChecked(int uid, int64_t key, const vector<uint8_t>& config) {
ConfigKey configKey(uid, key);
StatsdConfig cfg;
if (config.size() > 0) { // If the config is empty, skip parsing.

View File

@@ -94,13 +94,13 @@ public:
*/
virtual Status getData(int64_t key,
const int32_t callingUid,
vector<int8_t>* output) override;
vector<uint8_t>* output) override;
/**
* Binder call for clients to get metadata across all configs in statsd.
*/
virtual Status getMetadata(vector<int8_t>* output) override;
virtual Status getMetadata(vector<uint8_t>* output) override;
/**
@@ -108,7 +108,7 @@ public:
* should requestData for this configuration.
*/
virtual Status addConfiguration(int64_t key,
const vector<int8_t>& config,
const vector<uint8_t>& config,
const int32_t callingUid) override;
/**
@@ -318,7 +318,7 @@ private:
/**
* Adds a configuration after checking permissions and obtaining UID from binder call.
*/
bool addConfigurationChecked(int uid, int64_t key, const vector<int8_t>& config);
bool addConfigurationChecked(int uid, int64_t key, const vector<uint8_t>& config);
/**
* Update a configuration.

View File

@@ -39,7 +39,7 @@ const int kCallingUid = 0; // Randomly chosen
void SendConfig(shared_ptr<StatsService>& service, const StatsdConfig& config) {
string str;
config.SerializeToString(&str);
std::vector<int8_t> configAsVec(str.begin(), str.end());
std::vector<uint8_t> configAsVec(str.begin(), str.end());
service->addConfiguration(kConfigKey, configAsVec, kCallingUid);
}