Note updates.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@197 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2001-08-08 21:59:28 +00:00
parent 5dfb32d739
commit 65b95f5698
+30 -81
View File
@@ -3,9 +3,6 @@ Cher Notes -*- outline -*-
* TODO * TODO
Pass cause back to client somehow via FailureResponse in Client.requestFailed Pass cause back to client somehow via FailureResponse in Client.requestFailed
Ensure at time of OBJECT_ADDED that the object being added exists and has
not been destroyed.
clientWillLogff becomes clientMayLogoff? clientWillLogff becomes clientMayLogoff?
Look into nbio waking up all sockets when any data comes in. Look into nbio waking up all sockets when any data comes in.
@@ -34,89 +31,41 @@ synchronized.
Maybe modify so that types are assigned automatically even if everything Maybe modify so that types are assigned automatically even if everything
has to be registered in a single place, since it pretty much does anyway. has to be registered in a single place, since it pretty much does anyway.
* Server components:
+ Connection manager
+ Client manager
+ Event dispatch thread (DObjectManager)
+ Server side services?
+ Room/Game managers
+ Info repository for shared info?
* Client components:
+ Network client (auth + DObject services)
+ Applet shell
+ Panel management
+ Components: chatbox, occupant info, turn indicator?
+ Room/Game panels, controllers, etc.
* Client detail:
+ Supply credentials (username, password)
+ Establishes, maintains connection:
logon (connect), logout (disconnect)
+ Creates, manages client-side DObjectManager
* Events in the client will be dispatched on the AWT thread
- Provide pluggable "event dispatcher" on the client
- Allow extension of Event as DispatchableEvent so that event objects
themselves can extend Runnable and be popped right into
SwingUtil.invokeLater().
* Client network mgmt * Client network mgmt
Client perform all network ops on own thread, will call back to main Client perform all network ops on own thread, will call back to main code
code through Observer interface to notify of state changes in the through Observer interface to notify of state changes in the
authentication process/connectedness: authentication process/connectedness:
public interface ClientObserver public interface ClientObserver
{ {
public void didConnect (); public void didConnect ();
public void connectionFailed (); public void connectionFailed ();
public void didLogon (); public void didLogon ();
public void logonFailed (); public void logonFailed ();
public void didDisconnect (); public void didDisconnect ();
public void didLogoff (); public void didLogoff ();
} }
* Three Rings Client flowlist:
Instantiate client
Obtain auth info
Obtain room info
Authenticate
* DObject class generation * DObject class generation
Distributed objects are defined like a class with a set of public data Distributed objects are defined like a class with a set of public data
members which is then converted into an actual class with get/set members which is then converted into an actual class with get/set methods
methods for each member. for each member.
public dclass GameObject public dclass GameObject
{ {
public int[] players; public int[] players;
public String description; public String description;
} }
becomes becomes
public class GameObject extends DObject public class GameObject extends DObject
{ {
public void setPlayers (int[] players); public void setPlayers (int[] players);
public void setPlayersAt (int index, int value); public void setPlayersAt (int index, int value);
public int[] getPlayers (); public int[] getPlayers ();
public int getPlayersAt (int index); public int getPlayersAt (int index);
public void setDescription (String description); public void setDescription (String description);
public String getDescription (); public String getDescription ();
} }
* Events:
ATTRIBUTE_CHANGED
ATTRIBUTES_CHANGED
ATTRIBUTES_CHANGED_SPLIT?
ELEMENT_CHANGED
OBJECT_DESTROYED
ELEMENT_ADDED
ELEMENT_REMOVED
OID_ADDED
OID_REMOVED
NOTIFICATION