A simple web server that can be bound to either the EthernetInterface or the WiflyInterface.

Dependents:   Smart-WiFly-WebServer WattEye X10Svr SSDP_Server

Revision:
13:8975d7928678
Parent:
12:109bf1558300
Child:
14:19c5f6151319
--- a/Base64.h	Sun Aug 11 15:49:51 2013 +0000
+++ b/Base64.h	Mon Aug 12 11:26:59 2013 +0000
@@ -1,13 +1,79 @@
+#ifndef BASE64_H
+#define BASE64_H
 
+#include "mbed.h"
 
+/** Base64 encoder and decoder
+*
+* This class provided both encoding and decoding functions. These functions
+* perform dynamic memory allocations to create space for the translated 
+* response. It is up to the calling function to free the space when
+* done with the translation.
+*
+* This code was derived from code found online that did not have any 
+* copyright or reference to its work.
+*
+* @code
+* Base64 n();
+*
+* size_t encodedLen;
+* char *encoded = n.Encode("This is the message", 20, &encodedLen);
+*
+*/
 class Base64
 {
 public:
+    /** Constructor
+    *
+    */
     Base64();
+    
+    /** Destructor
+    *
+    * This will release memory that may have been allocated (when the Decode
+    * function is called).
+    */
     ~Base64();
-    char *base64_encode(const unsigned char *data, size_t input_length, size_t *output_length);
-    unsigned char *base64_decode(const char *data, size_t input_length, size_t *output_length);
+    
+    /** Encodes a string of information of a defined length
+    *
+    * The encoded information is considered a binary stream, therefore a length is provided
+    * which is used to compute the amount of memory to allocate for the conversion.
+    * 
+    * @note The Decode method does not know how you are using it - if it is for text,
+    *       it will not apply any null termination, unless that was part of the input.
+    *
+    * @param data is a pointer to the input binary stream.
+    * @param input_length is the number of bytes to process.
+    * @param output_length is a pointer to a size_t value into which is written the
+    *        number of bytes in the output.
+    *
+    * @returns a pointer to the allocated block of memory holding the converted results.
+    * @returns NULL if something went very wrong.
+    */
+    char *Encode(const char *data, size_t input_length, size_t *output_length);
+    
+    /** Decodes a base64 encoded stream back into the original information.
+    *
+    * The information to decode is considered a base64 encoded stream. A length is
+    * provided which is used to compute the amount of memory to allocate for the conversion.
+    *
+    * @note The Decode method does not know how you are using it - if it is for text,
+    *       it will not apply any null termination, unless that was part of the input.
+    *
+    * @param data is a pointer to the encoded data to decode.
+    * @param input_length is the number of bytes to process.
+    * @param output_length is a pointer to a size_t value into which is written the
+    *        number of bytes in the output.
+    *
+    * @returns a pointer to the allocated block of memory holding the converted results.
+    * @returns NULL if something went very wrong.
+    */
+    char *Decode(const char *data, size_t input_length, size_t *output_length);
+    
 private:
     void build_decoding_table();
     char *decoding_table;
-};
\ No newline at end of file
+};
+
+#endif // BASE64_H
\ No newline at end of file