/*@@ @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 #include #include #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(name) /* 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(name) /*@@ @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(name) return 0; } /* Don't need dummy functions since we have defaults. #define OVERLOADABLE(name) OVERLOADABLE_DUMMY(name) #include "IOOverloadables.h" #undef OVERLOADABLE(name) */