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: