summaryrefslogtreecommitdiff
path: root/include/nsutils
diff options
context:
space:
mode:
Diffstat (limited to 'include/nsutils')
-rw-r--r--include/nsutils/base64.h30
-rw-r--r--include/nsutils/errors.h78
2 files changed, 108 insertions, 0 deletions
diff --git a/include/nsutils/base64.h b/include/nsutils/base64.h
new file mode 100644
index 0000000..139a1b6
--- /dev/null
+++ b/include/nsutils/base64.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2014 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of libnsutils.
+ *
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+/**
+ * \file
+ * Base64 encoding and decoding interface.
+ */
+
+#ifndef NSUTILS_BASE64_H_
+#define NSUTILS_BASE64_H_
+
+#include <nsutils/errors.h>
+
+nserror base64_encode_alloc(const uint8_t *input,
+ size_t input_length,
+ uint8_t **output,
+ size_t *output_length);
+
+nserror base64_decode_alloc(const uint8_t *input,
+ size_t input_length,
+ uint8_t **output,
+ size_t *output_length);
+
+#endif
diff --git a/include/nsutils/errors.h b/include/nsutils/errors.h
new file mode 100644
index 0000000..0da38d9
--- /dev/null
+++ b/include/nsutils/errors.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2014 John-Mark Bell <jmb@netsurf-browser.org>
+ *
+ * This file is part of libnsutils.
+ *
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+/**
+ * \file
+ * Error codes.
+ */
+
+#ifndef NSUTILS_ERRORS_H_
+#define NSUTILS_ERRORS_H_
+
+/**
+ * Enumeration of error codes
+ */
+typedef enum {
+ NSERROR_OK, /**< No error */
+
+ NSERROR_UNKNOWN, /**< Unknown error - DO *NOT* USE */
+
+ NSERROR_NOMEM, /**< Memory exhaustion */
+
+ NSERROR_NO_FETCH_HANDLER, /**< No fetch handler for URL scheme */
+
+ NSERROR_NOT_FOUND, /**< Requested item not found */
+
+ NSERROR_NOT_DIRECTORY, /**< Missing directory */
+
+ NSERROR_SAVE_FAILED, /**< Failed to save data */
+
+ NSERROR_CLONE_FAILED, /**< Failed to clone handle */
+
+ NSERROR_INIT_FAILED, /**< Initialisation failed */
+
+ NSERROR_MNG_ERROR, /**< An MNG error occurred */
+
+ NSERROR_BAD_ENCODING, /**< The character set is unknown */
+
+ NSERROR_NEED_DATA, /**< More data needed */
+
+ NSERROR_ENCODING_CHANGE, /**< The character changed */
+
+ NSERROR_BAD_PARAMETER, /**< Bad Parameter */
+
+ NSERROR_INVALID, /**< Invalid data */
+
+ NSERROR_BOX_CONVERT, /**< Box conversion failed */
+
+ NSERROR_STOPPED, /**< Content conversion stopped */
+
+ NSERROR_DOM, /**< DOM call returned error */
+
+ NSERROR_CSS, /**< CSS call returned error */
+
+ NSERROR_CSS_BASE, /**< CSS base sheet failed */
+
+ NSERROR_BAD_URL, /**< Bad URL */
+
+ NSERROR_BAD_CONTENT, /**< Bad Content */
+
+ NSERROR_FRAME_DEPTH, /**< Exceeded frame depth */
+
+ NSERROR_PERMISSION, /**< Permission error */
+
+ NSERROR_NOSPACE, /**< Insufficient space */
+
+ NSERROR_BAD_SIZE, /**< Bad size */
+
+ NSERROR_NOT_IMPLEMENTED, /**< Functionality is not implemented */
+} nserror;
+
+#endif
+