SmartFrog 3.10.000

org.smartfrog.examples.pong
Class GameArenaWrapper

java.lang.Object
  extended by org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
      extended by org.smartfrog.sfcore.prim.PrimImpl
          extended by org.smartfrog.sfcore.workflow.eventbus.EventPrimImpl
              extended by org.smartfrog.examples.pong.GameArenaWrapper
All Implemented Interfaces:
java.rmi.Remote, MessageKeys, Diagnostics, Liveness, Prim, RemoteReferenceResolver, RemoteReferenceResolverHelper, EventBus, EventRegistration, EventSink

public class GameArenaWrapper
extends EventPrimImpl
implements Prim

A wrapper to turn the sfPong game into a SmartFrog component. Creates a Frame and gets a handle on the opponent if there is one.


Field Summary
protected  org.smartfrog.examples.pong.Linker opponent
          The opponent.
 
Fields inherited from class org.smartfrog.sfcore.prim.PrimImpl
refLivenessDelay, refLivenessFactor, sfCompleteName, sfContext, sfDeployHooks, sfDeployWithHooks, sfExportRef, sfIsDeployed, sfIsStarted, sfIsTerminated, sfIsTerminating, sfLivenessCount, sfLivenessDelay, sfLivenessFactor, sfLivenessSender, sfParent, sfStartHooks, sfTerminateWithHooks, termLock
 
Fields inherited from interface org.smartfrog.sfcore.common.MessageKeys
CANNOT_LINK_TO_PREDICATE, COMPONENT_TERMINATED, COPY_FAILED, COPY_SERIALIZE_FAILED, ERROR_NO_SECURITY_BUT_REQUIRED, ILLEGAL_BOOLEAN_PARAMETER, ILLEGAL_NUMERIC_PARAMETER, ILLEGAL_STRING_PARAMETER, ILLEGAL_VECTOR_PARAMETER, LIVENESS_SEND_FAILURE, LIVENESS_SEND_FAILURE_IN, MISSING_PARAMETER, MSG_CLASS_NOT_FOUND, MSG_CONNECT_ERR, MSG_CONT_OTHER_DEPLOY, MSG_DEPLOY_COMP_TERMINATED, MSG_DEPLOY_SUCCESS, MSG_DEPLOYWITH_PHASE_FAILED, MSG_DETACH_SUCCESS, MSG_DETACH_TERMINATE_SUCCESS, MSG_ERR_DEPLOY_FROM_URL, MSG_ERR_PARSE, MSG_ERR_RESOLVE_PHASE, MSG_ERR_SF_RUNNING, MSG_ERR_TERM, MSG_FAILED_INET_ADDRESS_LOOKUP, MSG_FAILED_TO_CONTACT_PARENT, MSG_FILE_NOT_FOUND, MSG_HOOK_ACTION_FAILED, MSG_ILLEGAL_ACCESS, MSG_ILLEGAL_CLASS_TYPE, MSG_ILLEGAL_CLASS_TYPE_EXPECTING_GOT, MSG_ILLEGAL_REFERENCE, MSG_INPUTSTREAM_NULL, MSG_INSTANTIATION_ERROR, MSG_INVALID_OBJECT_TYPE, MSG_INVOCATION_TARGET, MSG_LANG_NOT_FOUND, MSG_LIVENESS_START_FAILED, MSG_LOADING_URL, MSG_METHOD_NOT_FOUND, MSG_NON_REP_ATTRIB, MSG_NOT_COMPONENT_REFERENCE, MSG_NOT_FOUND_ATTRIBUTE, MSG_NOT_FOUND_REFERENCE, MSG_NOT_VALUE_REFERENCE, MSG_NULL_DEF_METHOD, MSG_NULL_URL, MSG_OBJECT_REGISTRATION_FAILED, MSG_PARENT_LOCATION_FAILED, MSG_PING_SUCCESS, MSG_RANDM_ERR, MSG_REMOTE_CONNECT_ERR, MSG_REPEATED_ATTRIBUTE, MSG_SF_DEAD, MSG_SF_READY, MSG_SF_TERMINATED, MSG_STACKTRACE_FOLLOWS, MSG_START_COMP_TERMINATED, MSG_TERMINATE_SUCCESS, MSG_UNHANDLED_EXCEPTION, MSG_UNKNOWN_HOST, MSG_UNRESOLVED_REFERENCE, MSG_UNRESOLVED_REFERENCE_IN, MSG_UPDATE_SUCCESS, MSG_URL_NOT_FOUND, MSG_URL_TO_PARSE_NOT_FOUND, MSG_WARNING_LIVENESS_ENABLED, MSG_WARNING_STACKTRACE_DISABLED, MSG_WARNING_STACKTRACE_ENABLED, ROOT_MUST_BE_COMPONENT, WARN_NO_SECURITY
 
Constructor Summary
GameArenaWrapper()
          Standard constructor for SmartFrog components.
 
Method Summary
 void ballIsLeaving(Ball ball)
          Hide the ball on this host, then hand it over to the opponent.
 void handleEvent(java.lang.String event)
          Handle an incoming message.
 void incomingBall(double xPos, double yPos, double xSpeed, double ySpeed)
          Implementation of the linker interface : reset the ball position and invert the horizontal speed.
 boolean setOpponent(org.smartfrog.examples.pong.Linker opponent)
          Set the opponent of this player to be the Linker object provided if none already exists.
 void sfDeploy()
          Collect data from the description.
 void sfStart()
          Build a game frame and start the game.
 void sfTerminateWith(TerminationRecord tr)
          sfTerminate.
 
Methods inherited from class org.smartfrog.sfcore.workflow.eventbus.EventPrimImpl
deregister, event, handleEvent, register, sendEvent
 
Methods inherited from class org.smartfrog.sfcore.prim.PrimImpl
equals, hashCode, registerWithProcessCompound, sfAddAttribute, sfAttributeKeyFor, sfAttributes, sfCompleteName, sfCompleteNameSafe, sfContainsAttribute, sfContainsValue, sfContext, sfDeployedHost, sfDeployedProcessName, sfDeployWith, sfDetach, sfDetachAndTerminate, sfDiagnosticsReport, sfDumpState, sfExport, sfExportRef, sfExportRef, sfGetApplicationLog, sfGetCoreLog, sfGetLog, sfIsDeployed, sfIsRemote, sfIsStarted, sfIsTerminated, sfIsTerminating, sfLivenessFailure, sfLog, sfParent, sfParentageChanged, sfPing, sfRemoveAttribute, sfReplaceAttribute, sfResolve, sfResolve, sfResolveHere, sfResolveHere, sfResolveParent, sfSetLog, sfStartLivenessSender, sfStopLivenessSender, sfTerminate, sfTerminatedWith, sfTerminateQuietlyWith, sfValues, terminateComponent, terminateNotifying, toString
 
Methods inherited from class org.smartfrog.sfcore.reference.RemoteReferenceResolverHelperImpl
sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolve, sfResolveWithParser
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

opponent

protected org.smartfrog.examples.pong.Linker opponent
The opponent.

Constructor Detail

GameArenaWrapper

public GameArenaWrapper()
                 throws java.rmi.RemoteException
Standard constructor for SmartFrog components.

Throws:
java.rmi.RemoteException - In case of network/rmi error
Method Detail

sfDeploy

public void sfDeploy()
              throws SmartFrogException,
                     java.rmi.RemoteException
Collect data from the description. Overrides EventPrimImpl.sfDeploy.

Specified by:
sfDeploy in interface Prim
Overrides:
sfDeploy in class EventPrimImpl
Throws:
SmartFrogException - In case of error while deploying
java.rmi.RemoteException - In case of network/rmi error

sfStart

public void sfStart()
             throws SmartFrogException,
                    java.rmi.RemoteException
Build a game frame and start the game.

Specified by:
sfStart in interface Prim
Overrides:
sfStart in class PrimImpl
Throws:
SmartFrogException - In case of error while starting
java.rmi.RemoteException - In case of network/rmi error

sfTerminateWith

public void sfTerminateWith(TerminationRecord tr)
sfTerminate.

Overrides:
sfTerminateWith in class EventPrimImpl
Parameters:
tr - TerminationRecord object

incomingBall

public void incomingBall(double xPos,
                         double yPos,
                         double xSpeed,
                         double ySpeed)
                  throws java.lang.Exception
Implementation of the linker interface : reset the ball position and invert the horizontal speed.

Parameters:
xPos - Position in x axis
yPos - Position in y axis
xSpeed - Speed in x axis
ySpeed - Speed in y axis
Throws:
java.lang.Exception - error while setting position and speed

ballIsLeaving

public void ballIsLeaving(Ball ball)
Hide the ball on this host, then hand it over to the opponent.

Parameters:
ball - a Ball object

handleEvent

public void handleEvent(java.lang.String event)
Handle an incoming message. If the message received indicates that a new player has been located, set it as the opponent if : - it is a different component - and if it does not already have an opponent.

Parameters:
event - incoming message

setOpponent

public boolean setOpponent(org.smartfrog.examples.pong.Linker opponent)
                    throws java.rmi.RemoteException
Set the opponent of this player to be the Linker object provided if none already exists.

Parameters:
opponent - opponent
Returns:
true if the operation is successful (i.e if the opponent was not already set)
Throws:
java.rmi.RemoteException - in case of network/rmi error

SmartFrog CORE 3.10.000

(C) Copyright 1998-2006 Hewlett-Packard Development Company, LP