static void __del(void* inst) { iOListData data = Data(inst); freeIDMem( data->objList, RocsListID ); freeIDMem( data, RocsListID ); freeIDMem( inst, RocsListID ); instCnt--; }
static void __del(void* inst) { iOMutexData data = Data(inst); rocs_mutex_close( data ); StrOp.freeID( data->name, RocsMutexID ); freeIDMem( data, RocsMutexID ); freeIDMem( inst, RocsMutexID ); instCnt--; }
static void __del(void* inst) { iOQueueData data = Data(inst); data->evt->base.del( data->evt ); data->mux->base.del( data->mux ); if( data->desc != NULL ) StrOp.free(data->desc); freeIDMem( data, RocsQueueID ); freeIDMem( inst, RocsQueueID ); instCnt--; }
/* ------------------------------------------------------------ * base.del() */ static void __del(void* inst) { iOStrTok strtok = inst; iOStrTokData data = Data(inst); StrOp.freeID( data->str, RocsStrTokID ); freeIDMem( data , RocsStrTokID ); freeIDMem( strtok, RocsStrTokID ); instCnt--; }
static void __del(void* inst) { if( inst != NULL ) { iOTraceData data = Data(inst); if( inst == traceInst ) { StrOp.freeID( data->appID, RocsTraceID ); freeIDMem( data, RocsTraceID ); freeIDMem( inst, RocsTraceID ); traceInst = NULL; instCnt--; } } }
static void __del(void* inst) { if( inst != NULL ) { iOThreadData data = Data(inst); __removeThread( inst ); data->queue->base.del( data->queue ); StrOp.freeID( data->tname, RocsThreadID ); StrOp.freeID( data->tdesc, RocsThreadID ); freeIDMem( data, RocsThreadID ); freeIDMem( inst, RocsThreadID ); instCnt--; } else TraceOp.trc( name, TRCLEVEL_EXCEPTION, __LINE__, 9999, "inst == NULL !" ); }
static void __del(void* inst) { if( inst != NULL ) { iOFileData data = Data(inst); FileOp.close( inst ); StrOp.freeID( data->path, RocsFileID ); freeIDMem( data, RocsFileID ); freeIDMem( inst, RocsFileID ); if( instCnt > 0 ) instCnt--; else { /*OOPS*/ printf("***** FileOp.base.del() instCnt can't be decreased..."); } } }
static void _sort( iOList inst, comparator comp ) { if( inst != NULL ) { iOListData data = Data(inst); int size = ListOp.size( inst ); int i = 0; int moved = 0; void** objlist; if( size < 2 ) return; /* init index: */ objlist = allocIDMem( size * sizeof(void*), RocsListID ); for( i = 0; i < size; i++ ) { objlist[i] = (void*)ListOp.get( inst, i ); } qsort( (void *)objlist, (size_t)size, sizeof(void*), (qsort_compar)comp ); /* copy objects in the new list */ ListOp.clear( inst ); for( i = 0; i < size; i++ ) ListOp.add( inst, objlist[i] ); /* cleanup index */ freeIDMem( objlist, RocsListID ); } else { TraceOp.trc( name, TRCLEVEL_WARNING, __LINE__, 9999, "inst == NULL" ); } }
static Boolean _cp( const char* src, const char* dst ) { Boolean ok = False; int buffersize = 1024 * 1024; byte* buffer = NULL; /* Correct file separators. */ _convertPath2OSType( src ); _convertPath2OSType( dst ); /* Allocate buffer for copy. */ buffer = allocIDMem( buffersize, RocsFileID ); if( buffer != NULL && FileOp.exist( src ) ) { iOFile srcFile = FileOp.inst( src, OPEN_READONLY ); iOFile dstFile = FileOp.inst( dst, OPEN_WRITE ); if( srcFile != NULL && dstFile != NULL ) { long readed = 0; long written = 0; long fsize = FileOp.size( srcFile ); long readtotal = 0; do { long toread = buffersize; if( readtotal + buffersize > fsize ) toread = fsize - readtotal; ok = FileOp.read( srcFile, (char*)buffer, toread ); readed = FileOp.getReaded( srcFile ); readtotal += readed; if( ok && readed > 0 ) { ok = FileOp.write( dstFile, (char*)buffer, readed ); written += FileOp.getWritten( dstFile ); } } while( ok && fsize > written ); } FileOp.base.del( srcFile ); FileOp.base.del( dstFile ); } freeIDMem( buffer, RocsFileID ); return ok; }
static obj _get( iOQueue inst ) { iOQueueData data = Data(inst); obj qo = NULL; MutexOp.wait( data->mux ); if( data->first != NULL ) { qMsg qm = data->first; qo = qm->o; data->first = qm->next; if( data->last[qm->prio] == qm ) { /* last element of this prio */ data->last[qm->prio] = NULL; } freeIDMem( qm, RocsQueueID ); data->count--; } MutexOp.post( data->mux ); return qo; }
int closedir(DIR *dir) { _findclose( dir->handle ); freeIDMem( dir, RocsDirID ); return 0; }