11754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato/** 21754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Copyright (c) 2016, The Android Open Source Project 31754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 41754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 51754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * you may not use this file except in compliance with the License. 61754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * You may obtain a copy of the License at 71754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 81754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * http://www.apache.org/licenses/LICENSE-2.0 91754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 101754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Unless required by applicable law or agreed to in writing, software 111754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 121754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * See the License for the specific language governing permissions and 141754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * limitations under the License. 151754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato */ 161754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 171754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#ifndef ANDROID_OS_DUMPSTATE_ARGS_H_ 181754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#define ANDROID_OS_DUMPSTATE_ARGS_H_ 191754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 201754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#include <binder/Parcel.h> 211754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#include <binder/Parcelable.h> 221754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#include <utils/String16.h> 231754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 241754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#include <set> 251754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#include <vector> 261754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 27437aa6e8ad24489fcd8a7ab2c889874cfae12d0bYi Jin#include "frameworks/base/libs/incident/proto/android/os/header.pb.h" 28437aa6e8ad24489fcd8a7ab2c889874cfae12d0bYi Jin 291754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratonamespace android { 301754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratonamespace os { 311754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 321754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratousing namespace std; 331754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 34bdf58942c86240070bacc25203177cf47f6a1577Yi Jin// DESTINATION enum value, sync with proto/android/privacy.proto 35bdf58942c86240070bacc25203177cf47f6a1577Yi Jinconst uint8_t DEST_LOCAL = 0; 36bdf58942c86240070bacc25203177cf47f6a1577Yi Jinconst uint8_t DEST_EXPLICIT = 100; 37bdf58942c86240070bacc25203177cf47f6a1577Yi Jinconst uint8_t DEST_AUTOMATIC = 200; 38bdf58942c86240070bacc25203177cf47f6a1577Yi Jin 39bdf58942c86240070bacc25203177cf47f6a1577Yi Jin 401754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratoclass IncidentReportArgs : public Parcelable { 411754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratopublic: 421754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato IncidentReportArgs(); 431754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato explicit IncidentReportArgs(const IncidentReportArgs& that); 441754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato virtual ~IncidentReportArgs(); 451754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 461754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato virtual status_t writeToParcel(Parcel* out) const; 471754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato virtual status_t readFromParcel(const Parcel* in); 481754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 491754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato void setAll(bool all); 500f0471623e91c202fb7381a050cc331572fb439fYi Jin void setDest(int dest); 511754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato void addSection(int section); 52437aa6e8ad24489fcd8a7ab2c889874cfae12d0bYi Jin void addHeader(const IncidentHeaderProto& headerProto); 531754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 540f0471623e91c202fb7381a050cc331572fb439fYi Jin inline bool all() const { return mAll; } 551754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato bool containsSection(int section) const; 560f0471623e91c202fb7381a050cc331572fb439fYi Jin inline int dest() const { return mDest; } 571754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato inline const set<int>& sections() const { return mSections; } 58bdf58942c86240070bacc25203177cf47f6a1577Yi Jin inline const vector<vector<uint8_t>>& headers() const { return mHeaders; } 591754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 601754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato void merge(const IncidentReportArgs& that); 611754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 621754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratoprivate: 631754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato set<int> mSections; 64bdf58942c86240070bacc25203177cf47f6a1577Yi Jin vector<vector<uint8_t>> mHeaders; 651754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato bool mAll; 660f0471623e91c202fb7381a050cc331572fb439fYi Jin int mDest; 671754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato}; 681754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 691754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato} 701754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato} 711754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 721754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#endif // ANDROID_OS_DUMPSTATE_ARGS_H_ 73