10d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang/* 20d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * Copyright (C) 2014 The Android Open Source Project 30d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * 40d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * Licensed under the Apache License, Version 2.0 (the "License"); 50d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * you may not use this file except in compliance with the License. 60d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * You may obtain a copy of the License at 70d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * 80d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * http://www.apache.org/licenses/LICENSE-2.0 90d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * 100d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * Unless required by applicable law or agreed to in writing, software 110d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * distributed under the License is distributed on an "AS IS" BASIS, 120d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * See the License for the specific language governing permissions and 140d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * limitations under the License. 150d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang */ 160d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 170d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wangpackage android.bluetooth.le; 180d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 190d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wangimport android.annotation.SystemApi; 200d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wangimport android.os.Parcel; 210d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wangimport android.os.Parcelable; 220d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 230d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang/** 240d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * Describes the way to store scan result. 250d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * 260d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * @hide 270d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang */ 280d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang@SystemApi 290d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wangpublic final class ResultStorageDescriptor implements Parcelable { 300d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang private int mType; 310d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang private int mOffset; 320d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang private int mLength; 330d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 340d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public int getType() { 350d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang return mType; 360d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 370d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 380d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public int getOffset() { 390d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang return mOffset; 400d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 410d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 420d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public int getLength() { 430d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang return mLength; 440d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 450d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 460d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang /** 470d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * Constructor of {@link ResultStorageDescriptor} 480d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * 490d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * @param type Type of the data. 500d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * @param offset Offset from start of the advertise packet payload. 510d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang * @param length Byte length of the data 520d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang */ 530d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public ResultStorageDescriptor(int type, int offset, int length) { 540d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang mType = type; 550d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang mOffset = offset; 560d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang mLength = length; 570d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 580d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 590d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang @Override 600d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public int describeContents() { 610d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang return 0; 620d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 630d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 640d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang @Override 650d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public void writeToParcel(Parcel dest, int flags) { 660d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang dest.writeInt(mType); 670d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang dest.writeInt(mOffset); 680d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang dest.writeInt(mLength); 690d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 700d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 710d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang private ResultStorageDescriptor(Parcel in) { 720d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang ReadFromParcel(in); 730d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 740d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 750d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang private void ReadFromParcel(Parcel in) { 760d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang mType = in.readInt(); 770d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang mOffset = in.readInt(); 780d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang mLength = in.readInt(); 790d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 800d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 810d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public static final Parcelable.Creator<ResultStorageDescriptor> 820d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang CREATOR = new Creator<ResultStorageDescriptor>() { 830d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang @Override 840d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public ResultStorageDescriptor createFromParcel(Parcel source) { 850d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang return new ResultStorageDescriptor(source); 860d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 870d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang 880d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang @Override 890d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang public ResultStorageDescriptor[] newArray(int size) { 900d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang return new ResultStorageDescriptor[size]; 910d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang } 920d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang }; 930d0df3ce258f569c76dc7c4b5250c4e50029d6e6Wei Wang} 94