packages feed

haal-models-0.1.0.0: src/Haal/Models/MQTT/HbmqttTwoClient.hs

-- Generated by haal-gen. Do not edit manually.
module Haal.Models.MQTT.HbmqttTwoClient
    ( HbmqttTwoClientInput (..)
    , HbmqttTwoClientOutput (..)
    , hbmqttTwoClient
    ) where

import qualified Data.Set as Set
import Haal.Automaton.MealyAutomaton (MealyAutomaton, mkMealyAutomaton)

data HbmqttTwoClientInput
    = In_ConnectC2
    | In_ConnectC1WithWill
    | In_PublishQoS0C2
    | In_PublishQoS1C1
    | In_SubscribeC1
    | In_UnSubScribeC1
    | In_SubscribeC2
    | In_UnSubScribeC2
    | In_DisconnectTCPC1
    deriving (Show, Eq, Ord, Enum, Bounded)

data HbmqttTwoClientOutput
    = Out_C1_ConnectionClosed_client_close___c2_ConnAck
    | Out_C1_ConnAck__c2_ConnectionClosed_client_close
    | Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    | Out_Empty__c2_ConnAck
    | Out_Empty__c2_ConnectionClosed_client_close
    | Out_C1_PubAck__c2_ConnectionClosed_client_close
    | Out_C1_SubAck__c2_ConnectionClosed_client_close
    | Out_C1_UnSubAck__c2_ConnectionClosed_client_close
    | Out_Empty__Empty
    | Out_C1_PubAck__Empty
    | Out_C1_SubAck__Empty
    | Out_C1_UnSubAck__Empty
    | Out_Empty__c2_SubAck
    | Out_Empty__c2_UnSubAck
    | Out_C1_ConnectionClosed_client_close___Empty
    | Out_C1_ConnAck__Empty
    | Out_C1_ConnectionClosed_client_close___c2_SubAck
    | Out_C1_ConnectionClosed_client_close___c2_UnSubAck
    | Out_Pub_c1_my_topic_messageQos0___Empty
    | Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
    | Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
    | Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
    | Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
    | Out_Empty__Pub_c2_my_topic_messageQos0
    | Out_C1_PubAck__Pub_c2_my_topic_messageQos1
    | Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
    | Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
    deriving (Show, Eq, Ord, Enum, Bounded)

hbmqttTwoClient :: MealyAutomaton Int HbmqttTwoClientInput HbmqttTwoClientOutput
hbmqttTwoClient = mkMealyAutomaton delta lambda (Set.fromList [0..8]) 0
  where
    delta 0 In_ConnectC2 = 1
    delta 0 In_ConnectC1WithWill = 2
    delta 0 In_PublishQoS0C2 = 0
    delta 0 In_PublishQoS1C1 = 0
    delta 0 In_SubscribeC1 = 0
    delta 0 In_UnSubScribeC1 = 0
    delta 0 In_SubscribeC2 = 0
    delta 0 In_UnSubScribeC2 = 0
    delta 0 In_DisconnectTCPC1 = 0
    delta 2 In_ConnectC2 = 3
    delta 2 In_ConnectC1WithWill = 2
    delta 2 In_PublishQoS0C2 = 2
    delta 2 In_PublishQoS1C1 = 2
    delta 2 In_SubscribeC1 = 4
    delta 2 In_UnSubScribeC1 = 2
    delta 2 In_SubscribeC2 = 2
    delta 2 In_UnSubScribeC2 = 2
    delta 2 In_DisconnectTCPC1 = 0
    delta 3 In_ConnectC2 = 3
    delta 3 In_ConnectC1WithWill = 3
    delta 3 In_PublishQoS0C2 = 3
    delta 3 In_PublishQoS1C1 = 3
    delta 3 In_SubscribeC1 = 5
    delta 3 In_UnSubScribeC1 = 3
    delta 3 In_SubscribeC2 = 6
    delta 3 In_UnSubScribeC2 = 3
    delta 3 In_DisconnectTCPC1 = 1
    delta 1 In_ConnectC2 = 1
    delta 1 In_ConnectC1WithWill = 3
    delta 1 In_PublishQoS0C2 = 1
    delta 1 In_PublishQoS1C1 = 1
    delta 1 In_SubscribeC1 = 1
    delta 1 In_UnSubScribeC1 = 1
    delta 1 In_SubscribeC2 = 7
    delta 1 In_UnSubScribeC2 = 1
    delta 1 In_DisconnectTCPC1 = 1
    delta 5 In_ConnectC2 = 5
    delta 5 In_ConnectC1WithWill = 5
    delta 5 In_PublishQoS0C2 = 5
    delta 5 In_PublishQoS1C1 = 5
    delta 5 In_SubscribeC1 = 5
    delta 5 In_UnSubScribeC1 = 3
    delta 5 In_SubscribeC2 = 8
    delta 5 In_UnSubScribeC2 = 5
    delta 5 In_DisconnectTCPC1 = 1
    delta 8 In_ConnectC2 = 8
    delta 8 In_ConnectC1WithWill = 8
    delta 8 In_PublishQoS0C2 = 8
    delta 8 In_PublishQoS1C1 = 8
    delta 8 In_SubscribeC1 = 8
    delta 8 In_UnSubScribeC1 = 6
    delta 8 In_SubscribeC2 = 8
    delta 8 In_UnSubScribeC2 = 5
    delta 8 In_DisconnectTCPC1 = 7
    delta 6 In_ConnectC2 = 6
    delta 6 In_ConnectC1WithWill = 6
    delta 6 In_PublishQoS0C2 = 6
    delta 6 In_PublishQoS1C1 = 6
    delta 6 In_SubscribeC1 = 8
    delta 6 In_UnSubScribeC1 = 6
    delta 6 In_SubscribeC2 = 6
    delta 6 In_UnSubScribeC2 = 3
    delta 6 In_DisconnectTCPC1 = 7
    delta 7 In_ConnectC2 = 7
    delta 7 In_ConnectC1WithWill = 6
    delta 7 In_PublishQoS0C2 = 7
    delta 7 In_PublishQoS1C1 = 7
    delta 7 In_SubscribeC1 = 7
    delta 7 In_UnSubScribeC1 = 7
    delta 7 In_SubscribeC2 = 7
    delta 7 In_UnSubScribeC2 = 1
    delta 7 In_DisconnectTCPC1 = 7
    delta 4 In_ConnectC2 = 5
    delta 4 In_ConnectC1WithWill = 4
    delta 4 In_PublishQoS0C2 = 4
    delta 4 In_PublishQoS1C1 = 4
    delta 4 In_SubscribeC1 = 4
    delta 4 In_UnSubScribeC1 = 2
    delta 4 In_SubscribeC2 = 4
    delta 4 In_UnSubScribeC2 = 4
    delta 4 In_DisconnectTCPC1 = 0
    delta _ _ = error "haal-gen: undefined transition"
    lambda 0 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___c2_ConnAck
    lambda 0 In_ConnectC1WithWill = Out_C1_ConnAck__c2_ConnectionClosed_client_close
    lambda 0 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda 0 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda 0 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda 0 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda 0 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda 0 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda 0 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda 2 In_ConnectC2 = Out_Empty__c2_ConnAck
    lambda 2 In_ConnectC1WithWill = Out_Empty__c2_ConnectionClosed_client_close
    lambda 2 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
    lambda 2 In_PublishQoS1C1 = Out_C1_PubAck__c2_ConnectionClosed_client_close
    lambda 2 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
    lambda 2 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
    lambda 2 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
    lambda 2 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
    lambda 2 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda 3 In_ConnectC2 = Out_Empty__Empty
    lambda 3 In_ConnectC1WithWill = Out_Empty__Empty
    lambda 3 In_PublishQoS0C2 = Out_Empty__Empty
    lambda 3 In_PublishQoS1C1 = Out_C1_PubAck__Empty
    lambda 3 In_SubscribeC1 = Out_C1_SubAck__Empty
    lambda 3 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
    lambda 3 In_SubscribeC2 = Out_Empty__c2_SubAck
    lambda 3 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
    lambda 3 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 1 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 1 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
    lambda 1 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 1 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 1 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 1 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 1 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
    lambda 1 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
    lambda 1 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 5 In_ConnectC2 = Out_Empty__Empty
    lambda 5 In_ConnectC1WithWill = Out_Empty__Empty
    lambda 5 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Empty
    lambda 5 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Empty
    lambda 5 In_SubscribeC1 = Out_C1_SubAck__Empty
    lambda 5 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
    lambda 5 In_SubscribeC2 = Out_Empty__c2_SubAck
    lambda 5 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
    lambda 5 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 8 In_ConnectC2 = Out_Empty__Empty
    lambda 8 In_ConnectC1WithWill = Out_Empty__Empty
    lambda 8 In_PublishQoS0C2 = Out_Pub_c1_my_topic_messageQos0___Pub_c2_my_topic_messageQos0
    lambda 8 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__Pub_c2_my_topic_messageQos1
    lambda 8 In_SubscribeC1 = Out_C1_SubAck__Empty
    lambda 8 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
    lambda 8 In_SubscribeC2 = Out_Empty__c2_SubAck
    lambda 8 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
    lambda 8 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
    lambda 6 In_ConnectC2 = Out_Empty__Empty
    lambda 6 In_ConnectC1WithWill = Out_Empty__Empty
    lambda 6 In_PublishQoS0C2 = Out_Empty__Pub_c2_my_topic_messageQos0
    lambda 6 In_PublishQoS1C1 = Out_C1_PubAck__Pub_c2_my_topic_messageQos1
    lambda 6 In_SubscribeC1 = Out_C1_SubAck__Empty
    lambda 6 In_UnSubScribeC1 = Out_C1_UnSubAck__Empty
    lambda 6 In_SubscribeC2 = Out_Empty__c2_SubAck
    lambda 6 In_UnSubScribeC2 = Out_Empty__c2_UnSubAck
    lambda 6 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_bye
    lambda 7 In_ConnectC2 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 7 In_ConnectC1WithWill = Out_C1_ConnAck__Empty
    lambda 7 In_PublishQoS0C2 = Out_C1_ConnectionClosed_client_close___Pub_c2_my_topic_messageQos0
    lambda 7 In_PublishQoS1C1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 7 In_SubscribeC1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 7 In_UnSubScribeC1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 7 In_SubscribeC2 = Out_C1_ConnectionClosed_client_close___c2_SubAck
    lambda 7 In_UnSubScribeC2 = Out_C1_ConnectionClosed_client_close___c2_UnSubAck
    lambda 7 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___Empty
    lambda 4 In_ConnectC2 = Out_Empty__c2_ConnAck
    lambda 4 In_ConnectC1WithWill = Out_Empty__c2_ConnectionClosed_client_close
    lambda 4 In_PublishQoS0C2 = Out_Empty__c2_ConnectionClosed_client_close
    lambda 4 In_PublishQoS1C1 = Out_Pub_c1_my_topic_messageQos1___c1_PubAck__c2_ConnectionClosed_client_close
    lambda 4 In_SubscribeC1 = Out_C1_SubAck__c2_ConnectionClosed_client_close
    lambda 4 In_UnSubScribeC1 = Out_C1_UnSubAck__c2_ConnectionClosed_client_close
    lambda 4 In_SubscribeC2 = Out_Empty__c2_ConnectionClosed_client_close
    lambda 4 In_UnSubScribeC2 = Out_Empty__c2_ConnectionClosed_client_close
    lambda 4 In_DisconnectTCPC1 = Out_C1_ConnectionClosed_client_close___c2_ConnectionClosed_client_close
    lambda _ _ = error "haal-gen: undefined transition"