The Nebula Device 3: Interface::InterfaceBase Class Reference

The Nebula Device 3

Interface::InterfaceBase Class Reference

#include <interfacebase.h>

Inheritance diagram for Interface::InterfaceBase:

Messaging::AsyncPort Core::RefCounted Debug::DebugInterface Graphics::GraphicsInterface Http::HttpInterface

Detailed Description

Base class for interfaces. An interface is the frontend of a fat thread, visible from all threads in the Nebula3 application. Other threads can send messages to the Interface singleton which will dispatch the messages to handlers running in the thread context.

(C) 2008 Radon Labs GmbH

Public Member Functions

 InterfaceBase ()
 constructor
virtual ~InterfaceBase ()
 destructor
virtual void AttachHandler (const Ptr< Messaging::Handler > &h)
 attach a handler to the port (call before open!)
virtual void Open ()
 open the async port
const Util::StringAtomGetCompanyName () const
 get the company name
const Util::StringAtomGetAppName () const
 get the application name
const Util::StringAtomGetRootDirectory () const
 get the root directory
void SetHandlerThread (const Ptr< HandlerThreadBase > &handlerThread)
 set pointer to handler thread object (must be derived from HandlerThreadBase)
const Ptr< HandlerThreadBase > & GetHandlerThread () const
 get pointer to handler thread object
virtual void RemoveHandler (const Ptr< Handler > &h)
 dynamically remove a handler from the port
virtual void Close ()
 close the async port
bool IsOpen () const
 return true if port is open
template<class MESSAGETYPE>
void Send (const Ptr< MESSAGETYPE > &msg)
 send an asynchronous message to the port
template<class MESSAGETYPE>
void SendWait (const Ptr< MESSAGETYPE > &msg)
 send a message and wait for completion
template<class MESSAGETYPE>
void Wait (const Ptr< MESSAGETYPE > &msg)
 wait for a message to be handled
template<class MESSAGETYPE>
bool Peek (const Ptr< MESSAGETYPE > &msg)
 peek a message whether it has been handled
template<class MESSAGETYPE>
void Cancel (const Ptr< MESSAGETYPE > &msg)
 cancel a pending message
int GetRefCount () const
 get the current refcount
void AddRef ()
 increment refcount by one
void Release ()
 decrement refcount and destroy object if refcount is zero
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
const Util::StringGetClassName () const
 get the class name
Util::FourCC GetClassFourCC () const
 get the class FourCC code

Static Public Member Functions

static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

Member Function Documentation

void Messaging::AsyncPort::RemoveHandler ( const Ptr< Handler > &  h  )  [virtual, inherited]

dynamically remove a handler from the port

Dynamically remove a message handler.

void Messaging::AsyncPort::Close (  )  [virtual, inherited]

close the async port

Closes the async port.

Reimplemented in Graphics::GraphicsInterface.

int Core::RefCounted::GetRefCount (  )  const [inline, inherited]

get the current refcount

Return the current refcount of the object.

void Core::RefCounted::AddRef (  )  [inline, inherited]

increment refcount by one

Increment the refcount of the object.

void Core::RefCounted::Release (  )  [inline, inherited]

decrement refcount and destroy object if refcount is zero

Decrement the refcount and destroy object if refcount is zero.

const Util::String & Core::RefCounted::GetClassName (  )  const [inline, inherited]

get the class name

Get the class name of the object.

Util::FourCC Core::RefCounted::GetClassFourCC (  )  const [inline, inherited]

get the class FourCC code

Get the class FourCC of the object.

void Core::RefCounted::DumpRefCountingLeaks (  )  [static, inherited]

dump refcounting leaks, call at end of application (NEBULA3_DEBUG builds only!)

This method should be called as the very last before an application exits.