Add resource pool to client.
This commit is contained in:
parent
ac0d98518b
commit
5403bf7c3a
@ -134,6 +134,14 @@ typedef int guac_client_init_handler(guac_client* client, int argc, char** argv)
|
|||||||
*/
|
*/
|
||||||
#define GUAC_BUFFER_POOL_INITIAL_SIZE 1024
|
#define GUAC_BUFFER_POOL_INITIAL_SIZE 1024
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of initial slots to allocate for resources within the client resource
|
||||||
|
* map. The client resource map maps resource indices to actual guac_resource instances.
|
||||||
|
* This map will need to be reallocated once the number of resources required exceeds
|
||||||
|
* the available number of slots.
|
||||||
|
*/
|
||||||
|
#define GUAC_RESOURCE_MAP_INITIAL_SIZE 1024
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Possible current states of the Guacamole client. Currently, the only
|
* Possible current states of the Guacamole client. Currently, the only
|
||||||
* two states are GUAC_CLIENT_RUNNING and GUAC_CLIENT_STOPPING.
|
* two states are GUAC_CLIENT_RUNNING and GUAC_CLIENT_STOPPING.
|
||||||
@ -353,15 +361,33 @@ struct guac_client {
|
|||||||
guac_client_log_handler* log_error_handler;
|
guac_client_log_handler* log_error_handler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pool of buffer indices.
|
* Pool of buffer indices. Buffers are simply layers with negative indices. Note that
|
||||||
|
* because guac_pool always gives non-negative indices starting at 0, the output of
|
||||||
|
* this guac_pool will be adjusted.
|
||||||
*/
|
*/
|
||||||
guac_pool* __buffer_pool;
|
guac_pool* __buffer_pool;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pool of layer indices.
|
* Pool of layer indices. Note that because guac_pool always gives non-negative indices
|
||||||
|
* starting at 0, the output of this guac_pool will be adjusted.
|
||||||
*/
|
*/
|
||||||
guac_pool* __layer_pool;
|
guac_pool* __layer_pool;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pool of server-side resource indices.
|
||||||
|
*/
|
||||||
|
guac_pool* __resource_pool;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Array of all allocated resources.
|
||||||
|
*/
|
||||||
|
guac_resource** __resource_map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The number of elements in the __resource_map array.
|
||||||
|
*/
|
||||||
|
int __available_resource_slots;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -118,9 +118,16 @@ guac_client* guac_client_alloc() {
|
|||||||
|
|
||||||
client->state = GUAC_CLIENT_RUNNING;
|
client->state = GUAC_CLIENT_RUNNING;
|
||||||
|
|
||||||
|
/* Allocate buffer and layer pools */
|
||||||
client->__buffer_pool = guac_pool_alloc(GUAC_BUFFER_POOL_INITIAL_SIZE);
|
client->__buffer_pool = guac_pool_alloc(GUAC_BUFFER_POOL_INITIAL_SIZE);
|
||||||
client->__layer_pool = guac_pool_alloc(GUAC_BUFFER_POOL_INITIAL_SIZE);
|
client->__layer_pool = guac_pool_alloc(GUAC_BUFFER_POOL_INITIAL_SIZE);
|
||||||
|
|
||||||
|
/* Allocate resource pool */
|
||||||
|
client->__resource_pool = guac_pool_alloc(0);
|
||||||
|
client->__available_resource_slots = GUAC_RESOURCE_MAP_INITIAL_SIZE;
|
||||||
|
client->__resource_map =
|
||||||
|
malloc(sizeof(guac_resource*) * client->__available_resource_slots);
|
||||||
|
|
||||||
return client;
|
return client;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user