diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2003-06-30 01:42:48 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2003-06-30 01:42:48 (GMT) |
commit | 0f1af706b5dcb42077c1831df35a8b0e03f26a20 (patch) | |
tree | 38f7b76434394ab623c4017d30bed912de1a8d4c /Source/kwsys/Base64.h.in | |
parent | 823c073052644fc05e70edf6122e88704cca5136 (diff) | |
download | CMake-0f1af706b5dcb42077c1831df35a8b0e03f26a20.zip CMake-0f1af706b5dcb42077c1831df35a8b0e03f26a20.tar.gz CMake-0f1af706b5dcb42077c1831df35a8b0e03f26a20.tar.bz2 |
ENH: Initial import of Base64
Diffstat (limited to 'Source/kwsys/Base64.h.in')
-rw-r--r-- | Source/kwsys/Base64.h.in | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/Source/kwsys/Base64.h.in b/Source/kwsys/Base64.h.in new file mode 100644 index 0000000..701606f --- /dev/null +++ b/Source/kwsys/Base64.h.in @@ -0,0 +1,120 @@ +/*========================================================================= + + Program: KWSys - Kitware System Library + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef @KWSYS_NAMESPACE@_Base64_h +#define @KWSYS_NAMESPACE@_Base64_h + +/* Redefine all public interface symbol names to be in the proper + namespace. These macros are used internally to kwsys only, and are + not visible to user code. Use kwsysHeaderDump.pl to reproduce + these macros after making changes to the interface. */ +#define kwsys(x) @KWSYS_NAMESPACE@##x +#define kwsysBase64 kwsys(Base64) +#define kwsysBase64_Encode1 kwsys(Base64_Encode1) +#define kwsysBase64_Encode2 kwsys(Base64_Encode2) +#define kwsysBase64_Encode3 kwsys(Base64_Encode3) +#define kwsysBase64_Encode kwsys(Base64_Encode) +#define kwsysBase64_Decode kwsys(Base64_Decode) +#define kwsysBase64_Decode3 kwsys(Base64_Decode3) + +#if defined(__cplusplus) +extern "C" +{ +#endif + +/* Encode 3 bytes into a 4 byte string. */ +void kwsysBase64_Encode3(const unsigned char *src, unsigned char *dest); + +/* Encode 2 bytes into a 4 byte string. */ +void kwsysBase64_Encode2(const unsigned char *src, unsigned char *dest); + +/* Encode 1 bytes into a 4 byte string. */ +void kwsysBase64_Encode1(const unsigned char *src, unsigned char *dest); + +/* Encode 'length' bytes from the input buffer and store the + encoded stream into the output buffer. Return the length of the encoded + buffer (output). Note that the output buffer must be allocated by the caller + (length * 1.5 should be a safe estimate). If 'mark_end' is true than an + extra set of 4 bytes is added to the end of the stream if the input is a + multiple of 3 bytes. These bytes are invalid chars and therefore they will + stop the decoder thus enabling the caller to decode a stream without + actually knowing how much data to expect (if the input is not a multiple of + 3 bytes then the extra padding needed to complete the encode 4 bytes will + stop the decoding anyway). */ + +unsigned long kwsysBase64_Encode(const unsigned char *input, + unsigned long length, unsigned char *output, int mark_end); + +/* Decode 4 bytes into a 3 byte string. */ +int kwsysBase64_Decode3(const unsigned char *src, unsigned char *dest); + +/* Decode bytes from the input buffer and store the decoded stream + into the output buffer until 'length' bytes have been decoded. Return the + real length of the decoded stream (which should be equal to 'length'). Note + that the output buffer must be allocated by the caller. If + 'max_input_length' is not null, then it specifies the number of encoded + bytes that should be at most read from the input buffer. In that case the + 'length' parameter is ignored. This enables the caller to decode a stream + without actually knowing how much decoded data to expect (of course, the + buffer must be large enough). */ +unsigned long kwsysBase64_Decode(const unsigned char *input, + unsigned long length, unsigned char *output, unsigned long max_input_length); + +#if defined(__cplusplus) +} /* extern "C" */ +#endif + +/* If we are building a kwsysBase64 .c file, let it use these macros. + Otherwise, undefine them to keep the namespace clean. */ +#if !defined(KWSYS_IN_PROCESS_C) +# undef kwsys +# undef kwsysBase64 +# undef kwsysBase64_s +# undef kwsysBase64_New +# undef kwsysBase64_Delete +# undef kwsysBase64_SetCommand +# undef kwsysBase64_SetTimeout +# undef kwsysBase64_State_Starting +# undef kwsysBase64_State_Error +# undef kwsysBase64_State_Exception +# undef kwsysBase64_State_Executing +# undef kwsysBase64_State_Exited +# undef kwsysBase64_State_Expired +# undef kwsysBase64_State_Killed +# undef kwsysBase64_GetState +# undef kwsysBase64_State_e +# undef kwsysBase64_Exception_None +# undef kwsysBase64_Exception_Fault +# undef kwsysBase64_Exception_Illegal +# undef kwsysBase64_Exception_Interrupt +# undef kwsysBase64_Exception_Numerical +# undef kwsysBase64_Exception_Other +# undef kwsysBase64_GetExitException +# undef kwsysBase64_Exception_e +# undef kwsysBase64_GetExitCode +# undef kwsysBase64_GetExitValue +# undef kwsysBase64_GetErrorString +# undef kwsysBase64_Execute +# undef kwsysBase64_WaitForData +# undef kwsysBase64_Pipes_e +# undef kwsysBase64_Pipe_STDOUT +# undef kwsysBase64_Pipe_STDERR +# undef kwsysBase64_Pipe_Timeout +# undef kwsysBase64_WaitForExit +# undef kwsysBase64_Kill +#endif + +#endif |