remotemono
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
remotemono::RMonoAPIBase Class Reference

#include <RMonoAPIBase_Def.h>

Inheritance diagram for remotemono::RMonoAPIBase:
Inheritance graph
[legend]
Collaboration diagram for remotemono::RMonoAPIBase:
Collaboration graph
[legend]

Public Types

typedef std::list< RMonoHandleBackendBase * > HandleBackendList
 
typedef HandleBackendList::iterator HandleBackendIterator
 

Public Member Functions

HandleBackendIterator registerMonoHandleBackend (RMonoHandleBackendBase *backend)
 
void unregisterMonoHandleBackend (HandleBackendIterator backendIt)
 
size_t getRegisteredHandleCount () const
 
RMonoAPIDispatchergetAPIDispatcher ()
 
blackbone::Process & getProcess ()
 
blackbone::ThreadPtr getWorkerThread ()
 

Protected Member Functions

 RMonoAPIBase (blackbone::Process &process)
 

Protected Attributes

RMonoAPIDispatcherapid
 
HandleBackendList registeredHandles
 
blackbone::Process & process
 
blackbone::ThreadPtr worker
 

Detailed Description

The base class of RMonoAPI. This class is separate from RMonoAPI only in order to to reduce dependencies inside RemoteMono's own code. See RMonoAPI for more details.

Member Function Documentation

◆ getAPIDispatcher()

RMonoAPIDispatcher * remotemono::RMonoAPIBase::getAPIDispatcher ( )
inline

Returns the RMonoAPIDispatcher that is used to call the actual Mono API functions. You can use it to get direct access to the RMonoAPIFunction instances.

◆ getProcess()

blackbone::Process & remotemono::RMonoAPIBase::getProcess ( )
inline

Returns the remote process.

◆ getRegisteredHandleCount()

size_t remotemono::RMonoAPIBase::getRegisteredHandleCount ( ) const
inline

Returns the number of registered handles. Note that this may not be 0 even if you don't have any handles, because RMonoAPI keeps a few handles itself.

◆ getWorkerThread()

blackbone::ThreadPtr remotemono::RMonoAPIBase::getWorkerThread ( )
inline

Returns the worker thread in the remote process where Mono API functions are executed.

◆ registerMonoHandleBackend()

RMonoAPIBase::HandleBackendIterator remotemono::RMonoAPIBase::registerMonoHandleBackend ( RMonoHandleBackendBase backend)
inline

Register a handle backend, so that RMonoHandleBackendBase::forceDelete() will be called on it when this instance is detached from the remote process, giving any leftover handles a last chance to free their resources to avoid leaking memory in the remote process.

◆ unregisterMonoHandleBackend()

void remotemono::RMonoAPIBase::unregisterMonoHandleBackend ( HandleBackendIterator  backendIt)
inline

Unregister a handle backend.

See also
registerMonoHandleBackend()

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