Copyright | © Jonathan Dowland 2021 |
---|---|
License | Apache 2.0 |
Maintainer | jon@dow.land |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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 arbitrary :: Gen StreamOperator shrink :: StreamOperator -> [StreamOperator] | |
Show StreamOperator Source # | |
Defined in Striot.StreamGraph showsPrec :: Int -> StreamOperator -> ShowS # show :: StreamOperator -> String # showList :: [StreamOperator] -> ShowS # | |
Eq StreamOperator Source # | |
Defined in Striot.StreamGraph (==) :: StreamOperator -> StreamOperator -> Bool # (/=) :: StreamOperator -> StreamOperator -> Bool # | |
Ord StreamOperator Source # | |
Defined in Striot.StreamGraph 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.
StreamVertex | |
|
Instances
Arbitrary StreamGraph Source # | |
Defined in Striot.StreamGraph arbitrary :: Gen StreamGraph shrink :: StreamGraph -> [StreamGraph] | |
Arbitrary StreamVertex Source # | |
Defined in Striot.StreamGraph arbitrary :: Gen StreamVertex shrink :: StreamVertex -> [StreamVertex] | |
Show StreamVertex Source # | |
Defined in Striot.StreamGraph showsPrec :: Int -> StreamVertex -> ShowS # show :: StreamVertex -> String # showList :: [StreamVertex] -> ShowS # | |
Eq StreamVertex Source # | |
Defined in Striot.StreamGraph (==) :: StreamVertex -> StreamVertex -> Bool # (/=) :: StreamVertex -> StreamVertex -> Bool # | |
Ord StreamVertex Source # | |
Defined in Striot.StreamGraph 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.