c-multicodec/multicodec/multicodec.h
2016-12-05 06:20:40 -05:00

35 lines
1.2 KiB
C

/**
* An implementation of multicodec
* See https://github.com/multiformats/multicodec
*/
#ifndef __MULTICODEC_H__
#define __MULTICODEC_H__
#include <stdlib.h>
#define MULTICODEC_RAW_BINARY 0x052f6269632f
#define MULTICODEC_ASCII_BASE_2 0x042f62322f
/**
* Encode a char array using the specified encoding
* @param codecName a standard name of the codec
* @param inData the incoming data to be encoded
* @param inDataLength the length of the inData
* @param outData a place to store the outgoing data that is at least maxOutDataLength in size
* @param maxOutDataLength the max size for the output
* @returns an error code or 0 if all is well
*/
int multicodec_encode(const char* codecName, char* inData, size_t inDataLength, char* outData, size_t maxOutDataLength);
/**
* Decode a multicodec encoded data array
* @param inData the data to be decoded
* @param inDataLength the length of the data to be encoded
* @param outData the array to put the results in
* @param maxOutDataLength the maximum size of the data
* @returns an error code or 0 if all is well
*/
int multicodec_decode(char* inData, size_t inDataLength, char* outData, size_t maxOutDataLength);
#endif // __MULTICODEC_H__