Leptonica  1.54
Файл bytearray.c
#include <string.h>
#include "allheaders.h"

Функции

static l_int32 l_byteaExtendArrayToSize (L_BYTEA *ba, size_t size)
 
L_BYTEAl_byteaCreate (size_t nbytes)
 
L_BYTEAl_byteaInitFromMem (l_uint8 *data, size_t size)
 
L_BYTEAl_byteaInitFromFile (const char *fname)
 
L_BYTEAl_byteaInitFromStream (FILE *fp)
 
L_BYTEAl_byteaCopy (L_BYTEA *bas, l_int32 copyflag)
 
void l_byteaDestroy (L_BYTEA **pba)
 
size_t l_byteaGetSize (L_BYTEA *ba)
 
l_uint8l_byteaGetData (L_BYTEA *ba, size_t *psize)
 
l_uint8l_byteaCopyData (L_BYTEA *ba, size_t *psize)
 
l_int32 l_byteaAppendData (L_BYTEA *ba, l_uint8 *newdata, size_t newbytes)
 
l_int32 l_byteaAppendString (L_BYTEA *ba, char *str)
 
l_int32 l_byteaJoin (L_BYTEA *ba1, L_BYTEA **pba2)
 
l_int32 l_byteaSplit (L_BYTEA *ba1, size_t splitloc, L_BYTEA **pba2)
 
l_int32 l_byteaFindEachSequence (L_BYTEA *ba, l_uint8 *sequence, l_int32 seqlen, L_DNA **pda)
 
l_int32 l_byteaWrite (const char *fname, L_BYTEA *ba, size_t startloc, size_t endloc)
 
l_int32 l_byteaWriteStream (FILE *fp, L_BYTEA *ba, size_t startloc, size_t endloc)
 

Переменные

static const l_int32 INITIAL_ARRAYSIZE = 200
 

Функции

◆ l_byteaAppendData()

l_int32 l_byteaAppendData ( L_BYTEA ba,
l_uint8 newdata,
size_t  newbytes 
)

l_byteaAppendData()

Input:  ba
        newdata (byte array to be appended)
        size (size of data array)
Return: 0 if OK, 1 on error

◆ l_byteaAppendString()

l_int32 l_byteaAppendString ( L_BYTEA ba,
char *  str 
)

l_byteaAppendString()

Input:  ba
        str (null-terminated string to be appended)
Return: 0 if OK, 1 on error

◆ l_byteaCopy()

L_BYTEA* l_byteaCopy ( L_BYTEA bas,
l_int32  copyflag 
)

l_byteaCopy()

Input:  bas  (source lba)
        copyflag (L_COPY, L_CLONE)
Return: clone or copy of bas, or null on error

Notes: (1) If cloning, up the refcount and return a ptr to @bas.

◆ l_byteaCopyData()

l_uint8* l_byteaCopyData ( L_BYTEA ba,
size_t *  psize 
)

l_byteaCopyData()

Input:  ba
        &size (<returned> size of data in lba)
Return: copy of data in use in the data array, or null on error.

Notes: (1) The returned data is owned by the caller. The input @ba still owns the original data array.

◆ l_byteaCreate()

L_BYTEA* l_byteaCreate ( size_t  nbytes)

l_byteaCreate()

Input:  n (determines initial size of data array)
Return: l_bytea, or null on error

Notes: (1) The allocated array is n + 1 bytes. This allows room for null termination.

◆ l_byteaDestroy()

void l_byteaDestroy ( L_BYTEA **  pba)

l_byteaDestroy()

Input:  &ba (<will be set to null before returning>)
Return: void

Notes: (1) Decrements the ref count and, if 0, destroys the lba. (2) Always nulls the input ptr. (3) If the data has been previously removed, the lba will have been nulled, so this will do nothing.

◆ l_byteaExtendArrayToSize()

static l_int32 l_byteaExtendArrayToSize ( L_BYTEA ba,
size_t  size 
)
static

l_byteaExtendArrayToSize()

Input:  ba
        size (new size of lba data array)
Return: 0 if OK; 1 on error

◆ l_byteaFindEachSequence()

l_int32 l_byteaFindEachSequence ( L_BYTEA ba,
l_uint8 sequence,
l_int32  seqlen,
L_DNA **  pda 
)

l_byteaFindEachSequence()

Input:  ba
        sequence (subarray of bytes to find in data)
        seqlen (length of sequence, in bytes)
        &da (<return> byte positions of each occurrence of @sequence)
Return: 0 if OK, 1 on error

◆ l_byteaGetData()

l_uint8* l_byteaGetData ( L_BYTEA ba,
size_t *  psize 
)

l_byteaGetData()

Input:  ba
        &size (<returned> size of data in lba)
Return: ptr to existing data array, or NULL on error

Notes: (1) The returned ptr is owned by @ba. Do not free it!

◆ l_byteaGetSize()

size_t l_byteaGetSize ( L_BYTEA ba)

l_byteaGetSize()

Input:  ba
Return: size of stored byte array, or 0 on error

◆ l_byteaInitFromFile()

L_BYTEA* l_byteaInitFromFile ( const char *  fname)

l_byteaInitFromFile()

Input:  fname
Return: l_bytea, or null on error

◆ l_byteaInitFromMem()

L_BYTEA* l_byteaInitFromMem ( l_uint8 data,
size_t  size 
)

l_byteaInitFromMem()

Input:  data (to be copied to the array)
        size (amount of data)
Return: l_bytea, or null on error

◆ l_byteaInitFromStream()

L_BYTEA* l_byteaInitFromStream ( FILE *  fp)

l_byteaInitFromStream()

Input:  stream
Return: l_bytea, or null on error

◆ l_byteaJoin()

l_int32 l_byteaJoin ( L_BYTEA ba1,
L_BYTEA **  pba2 
)

l_byteaJoin()

Input:  ba1
        &ba2 (data array is added to the one in ba1, and
               then ba2 is destroyed)
Return: 0 if OK, 1 on error

Notes: (1) It is a no-op, not an error, for @ba2 to be null.

◆ l_byteaSplit()

l_int32 l_byteaSplit ( L_BYTEA ba1,
size_t  splitloc,
L_BYTEA **  pba2 
)

l_byteaSplit()

Input:  ba1 (lba to split; array bytes nulled beyond the split loc)
        splitloc (location in ba1 to split; ba2 begins there)
        &ba2 (<return> with data starting at splitloc)
Return: 0 if OK, 1 on error

◆ l_byteaWrite()

l_int32 l_byteaWrite ( const char *  fname,
L_BYTEA ba,
size_t  startloc,
size_t  endloc 
)

l_byteaWrite()

Input:  fname (output file)
        ba
        startloc (first byte to output)
        endloc (last byte to output; use 0 to write to the
                end of the data array)
Return: 0 if OK, 1 on error

◆ l_byteaWriteStream()

l_int32 l_byteaWriteStream ( FILE *  fp,
L_BYTEA ba,
size_t  startloc,
size_t  endloc 
)

l_byteaWriteStream()

Input:  stream (opened for binary write)
        ba
        startloc (first byte to output)
        endloc (last byte to output; use 0 to write to the
                end of the data array)
Return: 0 if OK, 1 on error

Переменные

◆ INITIAL_ARRAYSIZE

const l_int32 INITIAL_ARRAYSIZE = 200
static