Yaaf.Xmpp.Runtime


Yaaf.Xmpp.Runtime

Overview

Yaaf.Xml
Yaaf.Xmpp
Yaaf.Xmpp.Runtime
Yaaf.Xmpp.Runtime.Features
Yaaf.Xmpp.Server
Yaaf.Xmpp.XmlStanzas

Back to top Yaaf.Xml Namespace

ModuleDescription
AssemblyInfo
AsyncXmlReader
Core

Back to top Yaaf.Xmpp Namespace

TypeDescription
IServiceManager Defines a manager of services, it allows the registration of additional services
ServiceManager This class provides an abstract implementation of the IServiceManager interface by delegating the generic RegisterService call to a concrete RegisterService method with actuall Type parameters. This works around some F# limitations with the IServiceManager interface (ie you can't override the generic RegisterService method directly).
AddressingPlugin
AdvancedConnectInfo
ClientSetup
ConnectInfo
IAddressingService
IOStreamManager
IRawStanzaPlugin
IRawUnvalidatedStanzaPlugin
IXmlStanzaService
IXmppClient Simple interface representing an xmpp connection
JabberId
OpenElement
StreamElement
StreamType
Task<'a>
UnknownIqResponderPlugin Plugin which handles unknown iq stanzas
XmlStanzaPlugin
XmppClient Represents a more abstract xmpp connection. Wrapps an XmppRuntime and provides an easy interface to register plugins and start a connection
ModuleDescription
AddressingServiceExtensions
CryptographyHelpers
IOStreamHelpers
KnownStreamNamespaces
Resolve
StanzaServiceExtensions
Stream
StreamData
StreamHelpers
XmppSetup

Back to top Yaaf.Xmpp.Runtime Namespace

TypeDescription
IPluginManager<'TPlugin> A plugin manager interface for registering and querying plugins.
IPluginServiceProvider Interface for plugins to provide some services
IService Describes an service provided by a plugin.
IServicePluginManager<'TPlugin> Most of the Plugins will require a plugin manager (ie to use API provided by other plugins
PluginManager<'P> Implementation of the IPluginManager interface
PluginManagerException Exception when plugins fail, cannot be created or added.
RuntimePluginManagerExtensions Extension methods for the Plugin Manager interfaces.
Service Provides some simple (extension-) methods for the IService interface.
ServicePluginManager<'P> A generic implementation of the IServicePluginManager interface.
ServicePluginManager Helper methods for the generic ServicePluginManager class.
ComponentConfig
ComponentNegotiationPlugin
ComponentsConfig
ConfigurationException
CoreStreamApi Used to provide (and abstract away) the core communication layer.
HandlerState Represents the current state of the handler for a given item
IComponentsConfig
ICoreStreamApi Allows plugins to change the underlaying stream. So this interface abstracts away changing IXmlStream objects. Plugins will require an ICoreStreamApi in there contructors if they need this API. NOTE: BE CAREFUL WITH THIS API, THE METHODS OF THIS API CAN ONLY BE USED FROM WITHIN PLUGIN CALLS.
IExclusiveSend
IInternalStreamOpener Used by the CoreApi to open the stream
ILocalDelivery Some Plugins will require a ILocalDelivery to send raw messages back to the other end. The server/client code will also use this API to send messages over the wire.
INegotiationService
IPipeline<'a>
IPipelineProvider<'a>
IPlugin
IPluginManagerRegistrar
IReceivePipelineProvider<'a>
IRuntimeConfig
IRuntimeShutdown Provides an api for plugins to do work on runtime exit
ISendPipelineProvider<'a>
IStreamManager<'prim>
IStreamManager
IXmlPipelinePlugin
IXmlPluginManager
IXmlStream This will only be used by the runtime. However to be extendible custom implementations are allowed. Implementations SHOULD NOT throw their own exceptions on reading. Allowed are only: - StreamFinishedException and subclasses when the other side finished the stream. - StreamErrorException when there is an error in reading the stream (to close the stream properly). NOTE that you do NOT throw this exception when you read a stream error (use StreamFailException in this case). ON write custom exceptions are allowed, but note that because of the queuing system we always shut down the runtime when the write fails!
IXmppPlugin
IXmppPluginConfig The Configuration of an Plugin. Every implementation of this interface MUST be immutable!
IXmppPluginManager
PipelineResult<'a>
PluginManagerRegistrar A IPluginManagerRegistrar implementation using an IKernel
PreprocessResult<'a>
ProcessInfo<'a>
SendQueueBox A specialiced Mailbox for outgoing messages.
SendStreamClosedException This error indicates that the sending pipeline was already closed, so sending is not longer possible (IE the closing element was already sent!)
SingleChecker A simple API to prevent that code after "StartSingle" is called twice
StreamErrorException This class represents errors within the xmpp-stream. When thrown it is a request to the runtime to send the stream error and close the runtime. (can also be used be plugins)
StreamFailException This class represents errors where the other side already closed the stream with an error
StreamFinishedException This class represents any kind of finish from the other side
StreamManager<'prim> Used to manage a primitive stream and to provide an higher level API.
StreamNormalFinishedException This class represents a normal stream close from the other side (can be used by plugins to trigger a immediate regular stream shutdown)
StreamUnexpectedFinishException This class represents a normal stream close from the other side, but on an unexpected situation
XmlStreamError
XmppRuntime Represents the part of the runtime which doesn't depend on the 'prim type
ModuleDescription
ComponentHandshake
Configuration
InterfaceExtensions
OpenHandshake
Parsing
StreamError

Back to top Yaaf.Xmpp.Runtime.Features Namespace

TypeDescription
BindConfig
BindElement
BindFeature
FeatureInfo
FeaturePlugin
FeatureSelector
IBindConfig
IBindService
IResourceManager This interface is required to check if the requested resource is already connected, and to disconnect other resources if required
ISaslConfig
ISaslService
IStreamFeatureConfig
IStreamFeatureHandler Note that the context instance can change over time (whenever a new stream is instanciated, for example after tls, sasl)
IStreamFeatureService
ITlsConfig
ITlsService
SaslConfig
SaslFeature
StreamFeatureConfig
TlsConfig
TlsFeature
ModuleDescription
Parsing
ParsingBind
SaslParsing
TlsParsing

Back to top Yaaf.Xmpp.Server Namespace

TypeDescription
ConfigCreator
ConfigType
ConnectedComponent
ConnectionFilter
ConnectionManager When editing this class be carefull with the XmppClient members, because they often can't be used directly because this would result in a deadlock
DefaultRouting
IConnectionManager
IPerUserService
IServerApi
IServerApiConnectionManager
IServerPlugin
IServerRouting
IStanzaDelivery
IUserServiceManager
KeyValuePair<'k, 'v>
RunningHandler
ServerCertificateData
ServerSetup
StanzaDelivery
UserServiceManager
XmppServer Represents a simple server implementation This type takes care of connected resources, specified in XMPP.Core
XmppServerDeliveryPlugin Plugin which is only available on the server side, and registers some server side only actions
XmppServerExtensions
XmppServerUserServicePlugin Plugin which is only available on the server side, and registers some server side only actions
ModuleDescription
InterfaceExtensions
XmppServerSetup
XmppSetup

Back to top Yaaf.Xmpp.XmlStanzas Namespace

TypeDescription
ContentGenerator<'a>
IStanza
Langcode
ReceivedStanzaException Used when we parse a stanza with an error type
Stanza
Stanza<'a>
StanzaContents
StanzaCreator
StanzaError
StanzaErrorConditon
StanzaErrorData
StanzaErrorType The "error-type" MUST be one of the following:
StanzaException Used when we want to return a stanza error
StanzaHeader
StanzaParseException Unable to parse a given stanza. NOTE this does not inherit StanzaException because this exception is thrown within methods where the RawStanza is not available. It will/can be catched and rethrown as StanzaException as soon as the RawStanza is available. Or it will finally be handled in the XmlStanzaPlugin logic.
StanzaValidationException The stanza could not be validated
XmlStanzaType
ModuleDescription
Parsing
Stanza
StanzaException
StanzaExtensions
StanzaParseException
Fork me on GitHub