remotemono
Classes | Public Types | Public Member Functions | List of all members
remotemono::IPCVector< ElemT, IntPtrT > Class Template Reference

#include <IPCVector.h>

Classes

struct  VectorAPI
 
struct  VectorLocalAPI
 
struct  VectorRemoteAPI
 

Public Types

typedef IntPtrT VectorPtr
 
typedef IntPtrT DataPtr
 
typedef VectorPtr(__fastcall * VECTOR_NEW) (uint32_t cap)
 
typedef void(__fastcall * VECTOR_FREE) (VectorPtr v)
 
typedef void(__fastcall * VECTOR_ADD) (VectorPtr v, ElemT elem)
 
typedef void(__fastcall * VECTOR_CLEAR) (VectorPtr v)
 
typedef uint32_t(__fastcall * VECTOR_LENGTH) (VectorPtr v)
 
typedef uint32_t(__fastcall * VECTOR_CAPACITY) (VectorPtr v)
 
typedef DataPtr(__fastcall * VECTOR_DATA) (VectorPtr v)
 
typedef void(__fastcall * VECTOR_GROW) (VectorPtr v, uint32_t)
 

Public Member Functions

void inject (blackbone::Process *process)
 
void uninject ()
 
VectorAPIgetAPI ()
 
VectorPtr vectorNew (uint32_t cap=16)
 
void vectorFree (VectorPtr v)
 
void vectorAdd (VectorPtr v, ElemT elem)
 
void vectorClear (VectorPtr v)
 
uint32_t vectorLength (VectorPtr v)
 
uint32_t vectorCapacity (VectorPtr v)
 
DataPtr vectorData (VectorPtr v)
 
void vectorGrow (VectorPtr v, uint32_t cap)
 
VectorPtr create (const std::vector< ElemT > &data)
 
void read (VectorPtr v, std::vector< ElemT > &out)
 

Detailed Description

template<typename ElemT, typename IntPtrT>
class remotemono::IPCVector< ElemT, IntPtrT >

A simple class representing a dynamically growing array in either the local or remote process. If it is in the remote process, a series of simple functions will be injected into the remote that can be called to manipulate such array objects in the remote process itself, and a remote array can also be queried and modified locally through RPC calls.

In RemoteMono, this class is mainly used to support the mono_*_foreach() functions by having them collect the objects they iterate over into an IPCVector array that can then be read by the local process.


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