Copyright | (c) Dustin Sallings 2019 |
---|---|
License | BSD3 |
Maintainer | dustin@spy.net |
Stability | experimental |
Safe Haskell | Safe-Inferred |
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 ProtocolLevel
- | 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
- qosFromInt :: Int -> Maybe QoS
- data ConnectRequest = ConnectRequest {}
- connectRequest :: ConnectRequest
- data SessionReuse
- data ConnACKFlags = ConnACKFlags SessionReuse 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 :: PktID
- _pubBody :: ByteString
- _pubProps :: [Property]
- data PubACK = PubACK PktID Word8 [Property]
- data PubREC = PubREC PktID Word8 [Property]
- data PubREL = PubREL PktID Word8 [Property]
- data PubCOMP = PubCOMP PktID 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 PktID [(ByteString, SubOptions)] [Property]
- data SubOptions = SubOptions {}
- subOptions :: SubOptions
- data SubscribeResponse = SubscribeResponse PktID [Either SubErr QoS] [Property]
- data SubErr
- data RetainHandling
- data DisconnectRequest = DisconnectRequest DiscoReason [Property]
- data UnsubscribeRequest = UnsubscribeRequest PktID [ByteString] [Property]
- data UnsubscribeResponse = UnsubscribeResponse PktID [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
- type PktID = Word16
- parsePacket :: ProtocolLevel -> Parser MQTTPkt
- class ByteMe a where
- toByteString :: ProtocolLevel -> a -> ByteString
- parseConnect :: Parser MQTTPkt
- 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
Arbitrary MQTTPkt | |
Show MQTTPkt Source # | |
Eq 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
Arbitrary ConnectRequest | |
Defined in Network.MQTT.Arbitrary | |
Show ConnectRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> ConnectRequest -> ShowS # show :: ConnectRequest -> String # showList :: [ConnectRequest] -> ShowS # | |
Eq ConnectRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: ConnectRequest -> ConnectRequest -> Bool # (/=) :: ConnectRequest -> ConnectRequest -> Bool # | |
ByteMe ConnectRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> ConnectRequest -> [Word8] toByteString :: ProtocolLevel -> ConnectRequest -> ByteString Source # |
data SessionReuse Source #
Constructors
NewSession | |
ExistingSession |
Instances
Arbitrary SessionReuse | |
Defined in Network.MQTT.Arbitrary | |
Bounded SessionReuse Source # | |
Defined in Network.MQTT.Types | |
Enum SessionReuse Source # | |
Defined in Network.MQTT.Types Methods succ :: SessionReuse -> SessionReuse # pred :: SessionReuse -> SessionReuse # toEnum :: Int -> SessionReuse # fromEnum :: SessionReuse -> Int # enumFrom :: SessionReuse -> [SessionReuse] # enumFromThen :: SessionReuse -> SessionReuse -> [SessionReuse] # enumFromTo :: SessionReuse -> SessionReuse -> [SessionReuse] # enumFromThenTo :: SessionReuse -> SessionReuse -> SessionReuse -> [SessionReuse] # | |
Show SessionReuse Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> SessionReuse -> ShowS # show :: SessionReuse -> String # showList :: [SessionReuse] -> ShowS # | |
Eq SessionReuse Source # | |
Defined in Network.MQTT.Types |
data ConnACKFlags Source #
Connection acknowledgment details.
Constructors
ConnACKFlags SessionReuse ConnACKRC [Property] |
Instances
Arbitrary ConnACKFlags | |
Defined in Network.MQTT.Arbitrary | |
Show ConnACKFlags Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> ConnACKFlags -> ShowS # show :: ConnACKFlags -> String # showList :: [ConnACKFlags] -> ShowS # | |
Eq ConnACKFlags Source # | |
Defined in Network.MQTT.Types | |
ByteMe ConnACKFlags Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> ConnACKFlags -> [Word8] toByteString :: ProtocolLevel -> ConnACKFlags -> ByteString Source # |
Constructors
Instances
Arbitrary ConnACKRC | |
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] # | |
Show ConnACKRC Source # | |
Eq ConnACKRC Source # | |
ByteSize ConnACKRC Source # | |
data PublishRequest Source #
Constructors
PublishRequest | |
Fields
|
Instances
Arbitrary PublishRequest | |
Defined in Network.MQTT.Arbitrary | |
Show PublishRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> PublishRequest -> ShowS # show :: PublishRequest -> String # showList :: [PublishRequest] -> ShowS # | |
Eq PublishRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: PublishRequest -> PublishRequest -> Bool # (/=) :: PublishRequest -> PublishRequest -> Bool # | |
ByteMe PublishRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PublishRequest -> [Word8] toByteString :: ProtocolLevel -> PublishRequest -> ByteString Source # |
Instances
Arbitrary PubACK | |
Show PubACK Source # | |
Eq PubACK Source # | |
ByteMe PubACK Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PubACK -> [Word8] toByteString :: ProtocolLevel -> PubACK -> ByteString Source # |
Instances
Arbitrary PubREC | |
Show PubREC Source # | |
Eq PubREC Source # | |
ByteMe PubREC Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PubREC -> [Word8] toByteString :: ProtocolLevel -> PubREC -> ByteString Source # |
Instances
Arbitrary PubREL | |
Show PubREL Source # | |
Eq PubREL Source # | |
ByteMe PubREL Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> PubREL -> [Word8] toByteString :: ProtocolLevel -> PubREL -> ByteString Source # |
Instances
Arbitrary PubCOMP | |
Show PubCOMP Source # | |
Eq 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
Property represents the various MQTT Properties that may sent or received along with packets in MQTT 5. For detailed use on when and where to use them, consult with the MQTT 5.0 spec.
Constructors
Instances
Arbitrary Property | |
Show Property Source # | |
Eq 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
Arbitrary AuthRequest | |
Defined in Network.MQTT.Arbitrary | |
Show AuthRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> AuthRequest -> ShowS # show :: AuthRequest -> String # showList :: [AuthRequest] -> ShowS # | |
Eq AuthRequest Source # | |
Defined in Network.MQTT.Types | |
ByteMe AuthRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> AuthRequest -> [Word8] toByteString :: ProtocolLevel -> AuthRequest -> ByteString Source # |
data SubscribeRequest Source #
Constructors
SubscribeRequest PktID [(ByteString, SubOptions)] [Property] |
Instances
Arbitrary SubscribeRequest | |
Defined in Network.MQTT.Arbitrary | |
Show SubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> SubscribeRequest -> ShowS # show :: SubscribeRequest -> String # showList :: [SubscribeRequest] -> ShowS # | |
Eq SubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: SubscribeRequest -> SubscribeRequest -> Bool # (/=) :: SubscribeRequest -> SubscribeRequest -> Bool # | |
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
Arbitrary SubOptions | |
Defined in Network.MQTT.Arbitrary | |
Show SubOptions Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> SubOptions -> ShowS # show :: SubOptions -> String # showList :: [SubOptions] -> ShowS # | |
Eq SubOptions Source # | |
Defined in Network.MQTT.Types | |
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
Arbitrary SubscribeResponse | |
Defined in Network.MQTT.Arbitrary | |
Show SubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> SubscribeResponse -> ShowS # show :: SubscribeResponse -> String # showList :: [SubscribeResponse] -> ShowS # | |
Eq SubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods (==) :: SubscribeResponse -> SubscribeResponse -> Bool # (/=) :: SubscribeResponse -> SubscribeResponse -> Bool # | |
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] # | |
Show RetainHandling Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> RetainHandling -> ShowS # show :: RetainHandling -> String # showList :: [RetainHandling] -> ShowS # | |
Eq RetainHandling Source # | |
Defined in Network.MQTT.Types Methods (==) :: RetainHandling -> RetainHandling -> Bool # (/=) :: RetainHandling -> RetainHandling -> Bool # |
data DisconnectRequest Source #
Constructors
DisconnectRequest DiscoReason [Property] |
Instances
Arbitrary DisconnectRequest | |
Defined in Network.MQTT.Arbitrary | |
Show DisconnectRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> DisconnectRequest -> ShowS # show :: DisconnectRequest -> String # showList :: [DisconnectRequest] -> ShowS # | |
Eq DisconnectRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: DisconnectRequest -> DisconnectRequest -> Bool # (/=) :: DisconnectRequest -> DisconnectRequest -> Bool # | |
ByteMe DisconnectRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> DisconnectRequest -> [Word8] toByteString :: ProtocolLevel -> DisconnectRequest -> ByteString Source # |
data UnsubscribeRequest Source #
Constructors
UnsubscribeRequest PktID [ByteString] [Property] |
Instances
Arbitrary UnsubscribeRequest | |
Defined in Network.MQTT.Arbitrary | |
Show UnsubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> UnsubscribeRequest -> ShowS # show :: UnsubscribeRequest -> String # showList :: [UnsubscribeRequest] -> ShowS # | |
Eq UnsubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods (==) :: UnsubscribeRequest -> UnsubscribeRequest -> Bool # (/=) :: UnsubscribeRequest -> UnsubscribeRequest -> Bool # | |
ByteMe UnsubscribeRequest Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> UnsubscribeRequest -> [Word8] toByteString :: ProtocolLevel -> UnsubscribeRequest -> ByteString Source # |
data UnsubscribeResponse Source #
Constructors
UnsubscribeResponse PktID [Property] [UnsubStatus] |
Instances
Arbitrary UnsubscribeResponse | |
Defined in Network.MQTT.Arbitrary | |
Show UnsubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> UnsubscribeResponse -> ShowS # show :: UnsubscribeResponse -> String # showList :: [UnsubscribeResponse] -> ShowS # | |
Eq UnsubscribeResponse Source # | |
Defined in Network.MQTT.Types Methods (==) :: UnsubscribeResponse -> UnsubscribeResponse -> Bool # (/=) :: UnsubscribeResponse -> UnsubscribeResponse -> Bool # | |
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
Arbitrary UnsubStatus | |
Defined in Network.MQTT.Arbitrary | |
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] # | |
Show UnsubStatus Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> UnsubStatus -> ShowS # show :: UnsubStatus -> String # showList :: [UnsubStatus] -> ShowS # | |
Eq UnsubStatus Source # | |
Defined in Network.MQTT.Types | |
ByteMe UnsubStatus Source # | |
Defined in Network.MQTT.Types Methods toBytes :: ProtocolLevel -> UnsubStatus -> [Word8] toByteString :: ProtocolLevel -> UnsubStatus -> ByteString Source # |
data DiscoReason Source #
Constructors
Instances
Arbitrary DiscoReason | |
Defined in Network.MQTT.Arbitrary | |
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] # | |
Show DiscoReason Source # | |
Defined in Network.MQTT.Types Methods showsPrec :: Int -> DiscoReason -> ShowS # show :: DiscoReason -> String # showList :: [DiscoReason] -> ShowS # | |
Eq DiscoReason Source # | |
Defined in Network.MQTT.Types | |
ByteSize DiscoReason Source # | |
Defined in Network.MQTT.Types |
parsePacket :: ProtocolLevel -> Parser MQTTPkt Source #
Minimal complete definition
Nothing
Methods
toByteString :: ProtocolLevel -> a -> ByteString Source #
Instances
parseConnect :: Parser MQTTPkt Source #
Parse a CONNect packet. This is useful when examining the beginning of the stream as it allows you to determine the protocol being used throughout the rest of the session.
encodeLength :: Int -> [Word8] Source #
parseHdrLen :: Parser Int Source #
parseProperty :: Parser Property Source #
parseProperties :: ProtocolLevel -> Parser [Property] Source #
bsProps :: ProtocolLevel -> [Property] -> ByteString Source #
parseSubOptions :: Parser SubOptions Source #