- Main Page
- Classes
- Files

- Search for |

# RemoteUDPClient.h

Go to the documentation of this file.

    00001 /*****************************
    00002 File:      RemoteUDPClient.h
    00003 Language:   C++ (header)
    00004 Project:    H3DNetworkingUtils
    00005 The contents of this file are subject to the Mozilla Public License
    00006 Version 1.1 (the "License"); you may not use this file except in
    00007 compliance with the License. You may obtain a copy of the License at
    00008 http://www.mozilla.org/MPL/
    00009
    00010 Software distributed under the License is distributed on an "AS IS"
    00011 basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
    00012 License for the specific language governing rights and limitations
    00013 under the License.
    00014
    00015 The Original Code is H3DNetworkingUtils v1.0.
    00016
    00017 The Initial Developer of the Original Code is CSIRO.
    00018 Portions created by the Initial Developer are Copyright (C) 1009 CSIRO. All Rights Reserved.
    00019 Contributor(s):
    00020     Chris Gunn  <Chris.Gunn@csiro.au> <ChrisJGunn@gmail.com>
    00021 ***************************/
    00022
    00025
    00026 #ifndef RemoteUDPClient_H
    00027 #define RemoteUDPClient_H
    00028
    00029
    00030 #include "H3DNetworkingUtils/RemoteClient.h"
    00031 #include "H3DNetworkingUtils/lockwrap.h"
    00032
    00033 namespace H3DNetworkingUtils {
    00034
    00052
    00053 class H3D_NETWORKING_UTILS_DLL_SPEC RemoteUDPClient : public RemoteClient {
    00054 public:
    00055
    00057   static const H3D::H3DFloat PULSE_PERIOD;
    00058
    00060   RemoteUDPClient();
    00061
    00063   virtual ~RemoteUDPClient();
    00064
    00066   static H3D::H3DNodeDatabase database;
    00067
    00068 protected:
    00070    virtual void sendThisPacket(Packet & packet);
    00071
    00073   virtual void restartClient();
    00074
    00076   virtual void receiveLoop();
    00077
    00079   virtual void sendLoop();
    00080
    00082   virtual void requestClose();
    00083
    00084 private:
    00085   Packet pulse_packet;
    00086   char ack[20];
    00087   int msg_count;
    00088   bool connect_requested;
    00089   Mutex send_packet_lock;
    00090   double accumulated_time_to_kill;
    00091 };
    00092
    00093 }
    00094
    00095 #endif