11d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi/* 21d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Copyright (C) 2016 The Android Open Source Project 31d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 41d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Licensed under the Apache License, Version 2.0 (the "License"); 51d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * you may not use this file except in compliance with the License. 61d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * You may obtain a copy of the License at 71d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 81d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * http://www.apache.org/licenses/LICENSE-2.0 91d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 101d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Unless required by applicable law or agreed to in writing, software 111d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * distributed under the License is distributed on an "AS IS" BASIS, 121d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * See the License for the specific language governing permissions and 141d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * limitations under the License. 151d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 161d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 171d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshipackage android.hardware.location; 181d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 191d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshiimport android.annotation.SystemApi; 201d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshiimport android.os.Parcel; 211d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshiimport android.os.Parcelable; 22b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshiimport android.util.Log; 231d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 241d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshiimport java.util.Arrays; 251d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 261d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi/** 271d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @hide 281d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 291d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi@SystemApi 301d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshipublic class ContextHubMessage { 311d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private int mType; 321d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private int mVersion; 331d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private byte[]mData; 341d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 35b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi private static final String TAG = "ContextHubMessage"; 36b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi 37b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi 381d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 391d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Get the message type 401d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 411d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return int - message type 421d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 431d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int getMsgType() { 441d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mType; 451d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 461d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 471d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 481d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get message version 491d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 501d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return int - message version 511d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 521d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int getVersion() { 531d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return mVersion; 541d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 551d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 561d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 571d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * get message data 581d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 591d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @return byte[] - message data buffer 601d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 611d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public byte[] getData() { 621d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return Arrays.copyOf(mData, mData.length); 631d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 641d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 651d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 661d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set message type 671d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 681d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param msgType - message type 691d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 701d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setMsgType(int msgType) { 711d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mType = msgType; 721d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 731d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 741d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 751d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Set message version 761d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 771d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param version - message version 781d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 791d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setVersion(int version) { 801d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mVersion = version; 811d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 821d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 831d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 841d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * set message data 851d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 861d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param data - message buffer 871d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 881d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void setMsgData(byte[] data) { 891d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mData = Arrays.copyOf(data, data.length); 901d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 911d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 921d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi /** 931d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * Constructor for a context hub message 941d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * 951d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param msgType - message type 961d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param version - version 971d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi * @param data - message buffer 981d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi */ 991d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public ContextHubMessage(int msgType, int version, byte[] data) { 1001d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mType = msgType; 1011d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mVersion = version; 1021d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mData = Arrays.copyOf(data, data.length); 1031d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1041d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1051d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public int describeContents() { 1061d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return 0; 1071d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1081d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1091d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi private ContextHubMessage(Parcel in) { 1101d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mType = in.readInt(); 1111d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi mVersion = in.readInt(); 112b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi int bufferLength = in.readInt(); 113b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi mData = new byte[bufferLength]; 114b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi in.readByteArray(mData); 1151d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 116b741e3b374e7eebf96e2104dec5caccf723b2a39Ashutosh Joshi 1171d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public void writeToParcel(Parcel out, int flags) { 1181d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeInt(mType); 1191d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeInt(mVersion); 1201d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeInt(mData.length); 1211d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi out.writeByteArray(mData); 1221d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1231d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1241d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public static final Parcelable.Creator<ContextHubMessage> CREATOR 1251d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi = new Parcelable.Creator<ContextHubMessage>() { 1261d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public ContextHubMessage createFromParcel(Parcel in) { 1271d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return new ContextHubMessage(in); 1281d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1291d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi 1301d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi public ContextHubMessage[] newArray(int size) { 1311d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi return new ContextHubMessage[size]; 1321d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi } 1331d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi }; 1341d1ac5409597ef668e52c6f27293eaf9af575e33Ashutosh Joshi} 135