haskell-xmpp-2.0.4: Haskell XMPP (eXtensible Message Passing Protocol, a.k.a. Jabber) library
Copyright(c) Dmitry Astapov 2006 ; pierre 2007
LicenseBSD3
MaintainerDmitry Astapov <dastapov@gmail.com>, pierre <k.pierre.k@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Network.XMPP.Types

Description

 
Synopsis

Documentation

data Stream Source #

XMPP stream, used as a state in XmppMonad state transformer

Constructors

Stream 

Fields

  • handle :: Handle

    IO handle to the underlying file or socket

  • idx :: !Int

    id of the next message (if needed)

  • lexemes :: [Token]

    Stream of the lexemes coming from server

Instances

Instances details
Monad m => MonadState Stream (XmppMonad m) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

get :: XmppMonad m Stream #

put :: Stream -> XmppMonad m () #

state :: (Stream -> (a, Stream)) -> XmppMonad m a #

newtype XmppMonad m a Source #

Constructors

XmppMonad 

Fields

Instances

Instances details
MonadTrans XmppMonad Source # 
Instance details

Defined in Network.XMPP.Types

Methods

lift :: Monad m => m a -> XmppMonad m a #

Monad m => MonadState Stream (XmppMonad m) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

get :: XmppMonad m Stream #

put :: Stream -> XmppMonad m () #

state :: (Stream -> (a, Stream)) -> XmppMonad m a #

Monad m => Monad (XmppMonad m) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

(>>=) :: XmppMonad m a -> (a -> XmppMonad m b) -> XmppMonad m b #

(>>) :: XmppMonad m a -> XmppMonad m b -> XmppMonad m b #

return :: a -> XmppMonad m a #

Functor m => Functor (XmppMonad m) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

fmap :: (a -> b) -> XmppMonad m a -> XmppMonad m b #

(<$) :: a -> XmppMonad m b -> XmppMonad m a #

Monad m => Applicative (XmppMonad m) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

pure :: a -> XmppMonad m a #

(<*>) :: XmppMonad m (a -> b) -> XmppMonad m a -> XmppMonad m b #

liftA2 :: (a -> b -> c) -> XmppMonad m a -> XmppMonad m b -> XmppMonad m c #

(*>) :: XmppMonad m a -> XmppMonad m b -> XmppMonad m b #

(<*) :: XmppMonad m a -> XmppMonad m b -> XmppMonad m a #

MonadIO m => MonadIO (XmppMonad m) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

liftIO :: IO a -> XmppMonad m a #

MonadIO m => XmppSendable (XmppMonad m) Node Source # 
Instance details

Defined in Network.XMPP.Stream

Methods

xmppSend :: Node -> XmppMonad m () Source #

MonadIO m => XmppSendable (XmppMonad m) (Content Posn) Source # 
Instance details

Defined in Network.XMPP.Stream

MonadIO m => XmppSendable (XmppMonad m) (Stanza t 'Outgoing e) Source # 
Instance details

Defined in Network.XMPP.Stream

Methods

xmppSend :: Stanza t 'Outgoing e -> XmppMonad m () Source #

newtype DomainID Source #

Jabber ID (JID) datatype

https://xmpp.org/extensions/xep-0029.html#sect-idm45723967532368 JID - [node"@"]domain["/"resource] node - conforming-char[conforming-char]* - The node identifier (optional) domain - hname["."hname]* - The domain identifier (required) resource - any-char[any-char]* - The resource identifier (optional)

Constructors

DomainID 

Fields

Instances

Instances details
Eq DomainID Source # 
Instance details

Defined in Network.XMPP.Types

Show DomainID Source # 
Instance details

Defined in Network.XMPP.Types

newtype NodeID Source #

Constructors

NodeID 

Fields

Instances

Instances details
Eq NodeID Source # 
Instance details

Defined in Network.XMPP.Types

Methods

(==) :: NodeID -> NodeID -> Bool #

(/=) :: NodeID -> NodeID -> Bool #

Show NodeID Source # 
Instance details

Defined in Network.XMPP.Types

newtype ResourceID Source #

Constructors

ResourceID 

Fields

Instances

Instances details
Eq ResourceID Source # 
Instance details

Defined in Network.XMPP.Types

Show ResourceID Source # 
Instance details

Defined in Network.XMPP.Types

data SomeJID Source #

Constructors

forall (a :: JIDQualification). SomeJID (JID a) 

Instances

Instances details
Read SomeJID Source # 
Instance details

Defined in Network.XMPP.Types

Show SomeJID Source # 
Instance details

Defined in Network.XMPP.Types

data JID :: JIDQualification -> * where Source #

Constructors

ResourceJID 

Fields

NodeResourceJID 

Fields

NodeJID 

Fields

DomainJID 

Fields

Instances

Instances details
Eq (JID a) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

(==) :: JID a -> JID a -> Bool #

(/=) :: JID a -> JID a -> Bool #

Read (JID 'Resource) Source # 
Instance details

Defined in Network.XMPP.Types

Read (JID 'NodeResource) Source # 
Instance details

Defined in Network.XMPP.Types

Read (JID 'Node) Source # 
Instance details

Defined in Network.XMPP.Types

Read (JID 'Domain) Source # 
Instance details

Defined in Network.XMPP.Types

Show (JID a) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

showsPrec :: Int -> JID a -> ShowS #

show :: JID a -> String #

showList :: [JID a] -> ShowS #

ToMarkup (JID a) Source # 
Instance details

Defined in Network.XMPP.Types

data StreamType Source #

XMPP Stream type, used in stream pretty-printing combinator and the likes

Constructors

Client

Client-to-server

ComponentAccept

FIXME

ComponentConnect

FIXME

Instances

Instances details
Show StreamType Source # 
Instance details

Defined in Network.XMPP.Types

data RosterItem Source #

Roster item type (7.1)

Constructors

RosterItem 

Fields

data IQType Source #

Constructors

Get 
Result 
Set 
IQError 

Instances

Instances details
Eq IQType Source # 
Instance details

Defined in Network.XMPP.Types

Methods

(==) :: IQType -> IQType -> Bool #

(/=) :: IQType -> IQType -> Bool #

Read IQType Source # 
Instance details

Defined in Network.XMPP.Types

Show IQType Source # 
Instance details

Defined in Network.XMPP.Types

data ShowType Source #

Constructors

Available 
Away 
FreeChat 
DND 
XAway 

Instances

Instances details
Eq ShowType Source # 
Instance details

Defined in Network.XMPP.Types

Read ShowType Source # 
Instance details

Defined in Network.XMPP.Types

Show ShowType Source # 
Instance details

Defined in Network.XMPP.Types

data StanzaPurpose Source #

Generic XMPP stream atom

Constructors

Incoming 
Outgoing 

Instances

Instances details
Eq StanzaPurpose Source # 
Instance details

Defined in Network.XMPP.Types

Show StanzaPurpose Source # 
Instance details

Defined in Network.XMPP.Types

SingKind StanzaPurpose Source # 
Instance details

Defined in Network.XMPP.Types

Associated Types

type Demote StanzaPurpose #

SingI 'Incoming Source # 
Instance details

Defined in Network.XMPP.Types

Methods

sing :: Sing 'Incoming #

SingI 'Outgoing Source # 
Instance details

Defined in Network.XMPP.Types

Methods

sing :: Sing 'Outgoing #

TestEquality (Sing :: StanzaPurpose -> Type) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

testEquality :: forall (a :: k) (b :: k). Sing a -> Sing b -> Maybe (a :~: b) #

Show (Sing 'Incoming) Source # 
Instance details

Defined in Network.XMPP.Types

Show (Sing 'Outgoing) Source # 
Instance details

Defined in Network.XMPP.Types

data Sing (x :: StanzaPurpose) Source # 
Instance details

Defined in Network.XMPP.Types

type Demote StanzaPurpose Source # 
Instance details

Defined in Network.XMPP.Types

data SomeStanza e Source #

Constructors

forall (a :: StanzaType) (p :: StanzaPurpose). SomeStanza (Stanza a p e) 

Instances

Instances details
Show e => Show (SomeStanza e) Source # 
Instance details

Defined in Network.XMPP.Types

data StanzaType Source #

Constructors

Message 
Presence 
IQ 

type family DataByPurpose (p :: StanzaPurpose) body where ... Source #

Equations

DataByPurpose 'Incoming body = Either [Content Posn] body 
DataByPurpose 'Outgoing body = [Node] 

data Stanza :: StanzaType -> StanzaPurpose -> * -> * where Source #

Constructors

MkMessage 

Fields

MkPresence 

Fields

MkIQ 

Fields

Instances

Instances details
MonadIO m => XmppSendable (XmppMonad m) (Stanza t 'Outgoing e) Source # 
Instance details

Defined in Network.XMPP.Stream

Methods

xmppSend :: Stanza t 'Outgoing e -> XmppMonad m () Source #

MonadIO m => XmppSendable (ReaderT (Thread e) m) (Stanza t 'Outgoing ()) Source # 
Instance details

Defined in Network.XMPP.Concurrent

Methods

xmppSend :: Stanza t 'Outgoing () -> ReaderT (Thread e) m () Source #

(Show (Sing dir), Show (DataByPurpose dir ext), Show ext) => Show (Stanza t dir ext) Source # 
Instance details

Defined in Network.XMPP.Types

Methods

showsPrec :: Int -> Stanza t dir ext -> ShowS #

show :: Stanza t dir ext -> String #

showList :: [Stanza t dir ext] -> ShowS #