[skycastle-commits] SF.net SVN: skycastle: [464] trunk/skycastle/modules

  • From: zzorn@xxxxxxxxxxxxxxxxxxxxx
  • To: skycastle-commits@xxxxxxxxxxxxx
  • Date: Fri, 18 Apr 2008 15:46:31 -0700

Revision: 464
          http://skycastle.svn.sourceforge.net/skycastle/?rev=464&view=rev
Author:   zzorn
Date:     2008-04-18 15:46:30 -0700 (Fri, 18 Apr 2008)

Log Message:
-----------
Fixed some build problems.  Now it should compile and run.

Also removed the requirement that client side GameObjects have to implement 
ManagedObject.

Modified Paths:
--------------
    
trunk/skycastle/modules/client/src/main/java/org/skycastle/client/ServerSessionHandler.java
    
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectId.java
    
trunk/skycastle/modules/core/src/main/java/org/skycastle/protocol/ProtocolCommunicator.java
    
trunk/skycastle/modules/server/src/main/java/org/skycastle/server/SkycastleClientSessionHandler.java

Added Paths:
-----------
    
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/ServeerSideGameObjectReference.java

Removed Paths:
-------------
    
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectReference.java

Modified: 
trunk/skycastle/modules/client/src/main/java/org/skycastle/client/ServerSessionHandler.java
===================================================================
--- 
trunk/skycastle/modules/client/src/main/java/org/skycastle/client/ServerSessionHandler.java
 2008-04-18 22:31:12 UTC (rev 463)
+++ 
trunk/skycastle/modules/client/src/main/java/org/skycastle/client/ServerSessionHandler.java
 2008-04-18 22:46:30 UTC (rev 464)
@@ -27,6 +27,8 @@
  *
  * @author Hans Haggstrom
  */
+// TODO: This should really be non serializable, but the parent needs to be 
serializable for the sake of the server side
+// Can we maybe convert the parent functionalit to a delegate class instead of 
parent class?
 public final class ServerSessionHandler
         extends ProtocolCommunicator
         implements SimpleClientListener
@@ -47,6 +49,7 @@
     //======================================================================
     // Private Constants
 
+    private static final long serialVersionUID = 1L;
     private static final int PROTOCOL_NEGOTIATION_TIMEOUT_MS = 10000;
 
 

Modified: 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectId.java
===================================================================
--- 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectId.java 
    2008-04-18 22:31:12 UTC (rev 463)
+++ 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectId.java 
    2008-04-18 22:46:30 UTC (rev 464)
@@ -9,7 +9,7 @@
  */
 // TODO: Use the ID used by managed objects? - no way to get object by id, 
only by binding a string name to it.
 // IDEA: Could keep track also of on which server or client the object is?
-// IDEA: Merge with GameObjectReference??    
+// IDEA: Merge with ServeerSideGameObjectReference??
 public final class GameObjectId
         implements Serializable
 {

Deleted: 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectReference.java
===================================================================
--- 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectReference.java
      2008-04-18 22:31:12 UTC (rev 463)
+++ 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectReference.java
      2008-04-18 22:46:30 UTC (rev 464)
@@ -1,36 +0,0 @@
-package org.skycastle.core;
-
-/**
- * A reference to a {@link GameObject}.  The reference can be serialized and 
persisted on the server side.
- *
- * @author Hans Häggström
- */
-// IDEA: Could GameObjectId and GameObjectReference be combined?  They seem to 
have more or less the same
-// purpose, although GameObjectId is backed up by bindings, and works on both 
server and client side,
-// while GameObjectReference is backed up by a ManagedObjectReference and only 
works on server side..
-public class GameObjectReference
-        extends PersistentReference<GameObject>
-{
-
-    //======================================================================
-    // Private Constants
-
-    private static final long serialVersionUID = 1L;
-
-    //======================================================================
-    // Public Methods
-
-    //----------------------------------------------------------------------
-    // Constructors
-
-    /**
-     * Creates a new {@link org.skycastle.core.GameObjectReference} to the 
specified {@link GameObject}.
-     *
-     * @param gameObject the {@link GameObject} to create a reference to.
-     */
-    public GameObjectReference( final GameObject gameObject )
-    {
-        super( gameObject );
-    }
-
-}

Copied: 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/ServeerSideGameObjectReference.java
 (from rev 462, 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/GameObjectReference.java)
===================================================================
--- 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/ServeerSideGameObjectReference.java
                           (rev 0)
+++ 
trunk/skycastle/modules/core/src/main/java/org/skycastle/core/ServeerSideGameObjectReference.java
   2008-04-18 22:46:30 UTC (rev 464)
@@ -0,0 +1,36 @@
+package org.skycastle.core;
+
+/**
+ * A reference to a {@link GameObject}.  The reference can be serialized and 
persisted on the server side.
+ *
+ * @author Hans Häggström
+ */
+// IDEA: Could GameObjectId and ServeerSideGameObjectReference be combined?  
They seem to have more or less the same
+// purpose, although GameObjectId is backed up by bindings, and works on both 
server and client side,
+// while ServeerSideGameObjectReference is backed up by a 
ManagedObjectReference and only works on server side..
+public class ServeerSideGameObjectReference
+        extends PersistentReference<ServerSideGameObject>
+{
+
+    //======================================================================
+    // Private Constants
+
+    private static final long serialVersionUID = 1L;
+
+    //======================================================================
+    // Public Methods
+
+    //----------------------------------------------------------------------
+    // Constructors
+
+    /**
+     * Creates a new {@link ServeerSideGameObjectReference} to the specified 
{@link GameObject}.
+     *
+     * @param gameObject the {@link GameObject} to create a reference to.
+     */
+    public ServeerSideGameObjectReference( final ServerSideGameObject 
gameObject )
+    {
+        super( gameObject );
+    }
+
+}

Modified: 
trunk/skycastle/modules/core/src/main/java/org/skycastle/protocol/ProtocolCommunicator.java
===================================================================
--- 
trunk/skycastle/modules/core/src/main/java/org/skycastle/protocol/ProtocolCommunicator.java
 2008-04-18 22:31:12 UTC (rev 463)
+++ 
trunk/skycastle/modules/core/src/main/java/org/skycastle/protocol/ProtocolCommunicator.java
 2008-04-18 22:46:30 UTC (rev 464)
@@ -5,6 +5,8 @@
 import org.skycastle.protocol.negotiation.ProtocolNegotiator;
 import org.skycastle.util.ParameterChecker;
 
+import java.io.Serializable;
+
 /**
  * Takes care of negotiating a protocol, and after that forwarding decoded 
messages to a listener.
  * <p/>
@@ -16,6 +18,7 @@
  */
 // IDEA: Move logging / some error handling to this class, and avoid throwing 
out exceptions?
 public abstract class ProtocolCommunicator
+        implements Serializable
 {
 
     //======================================================================

Modified: 
trunk/skycastle/modules/server/src/main/java/org/skycastle/server/SkycastleClientSessionHandler.java
===================================================================
--- 
trunk/skycastle/modules/server/src/main/java/org/skycastle/server/SkycastleClientSessionHandler.java
        2008-04-18 22:31:12 UTC (rev 463)
+++ 
trunk/skycastle/modules/server/src/main/java/org/skycastle/server/SkycastleClientSessionHandler.java
        2008-04-18 22:46:30 UTC (rev 464)
@@ -40,8 +40,8 @@
     // so we supress a serialization warning for IDE:s that look for those 
problems.
     @SuppressWarnings( { "NonSerializableFieldInSerializableClass" } )
 
-    private GameObjectReference myClientAccountReference;
-    private GameObjectId myClientAccountId;
+    private ServeerSideGameObjectReference myClientAccountReference = null;
+    private GameObjectId myClientAccountId = null;
 
     //======================================================================
     // Private Constants
@@ -168,11 +168,11 @@
         LOGGER.log( Level.INFO,
                     "User '" + myClientSession.getName() + "' logged in." );
 
-        final GameObject account = getUserAccount( myClientSession.getName() );
+        final ServerSideGameObject account = getUserAccount( 
myClientSession.getName() );
 
         // TODO: Notify the account object that the user logged in.
 
-        myClientAccountReference = new GameObjectReference( account );
+        myClientAccountReference = new ServeerSideGameObjectReference( account 
);
 
         try
         {
@@ -242,17 +242,17 @@
      *
      * @return a {@link GameObject} with the specified users account object.
      */
-    private GameObject getUserAccount( final String userLoginName )
+    private ServerSideGameObject getUserAccount( final String userLoginName )
     {
         final String bindingName = ACCOUNT_PREFIX + userLoginName;
 
         final GameObjectContext context = GameContext.getGameObjectContext();
-        GameObject clientAccount = context.getGameObjectBoundToName( 
bindingName );
+        ServerSideGameObject clientAccount = (ServerSideGameObject) 
context.getGameObjectBoundToName( bindingName );
         if ( clientAccount == null )
         {
             // If client doesn't yet have any account, create a new one
 
-            clientAccount = context.createGameObject();
+            clientAccount = (ServerSideGameObject) context.createGameObject();
 
             // TODO: Do we need to store the client user name with the 
account?  Any other data?
             // TODO: This is a game / server extension point, as different 
servers could have different options and provided UI layouts here.


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

Other related posts:

  • » [skycastle-commits] SF.net SVN: skycastle: [464] trunk/skycastle/modules