diff options
Diffstat (limited to 'src/IO/OverloadIO.c')
-rw-r--r-- | src/IO/OverloadIO.c | 81 |
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) +*/ |