--- /dev/null
+#define _POSIX_C_SOURCE 199509L
+
+/* Oracle communication area */
+#include <oraca.h>
+/* SQL communication area */
+#include <sqlca.h>
+
+#include "param.h"
+
+int conParam(Param *my)
+{
+ return 0;
+}
+
+void desParam(Param *my)
+{
+}
+
+int Param_getInt(const Param *my, const char *n, const char *i, int *v)
+{
+ return Param_getIntArray(my, n, i, 1, v);
+}
+
+int Param_getString(const Param *my, const char *n, const char *i, char *v)
+{
+ return Param_getStringArray(my, n, i, 1, &v);
+}
+
+int Param_getIntArray(const Param *my, const char *n, const char *i, int num, int *v)
+{
+ for (int i = 0 ; i<num ; i++) {
+ v[i] = 0;
+ }
+ return num;
+}
+
+int Param_getStringArray(const Param *my, const char *n, const char *i, int num, char **v)
+{
+ for (int i = 0 ; i<num ; i++) {
+ v[i] = "Blub";
+ }
+ return num;
+}
+
--- /dev/null
+#ifndef PARAM_H
+#define PARAM_H
+
+/**************************************************************************
+ * Section containing struct Param (different in the different param.h's) *
+ **************************************************************************/
+
+typedef struct ParamS {
+} Param;
+
+/******************************************************************
+ * Section containing the API for param (common to all param.h's) *
+ ******************************************************************/
+
+int conParam(Param *);
+void desParam(Param *);
+
+/*
+ * All functions have a status as return value. If the return value is positive,
+ * it contains the number of array members returned (1 in case of
+ * Param_getString and Param_getInt, between 1 and num in case of
+ * Param_getStringArray and Param_getIntArray).
+ *
+ * Memory must be allocated for the result before the function is called.
+ * For example, calling Param_getInt needs
+ *
+ * > int status;
+ * > unsigned long int value;
+ * > if(status = Param_getInt(param, name, idx, value) != 1) {
+ * > printf("No parameter 'value' found. Exiting.\n");
+ * > exit(-1);
+ * > }
+ *
+ * For strings char[PARAM_MAX_VALUE_LEN] has to be allocated. Therefore the
+ * above example expands to
+ *
+ * > int status;
+ * > int num = 32;
+ * > char value[PARAM_MAX_VALUE_LEN][num];
+ * > if(status = Param_getStringArray(param, name, idx, num, value) != num) {
+ * > printf("Not enough elements of 'value' found. Exiting.\n");
+ * > exit(-1);
+ * > }
+ *
+ */
+
+#define PARAM_RV_NO_SUCH_PARAMETER 0
+#define PARAM_RV_FAILED -1
+
+#define PARAM_MAX_VALUE_LEN 128
+
+int Param_getInt(const Param *, const char *, const char *, unsigned long int *);
+int Param_getString(const Param *, const char *, const char *, char *);
+
+int Param_getIntArray(const Param *, const char *, const char *, int, unsigned long int *);
+int Param_getStringArray(const Param *, const char *, const char *, int, char **);
+
+#endif
+