ibis.satin.impl.spawnSync
Class InvocationRecord

java.lang.Object
  extended by ibis.satin.impl.spawnSync.InvocationRecord
All Implemented Interfaces:
Config, Serializable

public abstract class InvocationRecord
extends Object
implements Serializable, Config

An invocation record describes a spawned invocation, including the parameters of the invocation. The Satin frontend generates a subclass of this class for each spawnable method. Of all fields, only the owner, the stamp and the parent info must be sent over the network.

See Also:
Serialized Form

Field Summary
 boolean aborted
          Must be public, is accessed from generated code.
 InvocationRecord cacheNext
          Used to link the records in the cache.
 boolean checkpointed
           
 Throwable eek
          Must be public, it is used from the generated code (in another package)
 int storeId
          An id for the store where the result of the spawn must go.
 
Fields inherited from interface ibis.satin.impl.Config
abortLogger, ASSERTS, CHECKPOINT_CLUSTER, CHECKPOINT_FILE, CHECKPOINT_FIRST, CHECKPOINT_INTERVAL, CHECKPOINT_MAXFILESIZE, CHECKPOINT_PUSH, CHECKPOINT_QUITTIME, CHECKPOINTING, CLIENT, CLOSE_CONNECTIONS, CLOSED, commLogger, CONNECT_TIMEOUT, CONNECTIONS_ON_DEMAND, connLogger, COORDINATOR_QUIT_DELAY_TIME, DELETE_CLUSTER_TIME, DELETE_TIME, DETAILED_STATS, DUMP, FT_NAIVE, ftLogger, grtLogger, HANDLE_MESSAGES_IN_LATENCY, inletLogger, KEEP_INTRA_CONNECTIONS, KILL_TIME, LABEL_ROUTING_MCAST, mainLogger, MASTER_HOST, MAX_CONNECTIONS, MAX_STEAL_THROTTLE, properties, PROPERTY_PREFIX, QUEUE_STEALS, s_alg, s_asserts, s_client, s_close_connections, s_closed, s_connections_on_demand, s_cpt, s_cpt_cluster, s_cpt_file, s_cpt_first, s_cpt_interval, s_cpt_maxFileSize, s_cpt_push, s_cpt_quit, s_delete_cluster_time, s_delete_time, s_detailed_stats, s_dump, s_ft_connectTimeout, s_ft_naive, s_in_latency, s_keep_intra_connections, s_kill_time, s_masterhost, s_max_connections, s_max_steal_throttle, s_queue_steals, s_so_delay, s_so_lrmc, s_so_size, s_so_wait_time, s_stats, s_steal_wait_timeout, s_throttle_steals, s_unreliable, SO_MAX_INVOCATION_DELAY, SO_MAX_MESSAGE_SIZE, SO_WAIT_FOR_UPDATES_TIME, soBcastLogger, soLogger, spawnLogger, STATS, STEAL_WAIT_TIMEOUT, stealLogger, SUPPLIED_ALG, sysprops, THROTTLE_STEALS, UNRELIABLE
 
Method Summary
 boolean alreadySentExceptionResult()
           
abstract  void clearParams()
           
 void decrSpawnCounter()
           
 boolean equals(InvocationRecord other)
          Compares this invocation record with another invocation record.
 boolean equals(Object o)
          Compares this invocation record with another object.
 InvocationRecord getFinishedChild()
           
 InvocationRecord getFinishedSibling()
           
 ibis.ipl.IbisIdentifier getOwner()
           
 InvocationRecord getParent()
           
 LocalRecord getParentLocals()
           
 ibis.ipl.IbisIdentifier getParentOwner()
           
 Stamp getParentStamp()
           
abstract  ReturnRecord getReturnRecord()
           
abstract  Vector<String> getSOReferences()
          Returns a list of objectIds of the shared objects this record holds references of.
 int getSpawnId()
           
 Stamp getStamp()
           
 ibis.ipl.IbisIdentifier getStealer()
           
 InvocationRecord getToBeRestartedChild()
           
 InvocationRecord getToBeRestartedSibling()
           
 boolean guard()
          Executes the guard function, used for shared objects consistency.
 int hashCode()
          Returns a hashcode that conforms with the equals method.
 void incrSpawnCounter()
           
 boolean isDescendentOf(ibis.ipl.IbisIdentifier targetOwner)
           
 boolean isDescendentOf(Stamp targetStamp)
          Determines if the specified invocation record is a descendent of the job indicated by the specied stamp.
 boolean isInletExecuted()
           
 boolean isOrphan()
           
 boolean isReDone()
           
 void jobFinished()
          Attach a child to its parent's finished children list.
abstract  void runLocal()
           
abstract  ReturnRecord runRemote()
           
 void setAlreadySentExceptionResult(boolean alreadySentExceptionResult)
           
 void setFinishedChild(InvocationRecord finishedChild)
           
 void setFinishedSibling(InvocationRecord finishedSibling)
           
 void setInletExecuted(boolean inletExecuted)
           
 void setOrphan(boolean orphan)
           
 void setOwner(ibis.ipl.IbisIdentifier owner)
           
 void setReDone(boolean reDone)
           
abstract  void setSOReferences()
          initializes the references to shared objects inside this invocation record after stealing the job
 void setStealer(ibis.ipl.IbisIdentifier stealer)
           
 void setToBeRestartedChild(InvocationRecord toBeRestartedChild)
           
 void setToBeRestartedSibling(InvocationRecord toBeRestartedSibling)
           
 void spawn(ibis.ipl.IbisIdentifier ident, InvocationRecord parent)
           
 String toString()
          Returns a string representation of this invocation record.
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

eek

public transient Throwable eek
Must be public, it is used from the generated code (in another package)


aborted

public transient boolean aborted
Must be public, is accessed from generated code.


storeId

public transient int storeId
An id for the store where the result of the spawn must go. Must be public, used by generated code.


cacheNext

public transient InvocationRecord cacheNext
Used to link the records in the cache. Used by generated code.


checkpointed

public transient boolean checkpointed
Method Detail

equals

public final boolean equals(InvocationRecord other)
Compares this invocation record with another invocation record. Returns true if equal.

Parameters:
other - the invocation record to compare with.
Returns:
true if equal, false if not.

equals

public final boolean equals(Object o)
Compares this invocation record with another object. Returns true if equal.

Overrides:
equals in class Object
Parameters:
o - the object to compare with.
Returns:
true if equal, false if not.

hashCode

public final int hashCode()
Returns a hashcode that conforms with the equals method.

Overrides:
hashCode in class Object
Returns:
a hashcode.

toString

public String toString()
Returns a string representation of this invocation record.

Overrides:
toString in class Object
Returns:
a string representation of this invocation record.

getReturnRecord

public abstract ReturnRecord getReturnRecord()

setSOReferences

public abstract void setSOReferences()
                              throws SOReferenceSourceCrashedException
initializes the references to shared objects inside this invocation record after stealing the job

Throws:
SOReferenceSourceCrashedException

getSOReferences

public abstract Vector<String> getSOReferences()
Returns a list of objectIds of the shared objects this record holds references of.


guard

public boolean guard()
Executes the guard function, used for shared objects consistency.


runLocal

public abstract void runLocal()
                       throws Throwable
Throws:
Throwable

runRemote

public abstract ReturnRecord runRemote()

clearParams

public abstract void clearParams()

getOwner

public final ibis.ipl.IbisIdentifier getOwner()

setOwner

public final void setOwner(ibis.ipl.IbisIdentifier owner)

getStamp

public final Stamp getStamp()

getParent

public final InvocationRecord getParent()

getParentOwner

public final ibis.ipl.IbisIdentifier getParentOwner()

getParentStamp

public final Stamp getParentStamp()

decrSpawnCounter

public final void decrSpawnCounter()

incrSpawnCounter

public final void incrSpawnCounter()

setStealer

public final void setStealer(ibis.ipl.IbisIdentifier stealer)

getStealer

public final ibis.ipl.IbisIdentifier getStealer()

setFinishedChild

public final void setFinishedChild(InvocationRecord finishedChild)

getFinishedChild

public final InvocationRecord getFinishedChild()

setFinishedSibling

public final void setFinishedSibling(InvocationRecord finishedSibling)

getFinishedSibling

public final InvocationRecord getFinishedSibling()

setToBeRestartedChild

public final void setToBeRestartedChild(InvocationRecord toBeRestartedChild)

getToBeRestartedChild

public final InvocationRecord getToBeRestartedChild()

setToBeRestartedSibling

public final void setToBeRestartedSibling(InvocationRecord toBeRestartedSibling)

getToBeRestartedSibling

public final InvocationRecord getToBeRestartedSibling()

setReDone

public final void setReDone(boolean reDone)

isReDone

public final boolean isReDone()

setOrphan

public final void setOrphan(boolean orphan)

isOrphan

public final boolean isOrphan()

getSpawnId

public final int getSpawnId()

getParentLocals

public final LocalRecord getParentLocals()

setAlreadySentExceptionResult

public final void setAlreadySentExceptionResult(boolean alreadySentExceptionResult)

alreadySentExceptionResult

public final boolean alreadySentExceptionResult()

setInletExecuted

public final void setInletExecuted(boolean inletExecuted)

isInletExecuted

public final boolean isInletExecuted()

isDescendentOf

public final boolean isDescendentOf(Stamp targetStamp)
Determines if the specified invocation record is a descendent of the job indicated by the specied stamp.


isDescendentOf

public final boolean isDescendentOf(ibis.ipl.IbisIdentifier targetOwner)

jobFinished

public final void jobFinished()
Attach a child to its parent's finished children list.


spawn

public final void spawn(ibis.ipl.IbisIdentifier ident,
                        InvocationRecord parent)


The Ibis project