i6engine  1.0
NetworkMailbox.h
Go to the documentation of this file.
1 /*
2  * i6engine
3  * Copyright (2016) Daniel Bonrath, Michael Baer, All rights reserved.
4  *
5  * This file is part of i6engine; i6engine is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
25 #ifndef __I6ENGINE_MODULES_NETWORKMAILBOX_H__
26 #define __I6ENGINE_MODULES_NETWORKMAILBOX_H__
27 
29 
31 
32 namespace i6e {
33 namespace modules {
34 
35  class NetworkController;
36  class NetworkManager;
37 
44  friend class NetworkController;
45  friend class NetworkManager;
46 
47  protected:
52 
57 
62  void News(const api::GameMessage::Ptr & msg) const;
63 
67  void NetworkNews(const api::GameMessage::Ptr & msg) const;
68 
72  void setManager(NetworkManager * manager) { _manager = manager; }
73 
74  private:
78  NetworkMailbox(const NetworkMailbox &) = delete;
79 
83  NetworkMailbox & operator=(const NetworkMailbox &) = delete;
84 
85  NetworkManager * _manager;
86 
88  };
89 
90 } /* namespace modules */
91 } /* namespace i6e */
92 
93 #endif /* __I6ENGINE_MODULES_NETWORKMAILBOX_H__ */
94 
void NetworkNews(const api::GameMessage::Ptr &msg) const
processes messages received over the network
boost::shared_ptr< Message > Ptr
Definition: Message.h:66
#define ASSERT_THREAD_SAFETY_HEADER
void News(const api::GameMessage::Ptr &msg) const
See Class-Description.
void setManager(NetworkManager *manager)
setter for the manager
Extracts the contents of incoming messages on the "Network" channel and calls the corresponding metho...
This class performs and provides various methods to the engine for the network.