Eris  1.3.23
MetaQuery.h
1 #include <skstream/skstream.h>
2 
3 #ifndef ERIS_META_QUERY_H
4 #define ERIS_META_QUERY_H
5 
6 #include <Eris/BaseConnection.h>
7 #include <Eris/Poll.h>
8 
9 #include <wfmath/timestamp.h>
10 
11 namespace Eris {
12 
13 class Meta;
14 
23 class MetaQuery : public BaseConnection
24 {
25 public:
26  MetaQuery(Meta *svr, const std::string &host, unsigned int index);
27  virtual ~MetaQuery();
28 
30  long getQueryNo() const
31  { return _queryNo; }
32 
34  const std::string& getHost() const
35  { return _host; }
36 
37  unsigned int getServerIndex() const
38  { return m_serverIndex; }
39 
41  long getElapsed();
42 
43  bool isReady(PollData &data) const
44  {return data.isReady(_stream);}
45 
46  bool isComplete() const
47  { return m_complete; }
48 
49  friend class Meta;
50 protected:
51  void setComplete();
52 
54  virtual void onConnect();
55  virtual void handleFailure(const std::string &msg);
56  virtual void handleTimeout(const std::string& msg);
57 
58  void onQueryTimeout();
59 
60  const std::string _host;
62 
63  long _queryNo;
64  WFMath::TimeStamp _stamp;
65  unsigned int m_serverIndex;
66  bool m_complete;
67 };
68 
69 
70 } // of namespace
71 
72 #endif
Eris::Timeout
Timeout
Definition: Timeout.h:13
Eris::Meta
Meta encapsulates the meta-game system, including the meta-server protocol and queries.
Definition: Metaserver.h:37
Eris::MetaQuery::_meta
Meta * _meta
The Meta-server object which owns the query.
Definition: MetaQuery.h:61
Eris::BaseConnection::_stream
stream_socket_stream * _stream
the underlying iostream channel
Definition: BaseConnection.h:133
Eris::MetaQuery::_queryNo
long _queryNo
The serial number of the query GET.
Definition: MetaQuery.h:63
Eris::MetaQuery::getElapsed
long getElapsed()
Access the elapsed time (in millseconds) since the query was issued.
Definition: MetaQuery.cpp:69
Eris::MetaQuery::getHost
const std::string & getHost() const
return the host string this query is using
Definition: MetaQuery.h:34
Eris::MetaQuery::_host
const std::string _host
The host being querried.
Definition: MetaQuery.h:60
Eris::MetaQuery
MetaQuery is a temporary connection used to retrieve information about a game server.
Definition: MetaQuery.h:24
Eris::MetaQuery::_stamp
WFMath::TimeStamp _stamp
Time stamp of the request, to estimate ping to server.
Definition: MetaQuery.h:64
Eris::MetaQuery::onConnect
virtual void onConnect()
Over-ride the default connection behaviour to issue the query.
Definition: MetaQuery.cpp:44
Eris::error
Definition: LogStream.h:56
Eris::BaseConnection::_encode
Atlas::Objects::ObjectsEncoder * _encode
the objects encoder, bound to _codec
Definition: BaseConnection.h:126
Eris::MetaQuery::handleFailure
virtual void handleFailure(const std::string &msg)
derived-class notification when a failure occurs
Definition: MetaQuery.cpp:74
Eris::Timeout::cancel
void cancel()
cancel the Timeout immediately
Definition: Timeout.cpp:32
Eris::BaseConnection
Underlying Atlas connection, providing a send interface, and receive (dispatch) system.
Definition: BaseConnection.h:33
Eris::BaseConnection::_timeout
Timeout * _timeout
network level timeouts
Definition: BaseConnection.h:142
Eris::MetaQuery::getQueryNo
long getQueryNo() const
return the serial-number of the query GET operation [for identification of replies]
Definition: MetaQuery.h:30
Eris::Timeout::Expired
sigc::signal< void > Expired
The timeout signal.
Definition: Timeout.h:50