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