Package ca.uqac.lif.cep.http
Class HttpDownstreamGateway
java.lang.Object
ca.uqac.lif.cep.Processor
ca.uqac.lif.cep.SynchronousProcessor
ca.uqac.lif.cep.tmf.Source
ca.uqac.lif.cep.http.HttpDownstreamGateway
- All Implemented Interfaces:
ca.uqac.lif.cep.Contextualizable,ca.uqac.lif.cep.Duplicable,ca.uqac.lif.cep.DuplicableProcessor
public class HttpDownstreamGateway
extends ca.uqac.lif.cep.tmf.Source
Outputs character strings received over the network from an upstream
connection. A
HttpDownstreamGateway listens to
HTTP requests on a given TCP port. When such a request comes in, it
extracts the payload from that request, and pushes it downstream as
a String event.
Graphically, this processor is represented as:
This processor can also be pulled; in such a case, if a pull URL has been specified, the processor sends an HTTP request to that URL, and uses the response's payload as the next event.
The downstream gateway generally works in tandem with an upstream gateway, which works in reverse.
- Author:
- Sylvain Hallé
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class ca.uqac.lif.cep.SynchronousProcessor
ca.uqac.lif.cep.SynchronousProcessor.InputPushable, ca.uqac.lif.cep.SynchronousProcessor.OutputPullableNested classes/interfaces inherited from class ca.uqac.lif.cep.Processor
ca.uqac.lif.cep.Processor.InternalProcessorState -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ca.uqac.lif.jerrydog.RequestCallback.MethodThe HTTP methodprotected intThe TCP port on which the gateway listens for requestsprotected StringThe URL to call when this processor is asked for a new event.protected booleanWhether this processor makes a call topush()when a request is receivedprotected LockA lock to access the queueA queue of character strings received over the networkprotected ca.uqac.lif.jerrydog.ServerAn internal instance of HTTP serverprotected StringThe URL on which the gateway listens for requestsFields inherited from class ca.uqac.lif.cep.SynchronousProcessor
m_inputPushables, m_outputPullables, m_tempQueueFields inherited from class ca.uqac.lif.cep.Processor
m_context, m_hasBeenNotifiedOfEndOfTrace, m_inputArity, m_inputPullables, m_inputQueues, m_notifiedEndOfTraceDownstream, m_outputArity, m_outputPushables, m_outputQueues, MAX_PULL_RETRIES, s_versionString -
Constructor Summary
ConstructorsConstructorDescriptionHttpDownstreamGateway(int port, String url, ca.uqac.lif.jerrydog.RequestCallback.Method m) Creates a new downstream gateway.HttpDownstreamGateway(int port, String url, ca.uqac.lif.jerrydog.RequestCallback.Method m, String pull_url) Creates a new downstream gateway. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanduplicate(boolean with_state) setPushOnReceive(boolean b) voidstart()voidstop()Methods inherited from class ca.uqac.lif.cep.tmf.Source
pushMethods inherited from class ca.uqac.lif.cep.SynchronousProcessor
getPullableOutput, getPushableInputMethods inherited from class ca.uqac.lif.cep.Processor
allNotifiedEndOfTrace, allNull, copyInputQueue, copyOutputQueue, duplicate, duplicateInto, equals, getAt, getContext, getContext, getEmptyQueue, getId, getInputArity, getInputQueue, getInputType, getInputTypesFor, getOutputArity, getOutputQueue, getOutputType, getPullableInput, getPullableOutput, getPushableInput, getPushableOutput, hashCode, leftShift, newContext, onEndOfTrace, or, or, or, printState, readState, reset, rightShift, setContext, setContext, setPullableInput, setPushableOutput, startAll, stopAll
-
Field Details
-
m_receivedStrings
A queue of character strings received over the network -
m_queueLock
A lock to access the queue -
m_port
protected int m_portThe TCP port on which the gateway listens for requests -
m_server
protected ca.uqac.lif.jerrydog.Server m_serverAn internal instance of HTTP server -
m_url
The URL on which the gateway listens for requests -
m_method
protected ca.uqac.lif.jerrydog.RequestCallback.Method m_methodThe HTTP method -
m_pushOnReceive
protected boolean m_pushOnReceiveWhether this processor makes a call topush()when a request is received -
m_pullUrl
The URL to call when this processor is asked for a new event. This can be null; in such a case, the processor won't do anything when being pulled.
-
-
Constructor Details
-
HttpDownstreamGateway
Creates a new downstream gateway.- Parameters:
port- The TCP port to listen tourl- The URL to respond tom- The HTTP method (GET, POST, etc.) to respond to
-
HttpDownstreamGateway
public HttpDownstreamGateway(int port, String url, ca.uqac.lif.jerrydog.RequestCallback.Method m, String pull_url) Creates a new downstream gateway.- Parameters:
port- The TCP port to listen tourl- The URL to respond tom- The HTTP method (GET, POST, etc.) to respond topull_url- The URL to call when this processor is asked for a new event. This can be null; in such a case, the processor won't do anything when being pulled.
-
-
Method Details
-
setPushOnReceive
-
start
public void start() throws ca.uqac.lif.cep.ProcessorException- Overrides:
startin classca.uqac.lif.cep.Processor- Throws:
ca.uqac.lif.cep.ProcessorException
-
stop
public void stop() throws ca.uqac.lif.cep.ProcessorException- Overrides:
stopin classca.uqac.lif.cep.Processor- Throws:
ca.uqac.lif.cep.ProcessorException
-
compute
protected boolean compute(Object[] inputs, Queue<Object[]> outputs) throws ca.uqac.lif.cep.ProcessorException - Specified by:
computein classca.uqac.lif.cep.SynchronousProcessor- Throws:
ca.uqac.lif.cep.ProcessorException
-
duplicate
- Specified by:
duplicatein interfaceca.uqac.lif.cep.Duplicable- Specified by:
duplicatein classca.uqac.lif.cep.Processor
-
