Nebula
Loading...
Searching...
No Matches
Interface::InterfaceBase Class Reference

#include <interfacebase.h>

Detailed Description

Base class for interfaces.

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

Inherits Messaging::AsyncPort.

Inherited by Debug::DebugInterface, Http::HttpInterface, and IO::IoInterface.

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
virtual void Close ()
 close 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
Public Member Functions inherited from Messaging::AsyncPort
 AsyncPort ()
 constructor
virtual ~AsyncPort ()
 destructor
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
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
Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
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

Private Member Functions

 __DeclareClass (InterfaceBase)
void SetCompanyName (const Util::StringAtom &companyName)
 set the company name
void SetAppName (const Util::StringAtom &appName)
 set the application name
void SetRootDirectory (const Util::StringAtom &dir)
 set the root directory (default is home:)

Private Attributes

Util::StringAtom rootDirectory
Util::StringAtom companyName
Util::StringAtom appName

Additional Inherited Members

Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)

Constructor & Destructor Documentation

◆ InterfaceBase()

Interface::InterfaceBase::InterfaceBase ( )

constructor

◆ ~InterfaceBase()

Interface::InterfaceBase::~InterfaceBase ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

Interface::InterfaceBase::__DeclareClass ( InterfaceBase )
private

◆ AttachHandler()

void Interface::InterfaceBase::AttachHandler ( const Ptr< Messaging::Handler > & h)
virtual

attach a handler to the port (call before open!)

Reimplemented from Messaging::AsyncPort.

◆ Close()

void Interface::InterfaceBase::Close ( )
virtual

close the async port

Reimplemented from Messaging::AsyncPort.

Reimplemented in IO::IoInterface.

◆ GetAppName()

const Util::StringAtom & Interface::InterfaceBase::GetAppName ( ) const
inline

get the application name

◆ GetCompanyName()

const Util::StringAtom & Interface::InterfaceBase::GetCompanyName ( ) const
inline

get the company name

◆ GetRootDirectory()

const Util::StringAtom & Interface::InterfaceBase::GetRootDirectory ( ) const
inline

get the root directory

◆ Open()

void Interface::InterfaceBase::Open ( )
virtual

open the async port

Reimplemented from Messaging::AsyncPort.

Reimplemented in Debug::DebugInterface, Http::HttpInterface, and IO::IoInterface.

◆ SetAppName()

void Interface::InterfaceBase::SetAppName ( const Util::StringAtom & appName)
inlineprivate

set the application name

◆ SetCompanyName()

void Interface::InterfaceBase::SetCompanyName ( const Util::StringAtom & companyName)
inlineprivate

set the company name

◆ SetRootDirectory()

void Interface::InterfaceBase::SetRootDirectory ( const Util::StringAtom & dir)
inlineprivate

set the root directory (default is home:)

Member Data Documentation

◆ appName

Util::StringAtom Interface::InterfaceBase::appName
private

◆ companyName

Util::StringAtom Interface::InterfaceBase::companyName
private

◆ rootDirectory

Util::StringAtom Interface::InterfaceBase::rootDirectory
private

The documentation for this class was generated from the following files: