UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
resource_manager.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define RESOURCE_MANAGER_H_
 

Typedefs

typedef void(* singleton_deleter_t) (void *)
 
typedef void *(* singleton_initializer_t) (void *)
 

Functions

pthread_mutex_t * rm_acquire_shared_lock (const char *name)
 
void * rm_get_shm (const char *name, int size)
 
void rm_lock ()
 
void rm_release_shared_lock (const char *name)
 
void * rm_singleton (const char *name, singleton_initializer_t initializer, void *initializer_data, singleton_deleter_t deleter)
 
void rm_unlock ()
 

Detailed Description

Macro Definition Documentation

◆ RESOURCE_MANAGER_H_

#define RESOURCE_MANAGER_H_

Definition at line 45 of file resource_manager.h.

Typedef Documentation

◆ singleton_deleter_t

typedef void(* singleton_deleter_t) (void *)

Definition at line 67 of file resource_manager.h.

◆ singleton_initializer_t

typedef void *(* singleton_initializer_t) (void *)

Definition at line 66 of file resource_manager.h.

Function Documentation

◆ rm_acquire_shared_lock()

pthread_mutex_t * rm_acquire_shared_lock ( const char * name)
Parameters
nameis used to uniquely (!) identify lock. So when requested from 2 locations lock with same name, the same lock handle will be returned

Definition at line 259 of file resource_manager.cpp.

260{
261 lock *l = dynamic_cast<lock *>(resource_manager.acquire(
262 string(name), TYPE_LOCK, no_opts()));
263 if(l) {
264 return l->get();
265 } else {
266 return NULL;
267 }
268}
pthread_mutex_t * get()
resource * acquire(string name, type_t type, options_t const &options)
static resource_manager_t resource_manager
#define TYPE_LOCK
const char * name
Definition settings.cpp:193

References resource_manager_t::acquire(), lock::get(), name, resource_manager, and TYPE_LOCK.

Here is the call graph for this function:

◆ rm_get_shm()

void * rm_get_shm ( const char * name,
int size )

Definition at line 285 of file resource_manager.cpp.

286{
287 shm *s = dynamic_cast<shm *>(resource_manager.acquire(
288 string(name), TYPE_SHM, shm_opts(size)));
289 if(s) {
290 return s->get();
291 } else {
292 return NULL;
293 }
294}
void * get()
#define TYPE_SHM

References resource_manager_t::acquire(), shm::get(), name, resource_manager, and TYPE_SHM.

Referenced by get_state().

Here is the call graph for this function:

◆ rm_lock()

void rm_lock ( )

Definition at line 275 of file resource_manager.cpp.

References resource_manager_t::lock(), and resource_manager.

Referenced by get_state().

Here is the call graph for this function:

◆ rm_release_shared_lock()

void rm_release_shared_lock ( const char * name)

Definition at line 270 of file resource_manager.cpp.

271{
273}
void release(string name, type_t type)

References name, resource_manager_t::release(), resource_manager, and TYPE_LOCK.

Here is the call graph for this function:

◆ rm_singleton()

void * rm_singleton ( const char * name,
singleton_initializer_t initializer,
void * initializer_data,
singleton_deleter_t deleter )

Definition at line 296 of file resource_manager.cpp.

298{
299 singleton *s = dynamic_cast<singleton *>(resource_manager.acquire(
300 string(name), TYPE_SINGLETON, singleton_opts(initializer, data, done)));
301 if(s) {
302 return s->get();
303 } else {
304 return NULL;
305 }
306}
static void done(void *state)
#define TYPE_SINGLETON

References resource_manager_t::acquire(), done(), singleton::get(), name, resource_manager, and TYPE_SINGLETON.

Here is the call graph for this function:

◆ rm_unlock()

void rm_unlock ( )

Definition at line 280 of file resource_manager.cpp.

References resource_manager, and resource_manager_t::unlock().

Referenced by get_state().

Here is the call graph for this function: