• Main Page
  • Classes
  • Files
  • File List

Swiften/Disco/EntityCapsManager.h

00001 /*
00002  * Copyright (c) 2010 Remko Tronçon
00003  * Licensed under the GNU General Public License v3.
00004  * See Documentation/Licenses/GPLv3.txt for more information.
00005  */
00006 
00007 #pragma once
00008 
00009 #include <map>
00010 
00011 #include <Swiften/Base/API.h>
00012 #include <Swiften/Base/boost_bsignals.h>
00013 #include <Swiften/Elements/Presence.h>
00014 #include <Swiften/Elements/DiscoInfo.h>
00015 #include <Swiften/Elements/ErrorPayload.h>
00016 #include <Swiften/Disco/EntityCapsProvider.h>
00017 
00018 namespace Swift {
00019   class StanzaChannel;
00020   class CapsProvider;
00021 
00028   class SWIFTEN_API EntityCapsManager : public EntityCapsProvider, public boost::bsignals::trackable {
00029     public:
00030       EntityCapsManager(CapsProvider*, StanzaChannel*);
00031 
00035       DiscoInfo::ref getCaps(const JID&) const;
00036 
00037     private:
00038       void handlePresenceReceived(boost::shared_ptr<Presence>);
00039       void handleStanzaChannelAvailableChanged(bool);
00040       void handleCapsAvailable(const std::string&);
00041 
00042     private:
00043       CapsProvider* capsProvider;
00044       std::map<JID, std::string> caps;
00045   };
00046 }

Generated on Fri Oct 12 2012 21:00:19 for Swiften by  doxygen 1.7.1