ReplicaNet and RNLobby  1
Public Member Functions | List of all members
DebugHandler Class Reference

#include <DebugHandler.h>

Public Member Functions

virtual void DebugPrint (const char *)
 
virtual bool OutputToSocket (const char *text)
 
virtual bool EnableVisualDebuggerSocket (const int port=8000)
 
virtual void DisableVisualDebuggerSocket (void)
 
virtual void Printf (const char *format,...)
 
virtual void Poll (void)
 
virtual bool GotConnection (void) const
 
virtual void CallbackConnectionError (const int error)
 

Detailed Description

DebugHandler is a base class for handling debug messages output by RNXPURL, RNXPSession and RNReplicaNet. The implementation of DebugHandler::DebugPrint() can be extended by the application. The default implementation of DebugPrint() is to call OutputToSocket() with the debug text.

// Define the class
class ApplicationDebugHandler : public RNReplicaNet::DebugHandler
{
public:
    ApplicationDebugHandler() {};
    virtual ~ApplicationDebugHandler() {};

    void DebugPrint(const char *text)
    {
        // TODO: Add applications specific code here

        // And optionally call the base class function
        RNReplicaNet::DebugHandler::DebugPrint(text);
    }
};

#ifdef REPLICANET_VISUALDEBUGGER
// In the application code, to enable the debug output
RNReplicaNet::XPURL::RegisterDebugHandler(new ApplicationDebugHandler());
RNReplicaNet::XPURL::GetDebugHandler()->EnableVisualDebuggerSocket();
#endif

The class also contains a simple mechanism for starting a listen socket for a single connection from the ReplicaNet Visual Debugger application.

Member Function Documentation

virtual void CallbackConnectionError ( const int  error)
virtual

This virtual function is called when there is a connection error.

Parameters
errorThis contains a transport specific error. Typically negative values indicate a fatal error while positive errors indicate non-fatal errors.
virtual void DebugPrint ( const char *  )
virtual

A virtual function that an application can implement to enable debug output. The default implementation calls OutputToSocket()

virtual void DisableVisualDebuggerSocket ( void  )
virtual

This frees the socket used for the Visual Debugger connection. If connected to the Visual Debugger, this terminates the connection. If there is no socket allocated or connected this function does nothing. A PlatformHeap::ForceFree() will also disconnect any active Visual Debugger connection.

virtual bool EnableVisualDebuggerSocket ( const int  port = 8000)
virtual

This enables a TCP listen socket that can be used for connections from the Visual Debugger to this debug session. This function always calls DisableVisualDebuggerSocket() first.

Parameters
portThe port number to listen on. The default is 8000. If the port cannot be used listening, i.e. it is used, a random port number will be chosen.
Returns
Indicates an error occurred if true, false means no error.
virtual bool GotConnection ( void  ) const
virtual

Returns the state of the socket connection.

Returns
Returns true if there is an accepted connection, false if not.
virtual bool OutputToSocket ( const char *  text)
virtual

Outputs some text to the debug socket.

Parameters
textThe text
Returns
Indicates an error occurred if true while sending the text, false indicates no error.
virtual void Poll ( void  )
virtual

Called regularly by the library hosting the debug connection. Can also be called by the user.

virtual void Printf ( const char *  format,
  ... 
)
virtual

A variable argument printf style function that uses DebugPrint() to output the result

Parameters
formatThe format, like printf.