File indexing completed on 2024-05-12 05:39:52
0001 /*************************************************************************** 0002 * Copyright (C) 2014 by Renaud Guezennec * 0003 * https://rolisteam.org/contact * 0004 * * 0005 * rolisteam is free software; you can redistribute it and/or modify * 0006 * it under the terms of the GNU General Public License as published by * 0007 * the Free Software Foundation; either version 2 of the License, or * 0008 * (at your option) any later version. * 0009 * * 0010 * This program is distributed in the hope that it will be useful, * 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0013 * GNU General Public License for more details. * 0014 * * 0015 * You should have received a copy of the GNU General Public License * 0016 * along with this program; if not, write to the * 0017 * Free Software Foundation, Inc., * 0018 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 0019 ***************************************************************************/ 0020 #ifndef NETWORKRECEIVER_H 0021 #define NETWORKRECEIVER_H 0022 0023 class NetworkMessageReader; 0024 /** 0025 * @brief The NetWorkReceiver class is an abstract class. It is part of the listener pattern. Any class which need to be 0026 * process some network message should subclass this class. 0027 */ 0028 class NetWorkReceiver 0029 { 0030 public: 0031 virtual ~NetWorkReceiver()= default; 0032 /** 0033 * @brief The SendType enum describes how the server should opperate the message. The decision is taken by the GM. 0034 */ 0035 enum SendType 0036 { 0037 NONE, 0038 ALL, 0039 AllExceptSender 0040 }; 0041 /** 0042 * @brief processMessage virtual pure method, it must be implemented by any classes which subclass NetWorkReceiver. 0043 * The goals is to read the message and trigger the right actions. 0044 * @param msg is the received network message, it stores the important data. 0045 * @return How the Server should do with this package. 0046 */ 0047 virtual NetWorkReceiver::SendType processMessage(NetworkMessageReader* msg)= 0; 0048 }; 0049 0050 #endif // NETWORKRECEIVER_H