|
|
|
|
-- Copyright © 2010-2012 Jon Kristensen.
|
|
|
|
|
-- Copyright 2012 Philipp Balzarek
|
|
|
|
|
-- See the LICENSE file in the
|
|
|
|
|
-- Pontarius distribution for more details.
|
|
|
|
|
|
|
|
|
|
-- |
|
|
|
|
|
-- Module: $Header$
|
|
|
|
|
-- Description: Pontarius API
|
|
|
|
|
-- Copyright: Copyright © 2010-2012 Jon Kristensen
|
|
|
|
|
-- License: Apache License 2.0
|
|
|
|
|
--
|
|
|
|
|
-- Maintainer: jon.kristensen@nejla.com
|
|
|
|
|
-- Stability: unstable
|
|
|
|
|
-- Portability: portable
|
|
|
|
|
--
|
|
|
|
|
-- XMPP is an open standard, extendable, and secure communications
|
|
|
|
|
-- protocol designed on top of XML, TLS, and SASL. Pontarius XMPP is
|
|
|
|
|
-- an XMPP client library, implementing the core capabilities of XMPP
|
|
|
|
|
-- (RFC 6120).
|
|
|
|
|
--
|
|
|
|
|
-- Developers using this library are assumed to understand how XMPP
|
|
|
|
|
-- works.
|
|
|
|
|
--
|
|
|
|
|
-- This module will be documented soon.
|
|
|
|
|
--
|
|
|
|
|
-- Note that we are not recommending anyone to use Pontarius XMPP at
|
|
|
|
|
-- this time as it's still in an experimental stage and will have its
|
|
|
|
|
-- API and data types modified frequently.
|
|
|
|
|
|
|
|
|
|
{-# LANGUAGE NoMonomorphismRestriction, OverloadedStrings #-}
|
|
|
|
|
|
|
|
|
|
module Network.XMPP
|
|
|
|
|
( module Network.XMPP.Bind
|
|
|
|
|
, module Network.XMPP.Concurrent
|
|
|
|
|
, module Network.XMPP.Monad
|
|
|
|
|
, module Network.XMPP.SASL
|
|
|
|
|
, module Network.XMPP.Session
|
|
|
|
|
, module Network.XMPP.Stream
|
|
|
|
|
, module Network.XMPP.TLS
|
|
|
|
|
, module Network.XMPP.Types
|
|
|
|
|
, module Network.XMPP.Presence
|
|
|
|
|
, module Network.XMPP.Message
|
|
|
|
|
, xmppConnect
|
|
|
|
|
, xmppNewSession
|
|
|
|
|
) where
|
|
|
|
|
|
|
|
|
|
import Data.Text as Text
|
|
|
|
|
|
|
|
|
|
import Network
|
|
|
|
|
import Network.XMPP.Bind
|
|
|
|
|
import Network.XMPP.Concurrent
|
|
|
|
|
import Network.XMPP.Message
|
|
|
|
|
import Network.XMPP.Monad
|
|
|
|
|
import Network.XMPP.Presence
|
|
|
|
|
import Network.XMPP.SASL
|
|
|
|
|
import Network.XMPP.Session
|
|
|
|
|
import Network.XMPP.Stream
|
|
|
|
|
import Network.XMPP.TLS
|
|
|
|
|
import Network.XMPP.Types
|
|
|
|
|
|
|
|
|
|
xmppConnect :: HostName -> Text -> XMPPConMonad ()
|
|
|
|
|
xmppConnect address hostname = xmppRawConnect address hostname >> xmppStartStream
|
|
|
|
|
|
|
|
|
|
xmppNewSession :: XMPPThread a -> IO (a, XMPPConState)
|
|
|
|
|
xmppNewSession = withNewSession . runThreaded
|