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