Vuo  1.1.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Functions | Variables
VuoCompositionLoader.cc File Reference

Description

VuoCompositionLoader implementation.

Functions

bool replaceComposition (const char *dylibPath, char *updatedCompositionDiff)
 Replaces the currently running composition (if any) with the given composition.
 
void stopComposition (void)
 Sends a control request to the composition telling it to stop.
 
bool loadResourceDylib (const char *resourceDylibPath)
 Loads the resource dylib at the given path and adds the resulting handle to the list of resource dylibs.
 
void unloadResourceDylibs (void)
 Unloads all resource dylibs.
 
static void __attribute__ ((constructor)) VuoCompositionLoader_init(void)
 Get a reference to the main thread, so we can perform runtime thread-sanity assertions.
 
void vuoLoaderControlReplySend (enum VuoLoaderControlReply reply, zmq_msg_t *messages, unsigned int messageCount)
 Sends a control reply message to the process controlling this composition loader.
 
void vuoControlRequestSend (enum VuoControlRequest request, zmq_msg_t *messages, unsigned int messageCount)
 Sends a control request message to the running composition.
 
void vuoControlReplyReceive (enum VuoControlReply expectedReply)
 Receives a control reply message from the running composition, and checks that it is the expected reply.
 

Variables

void * ZMQLoaderControlContext = NULL
 The context for initializing sockets to control the composition loader.
 
void * ZMQLoaderControl = NULL
 The socket for controlling the composition loader.
 
void * ZMQControlContext = NULL
 The context for initializing sockets to control the composition.
 
void * ZMQControl = NULL
 The socket for controlling the composition.
 
char * controlURL = NULL
 The URL that the composition will use to initialize its control socket.
 
char * telemetryURL = NULL
 The URL that the composition will use to initialize its telemetry socket.
 
bool * isStopped = NULL
 True if the composition has stopped.
 
bool isReplacing = false
 True if the composition is in the process of being replaced.
 
bool isReferenceCountingInitialized = false
 True if VuoHeap_init() has been called.
 
void * dylibHandle = NULL
 A handle to the running composition.
 
void ** resourceDylibHandles = NULL
 A list of handles to the running composition's resources.
 
size_t resourceDylibHandlesSize = 0
 The number of items in resourceDylibHandles.
 
size_t resourceDylibHandlesCapacity = 0
 The number of items that resourceDylibHandlesCapacity can currently hold.
 
pid_t runnerPid = 0
 Process ID of the runner that started the composition.
 
bool trialRestrictionsEnabled = true
 If true, some nodes may restrict how they can be used.
 
void * VuoApp_mainThread = NULL
 A reference to the main thread.
 

Function Documentation

static void __attribute__ ( (constructor)  )
static

Get a reference to the main thread, so we can perform runtime thread-sanity assertions.

bool loadResourceDylib ( const char *  resourceDylibPath)

Loads the resource dylib at the given path and adds the resulting handle to the list of resource dylibs.

If resourceDylibPath is the empty string, does nothing.

bool replaceComposition ( const char *  dylibPath,
char *  updatedCompositionDiff 
)

Replaces the currently running composition (if any) with the given composition.

This function takes ownership of updatedCompositionDiff and will free it on the next call.

void stopComposition ( void  )

Sends a control request to the composition telling it to stop.

This function may only be called on dispatch queue VuoControlQueue.

void unloadResourceDylibs ( void  )

Unloads all resource dylibs.

void vuoControlReplyReceive ( enum VuoControlReply  expectedReply)

Receives a control reply message from the running composition, and checks that it is the expected reply.

void vuoControlRequestSend ( enum VuoControlRequest  request,
zmq_msg_t *  messages,
unsigned int  messageCount 
)

Sends a control request message to the running composition.

void vuoLoaderControlReplySend ( enum VuoLoaderControlReply  reply,
zmq_msg_t *  messages,
unsigned int  messageCount 
)

Sends a control reply message to the process controlling this composition loader.

Variable Documentation

char* controlURL = NULL

The URL that the composition will use to initialize its control socket.

void* dylibHandle = NULL

A handle to the running composition.

bool isReferenceCountingInitialized = false

True if VuoHeap_init() has been called.

bool isReplacing = false

True if the composition is in the process of being replaced.

bool* isStopped = NULL

True if the composition has stopped.

void** resourceDylibHandles = NULL

A list of handles to the running composition's resources.

size_t resourceDylibHandlesCapacity = 0

The number of items that resourceDylibHandlesCapacity can currently hold.

size_t resourceDylibHandlesSize = 0

The number of items in resourceDylibHandles.

pid_t runnerPid = 0

Process ID of the runner that started the composition.

char* telemetryURL = NULL

The URL that the composition will use to initialize its telemetry socket.

bool trialRestrictionsEnabled = true

If true, some nodes may restrict how they can be used.

void* VuoApp_mainThread = NULL

A reference to the main thread.

void* ZMQControl = NULL

The socket for controlling the composition.

void* ZMQControlContext = NULL

The context for initializing sockets to control the composition.

void* ZMQLoaderControl = NULL

The socket for controlling the composition loader.

void* ZMQLoaderControlContext = NULL

The context for initializing sockets to control the composition loader.