Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members

MetaQuery.h

00001 #ifndef ERIS_META_QUERY_H
00002 #define ERIS_META_QUERY_H
00003 
00004 #include <Eris/BaseConnection.h>
00005 #include <Eris/Timestamp.h>
00006 #include <Eris/Poll.h>
00007 
00008 #include <skstream/skstream.h>
00009 
00010 namespace Eris {
00011 
00012 class Meta;     
00013 
00022 class MetaQuery : public BaseConnection
00023 {
00024 public: 
00025         MetaQuery(Meta *svr, const std::string &host);
00026         virtual ~MetaQuery();
00027 
00028         SOCKET_TYPE getSocket();
00029         
00031         long getQueryNo() const
00032         { return _queryNo; }
00033 
00035         const std::string& getHost() const
00036         { return _host; }
00037         
00039         long getElapsed();
00040         
00042         bool isComplete() const
00043         { return _complete; }
00044 
00045         bool isReady(PollData &data) const
00046         {return data.isReady(_stream);}
00047                 
00048         friend class Meta;
00049 protected:
00051         virtual void onConnect();
00052         virtual void handleFailure(const std::string &msg);
00053 
00054         virtual void bindTimeout(Timeout &t, Status sc);
00055         
00057         void setComplete();
00058 
00059         const std::string _host;        
00060         Meta* _meta;                    
00061 
00062         long _queryNo;          
00063         Time::Stamp _stamp;     
00064         bool _complete;         
00065 };
00066 
00067 
00068 } // of namespace 
00069 
00070 #endif

Generated on Sun Sep 4 14:14:04 2005 for Eris by  doxygen 1.4.4