aboutsummaryrefslogtreecommitdiff
path: root/src/Groups.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/Groups.c')
-rw-r--r--src/Groups.c186
1 files changed, 186 insertions, 0 deletions
diff --git a/src/Groups.c b/src/Groups.c
new file mode 100644
index 0000000..84bfe1c
--- /dev/null
+++ b/src/Groups.c
@@ -0,0 +1,186 @@
+ /*@@
+ @file Groups.c
+ @date Wed Sep 14 23:47:43 2000
+ @author Gabrielle Allen
+ @desc
+ Pages about groups
+ @enddesc
+ @version $Header$
+ @@*/
+
+#include <stdio.h>
+
+#include "cctk.h"
+
+#include "util_String.h"
+
+#include "DevThorns/httpd/src/http_Request.h"
+
+static char *rcsid = "$Header$";
+
+CCTK_FILEVERSION(DevThorns_httpd_utils_Groups_c)
+
+/********************************************************************
+ ********************* Local Data Types ***********************
+ ********************************************************************/
+
+
+/********************************************************************
+ ********************* Local Routine Prototypes *********************
+ ********************************************************************/
+
+static int GroupsPage(cGH *cctkGH, httpRequest *request, void *data);
+
+/********************************************************************
+ ********************* Other Routine Prototypes *********************
+ ********************************************************************/
+
+/********************************************************************
+ ********************* Local Data *****************************
+ ********************************************************************/
+
+/********************************************************************
+ ********************* External Routines **********************
+ ********************************************************************/
+
+ /*@@
+ @routine HTTPUTILS_RegisterPages
+ @date Wed Sep 14 11:29:43 2000
+ @author Gabrielle Allen
+ @desc
+ Httpd utils registration routine.
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+int HTTPUTILS_RegisterPages(void)
+{
+ /* Register the group info page. */
+ HTTP_RegisterPage("/groups", GroupsPage, NULL);
+}
+
+/********************************************************************
+ ********************* Local Routines *************************
+ ********************************************************************/
+
+
+/******************************************************************************
+ ***************************** Groups Page **************************************
+ ******************************************************************************/
+
+static const char *cactus_header = " \
+</HEAD>\n \
+<BODY BGCOLOR=\"#FFFFFF\" \
+ link=\"#1B831D\" vlink=\"#768000\" alink=\"#00FF00\">\n \
+<center> \
+</A> \
+<table width=70% border=0><tr><td> \
+\n";
+
+static const char *cactus_footer = \
+"</table>" \
+"\n \
+<HR size=1>\n \
+<ADDRESS><DIV ALIGN=left>\n \
+<SMALL>\n \
+<A HREF=\"http://www.cactuscode.org/\">Cactus Home Page</A><BR>\n\
+Cactus Web Interface by <A HREF=\"mailto:cactusmaint@cactuscode.org\">The Cactus Team</A><BR>\n\
+</SMALL></DIV></ADDRESS></BODY></HTML>\n";
+
+ /*@@
+ @routine GroupsPage
+ @date Thu Sep 14 23:47:43 2000
+ @author Gabrielle Allen
+ @desc
+ Displays the group description page.
+ @enddesc
+ @calls
+ @calledby
+@@*/
+static int GroupsPage(cGH *cctkGH, httpRequest *request, void *data)
+{
+ int retval;
+ char message[4098];
+
+ /* Status message */
+ strcpy(message,"HTTP/1.0 200 OK\r\n");
+
+ write(request->filedes, message, strlen(message));
+
+ /* Content-Type */
+ strcpy(message,"Content-Type: text/html\r\n\r\n");
+
+ write(request->filedes, message, strlen(message));
+
+
+ /* Start the page */
+ strcpy(message,"<HTML><HEAD><TITLE>Cactus Simulation Group Information</TITLE>\n");
+
+ write(request->filedes, message, strlen(message));
+
+ /* Write out the header part. */
+
+ retval = write(request->filedes, cactus_header, strlen(cactus_header));
+
+ {
+ int i,j;
+ int ngroups,nvars;
+
+ ngroups = CCTK_NumGroups();
+
+ strcpy(message, "<h1>Groups and Variables:</h1>"
+ "<p>This list describes the grid variables and their groups "
+ "active in this simulation. <font color=red>Red</font> indicates"
+ " that storage is active for this group (at the time of the query).</p>"
+ "<DL>");
+
+
+ for(i=0; i < ngroups; i++)
+ {
+ strcat(message, "<DD>");
+ if (CCTK_QueryGroupStorageI(cctkGH,i))
+ {
+ sprintf(message,"%s %d. <font color=red>%s</font>\n", message, i, CCTK_GroupName(i));
+ }
+ else
+ {
+ sprintf(message,"%s %d) %s\n", message, i, CCTK_GroupName(i));
+ }
+ nvars = CCTK_NumVarsInGroupI(i);
+ strcat(message,"<DL>");
+ for(j=CCTK_FirstVarIndexI(i); j < CCTK_FirstVarIndexI(i)+nvars; j++)
+ {
+ strcat(message, "<DD>");
+ sprintf(message,"%s %d. %s\n", message, j, CCTK_VarName(j) );
+
+ }
+ strcat(message,"</DL>");
+ }
+ strcat(message, "</DL>");
+
+ }
+
+ write(request->filedes, message, strlen(message));
+
+
+ /* Finish table started by blurb */
+ strcpy(message, "</td></tr></table>");
+
+ write(request->filedes, message, strlen(message));
+
+ /* Write out the footer part. */
+
+ retval = write(request->filedes, cactus_footer, strlen(cactus_footer));
+
+ /* retval = write(request->filedes, base_page, strlen(base_page)); */
+
+ return retval;
+}
+
+
+
+