distributed-process-execution-0.1.5.0: Execution Framework for The Cloud Haskell Application Platform
Copyright(c) Tim Watson 2013 - 2014
LicenseBSD3 (see the file LICENSE)
MaintainerTim Watson <[email protected]>
Stabilityexperimental
Portabilitynon-portable (requires concurrency)
Safe HaskellNone
LanguageHaskell2010

Control.Distributed.Process.Execution

Description

Inter-Process Traffic Management

The Execution Framework provides tools for load regulation, workload shedding and remote hand-off. The currently implementation provides only a subset of the plumbing required, comprising tools for event management, mailbox buffering and message routing.

Synopsis

Mailbox Buffering

statistics :: Mailbox -> Process MailboxStats Source #

Obtain statistics (from/to anywhere) about a mailbox.

active :: Mailbox -> Filter -> Process () Source #

Instructs the mailbox to send a Delivery as soon as any mail is available, or immediately (if the buffer already contains data).

NB: signals are only delivered to the mailbox's owning process.

data BufferType Source #

Describes the different types of buffer.

Constructors

Queue

FIFO buffer, limiter drops the eldest message (queue head)

Stack

unordered buffer, limiter drops the newest (top) message

Ring

FIFO buffer, limiter refuses (i.e., drops) new messages

data Delivery Source #

Mail delivery.

Constructors

Delivery 

Fields

Instances

Instances details
Binary Delivery Source # 
Instance details

Defined in Control.Distributed.Process.Execution.Mailbox

Methods

put :: Delivery -> Put #

get :: Get Delivery #

putList :: [Delivery] -> Put #

Generic Delivery Source # 
Instance details

Defined in Control.Distributed.Process.Execution.Mailbox

Associated Types

type Rep Delivery 
Instance details

Defined in Control.Distributed.Process.Execution.Mailbox

type Rep Delivery = D1 ('MetaData "Delivery" "Control.Distributed.Process.Execution.Mailbox" "distributed-process-execution-0.1.5.0-9ft8kt71jqJFQLQ1PfEqJf" 'False) (C1 ('MetaCons "Delivery" 'PrefixI 'True) ((S1 ('MetaSel ('Just "box") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Mailbox) :*: S1 ('MetaSel ('Just "messages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Message])) :*: (S1 ('MetaSel ('Just "count") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "totalDropped") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))))

Methods

from :: Delivery -> Rep Delivery x #

to :: Rep Delivery x -> Delivery #

type Rep Delivery Source # 
Instance details

Defined in Control.Distributed.Process.Execution.Mailbox

type Rep Delivery = D1 ('MetaData "Delivery" "Control.Distributed.Process.Execution.Mailbox" "distributed-process-execution-0.1.5.0-9ft8kt71jqJFQLQ1PfEqJf" 'False) (C1 ('MetaCons "Delivery" 'PrefixI 'True) ((S1 ('MetaSel ('Just "box") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Mailbox) :*: S1 ('MetaSel ('Just "messages") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Message])) :*: (S1 ('MetaSel ('Just "count") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "totalDropped") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))))

type Limit = Integer Source #

Represents the maximum number of messages the internal buffer can hold.