Add additional sendMessage methods.
To simplify sending messages add sendMessage methods that take
what and obj as parameters.
Change-Id: Ib22d752eb3cb32fe3dfa8dd2e65915acec3e5db6
diff --git a/core/java/com/android/internal/util/HierarchicalStateMachine.java b/core/java/com/android/internal/util/HierarchicalStateMachine.java
index bebf051..7d7f130 100644
--- a/core/java/com/android/internal/util/HierarchicalStateMachine.java
+++ b/core/java/com/android/internal/util/HierarchicalStateMachine.java
@@ -1167,6 +1167,21 @@
return Message.obtain(mHsmHandler, what, obj);
}
+
+ /**
+ * Enqueue a message to this state machine.
+ */
+ public final void sendMessage(int what) {
+ mHsmHandler.sendMessage(obtainMessage(what));
+ }
+
+ /**
+ * Enqueue a message to this state machine.
+ */
+ public final void sendMessage(int what, Object obj) {
+ mHsmHandler.sendMessage(obtainMessage(what,obj));
+ }
+
/**
* Enqueue a message to this state machine.
*/
@@ -1177,6 +1192,20 @@
/**
* Enqueue a message to this state machine after a delay.
*/
+ public final void sendMessageDelayed(int what, long delayMillis) {
+ mHsmHandler.sendMessageDelayed(obtainMessage(what), delayMillis);
+ }
+
+ /**
+ * Enqueue a message to this state machine after a delay.
+ */
+ public final void sendMessageDelayed(int what, Object obj, long delayMillis) {
+ mHsmHandler.sendMessageDelayed(obtainMessage(what, obj), delayMillis);
+ }
+
+ /**
+ * Enqueue a message to this state machine after a delay.
+ */
public final void sendMessageDelayed(Message msg, long delayMillis) {
mHsmHandler.sendMessageDelayed(msg, delayMillis);
}
@@ -1185,6 +1214,22 @@
* Enqueue a message to the front of the queue for this state machine.
* Protected, may only be called by instances of HierarchicalStateMachine.
*/
+ protected final void sendMessageAtFrontOfQueue(int what, Object obj) {
+ mHsmHandler.sendMessageAtFrontOfQueue(obtainMessage(what, obj));
+ }
+
+ /**
+ * Enqueue a message to the front of the queue for this state machine.
+ * Protected, may only be called by instances of HierarchicalStateMachine.
+ */
+ protected final void sendMessageAtFrontOfQueue(int what) {
+ mHsmHandler.sendMessageAtFrontOfQueue(obtainMessage(what));
+ }
+
+ /**
+ * Enqueue a message to the front of the queue for this state machine.
+ * Protected, may only be called by instances of HierarchicalStateMachine.
+ */
protected final void sendMessageAtFrontOfQueue(Message msg) {
mHsmHandler.sendMessageAtFrontOfQueue(msg);
}
diff --git a/core/tests/coretests/src/android/os/HierarchicalStateMachineTest.java b/core/tests/coretests/src/android/os/HierarchicalStateMachineTest.java
index 20c55c2..c51fecc 100644
--- a/core/tests/coretests/src/android/os/HierarchicalStateMachineTest.java
+++ b/core/tests/coretests/src/android/os/HierarchicalStateMachineTest.java
@@ -109,7 +109,7 @@
synchronized (smQuitTest) {
// Send 6 messages
for (int i = 1; i <= 6; i++) {
- smQuitTest.sendMessage(smQuitTest.obtainMessage(i));
+ smQuitTest.sendMessage(i);
}
// First two are ignored
@@ -297,8 +297,8 @@
synchronized (sm1) {
// Send two messages
- sm1.sendMessage(sm1.obtainMessage(TEST_CMD_1));
- sm1.sendMessage(sm1.obtainMessage(TEST_CMD_2));
+ sm1.sendMessage(TEST_CMD_1);
+ sm1.sendMessage(TEST_CMD_2);
try {
// wait for the messages to be handled
@@ -402,8 +402,8 @@
synchronized (sm2) {
// Send two messages
- sm2.sendMessage(sm2.obtainMessage(TEST_CMD_1));
- sm2.sendMessage(sm2.obtainMessage(TEST_CMD_2));
+ sm2.sendMessage(TEST_CMD_1);
+ sm2.sendMessage(TEST_CMD_2);
try {
// wait for the messages to be handled
@@ -494,8 +494,8 @@
synchronized (sm3) {
// Send two messages
- sm3.sendMessage(sm3.obtainMessage(TEST_CMD_1));
- sm3.sendMessage(sm3.obtainMessage(TEST_CMD_2));
+ sm3.sendMessage(TEST_CMD_1);
+ sm3.sendMessage(TEST_CMD_2);
try {
// wait for the messages to be handled
@@ -587,8 +587,8 @@
synchronized (sm4) {
// Send two messages
- sm4.sendMessage(sm4.obtainMessage(TEST_CMD_1));
- sm4.sendMessage(sm4.obtainMessage(TEST_CMD_2));
+ sm4.sendMessage(TEST_CMD_1);
+ sm4.sendMessage(TEST_CMD_2);
try {
// wait for the messages to be handled
@@ -861,12 +861,12 @@
synchronized (sm5) {
// Send 6 messages
- sm5.sendMessage(sm5.obtainMessage(TEST_CMD_1));
- sm5.sendMessage(sm5.obtainMessage(TEST_CMD_2));
- sm5.sendMessage(sm5.obtainMessage(TEST_CMD_3));
- sm5.sendMessage(sm5.obtainMessage(TEST_CMD_4));
- sm5.sendMessage(sm5.obtainMessage(TEST_CMD_5));
- sm5.sendMessage(sm5.obtainMessage(TEST_CMD_6));
+ sm5.sendMessage(TEST_CMD_1);
+ sm5.sendMessage(TEST_CMD_2);
+ sm5.sendMessage(TEST_CMD_3);
+ sm5.sendMessage(TEST_CMD_4);
+ sm5.sendMessage(TEST_CMD_5);
+ sm5.sendMessage(TEST_CMD_6);
try {
// wait for the messages to be handled
@@ -950,7 +950,7 @@
class S1 extends HierarchicalState {
@Override protected void enter() {
- sendMessage(obtainMessage(TEST_CMD_1));
+ sendMessage(TEST_CMD_1);
}
@Override protected boolean processMessage(Message message) {
@@ -994,7 +994,7 @@
synchronized (sm6) {
// Send a message
sentTimeMsg2 = SystemClock.elapsedRealtime();
- sm6.sendMessageDelayed(sm6.obtainMessage(TEST_CMD_2), DELAY_TIME);
+ sm6.sendMessageDelayed(TEST_CMD_2, DELAY_TIME);
try {
// wait for the messages to be handled
@@ -1045,7 +1045,7 @@
return true;
}
@Override protected void exit() {
- sendMessage(obtainMessage(TEST_CMD_2));
+ sendMessage(TEST_CMD_2);
}
}
@@ -1053,7 +1053,7 @@
@Override protected void enter() {
// Send a delayed message as a watch dog
- sendMessageDelayed(obtainMessage(TEST_CMD_3), SM7_DELAY_TIME);
+ sendMessageDelayed(TEST_CMD_3, SM7_DELAY_TIME);
}
@Override protected boolean processMessage(Message message) {
@@ -1103,7 +1103,7 @@
synchronized (sm7) {
// Send a message
sentTimeMsg2 = SystemClock.elapsedRealtime();
- sm7.sendMessage(sm7.obtainMessage(TEST_CMD_1));
+ sm7.sendMessage(TEST_CMD_1);
try {
// wait for the messages to be handled
@@ -1178,7 +1178,7 @@
synchronized (sm) {
// Send 2 messages
for (int i = 1; i <= 2; i++) {
- sm.sendMessage(sm.obtainMessage(i));
+ sm.sendMessage(i);
}
try {
@@ -1262,7 +1262,7 @@
// Send messages to each of the state machines
for (StateMachineSharedThread sm : sms) {
for (int i = 1; i <= 4; i++) {
- sm.sendMessage(sm.obtainMessage(i));
+ sm.sendMessage(i);
}
}
@@ -1295,8 +1295,8 @@
Hsm1 sm = Hsm1.makeHsm1();
// Send messages
- sm.sendMessage(sm.obtainMessage(Hsm1.CMD_1));
- sm.sendMessage(sm.obtainMessage(Hsm1.CMD_2));
+ sm.sendMessage(Hsm1.CMD_1);
+ sm.sendMessage(Hsm1.CMD_2);
synchronized (sm) {
// Wait for the last state machine to notify its done
@@ -1389,7 +1389,7 @@
switch(message.what) {
case CMD_2:
// CMD_2 will arrive in mS2 before CMD_3
- sendMessage(obtainMessage(CMD_3));
+ sendMessage(CMD_3);
deferMessage(message);
transitionTo(mS2);
retVal = true;
@@ -1435,7 +1435,7 @@
Log.d(TAG, "S2.processMessage what=" + message.what);
switch(message.what) {
case(CMD_2):
- sendMessage(obtainMessage(CMD_4));
+ sendMessage(CMD_4);
retVal = true;
break;
case(CMD_3):
@@ -1457,7 +1457,7 @@
class P2 extends HierarchicalState {
@Override protected void enter() {
Log.d(TAG, "P2.enter");
- sendMessage(obtainMessage(CMD_5));
+ sendMessage(CMD_5);
}
@Override protected boolean processMessage(Message message) {
Log.d(TAG, "P2.processMessage what=" + message.what);