Beispiel #1
0
        static XmppGlobal()
        {
            jabber_client = new JabberClient();

            roster_manager        = new RosterManager();
            roster_manager.Stream = jabber_client;

            presence_manager        = new PresenceManager();
            presence_manager.Stream = jabber_client;

            iq_tracker = new IQTracker(jabber_client);

            connection  = new Connection();
            debug       = new Debug();
            disco       = new Disco();
            presence    = new Presence();
            roster      = new Roster();
            queries     = new Queries();
            query_cache = new QueryCache();
            messaging   = new Messaging();
        }
Beispiel #2
0
        public Account(AccountInfo info)
        {
            if (String.IsNullOrEmpty(info.User))
            {
                throw new ArgumentNullException("user");
            }
            if (String.IsNullOrEmpty(info.Domain))
            {
                throw new ArgumentNullException("domain");
            }
            if (String.IsNullOrEmpty(info.Resource))
            {
                throw new ArgumentNullException("resource");
            }

            m_Info = info;

            m_UserPresenceCache = new Dictionary <JID, Presence>();

            m_Client = new JabberClient();
            m_Client.AutoPresence          = false;
            m_Client.AutoRoster            = true;
            m_Client.AutoStartTLS          = true;
            m_Client.OnConnect            += HandleOnConnect;
            m_Client.OnAuthenticate       += HandleOnAuthenticate;
            m_Client.OnDisconnect         += HandleOnDisconnect;
            m_Client.OnError              += HandleOnError;
            m_Client.OnPresence           += HandleOnPresence;
            m_Client.OnInvalidCertificate += delegate { return(true); };            // XXX:
            m_Client.OnBeforePresenceOut  += HandleOnBeforePresenceOut;
            m_Client.OnStreamInit         += HandleOnStreamInit;

            m_Roster              = new RosterManager();
            m_Roster.OnRosterEnd += HandleOnRosterEnd;
            m_Roster.Stream       = m_Client;

            m_CapsManager        = new CapsManager();
            m_CapsManager.Stream = m_Client;
            m_CapsManager.Node   = "http://www.synapse.im/";

            m_PubSubManager        = new PubSubManager();
            m_PubSubManager.Stream = m_Client;

            m_DiscoManager        = new DiscoManager();
            m_DiscoManager.Stream = m_Client;

            m_ConferenceManager           = new ConferenceManager();
            m_ConferenceManager.Stream    = m_Client;
            m_ConferenceManager.OnInvite += HandleOnInvite;

            m_BookmarkManager                   = new BookmarkManager();
            m_BookmarkManager.Stream            = m_Client;
            m_BookmarkManager.ConferenceManager = m_ConferenceManager;

            m_PresenceManager        = new PresenceManager();
            m_PresenceManager.Stream = m_Client;

            m_AvatarManager = new AvatarManager(this);

            m_IQTracker = new IQTracker(m_Client);

            // XXX: Don't hard-code this.
            m_CapsManager.AddIdentity("Synapse 0.1", "client", "pc", "en_US");

            // Create builtin features
            // XXX: This should be an extension point as well.
            AddFeature(new PersonalEventing(this));
            AddFeature(new Microblogging(this));
            AddFeature(new UserMood(this));
            AddFeature(new UserTune(this));
            AddFeature(new UserAvatars(this));
            AddFeature(new ChatStates(this));
            AddFeature(new UserWebIdentities(this));

            if (ServiceManager.Contains <NetworkService>())
            {
                ServiceManager.Get <NetworkService>().StateChange += HandleNetworkStateChanged;
            }
        }