QTfrontend/net/newnetclient.h
changeset 6616 f77bb02b669f
parent 6060 fdfc01419815
child 6700 e04da46ee43c
equal deleted inserted replaced
6615:65602f1ef0f8 6616:f77bb02b669f
    34 
    34 
    35 extern char delimeter;
    35 extern char delimeter;
    36 
    36 
    37 class HWNewNet : public QObject
    37 class HWNewNet : public QObject
    38 {
    38 {
    39   Q_OBJECT
    39         Q_OBJECT
    40 
    40 
    41  public:
    41     public:
    42   enum ClientState { Disconnected, Connecting, Connected, InLobby, InRoom, InGame };
    42         enum ClientState { Disconnected, Connecting, Connected, InLobby, InRoom, InGame };
    43 
    43 
    44   HWNewNet();
    44         HWNewNet();
    45   ~HWNewNet();
    45         ~HWNewNet();
    46   void Connect(const QString & hostName, quint16 port, const QString & nick);
    46         void Connect(const QString & hostName, quint16 port, const QString & nick);
    47   void Disconnect();
    47         void Disconnect();
    48   void SendPasswordHash(const QString & hash);
    48         void SendPasswordHash(const QString & hash);
    49   void NewNick(const QString & nick);
    49         void NewNick(const QString & nick);
    50   bool isRoomChief();
    50         bool isRoomChief();
    51   bool isInRoom();
    51         bool isInRoom();
    52   ClientState clientState();
    52         ClientState clientState();
    53   QString getNick();
    53         QString getNick();
    54   QString getRoom();
    54         QString getRoom();
    55   QString getHost();
    55         QString getHost();
    56 
    56 
    57  private:
    57     private:
    58   bool isChief;
    58         bool isChief;
    59   QString mynick;
    59         QString mynick;
    60   QString myroom;
    60         QString myroom;
    61   QString myhost;
    61         QString myhost;
    62   QTcpSocket NetSocket;
    62         QTcpSocket NetSocket;
    63   QString seed;
    63         QString seed;
    64   bool m_game_connected;
    64         bool m_game_connected;
    65 
    65 
    66   template <typename T>
    66         template <typename T>
    67   void SendCfgStrNet(T a) {
    67         void SendCfgStrNet(T a)
    68     QByteArray strmsg;
    68         {
    69     strmsg.append(a);
    69             QByteArray strmsg;
    70     quint8 sz = strmsg.size();
    70             strmsg.append(a);
    71     QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg;
    71             quint8 sz = strmsg.size();
    72     QString _msg = delimeter + QString(enginemsg.toBase64());
    72             QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg;
    73     RawSendNet(_msg);
    73             QString _msg = delimeter + QString(enginemsg.toBase64());
    74   }
    74             RawSendNet(_msg);
       
    75         }
    75 
    76 
    76   template <typename T>
    77         template <typename T>
    77   void SendCfgStrLoc(T a) {
    78         void SendCfgStrLoc(T a)
    78     QByteArray strmsg;
    79         {
    79     strmsg.append(QString(a).toUtf8());
    80             QByteArray strmsg;
    80     quint8 sz = strmsg.size();
    81             strmsg.append(QString(a).toUtf8());
    81     QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg;
    82             quint8 sz = strmsg.size();
    82     emit FromNet(enginemsg);
    83             QByteArray enginemsg = QByteArray((char *)&sz, 1) + strmsg;
    83   }
    84             emit FromNet(enginemsg);
       
    85         }
    84 
    86 
    85   QStringList cmdbuf;
    87         QStringList cmdbuf;
    86 
    88 
    87   void RawSendNet(const QString & buf);
    89         void RawSendNet(const QString & buf);
    88   void RawSendNet(const QByteArray & buf);
    90         void RawSendNet(const QByteArray & buf);
    89   void ParseCmd(const QStringList & lst);
    91         void ParseCmd(const QStringList & lst);
    90   void handleNotice(int n);
    92         void handleNotice(int n);
    91 
    93 
    92   int loginStep;
    94         int loginStep;
    93   ClientState netClientState;
    95         ClientState netClientState;
    94 
    96 
    95  signals:
    97     signals:
    96   void AskForRunGame();
    98         void AskForRunGame();
    97   void connected();
    99         void connected();
    98   void disconnected(const QString & reason);
   100         void disconnected(const QString & reason);
    99   void Error(const QString & errmsg);
   101         void Error(const QString & errmsg);
   100   void Warning(const QString & wrnmsg);
   102         void Warning(const QString & wrnmsg);
   101   void AskForPassword(const QString & nick);
   103         void AskForPassword(const QString & nick);
   102   void NickTaken(const QString & nick);
   104         void NickTaken(const QString & nick);
   103   void AuthFailed();
   105         void AuthFailed();
   104   void EnteredGame();
   106         void EnteredGame();
   105   void LeftRoom(const QString & reason);
   107         void LeftRoom(const QString & reason);
   106   void nickAdded(const QString& nick, bool notifyNick);
   108         void nickAdded(const QString& nick, bool notifyNick);
   107   void nickRemoved(const QString& nick);
   109         void nickRemoved(const QString& nick);
   108   void nickAddedLobby(const QString& nick, bool notifyNick);
   110         void nickAddedLobby(const QString& nick, bool notifyNick);
   109   void nickRemovedLobby(const QString& nick);
   111         void nickRemovedLobby(const QString& nick);
   110   void FromNet(const QByteArray & buf);
   112         void FromNet(const QByteArray & buf);
   111   void adminAccess(bool);
   113         void adminAccess(bool);
   112   void roomMaster(bool);
   114         void roomMaster(bool);
   113 
   115 
   114   void netSchemeConfig(QStringList &);
   116         void netSchemeConfig(QStringList &);
   115   void paramChanged(const QString & param, const QStringList & value);
   117         void paramChanged(const QString & param, const QStringList & value);
   116   void configAsked();
   118         void configAsked();
   117 
   119 
   118   void TeamAccepted(const QString&);
   120         void TeamAccepted(const QString&);
   119   void AddNetTeam(const HWTeam&);
   121         void AddNetTeam(const HWTeam&);
   120   void RemoveNetTeam(const HWTeam&);
   122         void RemoveNetTeam(const HWTeam&);
   121   void hhnumChanged(const HWTeam&);
   123         void hhnumChanged(const HWTeam&);
   122   void teamColorChanged(const HWTeam&);
   124         void teamColorChanged(const HWTeam&);
   123   void chatStringLobby(const QString&);
   125         void chatStringLobby(const QString&);
   124   void chatStringLobby(const QString&, const QString&);
   126         void chatStringLobby(const QString&, const QString&);
   125   void chatStringFromNet(const QString&);
   127         void chatStringFromNet(const QString&);
   126   void chatStringFromMe(const QString&);
   128         void chatStringFromMe(const QString&);
   127   void chatStringFromMeLobby(const QString&);
   129         void chatStringFromMeLobby(const QString&);
   128 
   130 
   129   void roomsList(const QStringList&);
   131         void roomsList(const QStringList&);
   130   void serverMessage(const QString &);
   132         void serverMessage(const QString &);
   131   void serverMessageNew(const QString &);
   133         void serverMessageNew(const QString &);
   132   void serverMessageOld(const QString &);
   134         void serverMessageOld(const QString &);
   133   void latestProtocolVar(int);
   135         void latestProtocolVar(int);
   134 
   136 
   135   void setReadyStatus(const QString & nick, bool isReady);
   137         void setReadyStatus(const QString & nick, bool isReady);
   136   void setMyReadyStatus(bool isReady);
   138         void setMyReadyStatus(bool isReady);
   137 
   139 
   138  public slots:
   140     public slots:
   139   void ToggleReady();
   141         void ToggleReady();
   140   void chatLineToNet(const QString& str);
   142         void chatLineToNet(const QString& str);
   141   void chatLineToLobby(const QString& str);
   143         void chatLineToLobby(const QString& str);
   142   void SendTeamMessage(const QString& str);
   144         void SendTeamMessage(const QString& str);
   143   void SendNet(const QByteArray & buf);
   145         void SendNet(const QByteArray & buf);
   144   void AddTeam(const HWTeam & team);
   146         void AddTeam(const HWTeam & team);
   145   void RemoveTeam(const HWTeam& team);
   147         void RemoveTeam(const HWTeam& team);
   146   void onHedgehogsNumChanged(const HWTeam& team);
   148         void onHedgehogsNumChanged(const HWTeam& team);
   147   void onTeamColorChanged(const HWTeam& team);
   149         void onTeamColorChanged(const HWTeam& team);
   148   void onParamChanged(const QString & param, const QStringList & value);
   150         void onParamChanged(const QString & param, const QStringList & value);
   149 
   151 
   150   void setServerMessageNew(const QString &);
   152         void setServerMessageNew(const QString &);
   151   void setServerMessageOld(const QString &);
   153         void setServerMessageOld(const QString &);
   152   void setLatestProtocolVar(int proto);
   154         void setLatestProtocolVar(int proto);
   153   void askServerVars();
   155         void askServerVars();
   154 
   156 
   155   void JoinRoom(const QString & room);
   157         void JoinRoom(const QString & room);
   156   void CreateRoom(const QString & room);
   158         void CreateRoom(const QString & room);
   157   void updateRoomName(const QString &);
   159         void updateRoomName(const QString &);
   158   void askRoomsList();
   160         void askRoomsList();
   159   void gameFinished(bool correcly);
   161         void gameFinished(bool correcly);
   160   void banPlayer(const QString &);
   162         void banPlayer(const QString &);
   161   void kickPlayer(const QString &);
   163         void kickPlayer(const QString &);
   162   void infoPlayer(const QString &);
   164         void infoPlayer(const QString &);
   163   void followPlayer(const QString &);
   165         void followPlayer(const QString &);
   164   void startGame();
   166         void startGame();
   165   void toggleRestrictJoins();
   167         void toggleRestrictJoins();
   166   void toggleRestrictTeamAdds();
   168         void toggleRestrictTeamAdds();
   167   void partRoom();
   169         void partRoom();
   168   void clearAccountsCache();
   170         void clearAccountsCache();
   169 
   171 
   170  private slots:
   172     private slots:
   171   void ClientRead();
   173         void ClientRead();
   172   void OnConnect();
   174         void OnConnect();
   173   void OnDisconnect();
   175         void OnDisconnect();
   174   void displayError(QAbstractSocket::SocketError socketError); 
   176         void displayError(QAbstractSocket::SocketError socketError);
   175 };
   177 };
   176 
   178 
   177 #endif // _NEW_NETCLIENT_INCLUDED
   179 #endif // _NEW_NETCLIENT_INCLUDED