Pass a message along with a FailureResponse.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4819 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2007-08-22 01:15:39 +00:00
parent 9a150ebcda
commit 810969f6f9
6 changed files with 26 additions and 17 deletions
@@ -198,8 +198,7 @@ public class ClientDObjectMgr
}
} else if (obj is FailureResponse) {
var foid :int = (obj as FailureResponse).getOid();
notifyFailure(foid);
notifyFailure((obj as FailureResponse).getOid(), (obj as FailureResponse).getMessage());
} else if (obj is PongResponse) {
_client.gotPong(obj as PongResponse);
@@ -303,7 +302,7 @@ public class ClientDObjectMgr
* Notifies the subscribers that had requested this object (for subscription) that it is not
* available.
*/
protected function notifyFailure (oid :int) :void
protected function notifyFailure (oid :int, message :String) :void
{
// let the penders know that the object is not available
var req :PendingRequest = (_penders.remove(oid) as PendingRequest);
@@ -315,7 +314,7 @@ public class ClientDObjectMgr
for (var ii :int = 0; ii < req.targets.length; ii++) {
var target :Subscriber = req.targets[ii];
// and let them know that the object is in
target.requestFailed(oid, new ObjectAccessError("No such object " + oid + "."));
target.requestFailed(oid, new ObjectAccessError(message));
}
}
@@ -30,17 +30,24 @@ public class FailureResponse extends DownstreamMessage
return _oid;
}
public function getMessage () :String
{
return _message;
}
public function toString () :String
{
return "[type=FAIL, msgid=" + messageId + ", oid=" + _oid + "]";
return "[type=FAIL, msgid=" + messageId + ", oid=" + _oid + ", msg=" + _message + "]";
}
override public function readObject (ins :ObjectInputStream) :void
{
super.readObject(ins);
_oid = ins.readInt();
_message = ins.readUTF();
}
protected var _oid :int;
protected var _message :String;
}
}