Package org.drasyl.pipeline
Class DefaultHandlerContext
- java.lang.Object
-
- org.drasyl.pipeline.DefaultHandlerContext
-
- All Implemented Interfaces:
HandlerContext
public class DefaultHandlerContext extends Object
The default handler context implementation.
-
-
Constructor Summary
Constructors Constructor Description DefaultHandlerContext(String name, Handler handler, DrasylConfig config, Pipeline pipeline, io.reactivex.rxjava3.core.Scheduler scheduler, Identity identity, TypeValidator inboundValidator, TypeValidator outboundValidator)
Generates a new default handler context for the givenhandler
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DrasylConfig
config()
Returns the correspondingDrasylConfig
.CompletableFuture<Void>
fireEventTriggered(Event event, CompletableFuture<Void> future)
Received an event.HandlerContext
fireExceptionCaught(Exception cause)
Received anThrowable
in one of the inbound operations.CompletableFuture<Void>
fireRead(Address sender, Object msg, CompletableFuture<Void> future)
Received a message.Handler
handler()
Returns the associatedHandler
.Identity
identity()
Returns the identifier of this node.TypeValidator
inboundValidator()
Returns the inbound type validator of this pipeline.String
name()
Returns the name of theHandler
.TypeValidator
outboundValidator()
Returns the outbound type validator of this pipeline.Pipeline
pipeline()
Returns the correspondingPipeline
.io.reactivex.rxjava3.core.Scheduler
scheduler()
Implementation Note: This method should always return a scheduler, that differs from the normal pipeline scheduler.CompletableFuture<Void>
write(Address recipient, Object msg, CompletableFuture<Void> future)
Request to write a message via thisHandlerContext
through thePipeline
.
-
-
-
Constructor Detail
-
DefaultHandlerContext
public DefaultHandlerContext(String name, Handler handler, DrasylConfig config, Pipeline pipeline, io.reactivex.rxjava3.core.Scheduler scheduler, Identity identity, TypeValidator inboundValidator, TypeValidator outboundValidator)
Generates a new default handler context for the givenhandler
.- Parameters:
name
- the name of the handlerhandler
- the handlerconfig
- the config of the drasyl nodepipeline
- the corresponding pipeline objectscheduler
- the corresponding scheduleridentity
- the identity of the corresponding nodeinboundValidator
- the inbound validator of the pipelineoutboundValidator
- the outbound validator of the pipeline
-
-
Method Detail
-
handler
public Handler handler()
Description copied from interface:HandlerContext
Returns the associatedHandler
.- Returns:
- the associated
Handler
-
name
public String name()
Description copied from interface:HandlerContext
Returns the name of theHandler
.- Specified by:
name
in interfaceHandlerContext
- Returns:
- the name of the
Handler
-
fireExceptionCaught
public HandlerContext fireExceptionCaught(Exception cause)
Description copied from interface:HandlerContext
Received anThrowable
in one of the inbound operations.This will result in having the
Handler.exceptionCaught(HandlerContext, Exception)
method called of the nextHandler
contained in thePipeline
.- Specified by:
fireExceptionCaught
in interfaceHandlerContext
- Parameters:
cause
- the cause
-
fireRead
public CompletableFuture<Void> fireRead(Address sender, Object msg, CompletableFuture<Void> future)
Description copied from interface:HandlerContext
Received a message.This will result in having the
Handler.read(HandlerContext, Address, Object, CompletableFuture)
method called of the nextHandler
contained in thePipeline
.- Specified by:
fireRead
in interfaceHandlerContext
- Parameters:
sender
- the sender of the messagemsg
- the messagefuture
- the future of the message
-
fireEventTriggered
public CompletableFuture<Void> fireEventTriggered(Event event, CompletableFuture<Void> future)
Description copied from interface:HandlerContext
Received an event.This will result in having the
Handler.eventTriggered(HandlerContext, Event, CompletableFuture)
method called of the nextHandler
contained in thePipeline
.- Specified by:
fireEventTriggered
in interfaceHandlerContext
- Parameters:
event
- the eventfuture
- the future of the message
-
write
public CompletableFuture<Void> write(Address recipient, Object msg, CompletableFuture<Void> future)
Description copied from interface:HandlerContext
Request to write a message via thisHandlerContext
through thePipeline
.- Specified by:
write
in interfaceHandlerContext
- Parameters:
recipient
- the recipient of the messagemsg
- the messagefuture
- the future of the message
-
config
public DrasylConfig config()
Description copied from interface:HandlerContext
Returns the correspondingDrasylConfig
.- Specified by:
config
in interfaceHandlerContext
- Returns:
- the corresponding
DrasylConfig
-
pipeline
public Pipeline pipeline()
Description copied from interface:HandlerContext
Returns the correspondingPipeline
.- Specified by:
pipeline
in interfaceHandlerContext
- Returns:
- the corresponding
Pipeline
-
scheduler
public io.reactivex.rxjava3.core.Scheduler scheduler()
Description copied from interface:HandlerContext
Implementation Note: This method should always return a scheduler, that differs from the normal pipeline scheduler. E.g. theDrasylScheduler.getInstanceHeavy()
- Specified by:
scheduler
in interfaceHandlerContext
- Returns:
- the corresponding
Scheduler
-
identity
public Identity identity()
Description copied from interface:HandlerContext
Returns the identifier of this node.- Specified by:
identity
in interfaceHandlerContext
- Returns:
- the identity of this node
-
inboundValidator
public TypeValidator inboundValidator()
Description copied from interface:HandlerContext
Returns the inbound type validator of this pipeline.- Specified by:
inboundValidator
in interfaceHandlerContext
- Returns:
- the inbound type validator
-
outboundValidator
public TypeValidator outboundValidator()
Description copied from interface:HandlerContext
Returns the outbound type validator of this pipeline.- Specified by:
outboundValidator
in interfaceHandlerContext
- Returns:
- the outbound type validator
-
-