OSDN Git Service

Merge "Turn on DepAnn for test-base and test-runner" am: 8dbbc3543e am: 38a916fb74
[android-x86/frameworks-base.git] / core / java / android / hardware / location / ContextHubMessage.java
1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package android.hardware.location;
18
19 import android.annotation.SystemApi;
20 import android.os.Parcel;
21 import android.os.Parcelable;
22
23 import java.util.Arrays;
24
25 /**
26  * @deprecated Use {@link android.hardware.location.NanoAppMessage} instead to send messages with
27  *             {@link android.hardware.location.ContextHubClient#sendMessageToNanoApp(
28  *             NanoAppMessage)} and receive messages with
29  *             {@link android.hardware.location.ContextHubClientCallback#onMessageFromNanoApp(
30  *             ContextHubClient, NanoAppMessage)}.
31  *
32  * @hide
33  */
34 @SystemApi
35 @Deprecated
36 public class ContextHubMessage {
37     private static final int DEBUG_LOG_NUM_BYTES = 16;
38     private int mType;
39     private int mVersion;
40     private byte[]mData;
41
42     /**
43      * Get the message type
44      *
45      * @return int - message type
46      */
47     public int getMsgType() {
48         return mType;
49     }
50
51     /**
52      * get message version
53      *
54      * @return int - message version
55      */
56     public int getVersion() {
57         return mVersion;
58     }
59
60     /**
61      * get message data
62      *
63      * @return byte[] - message data buffer
64      */
65     public byte[] getData() {
66         return Arrays.copyOf(mData, mData.length);
67     }
68
69     /**
70      * set message type
71      *
72      * @param msgType - message type
73      */
74     public void setMsgType(int msgType) {
75         mType = msgType;
76     }
77
78     /**
79      * Set message version
80      *
81      * @param version - message version
82      */
83     public void setVersion(int version) {
84         mVersion = version;
85     }
86
87     /**
88      * set message data
89      *
90      * @param data - message buffer
91      */
92     public void setMsgData(byte[] data) {
93         mData = Arrays.copyOf(data, data.length);
94     }
95
96     /**
97      * Constructor for a context hub message
98      *
99      * @param msgType - message type
100      * @param version - version
101      * @param data    - message buffer
102      */
103     public ContextHubMessage(int msgType, int version, byte[] data) {
104         mType = msgType;
105         mVersion = version;
106         mData = Arrays.copyOf(data, data.length);
107     }
108
109     public int describeContents() {
110         return 0;
111     }
112
113     private ContextHubMessage(Parcel in) {
114         mType = in.readInt();
115         mVersion = in.readInt();
116         int bufferLength = in.readInt();
117         mData = new byte[bufferLength];
118         in.readByteArray(mData);
119     }
120
121     public void writeToParcel(Parcel out, int flags) {
122         out.writeInt(mType);
123         out.writeInt(mVersion);
124         out.writeInt(mData.length);
125         out.writeByteArray(mData);
126     }
127
128     public static final Parcelable.Creator<ContextHubMessage> CREATOR
129             = new Parcelable.Creator<ContextHubMessage>() {
130         public ContextHubMessage createFromParcel(Parcel in) {
131             return new ContextHubMessage(in);
132         }
133
134         public ContextHubMessage[] newArray(int size) {
135             return new ContextHubMessage[size];
136         }
137     };
138
139     @Override
140     public String toString() {
141         int length = mData.length;
142
143         String ret =
144                 "ContextHubMessage[type = " + mType + ", length = " + mData.length + " bytes](";
145         if (length > 0) {
146             ret += "data = 0x";
147         }
148         for (int i = 0; i < Math.min(length, DEBUG_LOG_NUM_BYTES); i++) {
149             ret += Byte.toHexString(mData[i], true /* upperCase */);
150
151             if ((i + 1) % 4 == 0) {
152                 ret += " ";
153             }
154         }
155         if (length > DEBUG_LOG_NUM_BYTES) {
156             ret += "...";
157         }
158         ret += ")";
159
160         return ret;
161     }
162 }