Package se.sics.kompics
Class ComponentCore
- All Implemented Interfaces:
Serializable
,Runnable
,Future<Void>
,Component
- Direct Known Subclasses:
JavaComponent
public abstract class ComponentCore extends ForkJoinTask<Void> implements Component
The
ComponentCore
class.
- Author:
- Cosmin Arad <[email protected]>, Jim Dowling <[email protected]>, Lars Kroll <[email protected]>
- See Also:
- Serialized Form
-
Nested Class Summary
-
Field Summary
Fields Modifier and Type Field Description protected List<ComponentCore>
children
protected ReentrantReadWriteLock
childrenLock
static ThreadLocal<Optional<ConfigUpdate>>
childUpdate
protected Config
conf
protected ComponentCore
parent
static ThreadLocal<ComponentCore>
parentThreadLocal
protected SpinlockQueue<PortCore<?>>
readyPorts
protected Scheduler
scheduler
protected Component.State
state
protected int
wid
AtomicInteger
workCount
-
Constructor Summary
Constructors Constructor Description ComponentCore()
-
Method Summary
Modifier and Type Method Description protected abstract void
cleanPorts()
Config
config()
abstract Negative<ControlPort>
createControlPort()
abstract <P extends PortType>
Negative<P>createNegativePort(Class<P> portType)
abstract <P extends PortType>
Positive<P>createPositivePort(Class<P> portType)
protected void
destroyTree(ComponentCore child)
protected void
destroyTreeAtParentOf(ComponentCore source)
abstract <T extends ComponentDefinition>
ComponentdoCreate(Class<T> definition, Optional<Init<T>> initEvent)
abstract <T extends ComponentDefinition>
ComponentdoCreate(Class<T> definition, Optional<Init<T>> initEvent, Optional<ConfigUpdate> update)
protected void
doDestroy(Component component)
boolean
equals(Object obj)
protected void
escalateFaultToKompics(Fault fault)
void
eventReceived(PortCore<?> port, KompicsEvent event, int wid)
protected boolean
exec()
abstract void
execute(int wid)
ComponentCore
getParent()
Void
getRawResult()
int
hashCode()
UUID
id()
protected abstract org.slf4j.Logger
logger()
protected void
markSubtreeAs(Component.State s)
protected void
markSubtreeAtAs(ComponentCore source, Component.State s)
void
run()
protected void
schedule(int wid)
protected abstract void
setInactive(Component child)
protected void
setRawResult(Void value)
void
setScheduler(Scheduler scheduler)
Sets the scheduler.Component.State
state()
String
toString()
Methods inherited from class java.util.concurrent.ForkJoinTask
adapt, adapt, adapt, cancel, compareAndSetForkJoinTaskTag, complete, completeExceptionally, fork, get, get, getException, getForkJoinTaskTag, getPool, getQueuedTaskCount, getSurplusQueuedTaskCount, helpQuiesce, inForkJoinPool, invoke, invokeAll, invokeAll, invokeAll, isCancelled, isCompletedAbnormally, isCompletedNormally, isDone, join, peekNextLocalTask, pollNextLocalTask, pollSubmission, pollTask, quietlyComplete, quietlyInvoke, quietlyJoin, reinitialize, setForkJoinTaskTag, tryUnfork
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface se.sics.kompics.Component
control, escalateFault, getComponent, getControl, getNegative, getPositive, provided, required
-
Field Details
-
Constructor Details
-
ComponentCore
public ComponentCore()
-
-
Method Details
-
logger
-
getParent
-
config
-
cleanPorts
-
createControlPort
-
doDestroy
-
destroyTree
-
setInactive
-
markSubtreeAs
-
doCreate
-
doCreate
public abstract <T extends ComponentDefinition> Component doCreate(Class<T> definition, Optional<Init<T>> initEvent, Optional<ConfigUpdate> update) -
createNegativePort
-
createPositivePort
-
setScheduler
Sets the scheduler.- Parameters:
scheduler
- the new scheduler
-
eventReceived
-
schedule
-
execute
-
run
-
id
-
equals
-
hashCode
-
toString
-
state
-
escalateFaultToKompics
-
markSubtreeAtAs
-
destroyTreeAtParentOf
-
getRawResult
- Specified by:
getRawResult
in classForkJoinTask<Void>
-
setRawResult
- Specified by:
setRawResult
in classForkJoinTask<Void>
-
exec
- Specified by:
exec
in classForkJoinTask<Void>
-