diff options
author | Tej Singh <singhtejinder@google.com> | 2019-10-11 11:07:06 -0700 |
---|---|---|
committer | Tej Singh <singhtejinder@google.com> | 2019-11-13 13:22:27 -0800 |
commit | 5918429fa2ee09f44fda76978abb1302061b1e2f (patch) | |
tree | e50c37172efe66873ab81cbe8541412849bd2069 /libs/services | |
parent | 75aa043d49ccfb4648887e653512e489b32cf00c (diff) |
Java API for pulled atoms
This creates a java API for registering pullers. Will implement the
statsd side in a follow up CL.
Test: builds, boots
Change-Id: Ib6735984297ce3148839a6370a3c15b2a585baf5
Diffstat (limited to 'libs/services')
-rw-r--r-- | libs/services/Android.bp | 1 | ||||
-rw-r--r-- | libs/services/include/android/util/StatsEvent.h | 43 | ||||
-rw-r--r-- | libs/services/src/util/StatsEvent.cpp | 58 |
3 files changed, 102 insertions, 0 deletions
diff --git a/libs/services/Android.bp b/libs/services/Android.bp index 1b9939d9a598..b0fad57dfd29 100644 --- a/libs/services/Android.bp +++ b/libs/services/Android.bp @@ -22,6 +22,7 @@ cc_library_shared { "src/os/DropBoxManager.cpp", "src/os/StatsDimensionsValue.cpp", "src/os/StatsLogEventWrapper.cpp", + "src/util/StatsEvent.cpp", ], shared_libs: [ diff --git a/libs/services/include/android/util/StatsEvent.h b/libs/services/include/android/util/StatsEvent.h new file mode 100644 index 000000000000..48631174f7dd --- /dev/null +++ b/libs/services/include/android/util/StatsEvent.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef STATS_EVENT_H +#define STATS_EVENT_H + +#include <binder/Parcel.h> +#include <binder/Parcelable.h> +#include <binder/Status.h> +#include <vector> + +namespace android { +namespace util { +class StatsEvent : public android::Parcelable { + public: + StatsEvent(); + + StatsEvent(StatsEvent&& in) = default; + + android::status_t writeToParcel(android::Parcel* out) const; + + android::status_t readFromParcel(const android::Parcel* in); + + private: + int mAtomTag; + std::vector<uint8_t> mBuffer; +}; +} // Namespace util +} // Namespace android + +#endif // STATS_ EVENT_H
\ No newline at end of file diff --git a/libs/services/src/util/StatsEvent.cpp b/libs/services/src/util/StatsEvent.cpp new file mode 100644 index 000000000000..8b8579167b00 --- /dev/null +++ b/libs/services/src/util/StatsEvent.cpp @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include <android/util/StatsEvent.h> + +#include <binder/Parcel.h> +#include <binder/Parcelable.h> +#include <binder/Status.h> +#include <vector> + +using android::Parcel; +using android::Parcelable; +using android::status_t; +using std::vector; + +namespace android { +namespace util { + +StatsEvent::StatsEvent(){}; + +status_t StatsEvent::writeToParcel(Parcel* out) const { + // Implement me if desired. We don't currently use this. + ALOGE("Cannot do c++ StatsEvent.writeToParcel(); it is not implemented."); + (void)out; // To prevent compile error of unused parameter 'out' + return UNKNOWN_ERROR; +}; + +status_t StatsEvent::readFromParcel(const Parcel* in) { + status_t res = OK; + if (in == NULL) { + ALOGE("statsd received parcel argument was NULL."); + return BAD_VALUE; + } + if ((res = in->readInt32(&mAtomTag)) != OK) { + ALOGE("statsd could not read atom tag from parcel"); + return res; + } + if ((res = in->readByteVector(&mBuffer)) != OK) { + ALOGE("statsd could not read buffer from parcel"); + return res; + } + return NO_ERROR; +}; + +} // Namespace util +} // Namespace android |