summaryrefslogtreecommitdiff
path: root/src/Main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main.cc')
-rw-r--r--src/Main.cc430
1 files changed, 215 insertions, 215 deletions
diff --git a/src/Main.cc b/src/Main.cc
index ecec54e..7cc062e 100644
--- a/src/Main.cc
+++ b/src/Main.cc
@@ -1,215 +1,215 @@
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <unistd.h>
-#include <list>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include "Handle.h"
-#include "Task.h"
-#include "TaskMan.h"
-#include "HttpServ.h"
-#include "Socket.h"
-#include "config.h"
-#include "Message.h"
-#include "Menu.h"
-#include "Exceptions.h"
-#include "Form.h"
-#include "Confirm.h"
-#include "Table.h"
-#include "InPipe.h"
-#include "Image.h"
-#include "CopyJob.h"
-#include "IRC.h"
-#include "Main.h"
-#include "gettext.h"
-
-InPipe * in;
-
-class ad_run : public Task {
- public:
- ad_run(Variables * av, Variables * ahds, Handle * ah) : v(*av), hds(*ahds), h(ah) {
- SetBurst();
- }
- virtual ~ad_run() {}
- virtual String GetName() { return "Action dynamique"; }
- protected:
- virtual int Do() throw (GeneralException) {
- pid_t p;
-
- switch (current) {
- case 0:
- if (!(p = fork())) {
- execlp("uptime", "uptime", NULL);
- }
- current = 1;
- WaitFor(p);
- Suspend(TASK_ON_HOLD);
-
- case 1:
- (*in) >> ut;
- if (!(p = fork())) {
- execlp("uname", "uname", "-a", NULL);
- }
- current = 2;
- WaitFor(p);
- Suspend(TASK_ON_HOLD);
-
- case 2:
- (*in) >> un;
- for (int i = 0; i < hds.GetNb(); i++) {
- shds += hds[i] + "<BR>\n";
- }
-
- m = new Message("Action dynamique",
- String("Vous avez choisi l'action dynamique. L'uptime de la machine est '") +
- ut + "' et sa définition complète est '" + un + "'<BR><BR><BR>Voici la liste des entêtes:<BR><BR>" + shds, "");
-
- current = 3;
- WaitFor(m->Do(&v, &hds, h));
- Suspend(TASK_ON_HOLD);
-
- case 3:
- delete m;
- testimg = new Image(100, 100);
- testimg->Prepare();
-
- testoutput = new Output("TestImg.tga");
-
- current = 4;
- WaitFor(new CopyJob(testimg, testoutput, -1, true, true));
- Suspend(TASK_ON_HOLD);
-
- case 4:
- return TASK_DONE;
- }
- return TASK_DONE;
- }
- private:
- Variables v, hds;
- Handle * h;
- String ut, un, shds;
- Action * m;
- Image * testimg;
- Output * testoutput;
-};
-
-class ad_t : public Action {
- public:
- ad_t() : Action("menu6") { }
- virtual ~ad_t() { }
- virtual String GetTitle() { return "Action dynamique"; }
- virtual Task * Do(Variables * v, Variables * hds, Handle * h) {
- return new ad_run(v, hds, h);
- }
-};
-Action * ad = new ad_t();
-
-class dostop_t : public Action {
- public:
- dostop_t() : Action("dostop") { }
- virtual ~dostop_t() { }
- virtual String GetTitle() { return "Arret du serveur"; }
- virtual Task * Do(Variables * v, Variables * hds, Handle * h) {
- TaskMan::Stop();
- return 0;
- }
-};
-Action * dostop = new dostop_t();
-
-String Noms[] = {"Champ1", "Champ2", "Champ3"};
-String Defaults[] = {"Default1", "Default2", 0};
-String Invites[] = {"Champ 1:", "Champ 2:", "Champ 3:"};
-String Options[] = {"Option1", "Option2", ""};
-String ODescs[] = {"Description 1", "Description 2", ""};
-String * Lists[] = {0, 0, Options};
-String * Descs[] = {0, 0, ODescs};
-String Titres[] = {"Titre 1", "Titre 2", "Titre 3"};
-String Cells[] = {"L1C1", "L1C2", "L1C3", "L2C1", "L2C2", "L2C3", "L3C1", "L3C2", "L3C3", "L4C1", "L4C2", "L4C3"};
-Action * a1 = new Message("Action 1", "Vous avez cliqué sur l'option 1 du menu", "menu1");
-Action * a2 = new Table("Petite table", "menu2", Titres, Cells, 3, 4);
-Action * a3 = new Message("Test d'image",
-"Voici un test d'affichage d'image:"
-"<center><table border=0><td><tr><img src=\"/image/nobis-logo-small.jpg\"></tr></td></table></center>",
-"menu3");
-Action * a4 = new Form("Test de formulaire...", "menu4", "Rentrez des trucs...", Noms, Invites, Defaults, Lists, Descs, 3);
-Action * a5 = new Confirm("Confirmation", "Oui ou non?", "menu5", 0, 0);
-Action * java = new Message("Applet JAVA",
-"\n"
-"<center>\n"
-"<APPLET CODE = \"TestApplet.class\" CODEBASE =\"/image\" WIDTH = 400 HEIGHT = 50>\n"
-"</APPLET>\n"
-"</center>\n", "java");
-
-Action * up = new Message("Test d'upload",
-"\n"
-"<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"/bin/start\" METHOD=POST>\n"
-"<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000\">\n"
-"Send this file: <INPUT NAME=\"userfile\" TYPE=\"file\">\n"
-"<INPUT TYPE=\"submit\" VALUE=\"Send File\">\n"
-"</FORM>\n", "upload");
-
-Action * stop = new Confirm("Stopper", "Stopper le serveur?", "stop", dostop, 0);
-
-Action * Liste[] = {a1, a2, a3, a4, a5, ad, java, up, stop};
-String Labels[] = {"Action 1", "Action 2", "Action 3", "Action 4", "Action 5", "Action dynamique", "Essai de java", "Test d'upload", "Stop"};
-
-CODE_BEGINS
-
-Action * buildmenu(void) {
- Action * m = new Menu("Menu Principal", "start", Labels, Liste, 9);
- return m;
-}
-
-int startup() throw (GeneralException) {
- int c;
- String port = "1500";
-
- std::list<String> testlist;
- testlist.push_front("poide");
-
- in = new InPipe();
-
- in->Hook();
-
- String test = "poide\n", r;
- std::cout << test;
- std::cout.flush();
- (*in) >> r;
- if (r != "poide") {
- printm(M_ERROR, "The stdout redirect has failed.\n");
- exit(-1);
- }
-
- while ((c = getopt(argc, argv, "p:")) != EOF) {
- switch (c) {
- case 'p':
- port = optarg;
- break;
- default:
- printm(M_BARE, String(_("Usage: ")) + argv[0] + " [-p port]\n");
- exit(-1);
- }
- }
-
- try {
- HttpServ h(buildmenu(), port.to_int(), "testing");
-// IRC i("botalacon");
-// i.Connect();
-// i.MainLoop();
- TaskMan::MainLoop();
- }
- catch (GeneralException e) {
- std::cerr << "Main function got an exception: '" << e.GetMsg() << "'.\n";
- exit(-1);
- }
-
- catch (...) {
- std::cerr << "Unknow exception.\n" << std::endl;
- exit(-1);
- }
-
- delete in;
- return 0;
-}
-CODE_ENDS
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <unistd.h>
+#include <list>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include "Handle.h"
+#include "Task.h"
+#include "TaskMan.h"
+#include "HttpServ.h"
+#include "Socket.h"
+#include "config.h"
+#include "Message.h"
+#include "Menu.h"
+#include "Exceptions.h"
+#include "Form.h"
+#include "Confirm.h"
+#include "Table.h"
+#include "InPipe.h"
+#include "Image.h"
+#include "CopyJob.h"
+#include "IRC.h"
+#include "Main.h"
+#include "gettext.h"
+
+InPipe * in;
+
+class ad_run : public Task {
+ public:
+ ad_run(Variables * av, Variables * ahds, Handle * ah) : v(*av), hds(*ahds), h(ah) {
+ SetBurst();
+ }
+ virtual ~ad_run() {}
+ virtual String GetName() { return "Action dynamique"; }
+ protected:
+ virtual int Do() throw (GeneralException) {
+ pid_t p;
+
+ switch (current) {
+ case 0:
+ if (!(p = fork())) {
+ execlp("uptime", "uptime", NULL);
+ }
+ current = 1;
+ WaitFor(p);
+ Suspend(TASK_ON_HOLD);
+
+ case 1:
+ (*in) >> ut;
+ if (!(p = fork())) {
+ execlp("uname", "uname", "-a", NULL);
+ }
+ current = 2;
+ WaitFor(p);
+ Suspend(TASK_ON_HOLD);
+
+ case 2:
+ (*in) >> un;
+ for (int i = 0; i < hds.GetNb(); i++) {
+ shds += hds[i] + "<BR>\n";
+ }
+
+ m = new Message("Action dynamique",
+ String("Vous avez choisi l'action dynamique. L'uptime de la machine est '") +
+ ut + "' et sa définition complète est '" + un + "'<BR><BR><BR>Voici la liste des entêtes:<BR><BR>" + shds, "");
+
+ current = 3;
+ WaitFor(m->Do(&v, &hds, h));
+ Suspend(TASK_ON_HOLD);
+
+ case 3:
+ delete m;
+ testimg = new Image(100, 100);
+ testimg->Prepare();
+
+ testoutput = new Output("TestImg.tga");
+
+ current = 4;
+ WaitFor(new CopyJob(testimg, testoutput, -1, true, true));
+ Suspend(TASK_ON_HOLD);
+
+ case 4:
+ return TASK_DONE;
+ }
+ return TASK_DONE;
+ }
+ private:
+ Variables v, hds;
+ Handle * h;
+ String ut, un, shds;
+ Action * m;
+ Image * testimg;
+ Output * testoutput;
+};
+
+class ad_t : public Action {
+ public:
+ ad_t() : Action("menu6") { }
+ virtual ~ad_t() { }
+ virtual String GetTitle() { return "Action dynamique"; }
+ virtual Task * Do(Variables * v, Variables * hds, Handle * h) {
+ return new ad_run(v, hds, h);
+ }
+};
+Action * ad = new ad_t();
+
+class dostop_t : public Action {
+ public:
+ dostop_t() : Action("dostop") { }
+ virtual ~dostop_t() { }
+ virtual String GetTitle() { return "Arret du serveur"; }
+ virtual Task * Do(Variables * v, Variables * hds, Handle * h) {
+ TaskMan::Stop();
+ return 0;
+ }
+};
+Action * dostop = new dostop_t();
+
+String Noms[] = {"Champ1", "Champ2", "Champ3"};
+String Defaults[] = {"Default1", "Default2", 0};
+String Invites[] = {"Champ 1:", "Champ 2:", "Champ 3:"};
+String Options[] = {"Option1", "Option2", ""};
+String ODescs[] = {"Description 1", "Description 2", ""};
+String * Lists[] = {0, 0, Options};
+String * Descs[] = {0, 0, ODescs};
+String Titres[] = {"Titre 1", "Titre 2", "Titre 3"};
+String Cells[] = {"L1C1", "L1C2", "L1C3", "L2C1", "L2C2", "L2C3", "L3C1", "L3C2", "L3C3", "L4C1", "L4C2", "L4C3"};
+Action * a1 = new Message("Action 1", "Vous avez cliqué sur l'option 1 du menu", "menu1");
+Action * a2 = new Table("Petite table", "menu2", Titres, Cells, 3, 4);
+Action * a3 = new Message("Test d'image",
+"Voici un test d'affichage d'image:"
+"<center><table border=0><td><tr><img src=\"/image/nobis-logo-small.jpg\"></tr></td></table></center>",
+"menu3");
+Action * a4 = new Form("Test de formulaire...", "menu4", "Rentrez des trucs...", Noms, Invites, Defaults, Lists, Descs, 3);
+Action * a5 = new Confirm("Confirmation", "Oui ou non?", "menu5", 0, 0);
+Action * java = new Message("Applet JAVA",
+"\n"
+"<center>\n"
+"<APPLET CODE = \"TestApplet.class\" CODEBASE =\"/image\" WIDTH = 400 HEIGHT = 50>\n"
+"</APPLET>\n"
+"</center>\n", "java");
+
+Action * up = new Message("Test d'upload",
+"\n"
+"<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"/bin/start\" METHOD=POST>\n"
+"<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000\">\n"
+"Send this file: <INPUT NAME=\"userfile\" TYPE=\"file\">\n"
+"<INPUT TYPE=\"submit\" VALUE=\"Send File\">\n"
+"</FORM>\n", "upload");
+
+Action * stop = new Confirm("Stopper", "Stopper le serveur?", "stop", dostop, 0);
+
+Action * Liste[] = {a1, a2, a3, a4, a5, ad, java, up, stop};
+String Labels[] = {"Action 1", "Action 2", "Action 3", "Action 4", "Action 5", "Action dynamique", "Essai de java", "Test d'upload", "Stop"};
+
+CODE_BEGINS
+
+Action * buildmenu(void) {
+ Action * m = new Menu("Menu Principal", "start", Labels, Liste, 9);
+ return m;
+}
+
+int startup() throw (GeneralException) {
+ int c;
+ String port = "1500";
+
+ std::list<String> testlist;
+ testlist.push_front("poide");
+
+ in = new InPipe();
+
+ in->Hook();
+
+ String test = "poide\n", r;
+ std::cout << test;
+ std::cout.flush();
+ (*in) >> r;
+ if (r != "poide") {
+ printm(M_ERROR, "The stdout redirect has failed.\n");
+ exit(-1);
+ }
+
+ while ((c = getopt(argc, argv, "p:")) != EOF) {
+ switch (c) {
+ case 'p':
+ port = optarg;
+ break;
+ default:
+ printm(M_BARE, String(_("Usage: ")) + argv[0] + " [-p port]\n");
+ exit(-1);
+ }
+ }
+
+ try {
+ HttpServ h(buildmenu(), port.to_int(), "testing");
+// IRC i("botalacon");
+// i.Connect();
+// i.MainLoop();
+ TaskMan::MainLoop();
+ }
+ catch (GeneralException e) {
+ std::cerr << "Main function got an exception: '" << e.GetMsg() << "'.\n";
+ exit(-1);
+ }
+
+ catch (...) {
+ std::cerr << "Unknow exception.\n" << std::endl;
+ exit(-1);
+ }
+
+ delete in;
+ return 0;
+}
+CODE_ENDS