ConnectEvent.java revision f77ee4f1b79929a77f603e5e879f3616ae464e3e
1f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski/* 2f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * Copyright (C) 2016 The Android Open Source Project 3f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * 4f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * Licensed under the Apache License, Version 2.0 (the "License"); 5f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * you may not use this file except in compliance with the License. 6f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * You may obtain a copy of the License at 7f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * 8f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * http://www.apache.org/licenses/LICENSE-2.0 9f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * 10f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * Unless required by applicable law or agreed to in writing, software 11f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * distributed under the License is distributed on an "AS IS" BASIS, 12f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * See the License for the specific language governing permissions and 14f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * limitations under the License. 15f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski */ 16f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 17f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinskipackage android.app.admin; 18f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 19f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinskiimport android.os.Parcel; 20f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinskiimport android.os.Parcelable; 21f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 22f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski/** 23f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * A class that represents a connect library call event. 24f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski * @hide 25f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski */ 26f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinskipublic final class ConnectEvent extends NetworkEvent implements Parcelable { 27f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 28f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski /** The destination IP address. */ 29f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski private final String ipAddress; 30f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 31f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski /** The destination port number. */ 32f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski private final int port; 33f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 34f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski public ConnectEvent(String ipAddress, int port, String packageName, long timestamp) { 35f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski super(packageName, timestamp); 36f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski this.ipAddress = ipAddress; 37f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski this.port = port; 38f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 39f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 40f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski private ConnectEvent(Parcel in) { 41f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski this.ipAddress = in.readString(); 42f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski this.port = in.readInt(); 43f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski this.packageName = in.readString(); 44f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski this.timestamp = in.readLong(); 45f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 46f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 47f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski public String getIpAddress() { 48f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski return ipAddress; 49f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 50f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 51f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski public int getPort() { 52f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski return port; 53f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 54f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 55f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski @Override 56f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski public String toString() { 57f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski return String.format("ConnectEvent(%s, %d, %d, %s)", ipAddress, port, timestamp, 58f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski packageName); 59f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 60f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 61f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski public static final Parcelable.Creator<ConnectEvent> CREATOR 62f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski = new Parcelable.Creator<ConnectEvent>() { 63f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski @Override 64f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski public ConnectEvent createFromParcel(Parcel in) { 65f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski if (in.readInt() != PARCEL_TOKEN_CONNECT_EVENT) { 66f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski return null; 67f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 68f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski return new ConnectEvent(in); 69f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 70f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 71f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski @Override 72f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski public ConnectEvent[] newArray(int size) { 73f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski return new ConnectEvent[size]; 74f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 75f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski }; 76f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 77f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski @Override 78f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski public void writeToParcel(Parcel out, int flags) { 79f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski // write parcel token first 80f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski out.writeInt(PARCEL_TOKEN_CONNECT_EVENT); 81f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski out.writeString(ipAddress); 82f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski out.writeInt(port); 83f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski out.writeString(packageName); 84f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski out.writeLong(timestamp); 85f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski } 86f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski} 87f77ee4f1b79929a77f603e5e879f3616ae464e3eMichal Karpinski 88