QTfrontend/tcpBase.h
changeset 183 57c2ef19f719
parent 180 ea83b9e9057f
child 184 f97a7a3dc8f6
equal deleted inserted replaced
182:0ca777e942d6 183:57c2ef19f719
     1 /*
     1 /*
     2  * Hedgewars, a worms-like game
     2  * Hedgewars, a worms-like game
     3  * Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
     3  * Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
     4  *
     4  *
     5  * Distributed under the terms of the BSD-modified licence:
     5  * This program is free software; you can redistribute it and/or modify
       
     6  * it under the terms of the GNU General Public License as published by
       
     7  * the Free Software Foundation; version 2 of the License
     6  *
     8  *
     7  * Permission is hereby granted, free of charge, to any person obtaining a copy
     9  * This program is distributed in the hope that it will be useful,
     8  * of this software and associated documentation files (the "Software"), to deal
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     9  * with the Software without restriction, including without limitation the
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    10  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
    12  * GNU General Public License for more details.
    11  * sell copies of the Software, and to permit persons to whom the Software is
       
    12  * furnished to do so, subject to the following conditions:
       
    13  *
    13  *
    14  * 1. Redistributions of source code must retain the above copyright notice,
    14  * You should have received a copy of the GNU General Public License
    15  *    this list of conditions and the following disclaimer.
    15  * along with this program; if not, write to the Free Software
    16  * 2. Redistributions in binary form must reproduce the above copyright notice,
    16  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    17  *    this list of conditions and the following disclaimer in the documentation
       
    18  *    and/or other materials provided with the distribution.
       
    19  * 3. The name of the author may not be used to endorse or promote products
       
    20  *    derived from this software without specific prior written permission.
       
    21  *
       
    22  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
       
    23  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
       
    24  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
       
    25  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
       
    26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
       
    27  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
       
    28  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
       
    29  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
       
    30  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
       
    31  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
       
    32  */
    17  */
    33 
    18 
    34 #ifndef _TCPBASE_INCLUDED
    19 #ifndef _TCPBASE_INCLUDED
    35 #define _TCPBASE_INCLUDED
    20 #define _TCPBASE_INCLUDED
    36 
    21 
    48 #define MAXMSGCHARS 255
    33 #define MAXMSGCHARS 255
    49 
    34 
    50 class TCPBase : public QObject
    35 class TCPBase : public QObject
    51 {
    36 {
    52   Q_OBJECT
    37   Q_OBJECT
    53     
    38 
    54  public:
    39  public:
    55   TCPBase(bool demoMode);
    40   TCPBase(bool demoMode);
    56 
    41 
    57  signals:
    42  signals:
    58   void isReadyNow();
    43   void isReadyNow();
    73   virtual void onClientDisconnect();
    58   virtual void onClientDisconnect();
    74   virtual void SendToClientFirst();
    59   virtual void SendToClientFirst();
    75 
    60 
    76  private:
    61  private:
    77   bool m_isDemoMode;
    62   bool m_isDemoMode;
    78   void RealStart();
       
    79   QTcpServer * IPCServer;
    63   QTcpServer * IPCServer;
    80   QTcpSocket * IPCSocket;
    64   QTcpSocket * IPCSocket;
    81 
    65 
    82  private slots:
    66  private slots:
       
    67   void RealStart();
    83   void NewConnection();
    68   void NewConnection();
    84   void ClientDisconnect();
    69   void ClientDisconnect();
    85   void ClientRead();
    70   void ClientRead();
    86   void StartProcessError(QProcess::ProcessError error);
    71   void StartProcessError(QProcess::ProcessError error);
    87 
    72