mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
49 lines
1.5 KiB
Plaintext
49 lines
1.5 KiB
Plaintext
# ----------------------------------------------------------------------------------------------------------------------------------
|
|
# Binary to String Encode/Decode Perl Exports
|
|
# ----------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
MODULE = pgBackRest::LibC PACKAGE = pgBackRest::LibC
|
|
|
|
####################################################################################################################################
|
|
SV *
|
|
encodeToStr(encodeType, source)
|
|
int encodeType
|
|
SV *source
|
|
CODE:
|
|
RETVAL = NULL;
|
|
|
|
STRLEN sourceSize;
|
|
unsigned char *sourcePtr = (unsigned char *)SvPV(source, sourceSize);
|
|
|
|
ERROR_XS_BEGIN()
|
|
{
|
|
RETVAL = newSV(encodeToStrSize(encodeType, sourceSize));
|
|
SvPOK_only(RETVAL);
|
|
|
|
encodeToStr(encodeType, sourcePtr, sourceSize, (char *)SvPV_nolen(RETVAL));
|
|
SvCUR_set(RETVAL, encodeToStrSize(encodeType, sourceSize));
|
|
}
|
|
ERROR_XS_END();
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
####################################################################################################################################
|
|
SV *
|
|
decodeToBin(encodeType, source)
|
|
int encodeType
|
|
const char *source
|
|
CODE:
|
|
RETVAL = NULL;
|
|
|
|
ERROR_XS_BEGIN()
|
|
{
|
|
RETVAL = newSV(decodeToBinSize(encodeType, source));
|
|
SvPOK_only(RETVAL);
|
|
|
|
decodeToBin(encodeType, source, (unsigned char *)SvPV_nolen(RETVAL));
|
|
SvCUR_set(RETVAL, decodeToBinSize(encodeType, source));
|
|
}
|
|
ERROR_XS_END();
|
|
OUTPUT:
|
|
RETVAL
|