| Copyright | © Jonathan Dowland 2021 |
|---|---|
| License | Apache 2.0 |
| Maintainer | jon@dow.land |
| Stability | experimental |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Striot.StreamGraph
Description
StrIoT StreamGraph type, used for representing a stream-processing program,
such that it can be re-written, partitioned and translated into code in terms
of FunctionalIoTTypes for execution on distributed nodes.
Synopsis
- type StreamGraph = Graph StreamVertex
- data StreamOperator
- data StreamVertex = StreamVertex {
- vertexId :: Int
- operator :: StreamOperator
- parameters :: [ExpQ]
- intype :: String
- outtype :: String
- serviceTime :: Double
- type PartitionedGraph = ([StreamGraph], StreamGraph)
- simpleStream :: [(StreamOperator, [ExpQ], String, Double)] -> Graph StreamVertex
Documentation
type StreamGraph = Graph StreamVertex Source #
A graph representation of a stream-processing program.
data StreamOperator Source #
An enumeration of the possible stream operators within a stream-processing program,
as well as Source and Sink to represent the ingress and egress points of programs.
Instances
| Arbitrary StreamOperator Source # | |
Defined in Striot.StreamGraph | |
| Show StreamOperator Source # | |
Defined in Striot.StreamGraph Methods showsPrec :: Int -> StreamOperator -> ShowS # show :: StreamOperator -> String # showList :: [StreamOperator] -> ShowS # | |
| Eq StreamOperator Source # | |
Defined in Striot.StreamGraph Methods (==) :: StreamOperator -> StreamOperator -> Bool # (/=) :: StreamOperator -> StreamOperator -> Bool # | |
| Ord StreamOperator Source # | |
Defined in Striot.StreamGraph Methods compare :: StreamOperator -> StreamOperator -> Ordering # (<) :: StreamOperator -> StreamOperator -> Bool # (<=) :: StreamOperator -> StreamOperator -> Bool # (>) :: StreamOperator -> StreamOperator -> Bool # (>=) :: StreamOperator -> StreamOperator -> Bool # max :: StreamOperator -> StreamOperator -> StreamOperator # min :: StreamOperator -> StreamOperator -> StreamOperator # | |
data StreamVertex Source #
The StreamOperator and associated information required to encode a stream-processing
program into a Graph. Each distinct StreamVertex within a StreamGraph should have a
unique vertexId to ensure that they can be distinguished. For simple path-style graphs,
the IDs should be in ascending order.
Constructors
| StreamVertex | |
Fields
| |
Instances
| Arbitrary StreamGraph Source # | |
Defined in Striot.StreamGraph | |
| Arbitrary StreamVertex Source # | |
Defined in Striot.StreamGraph | |
| Show StreamVertex Source # | |
Defined in Striot.StreamGraph Methods showsPrec :: Int -> StreamVertex -> ShowS # show :: StreamVertex -> String # showList :: [StreamVertex] -> ShowS # | |
| Eq StreamVertex Source # | |
Defined in Striot.StreamGraph | |
| Ord StreamVertex Source # | |
Defined in Striot.StreamGraph Methods compare :: StreamVertex -> StreamVertex -> Ordering # (<) :: StreamVertex -> StreamVertex -> Bool # (<=) :: StreamVertex -> StreamVertex -> Bool # (>) :: StreamVertex -> StreamVertex -> Bool # (>=) :: StreamVertex -> StreamVertex -> Bool # max :: StreamVertex -> StreamVertex -> StreamVertex # min :: StreamVertex -> StreamVertex -> StreamVertex # | |
type PartitionedGraph = ([StreamGraph], StreamGraph) Source #
A collection of partitioned StreamGraphs
simpleStream :: [(StreamOperator, [ExpQ], String, Double)] -> Graph StreamVertex Source #
Convenience function for specifying a simple path-style of stream
processing program, with no merge or join operations. The list of tuples are
converted into a series of connected Stream Vertices in a Graph. The tuple
arguments are the relevant StreamOperator for the node; the parameters;the
*output* type and the service time. The other parameters to StreamVertex
are inferred from the neighbouring tuples. Unique and ascending vertexId
values are assigned.