68 #include "allheaders.h" 70 static const l_int32 INITIAL_ARRAYSIZE = 200;
96 PROCNAME(
"l_byteaCreate");
99 nbytes = INITIAL_ARRAYSIZE;
102 ba->
data = (l_uint8 *)LEPT_CALLOC(nbytes + 1,
sizeof(l_uint8));
105 return (
L_BYTEA *)ERROR_PTR(
"ba array not made", procName, NULL);
126 PROCNAME(
"l_byteaInitFromMem");
129 return (
L_BYTEA *)ERROR_PTR(
"data not defined", procName, NULL);
131 return (
L_BYTEA *)ERROR_PTR(
"no bytes to initialize", procName, NULL);
134 return (
L_BYTEA *)ERROR_PTR(
"ba not made", procName, NULL);
135 memcpy(ba->
data, data, size);
153 PROCNAME(
"l_byteaInitFromFile");
156 return (
L_BYTEA *)ERROR_PTR(
"fname not defined", procName, NULL);
159 return (
L_BYTEA *)ERROR_PTR(
"file stream not opened", procName, NULL);
163 return (
L_BYTEA *)ERROR_PTR(
"ba not made", procName, NULL);
181 PROCNAME(
"l_byteaInitFromStream");
184 return (
L_BYTEA *)ERROR_PTR(
"stream not defined", procName, NULL);
187 return (
L_BYTEA *)ERROR_PTR(
"data not read", procName, NULL);
190 return (
L_BYTEA *)ERROR_PTR(
"ba not made", procName, NULL);
192 memcpy(ba->
data, data, nbytes);
215 PROCNAME(
"l_byteaCopy");
218 return (
L_BYTEA *)ERROR_PTR(
"bas not defined", procName, NULL);
248 PROCNAME(
"l_byteaDestroy");
251 L_WARNING(
"ptr address is null!\n", procName);
255 if ((ba = *pba) == NULL)
282 PROCNAME(
"l_byteaGetSize");
285 return ERROR_INT(
"ba not defined", procName, 0);
306 PROCNAME(
"l_byteaGetData");
309 return (l_uint8 *)ERROR_PTR(
"ba not defined", procName, NULL);
311 return (l_uint8 *)ERROR_PTR(
"&size not defined", procName, NULL);
337 PROCNAME(
"l_byteaCopyData");
340 return (l_uint8 *)ERROR_PTR(
"&size not defined", procName, NULL);
343 return (l_uint8 *)ERROR_PTR(
"ba not defined", procName, NULL);
363 const l_uint8 *newdata,
366 size_t size, nalloc, reqsize;
368 PROCNAME(
"l_byteaAppendData");
371 return ERROR_INT(
"ba not defined", procName, 1);
373 return ERROR_INT(
"newdata not defined", procName, 1);
376 reqsize = size + newbytes + 1;
378 if (nalloc < reqsize)
381 memcpy(ba->
data + size, newdata, newbytes);
382 ba->
size += newbytes;
398 size_t size, len, nalloc, reqsize;
400 PROCNAME(
"l_byteaAppendString");
403 return ERROR_INT(
"ba not defined", procName, 1);
405 return ERROR_INT(
"str not defined", procName, 1);
409 reqsize = size + len + 1;
411 if (nalloc < reqsize)
414 memcpy(ba->
data + size, str, len);
431 PROCNAME(
"l_byteaExtendArrayToSize");
434 return ERROR_INT(
"ba not defined", procName, 1);
440 return ERROR_INT(
"new array not returned", procName, 1);
471 PROCNAME(
"l_byteaJoin");
474 return ERROR_INT(
"ba1 not defined", procName, 1);
476 return ERROR_INT(
"&ba2 not defined", procName, 1);
477 if ((ba2 = *pba2) == NULL)
return 0;
501 size_t nbytes1, nbytes2;
503 PROCNAME(
"l_byteaSplit");
506 return ERROR_INT(
"&ba2 not defined", procName, 1);
509 return ERROR_INT(
"ba1 not defined", procName, 1);
512 if (splitloc >= nbytes1)
513 return ERROR_INT(
"splitloc invalid", procName, 1);
514 nbytes2 = nbytes1 - splitloc;
520 memset(data1 + splitloc, 0, nbytes2);
521 ba1->
size = splitloc;
540 const l_uint8 *sequence,
547 PROCNAME(
"l_byteaFindEachSequence");
550 return ERROR_INT(
"&da not defined", procName, 1);
553 return ERROR_INT(
"ba not defined", procName, 1);
555 return ERROR_INT(
"sequence not defined", procName, 1);
585 PROCNAME(
"l_byteaWrite");
588 return ERROR_INT(
"fname not defined", procName, 1);
590 return ERROR_INT(
"ba not defined", procName, 1);
593 return ERROR_INT(
"stream not opened", procName, 1);
617 size_t size, maxbytes;
619 PROCNAME(
"l_byteaWriteStream");
622 return ERROR_INT(
"stream not defined", procName, 1);
624 return ERROR_INT(
"ba not defined", procName, 1);
627 startloc = L_MAX(0, startloc);
628 if (startloc >= size)
629 return ERROR_INT(
"invalid startloc", procName, 1);
630 maxbytes = size - startloc;
631 nbytes = (nbytes == 0) ? maxbytes : L_MIN(nbytes, maxbytes);
633 fwrite(data + startloc, 1, nbytes, fp);
l_ok l_byteaWriteStream(FILE *fp, L_BYTEA *ba, size_t startloc, size_t nbytes)
l_byteaWriteStream()
size_t l_byteaGetSize(L_BYTEA *ba)
l_byteaGetSize()
L_BYTEA * l_byteaCopy(L_BYTEA *bas, l_int32 copyflag)
l_byteaCopy()
l_ok l_byteaAppendString(L_BYTEA *ba, const char *str)
l_byteaAppendString()
L_DNA * arrayFindEachSequence(const l_uint8 *data, size_t datalen, const l_uint8 *sequence, size_t seqlen)
arrayFindEachSequence()
L_BYTEA * l_byteaCreate(size_t nbytes)
l_byteaCreate()
l_uint8 * l_byteaGetData(L_BYTEA *ba, size_t *psize)
l_byteaGetData()
L_BYTEA * l_byteaInitFromMem(const l_uint8 *data, size_t size)
l_byteaInitFromMem()
L_BYTEA * l_byteaInitFromStream(FILE *fp)
l_byteaInitFromStream()
l_uint8 * l_binaryCopy(l_uint8 *datas, size_t size)
l_binaryCopy()
void * reallocNew(void **pindata, l_int32 oldsize, l_int32 newsize)
reallocNew()
l_ok l_byteaAppendData(L_BYTEA *ba, const l_uint8 *newdata, size_t newbytes)
l_byteaAppendData()
l_ok l_byteaSplit(L_BYTEA *ba1, size_t splitloc, L_BYTEA **pba2)
l_byteaSplit()
L_BYTEA * l_byteaInitFromFile(const char *fname)
l_byteaInitFromFile()
FILE * fopenWriteStream(const char *filename, const char *modestring)
fopenWriteStream()
l_ok l_byteaFindEachSequence(L_BYTEA *ba, const l_uint8 *sequence, size_t seqlen, L_DNA **pda)
l_byteaFindEachSequence()
FILE * fopenReadStream(const char *filename)
fopenReadStream()
l_uint8 * l_binaryReadStream(FILE *fp, size_t *pnbytes)
l_binaryReadStream()
static l_int32 l_byteaExtendArrayToSize(L_BYTEA *ba, size_t size)
l_byteaExtendArrayToSize()
l_ok l_byteaWrite(const char *fname, L_BYTEA *ba, size_t startloc, size_t nbytes)
l_byteaWrite()
void l_byteaDestroy(L_BYTEA **pba)
l_byteaDestroy()
l_ok l_byteaJoin(L_BYTEA *ba1, L_BYTEA **pba2)
l_byteaJoin()
l_uint8 * l_byteaCopyData(L_BYTEA *ba, size_t *psize)
l_byteaCopyData()