/* SubMtxManager.h */
#include "../SubMtx.h"
#include "../Lock.h"
/*--------------------------------------------------------------------*/
/*
*/
typedef struct _SubMtxManager SubMtxManager ;
struct _SubMtxManager {
SubMtx *head ;
Lock *lock ;
int mode ;
int nactive ;
int nbytesactive ;
int nbytesrequested ;
int nbytesalloc ;
int nrequests ;
int nreleases ;
int nlocks ;
int nunlocks ;
} ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- methods found in basics.c ----------------------------------------
------------------------------------------------------------------------
*/
/*
-----------------------
simplest constructor
created -- 98may02, cca
-----------------------
*/
SubMtxManager *
SubMtxManager_new (
void
) ;
/*
-----------------------
set the default fields
created -- 98may02, cca
-----------------------
*/
void
SubMtxManager_setDefaultFields (
SubMtxManager *manager
) ;
/*
--------------------------------------------------
clear the data fields, releasing allocated storage
created -- 98may02, cca
--------------------------------------------------
*/
void
SubMtxManager_clearData (
SubMtxManager *manager
) ;
/*
------------------------------------------
destructor, free's the object and its data
created -- 98may02, cca
------------------------------------------
*/
void
SubMtxManager_free (
SubMtxManager *manager
) ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- methods found in init.c ------------------------------------------
------------------------------------------------------------------------
*/
/*
---------------------------------------------------------------
simple initializer
lockflag = 0 --> mutex lock is not allocated or initialized
lockflag = 1 --> mutex lock is allocated and it can synchronize
omly threads in this process.
lockflag = 2 --> mutex lock is allocated and it can synchronize
omly threads in this and other processes.
mode = 0 --> free object and storage on release
mode = 1 --> recycle object and storage on release
created -- 98may02, cca
---------------------------------------------------------------
*/
void
SubMtxManager_init (
SubMtxManager *manager,
int lockflag,
int mode
) ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- methods found in util.c ------------------------------------------
------------------------------------------------------------------------
*/
/*
-----------------------------------------------
return a pointer to a SubMtx object that has
been initialized with the input parameters
created -- 98may02, cca
-----------------------------------------------
*/
SubMtx *
SubMtxManager_newObjectOfSizeNbytes (
SubMtxManager *manager,
int nbytesNeeded
) ;
/*
----------------------------
release a SubMtx instance
created -- 98may02, cca
----------------------------
*/
void
SubMtxManager_releaseObject (
SubMtxManager *manager,
SubMtx *mtx
) ;
/*
-----------------------------------
release a list of SubMtx objects
created -- 98may02, cca
-----------------------------------
*/
void
SubMtxManager_releaseListOfObjects (
SubMtxManager *manager,
SubMtx *head
) ;
/*--------------------------------------------------------------------*/
/*
------------------------------------------------------------------------
----- methods found in IO.c --------------------------------------------
------------------------------------------------------------------------
*/
/*
----------------------------------------
purpose -- to write the object to a file
in human readable form
created -- 98may02, cca
----------------------------------------
*/
void
SubMtxManager_writeForHumanEye (
SubMtxManager *manager,
FILE *fp
) ;
/*--------------------------------------------------------------------*/
syntax highlighted by Code2HTML, v. 0.9.1