Mercurial > repos > dawe > srf2fastq
diff srf2fastq/io_lib-1.12.2/io_lib/array.h @ 0:d901c9f41a6a default tip
Migrated tool version 1.0.1 from old tool shed archive to new tool shed repository
author | dawe |
---|---|
date | Tue, 07 Jun 2011 17:48:05 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srf2fastq/io_lib-1.12.2/io_lib/array.h Tue Jun 07 17:48:05 2011 -0400 @@ -0,0 +1,93 @@ +/* + * Copyright (c) Medical Research Council 1994. All rights reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation for any purpose is hereby granted without fee, provided that + * this copyright and notice appears in all copies. + * + * This file was written by James Bonfield, Simon Dear, Rodger Staden, + * as part of the Staden Package at the MRC Laboratory of Molecular + * Biology, Hills Road, Cambridge, CB2 2QH, United Kingdom. + * + * MRC disclaims all warranties with regard to this software. + */ + +/* + * File: array.h + * Version: + * + * Description: + * + * Created: + * Updated: + * + */ + +#ifndef _ARRAY_H_ +#define _ARRAY_H_ + +/* 12/1/99 johnt - use stddef.h not sys/types.h for size_t */ +#include <stddef.h> /* IMPORT: size_t */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + size_t size; /* element size */ + size_t dim; /* allocated number of elements */ + size_t max; /* elements accessed */ + void *base; /* base address of array */ +} ArrayStruct, *Array; + + + +extern Array ArrayCreate(size_t size, size_t dim); + +extern int ArrayExtend(Array a, size_t dim); + +extern void *ArrayRef(Array a, size_t i); + +extern int ArrayDestroy(Array a); + +#define ArrayMax(a) ( (a)->max ) + +#define ArrayBase(t,a) ( (t *)((a)->base) ) + +/* +#define arr(t,a,n) \ + (*(t*)((a)->base + (a)->size*(n))) + +#define arrp(t,a,n) \ + ((t*)((a)->base + (a)->size*(n))) +*/ + + + + +#define arr(t,a,n) \ + ((t*)((a)->base))[n] + +#define ARR(t,a,n) \ + (*((t*)ArrayRef((a),(n)))) + +#define arrp(t,a,n) \ + &((t*)((a)->base))[n] +#define ARRP(t,a,n) \ + ((t*)ArrayRef(a,n)) + +#define ARRAY_NO_ERROR 0 +#define ARRAY_FULL -1 +#define ARRAY_INVALID_ARGUMENTS -2 +#define ARRAY_OUT_OF_MEMORY -3 + +extern int ArrayError; + +extern char *ArrayErrorString(int error); + + +#ifdef __cplusplus +} +#endif + +#endif /*_ARRAY_H_*/