ConnectDialog.h

Go to the documentation of this file.
00001 ////////////////////////////////////////////////////////////////////////////////
00002 //    Scorched3D (c) 2000-2009
00003 //
00004 //    This file is part of Scorched3D.
00005 //
00006 //    Scorched3D is free software; you can redistribute it and/or modify
00007 //    it under the terms of the GNU General Public License as published by
00008 //    the Free Software Foundation; either version 2 of the License, or
00009 //    (at your option) any later version.
00010 //
00011 //    Scorched3D is distributed in the hope that it will be useful,
00012 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 //    GNU General Public License for more details.
00015 //
00016 //    You should have received a copy of the GNU General Public License
00017 //    along with Scorched3D; if not, write to the Free Software
00018 //    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 ////////////////////////////////////////////////////////////////////////////////
00020 
00021 #if !defined(__INCLUDE_ConnectDialogh_INCLUDE__)
00022 #define __INCLUDE_ConnectDialogh_INCLUDE__
00023 
00024 #include <GLW/GLWWindow.h>
00025 #include <client/UniqueIdStore.h>
00026 #include <time.h>
00027 
00028 class ConnectDialog : public GLWWindow
00029 {
00030 public:
00031         static ConnectDialog *instance();
00032 
00033         void connected();
00034 
00035         virtual void windowInit(const unsigned state);
00036 
00037         // Inherited from GLWWindow
00038         virtual void simulate(float frameTime);
00039 
00040         UniqueIdStore &getIdStore();
00041         const char *getHost() { return host_.c_str(); }
00042         int getPort() { return port_; }
00043 
00044 protected:
00045         enum ConnectState
00046         {
00047                 eWaiting,
00048                 eTryingConnection,
00049                 eFinished
00050         };
00051 
00052         std::string host_;
00053         int port_;
00054         static ConnectDialog *instance_;
00055         UniqueIdStore *idStore_;
00056         int tryCount_;
00057         ConnectState connectionState_;
00058         time_t lastTime_;
00059 
00060         void tryConnection();
00061         static int tryRemoteConnection(void *);
00062         void tryLocalConnection();
00063         void finishedTryingConnection();
00064 
00065 private:
00066         ConnectDialog();
00067         virtual ~ConnectDialog();
00068 };
00069 
00070 #endif

Generated on Mon Feb 16 15:14:37 2009 for Scorched3D by  doxygen 1.5.3