spreadflow_core.remote module

Protocol and protocol factories allowing communication with remote instances.

class spreadflow_core.remote.ClientEndpointMixin

Bases: object

A mixin providing methods to components relying on twisted client endpoints.

strport

string

The strport description specifying the server to connect to or the process to start.

peer

IProtocol

The protocol instance when connected to the endpoint (managed by this mixin). Use it from a subclass to send messages to the peer.

attach(*args, **kwargs)
detach(*args, **kwargs)
get_client_protocol_factory(scheduler, reactor)

Returns a client protocol factory instance.

Must be overridden by a subclass.

peer = None
strport = None
class spreadflow_core.remote.MessageHandler(scheduler, portmap)

Bases: object

A simple default message handler.

Resolves output ports according the port map and forwards incoming messages to the scheduler.

dispatch(port, item)
class spreadflow_core.remote.SchedulerClientFactory(builder_factory=None, handler=None, parser_factory=None)

Bases: twisted.internet.protocol.ClientFactory

Client protocol factory for remote schedulers.

buildProtocol(addr)
class spreadflow_core.remote.SchedulerProtocol

Bases: twisted.internet.protocol.Protocol

A client protocol suitable to control a remote scheduler.

builder

A message builder for outgoing messages.

handler

A message handler for incoming messages.

handler

A message parser for incoming messages.

builder = None
connectionLost(reason=<twisted.python.failure.Failure twisted.internet.error.ConnectionDone: Connection was closed cleanly.>)
dataReceived(data)
handler = None
loseConnection()

Stop the remote scheduler and disconnect the transport.

Returns
defer.Deferred: Fires when the connection has been closed.
parser = None
sendMessage(port, item)

Send an outgoing message to the specified input port on the remote scheduler.

class spreadflow_core.remote.SchedulerServerFactory(scheduler, builder_factory=None, handler=None, parser_factory=None)

Bases: twisted.internet.protocol.ServerFactory

Server protocol factory for remote schedulers.

buildProtocol(addr)
class spreadflow_core.remote.SchedulerServerProtocol

Bases: spreadflow_core.remote.SchedulerProtocol

readConnectionLost()
scheduler = None
writeConnectionLost()
class spreadflow_core.remote.ServerEndpointMixin

Bases: object

A mixin providing methods to components relying on twisted server endpoints.

strport

string

The strport description specifying the server to connect to or the process to start.

peer

IProtocol

The protocol instance when connected to the endpoint (managed by this mixin). Use it from a subclass to send messages to the peer.

attach(*args, **kwargs)
detach(*args, **kwargs)
get_server_protocol_factory(scheduler, reactor)

Returns a server protocol factory instance.

Must be overridden by a subclass.

peer = None
strport = None