summaryrefslogtreecommitdiff
path: root/src/IO/OverloadIO.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/IO/OverloadIO.c')
-rw-r--r--src/IO/OverloadIO.c81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/IO/OverloadIO.c b/src/IO/OverloadIO.c
new file mode 100644
index 00000000..dac6dcaf
--- /dev/null
+++ b/src/IO/OverloadIO.c
@@ -0,0 +1,81 @@
+ /*@@
+ @file Overload.c
+ @date Thu Feb 4 09:47:23 1999
+ @author Tom Goodale
+ @desc
+ Contains routines to overload the IO functions.
+ Uses the overload macros to make sure of consistency and
+ to save typing !
+ @enddesc
+ @@*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+#include "flesh.h"
+#include "OverloadMacros.h"
+
+static char *rcsid="$Header$";
+
+/* Define the prototypes for the dummy functions. */
+#define OVERLOADABLE(name) OVERLOADABLE_DUMMYPROTOTYPE(name)
+
+/* There are default versions for all overloadable IO functions */
+#define CCTK_DummyOutputGH CactusDefaultOutputGH
+#define CCTK_DummyOutputVarAsByMethod CactusDefaultOutputVarAsByMethod
+
+#include "IOOverloadables.h"
+
+#undef CCTK_DummyOutputGH
+#undef CCTK_DummyOutputVarAsByMethod
+#undef OVERLOADABLE
+
+/* Create the overloadable function variables and the
+ * functions allowing the variables to be set.
+ */
+#define OVERLOADABLE(name) OVERLOADABLE_FUNCTION(name)
+
+#include "IOOverloadables.h"
+
+#undef OVERLOADABLE
+
+ /*@@
+ @routine SetupIOFunctions
+ @date Thu Feb 4 09:58:29 1999
+ @author Tom Goodale
+ @desc
+ Set any IO function which hasn't been overloaded to the default.
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+int SetupIOFunctions(void)
+{
+
+#define OVERLOADABLE(name) OVERLOADABLE_CHECK(name)
+
+ /* There are default versions for all overloadable IO functions */
+#define CCTK_DummyOutputGH CactusDefaultOutputGH
+#define CCTK_DummyOutputVarAsByMethod CactusDefaultOutputVarAsByMethod
+
+#include "IOOverloadables.h"
+
+ /* Reset the #define to prevent complications. */
+#undef CCTK_DummyOutputGH
+#undef CCTK_DummyOutputVarAsByMethod
+
+#undef OVERLOADABLE
+
+ return 0;
+}
+
+/* Don't need dummy functions since we have defaults.
+#define OVERLOADABLE(name) OVERLOADABLE_DUMMY(name)
+#include "IOOverloadables.h"
+#undef OVERLOADABLE(name)
+*/