ComponentCore

public abstract class ComponentCore extends ForkJoinTask<Void> implements Component

The ComponentCore class.

Author:Cosmin Arad <cosmin@sics.se>, Jim Dowling <jdowling@sics.se>, Lars Kroll <lkroll@kth.se>

Fields

childUpdate

public static final ThreadLocal<Optional<ConfigUpdate>> childUpdate

children

protected List<ComponentCore> children

childrenLock

protected final ReentrantReadWriteLock childrenLock

conf

protected Config conf

parent

protected ComponentCore parent

parentThreadLocal

public static final ThreadLocal<ComponentCore> parentThreadLocal

readyPorts

protected SpinlockQueue<PortCore<?>> readyPorts

scheduler

protected Scheduler scheduler

state

protected volatile Component.State state

wid

protected int wid

workCount

public AtomicInteger workCount

Methods

cleanPorts

protected abstract void cleanPorts()

config

public Config config()

createControlPort

public abstract Negative<ControlPort> createControlPort()

createNegativePort

public abstract <P extends PortType> Negative<P> createNegativePort(Class<P> portType)

createPositivePort

public abstract <P extends PortType> Positive<P> createPositivePort(Class<P> portType)

destroyTree

protected void destroyTree(ComponentCore child)

destroyTreeAtParentOf

protected void destroyTreeAtParentOf(ComponentCore source)

doConfigUpdate

abstract void doConfigUpdate(ConfigUpdate update)

doCreate

public abstract <T extends ComponentDefinition> Component doCreate(Class<T> definition, Optional<Init<T>> initEvent)

doCreate

public abstract <T extends ComponentDefinition> Component doCreate(Class<T> definition, Optional<Init<T>> initEvent, Optional<ConfigUpdate> update)

doDestroy

protected void doDestroy(Component component)

equals

public boolean equals(Object obj)

escalateFaultToKompics

protected void escalateFaultToKompics(Fault fault)

eventReceived

public void eventReceived(PortCore<?> port, KompicsEvent event, int wid)

exec

protected boolean exec()

execute

public abstract void execute(int wid)

getParent

public ComponentCore getParent()

getRawResult

public Void getRawResult()

hashCode

public int hashCode()

id

public UUID id()

logger

protected abstract Logger logger()

markSubtreeAs

protected void markSubtreeAs(State s)

markSubtreeAtAs

protected void markSubtreeAtAs(ComponentCore source, State s)

run

public void run()

schedule

protected void schedule(int wid)

setInactive

protected abstract void setInactive(Component child)

setRawResult

protected void setRawResult(Void value)

setScheduler

public void setScheduler(Scheduler scheduler)

Sets the scheduler.

Parameters:
  • scheduler – the new scheduler

state

public Component.State state()

toString

public String toString()