Changeset 285 for code/branches/merger/src/network/ConnectionManager.cc
- Timestamp:
- Nov 27, 2007, 11:30:17 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/merger/src/network/ConnectionManager.cc
r278 r285 2 2 // C++ Interface: ConnectionManager 3 3 // 4 // Description: The Class ConnectionManager manages the servers conenctions to the clients. 5 // each connection is provided by a new process. communication between master process and 4 // Description: The Class ConnectionManager manages the servers conenctions to the clients. 5 // each connection is provided by a new process. communication between master process and 6 6 // connection processes is provided by ... 7 7 // … … 10 10 // 11 11 12 #include " network/ConnectionManager.h"12 #include "ConnectionManager.h" 13 13 14 14 namespace network{ 15 15 16 16 boost::thread_group network_threads; 17 17 18 18 void test(){ 19 19 return; 20 20 } 21 21 22 22 ConnectionManager::ConnectionManager(){ 23 23 quit=false; … … 26 26 bindAddress.port = NETWORK_PORT; 27 27 } 28 28 29 29 ConnectionManager::ConnectionManager(int port, std::string address){ 30 30 quit=false; … … 33 33 bindAddress.port = NETWORK_PORT; 34 34 } 35 35 36 36 ConnectionManager::ConnectionManager(int port, const char *address){ 37 37 quit=false; … … 40 40 bindAddress.port = NETWORK_PORT; 41 41 } 42 42 43 43 ENetPacket *ConnectionManager::getPacket(ENetAddress &address){ 44 44 if(!buffer.isEmpty()) … … 47 47 return NULL; 48 48 } 49 49 50 50 bool ConnectionManager::queueEmpty(){ 51 51 return buffer.isEmpty(); 52 52 } 53 53 54 54 void ConnectionManager::createListener(){ 55 55 network_threads.create_thread(boost::bind(boost::mem_fn(&ConnectionManager::receiverThread), this)); … … 57 57 return; 58 58 } 59 59 60 60 bool ConnectionManager::quitListener(){ 61 61 quit=true; … … 63 63 return true; 64 64 } 65 65 66 66 bool ConnectionManager::addPacket(ENetPacket *packet, ENetPeer *peer){ 67 67 if(client=NULL) … … 77 77 return true; 78 78 } 79 79 80 80 bool ConnectionManager::addPacket(ENetPacket *packet, int ID){ 81 81 if(client==NULL) … … 92 92 return true; 93 93 } 94 94 95 95 bool ConnectionManager::addPacketAll(ENetPacket *packet){ 96 96 ClientList *temp=client; … … 101 101 return true; 102 102 } 103 103 104 104 bool ConnectionManager::sendPackets(ENetEvent *event){ 105 105 if(server==NULL) … … 107 107 if(enet_host_service(server, event, NETWORK_SEND_WAIT)>=0) 108 108 return true; 109 else 110 return false; 111 } 112 109 else 110 return false; 111 } 112 113 113 void ConnectionManager::receiverThread(){ 114 114 // what about some error-handling here ? … … 120 120 // add some error handling here ========================== 121 121 quit=true; 122 122 123 123 while(!quit){ 124 124 if(enet_host_service(server, &event, NETWORK_WAIT_TIMEOUT)<0){ … … 144 144 enet_host_destroy(server); 145 145 } 146 146 147 147 bool ConnectionManager::processData(ENetEvent *event){ 148 148 // just add packet to the buffer … … 150 150 return buffer.push(event); 151 151 } 152 152 153 153 bool ConnectionManager::clientDisconnect(ENetPeer *peer){ 154 154 ClientList *temp=client; … … 177 177 return false; 178 178 } 179 179 180 180 bool ConnectionManager::addClient(ENetEvent *event){ 181 181 182 182 // first client? 183 183 if(client==NULL){ … … 202 202 return true; 203 203 } 204 205 204 205 206 206 }
Note: See TracChangeset
for help on using the changeset viewer.