1de70169109c57787a23c732ec4b361ade2e9850eDavid Chen/* 20feae94babf0518ac28b7c529b4e16762d48e6deyro * Copyright (C) 2017 The Android Open Source Project 3de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * 4de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * Licensed under the Apache License, Version 2.0 (the "License"); 5de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * you may not use this file except in compliance with the License. 6de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * You may obtain a copy of the License at 7de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * 8de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * http://www.apache.org/licenses/LICENSE-2.0 9de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * 10de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * Unless required by applicable law or agreed to in writing, software 11de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * distributed under the License is distributed on an "AS IS" BASIS, 12de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * See the License for the specific language governing permissions and 14de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * limitations under the License. 15de70169109c57787a23c732ec4b361ade2e9850eDavid Chen */ 16de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 17de70169109c57787a23c732ec4b361ade2e9850eDavid Chen#ifndef STATSD_PACKAGE_INFO_LISTENER_H 18de70169109c57787a23c732ec4b361ade2e9850eDavid Chen#define STATSD_PACKAGE_INFO_LISTENER_H 19de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 20de70169109c57787a23c732ec4b361ade2e9850eDavid Chen#include <utils/RefBase.h> 21de70169109c57787a23c732ec4b361ade2e9850eDavid Chen#include <string> 22de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 23de70169109c57787a23c732ec4b361ade2e9850eDavid Chennamespace android { 24de70169109c57787a23c732ec4b361ade2e9850eDavid Chennamespace os { 25de70169109c57787a23c732ec4b361ade2e9850eDavid Chennamespace statsd { 26de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 27de70169109c57787a23c732ec4b361ade2e9850eDavid Chenclass PackageInfoListener : public virtual android::RefBase { 28de70169109c57787a23c732ec4b361ade2e9850eDavid Chenpublic: 29de70169109c57787a23c732ec4b361ade2e9850eDavid Chen // Uid map will notify this listener that the app with apk name and uid has been upgraded to 30de70169109c57787a23c732ec4b361ade2e9850eDavid Chen // the specified version. 31b142cc8add29c8c97f6134d35873d23db666027cYangster-mac virtual void notifyAppUpgrade(const int64_t& eventTimeNs, const std::string& apk, 3227785a8a4a684c831c18f7189a6fa1b98c3573e6David Chen const int uid, const int64_t version) = 0; 33d6896898912eb1fc2c8976dce4340ab8d4e8d22fDavid Chen 34d6896898912eb1fc2c8976dce4340ab8d4e8d22fDavid Chen // Notify interested listeners that the given apk and uid combination no longer exits. 35b142cc8add29c8c97f6134d35873d23db666027cYangster-mac virtual void notifyAppRemoved(const int64_t& eventTimeNs, const std::string& apk, 3627785a8a4a684c831c18f7189a6fa1b98c3573e6David Chen const int uid) = 0; 37d10f7b1c7bdb1c66aa04148945cae9733ee4cadfYao Chen 38d10f7b1c7bdb1c66aa04148945cae9733ee4cadfYao Chen // Notify the listener that the UidMap snapshot is available. 39b142cc8add29c8c97f6134d35873d23db666027cYangster-mac virtual void onUidMapReceived(const int64_t& eventTimeNs) = 0; 40de70169109c57787a23c732ec4b361ade2e9850eDavid Chen}; 41de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 42de70169109c57787a23c732ec4b361ade2e9850eDavid Chen} // namespace statsd 43de70169109c57787a23c732ec4b361ade2e9850eDavid Chen} // namespace os 44de70169109c57787a23c732ec4b361ade2e9850eDavid Chen} // namespace android 45de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 469fc9edf95a308f5884bf541cac81ce1f41aba0baJoe Onorato#endif // STATSD_PACKAGE_INFO_LISTENER_H 47