summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNingyuan Wang <nywang@google.com>2016-11-10 13:28:40 -0800
committerNingyuan Wang <nywang@google.com>2016-11-10 14:56:03 -0800
commit697d6710d8a136243ab8f9cadabfb7d01c3367f9 (patch)
tree0f2e680177249e5c29982b82312b4ba9781fad9a
parentfd413331c84f7fade11830efb3d9ed3dddc4e98f (diff)
Create parceable class NativeScanResult
This class is used for passing scan result between framework and wificond. Test: compile, unittests, manual test Bug: 30746278 Change-Id: I3a1e6bc16cb959a08ba21258d200e789fe3d36be
-rw-r--r--service/java/com/android/server/wifi/wificond/NativeScanResult.java115
1 files changed, 115 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/wificond/NativeScanResult.java b/service/java/com/android/server/wifi/wificond/NativeScanResult.java
new file mode 100644
index 000000000..8384cb081
--- /dev/null
+++ b/service/java/com/android/server/wifi/wificond/NativeScanResult.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+
+package com.android.server.wifi.wificond;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.BitSet;
+
+/**
+ * ScanResult from wificond
+ *
+ * @hide
+ */
+public class NativeScanResult implements Parcelable {
+ private static final int CAPABILITY_SIZE = 16;
+
+ public byte[] ssid;
+ public byte[] bssid;
+ public byte[] infoElement;
+ public int frequency;
+ public int signalMbm;
+ public long tsf;
+ public BitSet capability;
+ public boolean associated;
+
+ /** public constructor */
+ public NativeScanResult() { }
+
+ /** copy constructor */
+ public NativeScanResult(NativeScanResult source) {
+ ssid = source.ssid.clone();
+ bssid = source.bssid.clone();
+ infoElement = source.infoElement.clone();
+ frequency = source.frequency;
+ signalMbm = source.signalMbm;
+ tsf = source.tsf;
+ capability = (BitSet) source.capability.clone();
+ associated = source.associated;
+ }
+
+ /** implement Parcelable interface */
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ /** implement Parcelable interface */
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeInt(ssid.length);
+ out.writeByteArray(ssid);
+ out.writeInt(bssid.length);
+ out.writeByteArray(bssid);
+ out.writeInt(infoElement.length);
+ out.writeByteArray(infoElement);
+ out.writeInt(frequency);
+ out.writeInt(signalMbm);
+ out.writeLong(tsf);
+ int capabilityInt = 0;
+ for (int i = 0; i < CAPABILITY_SIZE; i++) {
+ if (capability.get(i)) {
+ capabilityInt |= 1 << i;
+ }
+ }
+ out.writeInt(capabilityInt);
+ out.writeInt(associated ? 1 : 0);
+ }
+
+ /** implement Parcelable interface */
+ public static final Parcelable.Creator<NativeScanResult> CREATOR =
+ new Parcelable.Creator<NativeScanResult>() {
+ @Override
+ public NativeScanResult createFromParcel(Parcel in) {
+ NativeScanResult result = new NativeScanResult();
+ result.ssid = new byte[in.readInt()];
+ in.readByteArray(result.ssid);
+ result.bssid = new byte[in.readInt()];
+ in.readByteArray(result.bssid);
+ result.infoElement = new byte[in.readInt()];
+ in.readByteArray(result.infoElement);
+ result.frequency = in.readInt();
+ result.signalMbm = in.readInt();
+ result.tsf = in.readLong();
+ int capabilityInt = in.readInt();
+ result.capability = new BitSet(CAPABILITY_SIZE);
+ for (int i = 0; i < CAPABILITY_SIZE; i++) {
+ if ((capabilityInt & (1 << i)) != 0) {
+ result.capability.set(i);
+ }
+ }
+ result.associated = (in.readInt() != 0);
+ return result;
+ }
+
+ @Override
+ public NativeScanResult[] newArray(int size) {
+ return new NativeScanResult[size];
+ }
+ };
+}