CkByteData C Library Reference
CkByteData
* This is a freeware class/C library/library.
Represents a chunk of byte data and provides methods for accessing it, adding to it, or saving and loading from files.
Create/Dispose
HCkByteData CkByteData_Create(void);
Creates an instance of the CkByteData object and returns a handle (i.e. a "void *" pointer). The handle is passed in the 1st argument for the functions listed on this page.
void CkByteData_Dispose(HCkByteData handle);
Objects created by calling CkByteData_Create must be freed by calling this method. A memory leak occurs if a handle is not disposed by calling this function.
C "Properties"
BOOL CkByteData_getUtf8(HCkByteData handle); void CkByteData_putUtf8(HCkByteData handle, BOOL newVal);
When set to true, all "const char *" arguments are expected to be utf-8 strings. If set to false, the "const char *" arguments are expected to be ANSI strings.
C "Methods"
void CkByteData_append(HCkByteData handle, const unsigned char *data, unsigned long numBytes);
Appends byte data to the data already contained in the object.
void CkByteData_append(HCkByteData handle, const char *byteData, unsigned long numBytes);
Appends byte data to the data already contained in the object.
void CkByteData_appendChar(HCkByteData handle, char ch);
Appends a single byte.
void CkByteData_appendEncoded(HCkByteData handle, const char *str, const char *encoding);
Appends binary data from an encoded string. The encoding can be "hex", "base64", "quoted-printable", or "url". The input string is decoded from the specified encoding and the binary data is appended to the calling object's content.
BOOL CkByteData_appendFile(HCkByteData handle, const char *filename);
Opens a file for binary read, appends the file contents, and closes the file.
void CkByteData_appendInt(HCkByteData handle, int v, BOOL littleEndian);
To be documented soon...
void CkByteData_appendRange(HCkByteData handle, HCkByteData byteData, unsigned long index, unsigned long numBytes);
To be documented soon...
void CkByteData_appendShort(HCkByteData handle, short v, BOOL littleEndian);
To be documented soon...
void CkByteData_appendStr(HCkByteData handle, const char *str);
Appends a null-terminated string to the data, without including the terminating null.
BOOL CkByteData_beginsWith(HCkByteData handle, HCkByteData byteData);
To be documented soon...
BOOL CkByteData_beginsWith2(HCkByteData handle, const char *byteData, unsigned long byteDataLen);
To be documented soon...
void CkByteData_borrowData(HCkByteData handle, unsigned char *yourData, unsigned long numBytes);
Sets the CkByteData's data pointer and size to memory outside the object. This is useful in cases where a CkByteData object is needed, but copying data into the CkByteData is not desired.
void CkByteData_byteSwap4321(HCkByteData handle);
To be documented soon...
void CkByteData_clear(HCkByteData handle);
Clears the CkByteData object of all data.
const char *CkByteData_computeHash(HCkByteData handle, const char *hashAlg, const char *outputEncoding);
To be documented soon...
void CkByteData_encode(HCkByteData handle, const char *encoding, HCkString str);
Encodes binary data according to the encoding requested. The encoding can be specified as "hex", "base64", "url", or "quoted-printable".
void CkByteData_ensureBuffer(HCkByteData handle, unsigned long numBytes);
To be documented soon...
int CkByteData_findBytes(HCkByteData handle, HCkByteData byteData);
To be documented soon...
int CkByteData_findBytes2(HCkByteData handle, const char *byteData, unsigned long byteDataLen);
To be documented soon...
unsigned char CkByteData_getByte(HCkByteData handle, unsigned long byteIndex);
Returns the Nth byte of the binary data. The 1st byte is at index 0.
const unsigned char *CkByteData_getBytes(HCkByteData handle);
To be documented soon...
char CkByteData_getChar(HCkByteData handle, unsigned long byteIndex);
Returns the Nth byte of the binary content as a "char". The 1st byte is at index 0.
const unsigned char *CkByteData_getData(HCkByteData handle);
Returns a pointer to the internal buffer. Be careful with this method because if additional data is appended, the data within the object may be relocated and the pointer may cease to be valid.
const unsigned char *CkByteData_getDataAt(HCkByteData handle, unsigned long byteIndex);
Same as getData, except it gets a pointer to the data at a byte offset. (0 = the start of buffer)
const char *CkByteData_getEncoded(HCkByteData handle, const char *encoding);
To be documented soon...
const char *CkByteData_getEncodedRange(HCkByteData handle, const char *encoding, unsigned long index, unsigned long numBytes);
To be documented soon...
int CkByteData_getInt(HCkByteData handle, unsigned long byteIndex);
Returns the 4-byte integer located at a specific byte index.
const unsigned char *CkByteData_getRange(HCkByteData handle, unsigned long byteIndex, unsigned long numBytes);
To be documented soon...
const char *CkByteData_getRangeStr(HCkByteData handle, unsigned long byteIndex, unsigned long numAnsiChars);
To be documented soon...
short CkByteData_getShort(HCkByteData handle, unsigned long byteIndex);
Returns the 2-byte integer located at a specific byte index.
unsigned long CkByteData_getSize(HCkByteData handle);
Returns the number of bytes in the data buffer.
unsigned int CkByteData_getUInt(HCkByteData handle, unsigned long byteIndex);
Returns the 4-byte unsigned integer located at a specific byte index.
unsigned short CkByteData_getUShort(HCkByteData handle, unsigned long byteIndex);
Returns the 2-byte unsigned integer located at a specific byte index.
const char *CkByteData_getXmlCharset(HCkByteData handle);
To be documented soon...
BOOL CkByteData_is7bit(HCkByteData handle);
To be documented soon...
BOOL CkByteData_loadFile(HCkByteData handle, const char *filename);
Equivalent to clear() followed by appendFile().
void CkByteData_pad(HCkByteData handle, int blockSize, int paddingScheme);
To be documented soon...
void CkByteData_preAllocate(HCkByteData handle, unsigned long expectedNumBytes);
To be documented soon...
void CkByteData_removeChunk(HCkByteData handle, unsigned long index, unsigned long numBytes);
To be documented soon...
unsigned char *CkByteData_removeData(HCkByteData handle);
Removes the data from the CkByteData object. The caller will receivea pointer to the memory buffer, and is responsible for deleting it. Example: unsigned char *data = byteData.removeData(); ... do something with the data.... delete [] data;
BOOL CkByteData_saveFile(HCkByteData handle, const char *filename);
Saves the byte data to a file. If the file already exists, it will be overwritten.
void CkByteData_shorten(HCkByteData handle, unsigned long numBytes);
Discards N bytes from the end of the data.
const char *CkByteData_to_s(HCkByteData handle);
To be documented soon...
void CkByteData_unpad(HCkByteData handle, int blockSize, int paddingScheme);
To be documented soon...
|