From: <sv...@ww...> - 2004-06-27 00:46:45
|
Author: wolverine Date: 2004-06-26 17:46:39 -0700 (Sat, 26 Jun 2004) New Revision: 1066 Added: trunk/CSP/CSPSim/Include/Networking.i Modified: trunk/CSP/CSPSim/Include/ClientNode.h trunk/CSP/CSPSim/Include/Networking.h Log: changes related receiving handling Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1066 Modified: trunk/CSP/CSPSim/Include/ClientNode.h =================================================================== --- trunk/CSP/CSPSim/Include/ClientNode.h 2004-06-23 16:47:53 UTC (rev 1065) +++ trunk/CSP/CSPSim/Include/ClientNode.h 2004-06-27 00:46:39 UTC (rev 1066) @@ -5,9 +5,23 @@ { public: - ClientNode(); - int run(); - + ClientNode(); + int run(); + protected: + + void init(); + void dumpSizes(); + void initNetworking(); + + VirtualBattlefield * m_battlefield; + simdata::DataManager m_DataManager; + NetworkMessenger * m_networkMessenger; + NetworkNode * m_remoteNode; + NetworkNode * m_localNode; + Port m_localPort; + std::string m_localHost; + Port m_remotePort; + std::string m_remoteHost; }; Modified: trunk/CSP/CSPSim/Include/Networking.h =================================================================== --- trunk/CSP/CSPSim/Include/Networking.h 2004-06-23 16:47:53 UTC (rev 1065) +++ trunk/CSP/CSPSim/Include/Networking.h 2004-06-27 00:46:39 UTC (rev 1066) @@ -246,32 +246,7 @@ NetworkMessage * m_message; }; -class MessageSocketDuplex -{ - ost::UDPSocket * m_UDPReceiverSocket; - ost::UDPSocket * m_UDPSenderSocket; - - ost::InetAddress * m_receiverAddr; - Port m_receiverPort; - - public: - MessageSocketDuplex(); // set the listener port to unbound. - MessageSocketDuplex(ost::InetAddress & Address, Port port); // set the bound address and port. - MessageSocketDuplex(Port port); // set the bound port. - - int sendto(NetworkMessage * message, ost::InetHostAddress * remoteAddress, Port * remotePort); - int sendto(NetworkMessage * message, NetworkNode * node); - - int recvfrom(NetworkMessage ** message); - int sendto(std::vector<RoutedMessage> * sendArray, int count); - int recvfrom(std::vector<RoutedMessage> * receiveArray, int * count); - - ost::InetAddress * getReceiverAddress() { return m_receiverAddr; } - Port getReceiverPort() { return m_receiverPort; } - -}; - class DynamicObject; class RemoteObjectWrapper @@ -337,6 +312,8 @@ void queueMessage(NetworkNode * remoteNode, NetworkMessage * message); void sendQueuedMessages(); void receiveMessages(); + void receiveMessages(int max); + int getSendQueueCount() { return m_messageSendArrayCount; } NetworkNode * getOriginatorNode(); void setOriginatorNode(NetworkNode * orginatorNode); @@ -366,16 +343,23 @@ class NetworkMessageHandler { public: - virtual void process(NetworkMessage * message, NetworkMessenger * messenger) = 0; + virtual void process(NetworkMessage * message) = 0; }; class EchoMessageHandler : public NetworkMessageHandler { - + protected: + NetworkMessenger * m_messenger; public: EchoMessageHandler(); - virtual void process(NetworkMessage * message, NetworkMessenger * messenger); + virtual void process(NetworkMessage * message); virtual ~EchoMessageHandler(); + + + virtual void setMessenger(NetworkMessenger * messenger) + { m_messenger = messenger; } + virtual NetworkMessenger * getMessenger() + { return m_messenger; } }; @@ -386,7 +370,7 @@ int m_count; public: PrintMessageHandler(); - virtual void process(NetworkMessage * message, NetworkMessenger * messenger); + virtual void process(NetworkMessage * message); virtual ~PrintMessageHandler(); void setFrequency(int frequency) { m_frequency = frequency; } @@ -397,12 +381,21 @@ { public: DispatchMessageHandler(); - virtual void process(NetworkMessage * message, NetworkMessenger * messenger); + virtual void process(NetworkMessage * message); virtual ~DispatchMessageHandler(); + void setLocalAddress(unsigned int addr) { _addr = addr; } + unsigned int getLocalAddress() { return _addr; } + void setLocalPort(unsigned short port) { _port = port; } + unsigned short getLocalPort() { return _port; } + void setVirtualBattlefield(VirtualBattlefield * battlefield) { _virtualBattlefield = battlefield; } + VirtualBattlefield * getVirtualBattlefield() { return _virtualBattlefield; } + void setDataManager(simdata::DataManager & dataManager) { _dataManager = dataManager; } + simdata::DataManager getDataManager() { return _dataManager; } + protected: bool isLocal(unsigned int addr, unsigned short port); @@ -465,5 +458,30 @@ }; +class MessageSocketDuplex +{ + ost::UDPSocket * m_UDPReceiverSocket; + ost::UDPSocket * m_UDPSenderSocket; + + ost::InetAddress * m_receiverAddr; + Port m_receiverPort; + + public: + MessageSocketDuplex(); // set the listener port to unbound. + MessageSocketDuplex(ost::InetAddress & Address, Port port); // set the bound address and port. + MessageSocketDuplex(Port port); // set the bound port. + + int sendto(NetworkMessage * message, ost::InetHostAddress * remoteAddress, Port * remotePort); + int sendto(NetworkMessage * message, NetworkNode * node); + + int recvfrom(NetworkMessage ** message); + + int sendto(std::vector<RoutedMessage> * sendArray, int count); + int recvfrom(std::vector<RoutedMessage> * receiveArray, int * count); + + ost::InetAddress * getReceiverAddress() { return m_receiverAddr; } + Port getReceiverPort() { return m_receiverPort; } + +}; #endif Added: trunk/CSP/CSPSim/Include/Networking.i =================================================================== --- trunk/CSP/CSPSim/Include/Networking.i 2004-06-23 16:47:53 UTC (rev 1065) +++ trunk/CSP/CSPSim/Include/Networking.i 2004-06-27 00:46:39 UTC (rev 1066) @@ -0,0 +1,7 @@ +%module Networking +%{ +#include "Networking.h" +%} + +%include "Networking.h" + |