00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef COMPONENT_H__
00016 #define COMPONENT_H__
00017
00018 #include "clientbase.h"
00019
00020 #include <string>
00021
00022 namespace gloox
00023 {
00024
00025 class Disco;
00026
00034 class GLOOX_API Component : public ClientBase
00035 {
00036 public:
00047 Component( const std::string& ns, const std::string& server,
00048 const std::string& component, const std::string& password, int port = 5347 );
00049
00053 virtual ~Component();
00054
00055
00056 virtual const std::string username() const { return ""; };
00057
00058
00059 virtual const std::string password() const { return ""; };
00060
00065 Disco* disco() const { return m_disco; };
00066
00070 void disconnect();
00071
00072 protected:
00073 virtual void handleStartNode();
00074 virtual bool handleNormalNode( Stanza *stanza );
00075 virtual bool checkStreamVersion( const std::string& ) { return true; };
00076 virtual void disconnect( ConnectionError reason );
00077
00078 private:
00079
00080 virtual void rosterFilled() {};
00081
00082 Disco *m_disco;
00083 };
00084
00085 }
00086
00087 #endif // COMPONENT_H__