Package horizons :: Package network
[hide private]
[frames] | no frames]

Source Code for Package horizons.network

 1  # ################################################### 
 2  # Copyright (C) 2008-2017 The Unknown Horizons Team 
 3  # team@unknown-horizons.org 
 4  # This file is part of Unknown Horizons. 
 5  # 
 6  # Unknown Horizons is free software; you can redistribute it and/or modify 
 7  # it under the terms of the GNU General Public License as published by 
 8  # the Free Software Foundation; either version 2 of the License, or 
 9  # (at your option) any later version. 
10  # 
11  # This program is distributed in the hope that it will be useful, 
12  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
13  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
14  # GNU General Public License for more details. 
15  # 
16  # You should have received a copy of the GNU General Public License 
17  # along with this program; if not, write to the 
18  # Free Software Foundation, Inc., 
19  # 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
20  # ################################################### 
21   
22  import os 
23  import platform 
24  import sys 
25   
26   
27 -def find_enet_module():
28 """Return the enet module or None. 29 30 We do not raise any errors here, because we still allow clients to play the 31 singleplayer. 32 If code requires the enet module, it should check if horizons.network.enet is 33 not None. 34 """ 35 36 try: 37 import enet 38 return enet 39 except ImportError: 40 return None
41 42 43 enet = find_enet_module() 44 45 # during pyenets move to cpython they renamed a few constants... 46 if not hasattr(enet, 'PEER_STATE_DISCONNECTED') and hasattr(enet, 'PEER_STATE_DISCONNECT'): 47 enet.PEER_STATE_DISCONNECTED = enet.PEER_STATE_DISCONNECT 48 49
50 -class NetworkException(Exception):
51 pass
52 53
54 -class SoftNetworkException(NetworkException):
55 pass
56 57
58 -class PacketTooLarge(NetworkException):
59 pass
60 61
62 -class NotConnected(NetworkException):
63 - def __str__(self):
64 return "Client is not connected"
65 66
67 -class ClientException(NetworkException):
68 pass
69 70
71 -class AlreadyConnected(ClientException):
72 pass
73 74
75 -class NotInGameLobby(ClientException):
76 pass
77 78
79 -class NotInServerMode(ClientException):
80 pass
81 82
83 -class UnableToConnect(ClientException):
84 pass
85 86
87 -class CommandError(ClientException):
88 - def __init__(self, message, cmd_type):
89 super().__init__(message) 90 self.cmd_type = cmd_type
91 92
93 -class FatalError(ClientException):
94 pass
95