| Copyright | (c) Dustin Sallings 2019 |
|---|---|
| License | BSD3 |
| Maintainer | dustin@spy.net |
| Stability | experimental |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Network.MQTT.Types
Description
MQTT Types.
Synopsis
- data LastWill = LastWill {
- _willRetain :: Bool
- _willQoS :: QoS
- _willTopic :: ByteString
- _willMsg :: ByteString
- _willProps :: [Property]
- data MQTTPkt
- = ConnPkt ConnectRequest
- | ConnACKPkt ConnACKFlags
- | PublishPkt PublishRequest
- | PubACKPkt PubACK
- | PubRECPkt PubREC
- | PubRELPkt PubREL
- | PubCOMPPkt PubCOMP
- | SubscribePkt SubscribeRequest
- | SubACKPkt SubscribeResponse
- | UnsubscribePkt UnsubscribeRequest
- | UnsubACKPkt UnsubscribeResponse
- | PingPkt
- | PongPkt
- | DisconnectPkt DisconnectRequest
- | AuthPkt AuthRequest
- data QoS
- data ConnectRequest = ConnectRequest {}
- connectRequest :: ConnectRequest
- data ConnACKFlags = ConnACKFlags Bool ConnACKRC [Property]
- data ConnACKRC
- = ConnAccepted
- | UnacceptableProtocol
- | IdentifierRejected
- | ServerUnavailable
- | BadCredentials
- | NotAuthorized
- | ConnUnspecifiedError
- | ConnMalformedPacket
- | ConnProtocolError
- | ConnImplementationSpecificError
- | ConnUnsupportedProtocolVersion
- | ConnClientIdentifierNotValid
- | ConnBadUserNameOrPassword
- | ConnNotAuthorized
- | ConnServerUnavailable
- | ConnServerBusy
- | ConnBanned
- | ConnBadAuthenticationMethod
- | ConnTopicNameInvalid
- | ConnPacketTooLarge
- | ConnQuotaExceeded
- | ConnPayloadFormatInvalid
- | ConnRetainNotSupported
- | ConnQosNotSupported
- | ConnUseAnotherServer
- | ConnServerMoved
- | ConnConnectionRateExceeded
- data PublishRequest = PublishRequest {
- _pubDup :: Bool
- _pubQoS :: QoS
- _pubRetain :: Bool
- _pubTopic :: ByteString
- _pubPktID :: Word16
- _pubBody :: ByteString
- _pubProps :: [Property]
- data PubACK = PubACK Word16 Word8 [Property]
- data PubREC = PubREC Word16 Word8 [Property]
- data PubREL = PubREL Word16 Word8 [Property]
- data PubCOMP = PubCOMP Word16 Word8 [Property]
- data ProtocolLevel
- data Property
- = PropPayloadFormatIndicator Word8
- | PropMessageExpiryInterval Word32
- | PropContentType ByteString
- | PropResponseTopic ByteString
- | PropCorrelationData ByteString
- | PropSubscriptionIdentifier Int
- | PropSessionExpiryInterval Word32
- | PropAssignedClientIdentifier ByteString
- | PropServerKeepAlive Word16
- | PropAuthenticationMethod ByteString
- | PropAuthenticationData ByteString
- | PropRequestProblemInformation Word8
- | PropWillDelayInterval Word32
- | PropRequestResponseInformation Word8
- | PropResponseInformation ByteString
- | PropServerReference ByteString
- | PropReasonString ByteString
- | PropReceiveMaximum Word16
- | PropTopicAliasMaximum Word16
- | PropTopicAlias Word16
- | PropMaximumQoS Word8
- | PropRetainAvailable Word8
- | PropUserProperty ByteString ByteString
- | PropMaximumPacketSize Word32
- | PropWildcardSubscriptionAvailable Word8
- | PropSubscriptionIdentifierAvailable Word8
- | PropSharedSubscriptionAvailable Word8
- data AuthRequest = AuthRequest Word8 [Property]
- data SubscribeRequest = SubscribeRequest Word16 [(ByteString, SubOptions)] [Property]
- data SubOptions = SubOptions {}
- subOptions :: SubOptions
- data SubscribeResponse = SubscribeResponse Word16 [Either SubErr QoS] [Property]
- data SubErr
- data RetainHandling
- data DisconnectRequest = DisconnectRequest DiscoReason [Property]
- data UnsubscribeRequest = UnsubscribeRequest Word16 [ByteString] [Property]
- data UnsubscribeResponse = UnsubscribeResponse Word16 [Property] [UnsubStatus]
- data UnsubStatus
- data DiscoReason
- = DiscoNormalDisconnection
- | DiscoDisconnectWithWill
- | DiscoUnspecifiedError
- | DiscoMalformedPacket
- | DiscoProtocolError
- | DiscoImplementationSpecificError
- | DiscoNotAuthorized
- | DiscoServerBusy
- | DiscoServershuttingDown
- | DiscoKeepAliveTimeout
- | DiscoSessiontakenOver
- | DiscoTopicFilterInvalid
- | DiscoTopicNameInvalid
- | DiscoReceiveMaximumExceeded
- | DiscoTopicAliasInvalid
- | DiscoPacketTooLarge
- | DiscoMessageRateTooHigh
- | DiscoQuotaExceeded
- | DiscoAdministrativeAction
- | DiscoPayloadFormatInvalid
- | DiscoRetainNotSupported
- | DiscoQoSNotSupported
- | DiscoUseAnotherServer
- | DiscoServerMoved
- | DiscoSharedSubscriptionsNotSupported
- | DiscoConnectionRateExceeded
- | DiscoMaximumConnectTime
- | DiscoSubscriptionIdentifiersNotSupported
- | DiscoWildcardSubscriptionsNotSupported
- parsePacket :: ProtocolLevel -> Parser MQTTPkt
- class ByteMe a where
- toByteString :: ProtocolLevel -> a -> ByteString
- encodeLength :: Int -> [Word8]
- parseHdrLen :: Parser Int
- parseProperty :: Parser Property
- parseProperties :: ProtocolLevel -> Parser [Property]
- bsProps :: ProtocolLevel -> [Property] -> ByteString
- parseSubOptions :: Parser SubOptions
- class ByteSize a where
Documentation
An MQTT Will message.
Constructors
| LastWill | |
Fields
| |
Constructors
Instances
| Eq MQTTPkt Source # | |
| Show MQTTPkt Source # | |
| ByteMe MQTTPkt Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> MQTTPkt -> [Word8] toByteString :: ProtocolLevel -> MQTTPkt -> ByteString Source # | |
QoS values for publishing and subscribing.
data ConnectRequest Source #
Constructors
| ConnectRequest | |
Fields
| |
Instances
| Eq ConnectRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: ConnectRequest -> ConnectRequest -> Bool # (/=) :: ConnectRequest -> ConnectRequest -> Bool # | |
| Show ConnectRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> ConnectRequest -> ShowS # show :: ConnectRequest -> String # showList :: [ConnectRequest] -> ShowS # | |
| ByteMe ConnectRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> ConnectRequest -> [Word8] toByteString :: ProtocolLevel -> ConnectRequest -> ByteString Source # | |
data ConnACKFlags Source #
Constructors
| ConnACKFlags Bool ConnACKRC [Property] |
Instances
| Eq ConnACKFlags Source # | |
Defined in Network.MQTT.Types | |
| Show ConnACKFlags Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> ConnACKFlags -> ShowS # show :: ConnACKFlags -> String # showList :: [ConnACKFlags] -> ShowS # | |
| ByteMe ConnACKFlags Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> ConnACKFlags -> [Word8] toByteString :: ProtocolLevel -> ConnACKFlags -> ByteString Source # | |
Constructors
Instances
| Bounded ConnACKRC Source # | |
| Enum ConnACKRC Source # | |
Defined in Network.MQTT.Types Methods succ :: ConnACKRC -> ConnACKRC # pred :: ConnACKRC -> ConnACKRC # fromEnum :: ConnACKRC -> Int # enumFrom :: ConnACKRC -> [ConnACKRC] # enumFromThen :: ConnACKRC -> ConnACKRC -> [ConnACKRC] # enumFromTo :: ConnACKRC -> ConnACKRC -> [ConnACKRC] # enumFromThenTo :: ConnACKRC -> ConnACKRC -> ConnACKRC -> [ConnACKRC] # | |
| Eq ConnACKRC Source # | |
| Show ConnACKRC Source # | |
| ByteSize ConnACKRC Source # | |
data PublishRequest Source #
Constructors
| PublishRequest | |
Fields
| |
Instances
| Eq PublishRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: PublishRequest -> PublishRequest -> Bool # (/=) :: PublishRequest -> PublishRequest -> Bool # | |
| Show PublishRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> PublishRequest -> ShowS # show :: PublishRequest -> String # showList :: [PublishRequest] -> ShowS # | |
| ByteMe PublishRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PublishRequest -> [Word8] toByteString :: ProtocolLevel -> PublishRequest -> ByteString Source # | |
Instances
| Eq PubACK Source # | |
| Show PubACK Source # | |
| ByteMe PubACK Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PubACK -> [Word8] toByteString :: ProtocolLevel -> PubACK -> ByteString Source # | |
Instances
| Eq PubREC Source # | |
| Show PubREC Source # | |
| ByteMe PubREC Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PubREC -> [Word8] toByteString :: ProtocolLevel -> PubREC -> ByteString Source # | |
Instances
| Eq PubREL Source # | |
| Show PubREL Source # | |
| ByteMe PubREL Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PubREL -> [Word8] toByteString :: ProtocolLevel -> PubREL -> ByteString Source # | |
Instances
| Eq PubCOMP Source # | |
| Show PubCOMP Source # | |
| ByteMe PubCOMP Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PubCOMP -> [Word8] toByteString :: ProtocolLevel -> PubCOMP -> ByteString Source # | |
data ProtocolLevel Source #
MQTT Protocol Levels
Constructors
| Protocol311 | MQTT 3.1.1 |
| Protocol50 | MQTT 5.0 |
Instances
Constructors
Instances
| Eq Property Source # | |
| Show Property Source # | |
| ByteMe Property Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> Property -> [Word8] toByteString :: ProtocolLevel -> Property -> ByteString Source # | |
data AuthRequest Source #
Constructors
| AuthRequest Word8 [Property] |
Instances
| Eq AuthRequest Source # | |
Defined in Network.MQTT.Types | |
| Show AuthRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> AuthRequest -> ShowS # show :: AuthRequest -> String # showList :: [AuthRequest] -> ShowS # | |
| ByteMe AuthRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> AuthRequest -> [Word8] toByteString :: ProtocolLevel -> AuthRequest -> ByteString Source # | |
data SubscribeRequest Source #
Constructors
| SubscribeRequest Word16 [(ByteString, SubOptions)] [Property] |
Instances
| Eq SubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: SubscribeRequest -> SubscribeRequest -> Bool # (/=) :: SubscribeRequest -> SubscribeRequest -> Bool # | |
| Show SubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> SubscribeRequest -> ShowS # show :: SubscribeRequest -> String # showList :: [SubscribeRequest] -> ShowS # | |
| ByteMe SubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> SubscribeRequest -> [Word8] toByteString :: ProtocolLevel -> SubscribeRequest -> ByteString Source # | |
data SubOptions Source #
Options used at subscribe time to define how to handle incoming messages.
Constructors
| SubOptions | |
Fields
| |
Instances
| Eq SubOptions Source # | |
Defined in Network.MQTT.Types | |
| Show SubOptions Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> SubOptions -> ShowS # show :: SubOptions -> String # showList :: [SubOptions] -> ShowS # | |
| ByteMe SubOptions Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> SubOptions -> [Word8] toByteString :: ProtocolLevel -> SubOptions -> ByteString Source # | |
subOptions :: SubOptions Source #
Reasonable subscription option defaults at QoS0.
data SubscribeResponse Source #
Instances
| Eq SubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods (==) :: SubscribeResponse -> SubscribeResponse -> Bool # (/=) :: SubscribeResponse -> SubscribeResponse -> Bool # | |
| Show SubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> SubscribeResponse -> ShowS # show :: SubscribeResponse -> String # showList :: [SubscribeResponse] -> ShowS # | |
| ByteMe SubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> SubscribeResponse -> [Word8] toByteString :: ProtocolLevel -> SubscribeResponse -> ByteString Source # | |
Constructors
data RetainHandling Source #
How to process retained messages on subscriptions.
Constructors
| SendOnSubscribe | Send existing retained messages to a new client. |
| SendOnSubscribeNew | Send existing retained messages that have not yet been sent. |
| DoNotSendOnSubscribe | Don't send existing retained messages. |
Instances
| Bounded RetainHandling Source # | |
Defined in Network.MQTT.Types | |
| Enum RetainHandling Source # | |
Defined in Network.MQTT.Types Methods succ :: RetainHandling -> RetainHandling # pred :: RetainHandling -> RetainHandling # toEnum :: Int -> RetainHandling # fromEnum :: RetainHandling -> Int # enumFrom :: RetainHandling -> [RetainHandling] # enumFromThen :: RetainHandling -> RetainHandling -> [RetainHandling] # enumFromTo :: RetainHandling -> RetainHandling -> [RetainHandling] # enumFromThenTo :: RetainHandling -> RetainHandling -> RetainHandling -> [RetainHandling] # | |
| Eq RetainHandling Source # | |
Defined in Network.MQTT.Types Methods (==) :: RetainHandling -> RetainHandling -> Bool # (/=) :: RetainHandling -> RetainHandling -> Bool # | |
| Show RetainHandling Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> RetainHandling -> ShowS # show :: RetainHandling -> String # showList :: [RetainHandling] -> ShowS # | |
data DisconnectRequest Source #
Constructors
| DisconnectRequest DiscoReason [Property] |
Instances
| Eq DisconnectRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: DisconnectRequest -> DisconnectRequest -> Bool # (/=) :: DisconnectRequest -> DisconnectRequest -> Bool # | |
| Show DisconnectRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> DisconnectRequest -> ShowS # show :: DisconnectRequest -> String # showList :: [DisconnectRequest] -> ShowS # | |
| ByteMe DisconnectRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> DisconnectRequest -> [Word8] toByteString :: ProtocolLevel -> DisconnectRequest -> ByteString Source # | |
data UnsubscribeRequest Source #
Constructors
| UnsubscribeRequest Word16 [ByteString] [Property] |
Instances
| Eq UnsubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: UnsubscribeRequest -> UnsubscribeRequest -> Bool # (/=) :: UnsubscribeRequest -> UnsubscribeRequest -> Bool # | |
| Show UnsubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> UnsubscribeRequest -> ShowS # show :: UnsubscribeRequest -> String # showList :: [UnsubscribeRequest] -> ShowS # | |
| ByteMe UnsubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> UnsubscribeRequest -> [Word8] toByteString :: ProtocolLevel -> UnsubscribeRequest -> ByteString Source # | |
data UnsubscribeResponse Source #
Constructors
| UnsubscribeResponse Word16 [Property] [UnsubStatus] |
Instances
| Eq UnsubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods (==) :: UnsubscribeResponse -> UnsubscribeResponse -> Bool # (/=) :: UnsubscribeResponse -> UnsubscribeResponse -> Bool # | |
| Show UnsubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> UnsubscribeResponse -> ShowS # show :: UnsubscribeResponse -> String # showList :: [UnsubscribeResponse] -> ShowS # | |
| ByteMe UnsubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> UnsubscribeResponse -> [Word8] toByteString :: ProtocolLevel -> UnsubscribeResponse -> ByteString Source # | |
data UnsubStatus Source #
Constructors
| UnsubSuccess | |
| UnsubNoSubscriptionExisted | |
| UnsubUnspecifiedError | |
| UnsubImplementationSpecificError | |
| UnsubNotAuthorized | |
| UnsubTopicFilterInvalid | |
| UnsubPacketIdentifierInUse |
Instances
| Bounded UnsubStatus Source # | |
Defined in Network.MQTT.Types | |
| Enum UnsubStatus Source # | |
Defined in Network.MQTT.Types Methods succ :: UnsubStatus -> UnsubStatus # pred :: UnsubStatus -> UnsubStatus # toEnum :: Int -> UnsubStatus # fromEnum :: UnsubStatus -> Int # enumFrom :: UnsubStatus -> [UnsubStatus] # enumFromThen :: UnsubStatus -> UnsubStatus -> [UnsubStatus] # enumFromTo :: UnsubStatus -> UnsubStatus -> [UnsubStatus] # enumFromThenTo :: UnsubStatus -> UnsubStatus -> UnsubStatus -> [UnsubStatus] # | |
| Eq UnsubStatus Source # | |
Defined in Network.MQTT.Types | |
| Show UnsubStatus Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> UnsubStatus -> ShowS # show :: UnsubStatus -> String # showList :: [UnsubStatus] -> ShowS # | |
| ByteMe UnsubStatus Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> UnsubStatus -> [Word8] toByteString :: ProtocolLevel -> UnsubStatus -> ByteString Source # | |
data DiscoReason Source #
Constructors
Instances
| Bounded DiscoReason Source # | |
Defined in Network.MQTT.Types | |
| Enum DiscoReason Source # | |
Defined in Network.MQTT.Types Methods succ :: DiscoReason -> DiscoReason # pred :: DiscoReason -> DiscoReason # toEnum :: Int -> DiscoReason # fromEnum :: DiscoReason -> Int # enumFrom :: DiscoReason -> [DiscoReason] # enumFromThen :: DiscoReason -> DiscoReason -> [DiscoReason] # enumFromTo :: DiscoReason -> DiscoReason -> [DiscoReason] # enumFromThenTo :: DiscoReason -> DiscoReason -> DiscoReason -> [DiscoReason] # | |
| Eq DiscoReason Source # | |
Defined in Network.MQTT.Types | |
| Show DiscoReason Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> DiscoReason -> ShowS # show :: DiscoReason -> String # showList :: [DiscoReason] -> ShowS # | |
| ByteSize DiscoReason Source # | |
Defined in Network.MQTT.Types | |
parsePacket :: ProtocolLevel -> Parser MQTTPkt Source #
Minimal complete definition
Nothing
Methods
toByteString :: ProtocolLevel -> a -> ByteString Source #
Instances
encodeLength :: Int -> [Word8] Source #
parseHdrLen :: Parser Int Source #
parseProperties :: ProtocolLevel -> Parser [Property] Source #
bsProps :: ProtocolLevel -> [Property] -> ByteString Source #