Header refactor, more XML parsing and stuff
This commit is contained in:
parent
fc10d5de14
commit
efb3bfd64c
|
@ -6,8 +6,9 @@
|
||||||
|
|
||||||
<!-- Model identity informations -->
|
<!-- Model identity informations -->
|
||||||
<identity>
|
<identity>
|
||||||
<name>Modèle de test</name>
|
<name>Model created for testing purposes</name>
|
||||||
<name value="(Trois dimères)"/>
|
<name value="(Three dimers)"/>
|
||||||
|
<owner>Jean Sirmai</owner>
|
||||||
<owner_id>2</owner_id>
|
<owner_id>2</owner_id>
|
||||||
<date>1629830000</date> <!--Warning: it's an arbitrary unchecked date...-->
|
<date>1629830000</date> <!--Warning: it's an arbitrary unchecked date...-->
|
||||||
<version>1.0</version>
|
<version>1.0</version>
|
||||||
|
@ -15,14 +16,14 @@
|
||||||
</identity>
|
</identity>
|
||||||
|
|
||||||
<!-- Model parameters -->
|
<!-- Model parameters -->
|
||||||
<parameters id="" date="" author="">
|
<parameters id="test" date="1629830000" author="Jean Sirmai">
|
||||||
<modelization>
|
<modelization>
|
||||||
<max_thread value="0"/> <!--Why "0" ?-->
|
<max_thread value="0"/> <!--Why "0" ?-->
|
||||||
<max_cycles value="13"/>
|
<max_cycles value="13"/>
|
||||||
|
|
||||||
</modelization>
|
</modelization>
|
||||||
|
|
||||||
<space>
|
<space_param>
|
||||||
<dimension value="1"/> <!-- TODO redundancy here: dimension is given by the zero values of z and y-->
|
<dimension value="1"/> <!-- TODO redundancy here: dimension is given by the zero values of z and y-->
|
||||||
<size x="39" y="0" z="0"/> <!-- In this example of random walk, I wish I could see the whole space in a single line of the monitoring CLI-->
|
<size x="39" y="0" z="0"/> <!-- In this example of random walk, I wish I could see the whole space in a single line of the monitoring CLI-->
|
||||||
<site_multiplicity value="2"/> <!-- Indicates that there are two sites per cell-->
|
<site_multiplicity value="2"/> <!-- Indicates that there are two sites per cell-->
|
||||||
|
@ -31,13 +32,13 @@
|
||||||
<!-- X="|0" indicates that: a particle which moves beyond the east boundary will reenter on the west side-->
|
<!-- X="|0" indicates that: a particle which moves beyond the east boundary will reenter on the west side-->
|
||||||
<!-- X="|0" : no particle can move beyond the west boundary-->
|
<!-- X="|0" : no particle can move beyond the west boundary-->
|
||||||
|
|
||||||
</space>
|
</space_param>
|
||||||
|
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|
||||||
<!-- Model objects definition -->
|
<!-- Model objects definition -->
|
||||||
<objects>
|
<objects>
|
||||||
<object id="dimer" date="" author="">
|
<object id="dimer" date="1629830000" author="Jean Sirmai">
|
||||||
<arrow x="0" y="0" z="0" site="0" weight="0"/>
|
<arrow x="0" y="0" z="0" site="0" weight="0"/>
|
||||||
<arrow x="0" y="0" z="0" site="1" weight="1"/>
|
<arrow x="0" y="0" z="0" site="1" weight="1"/>
|
||||||
<arrow x="1" y="0" z="0" site="0" weight="1"/>
|
<arrow x="1" y="0" z="0" site="0" weight="1"/>
|
||||||
|
@ -51,7 +52,7 @@
|
||||||
</objects>
|
</objects>
|
||||||
|
|
||||||
<!-- Space description (initial state) -->
|
<!-- Space description (initial state) -->
|
||||||
<space id="" date="" author="">
|
<space id="test" date="1629830000" author="Jean Sirmai">
|
||||||
<arrow x="0" y="0" z="0" site="1" weight="1"/>
|
<arrow x="0" y="0" z="0" site="1" weight="1"/>
|
||||||
<arrow x="1" y="0" z="0" site="0" weight="1"/>
|
<arrow x="1" y="0" z="0" site="0" weight="1"/>
|
||||||
<arrow x="10" y="0" z="0" site="1" weight="1"/>
|
<arrow x="10" y="0" z="0" site="1" weight="1"/>
|
||||||
|
@ -63,15 +64,15 @@
|
||||||
</space>
|
</space>
|
||||||
|
|
||||||
<!-- Saved space description (saved states) -->
|
<!-- Saved space description (saved states) -->
|
||||||
<savestates id="" date="" author=""> <!-- TODO or NOT TODO (not today...)-->
|
<savestates id="test" date="1629830000" author="Jean Sirmai"> <!-- TODO or NOT TODO (not today...)-->
|
||||||
<space id="" date="" author="">
|
<space id="test" date="1629830000" author="Jean Sirmai">
|
||||||
</space>
|
</space>
|
||||||
|
|
||||||
</savestates>
|
</savestates>
|
||||||
|
|
||||||
<!-- Model transitions definition (rules) -->
|
<!-- Model transitions definition (rules) -->
|
||||||
<transitions id="" date="" author="">
|
<transitions id="test" date="1629830000" author="Jean Sirmai">
|
||||||
<transition id="0" date="" author="" probability="1"> <!-- moves a dimer to east-->
|
<transition id="0" date="1629830000" author="Jean Sirmai" probability="1"> <!-- moves a dimer to east-->
|
||||||
<if>
|
<if>
|
||||||
<arrow x="0" y="0" z="0" site="1" weight="1"/>
|
<arrow x="0" y="0" z="0" site="1" weight="1"/>
|
||||||
<arrow x="1" y="0" z="0" site="0" weight="1"/> <!-- a dimer is identified-->
|
<arrow x="1" y="0" z="0" site="0" weight="1"/> <!-- a dimer is identified-->
|
||||||
|
@ -94,7 +95,11 @@
|
||||||
</transitions>
|
</transitions>
|
||||||
|
|
||||||
<!-- Non context-specific tags -->
|
<!-- Non context-specific tags -->
|
||||||
<ref id="" date="">https://www.a-lec.org</ref>
|
<ref id="Best reference!" date="1629830000" author="Jean Sirmai" lang="">
|
||||||
<quote id="" date="" author="" lang="">Quote</quote>
|
https://www.a-lec.org
|
||||||
|
</ref>
|
||||||
|
<quote id="Best quote" date="1629830000" author="Jean Sirmai" lang="">
|
||||||
|
This is a quote.
|
||||||
|
</quote>
|
||||||
|
|
||||||
</gem-graph-model>
|
</gem-graph-model>
|
||||||
|
|
|
@ -26,6 +26,11 @@
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#define LINE_LENGTH 80
|
||||||
|
#define LINE_NUMBER 24
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
struct Command_t {
|
struct Command_t {
|
||||||
const char *name;
|
const char *name;
|
||||||
char* (*execute)(char*, char**, Server_t*);
|
char* (*execute)(char*, char**, Server_t*);
|
||||||
|
@ -42,10 +47,3 @@ char *CmdShutdown(char*, char**, Server_t*);
|
||||||
char *CmdHelp(char*, char**, Server_t*);
|
char *CmdHelp(char*, char**, Server_t*);
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
Command_t cmdList[] =
|
|
||||||
{
|
|
||||||
{"help", CmdHelp, "Help command"},
|
|
||||||
{"model", CmdModel, "Model command"},
|
|
||||||
{"shutdown", CmdShutdown, "Shutdown command"},
|
|
||||||
};
|
|
||||||
|
|
|
@ -24,9 +24,12 @@
|
||||||
#include "../include/base.h"
|
#include "../include/base.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <dirent.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#define MODEL_STRING_SIZE 48
|
#define MODEL_STRING_SIZE 64
|
||||||
#define MAX_MODEL_NUMBER 1
|
#define MAX_MODEL_NUMBER 1
|
||||||
|
|
||||||
#define ARROW_NUMBER 6
|
#define ARROW_NUMBER 6
|
||||||
|
|
|
@ -24,8 +24,46 @@
|
||||||
#include "../include/base.h"
|
#include "../include/base.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <libxml/parser.h>
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#define NO_DESTINATION NULL
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
struct ModelParserTableXML_t;
|
||||||
|
|
||||||
|
struct ParserTableXML_t
|
||||||
|
{
|
||||||
|
const xmlChar *tag;
|
||||||
|
int (*parse) (xmlDoc*,
|
||||||
|
struct ModelParserTableXML_t*,
|
||||||
|
int currentParser,
|
||||||
|
xmlNode*);
|
||||||
|
void *destination;
|
||||||
|
} typedef ParserTableXML_t;
|
||||||
|
|
||||||
|
struct ModelParserTableXML_t
|
||||||
|
{
|
||||||
|
size_t len;
|
||||||
|
ParserTableXML_t *table;
|
||||||
|
} typedef ModelParserTableXML_t;
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
int parseParentFieldXML(xmlDocPtr,
|
||||||
|
ModelParserTableXML_t*,
|
||||||
|
int,
|
||||||
|
xmlNodePtr);
|
||||||
|
|
||||||
|
int parseTextField(xmlDocPtr,
|
||||||
|
ModelParserTableXML_t*,
|
||||||
|
int,
|
||||||
|
xmlNodePtr);
|
||||||
|
|
||||||
int ParseModelXML(Model_t*);
|
int ParseModelXML(Model_t*);
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
#include "../include/base.h"
|
#include "../include/base.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <sys/sysinfo.h>
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
// -------------------------------------------------------------------------- //
|
// -------------------------------------------------------------------------- //
|
||||||
|
|
|
@ -24,6 +24,13 @@
|
||||||
#include "../include/base.h"
|
#include "../include/base.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <netdb.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
// -------------------------------------------------------------------------- //
|
// -------------------------------------------------------------------------- //
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
||||||
//=-------------------------------------------------------------------------=//
|
//=-------------------------------------------------------------------------=//
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/centers.h"
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
|
@ -19,15 +19,12 @@
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
||||||
//=-------------------------------------------------------------------------=//
|
//=-------------------------------------------------------------------------=//
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/cmds.h"
|
||||||
#include "../include/scheduler.h"
|
#include "../include/scheduler.h"
|
||||||
#include "../include/model.h"
|
#include "../include/model.h"
|
||||||
|
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
|
||||||
#define LINE_LENGTH 80
|
|
||||||
#define LINE_NUMBER 24
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
char *CmdModel(char *buf, char **argv, Server_t *args)
|
char *CmdModel(char *buf, char **argv, Server_t *args)
|
||||||
|
|
|
@ -19,14 +19,10 @@
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
||||||
//=-------------------------------------------------------------------------=//
|
//=-------------------------------------------------------------------------=//
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/model.h"
|
||||||
#include "../include/parsing.h"
|
#include "../include/parsing.h"
|
||||||
#include "../include/arrows.h"
|
#include "../include/arrows.h"
|
||||||
#include "../include/scheduler.h"
|
#include "../include/scheduler.h"
|
||||||
#include "../include/model.h"
|
|
||||||
|
|
||||||
#include <dirent.h>
|
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
static Model_t **loadedModel;
|
static Model_t **loadedModel;
|
||||||
static int loadedModelSize; // begins to 1
|
static int loadedModelSize; // begins to 1
|
||||||
|
@ -37,8 +33,6 @@ static int knownModelSize; // begins to 1
|
||||||
Model_t *lastModel;
|
Model_t *lastModel;
|
||||||
Model_t **lastModelAddr;
|
Model_t **lastModelAddr;
|
||||||
|
|
||||||
void ModelSystemDestroy(void);
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
void printModels(char *buf)
|
void printModels(char *buf)
|
||||||
|
|
115
src/parsing.c
115
src/parsing.c
|
@ -19,51 +19,9 @@
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
||||||
//=-------------------------------------------------------------------------=//
|
//=-------------------------------------------------------------------------=//
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/parsing.h"
|
||||||
#include "../include/model.h"
|
#include "../include/model.h"
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <libxml/parser.h>
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
#define NO_DESTINATION NULL
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
struct ModelParserTableXML_t;
|
|
||||||
|
|
||||||
struct ParserTableXML_t
|
|
||||||
{
|
|
||||||
const xmlChar *tag;
|
|
||||||
int (*parse) (xmlDoc*,
|
|
||||||
struct ModelParserTableXML_t*,
|
|
||||||
int currentParser,
|
|
||||||
xmlNode*);
|
|
||||||
void *destination;
|
|
||||||
} typedef ParserTableXML_t;
|
|
||||||
|
|
||||||
struct ModelParserTableXML_t
|
|
||||||
{
|
|
||||||
size_t len;
|
|
||||||
ParserTableXML_t *table;
|
|
||||||
} typedef ModelParserTableXML_t;
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
int parseParentFieldXML(xmlDocPtr,
|
|
||||||
ModelParserTableXML_t*,
|
|
||||||
int,
|
|
||||||
xmlNodePtr);
|
|
||||||
|
|
||||||
int parseTextField(xmlDocPtr,
|
|
||||||
ModelParserTableXML_t*,
|
|
||||||
int,
|
|
||||||
xmlNodePtr);
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------------- //
|
// -------------------------------------------------------------------------- //
|
||||||
// Parsing NOTHING (but yeah that prints) //
|
// Parsing NOTHING (but yeah that prints) //
|
||||||
// -------------------------------------------------------------------------- //
|
// -------------------------------------------------------------------------- //
|
||||||
|
@ -85,11 +43,12 @@ int parseStubFieldXML (xmlDocPtr doc,
|
||||||
|
|
||||||
// Detect children
|
// Detect children
|
||||||
if (currentNode->xmlChildrenNode) {
|
if (currentNode->xmlChildrenNode) {
|
||||||
printLog("%s has children\n", ModelTable->table[currentParser].tag);
|
printLog("%s (stub) has children\n",
|
||||||
|
ModelTable->table[currentParser].tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printLog("%s: %s\n", ModelTable->table[currentParser].tag,
|
printLog("%s (stub): %s\n", ModelTable->table[currentParser].tag,
|
||||||
content);
|
content);
|
||||||
|
|
||||||
if (!content) {
|
if (!content) {
|
||||||
|
@ -198,10 +157,48 @@ int parseParentFieldXML (xmlDocPtr doc,
|
||||||
int currentParser,
|
int currentParser,
|
||||||
xmlNodePtr currentNode)
|
xmlNodePtr currentNode)
|
||||||
{
|
{
|
||||||
|
printLog("%s parsed\n",
|
||||||
|
ModelTable->table[currentParser].tag);
|
||||||
|
|
||||||
|
// Getting children content
|
||||||
currentNode = currentNode->xmlChildrenNode;
|
currentNode = currentNode->xmlChildrenNode;
|
||||||
|
while (currentNode != NULL) {
|
||||||
|
for (int i = 0; i < ModelTable->len; i++) {
|
||||||
|
if ((!xmlStrcmp(currentNode->name,
|
||||||
|
ModelTable->table[i].tag))) {
|
||||||
|
ModelTable->table[i].parse(doc,
|
||||||
|
ModelTable,
|
||||||
|
i,
|
||||||
|
currentNode);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentNode = currentNode->next;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
printLog("%s parsed\n", ModelTable->table[currentParser].tag);
|
// -------------------------------------------------------------------------- //
|
||||||
|
// Parsing a field that contains children fields with props //
|
||||||
|
// -------------------------------------------------------------------------- //
|
||||||
|
int parseParentFieldPropsXML (xmlDocPtr doc,
|
||||||
|
ModelParserTableXML_t *ModelTable,
|
||||||
|
int currentParser,
|
||||||
|
xmlNodePtr currentNode)
|
||||||
|
{
|
||||||
|
xmlChar *id, *date, *author;
|
||||||
|
// (truc*)destination = (truc*)ModelTable->table[currentParser].destination;
|
||||||
|
|
||||||
|
// Getting field identity
|
||||||
|
id = xmlGetProp(currentNode, (xmlChar*)"id");
|
||||||
|
date = xmlGetProp(currentNode, (xmlChar*)"date");
|
||||||
|
author = xmlGetProp(currentNode, (xmlChar*)"author");
|
||||||
|
|
||||||
|
printLog("%s parsed (id=%s, date=%s, author=%s)\n",
|
||||||
|
ModelTable->table[currentParser].tag, id, date, author);
|
||||||
|
|
||||||
|
// Getting children content
|
||||||
|
currentNode = currentNode->xmlChildrenNode;
|
||||||
while (currentNode != NULL) {
|
while (currentNode != NULL) {
|
||||||
for (int i = 0; i < ModelTable->len; i++) {
|
for (int i = 0; i < ModelTable->len; i++) {
|
||||||
if ((!xmlStrcmp(currentNode->name,
|
if ((!xmlStrcmp(currentNode->name,
|
||||||
|
@ -226,24 +223,24 @@ int ParseModelXML(Model_t *model)
|
||||||
ParserTableXML_t table[] =
|
ParserTableXML_t table[] =
|
||||||
{
|
{
|
||||||
// IDENTITY
|
// IDENTITY
|
||||||
{(const xmlChar *)"identity", parseParentFieldXML,model},
|
{(const xmlChar *)"identity", parseParentFieldXML, model},
|
||||||
{(const xmlChar *)"name", parseTextFieldXML, model->name},
|
{(const xmlChar *)"name", parseTextFieldXML, model->name},
|
||||||
{(const xmlChar *)"owner", parseTextFieldXML, model->owner},
|
{(const xmlChar *)"owner", parseTextFieldXML, model->owner},
|
||||||
|
|
||||||
// TODO lacking implementation (model side)
|
// TODO lacking implementation (model side)
|
||||||
{(const xmlChar *)"owner_id", parseStubFieldXML, model->owner_id},
|
{(const xmlChar *)"owner_id", parseStubFieldXML, model->owner_id},
|
||||||
|
|
||||||
{(const xmlChar *)"date", parseIntFieldXML, &model->date},
|
{(const xmlChar *)"date", parseIntFieldXML, &model->date},
|
||||||
{(const xmlChar *)"version", parseTextFieldXML, model->version},
|
{(const xmlChar *)"version", parseTextFieldXML, model->version},
|
||||||
|
|
||||||
// PARAMETERS
|
// PARAMETERS
|
||||||
{(const xmlChar *)"parameters", parseParentFieldXML, model},
|
{(const xmlChar *)"parameters", parseParentFieldPropsXML, model},
|
||||||
// MODELIZATION
|
// MODELIZATION
|
||||||
{(const xmlChar *)"modelization", parseParentFieldXML, model},
|
{(const xmlChar *)"modelization", parseParentFieldXML, model},
|
||||||
{(const xmlChar *)"max_thread", parseStubFieldXML, model},
|
{(const xmlChar *)"max_thread", parseStubFieldXML, model},
|
||||||
{(const xmlChar *)"max_cycles", parseStubFieldXML, model},
|
{(const xmlChar *)"max_cycles", parseStubFieldXML, model},
|
||||||
// SPACE
|
// SPACE
|
||||||
{(const xmlChar *)"space", parseParentFieldXML, model},
|
{(const xmlChar *)"space_param", parseParentFieldXML, model},
|
||||||
{(const xmlChar *)"dimension", parseStubFieldXML, model},
|
{(const xmlChar *)"dimension", parseStubFieldXML, model},
|
||||||
{(const xmlChar *)"size", parseStubFieldXML, model},
|
{(const xmlChar *)"size", parseStubFieldXML, model},
|
||||||
{(const xmlChar *)"site_multiplicity", parseStubFieldXML, model},
|
{(const xmlChar *)"site_multiplicity", parseStubFieldXML, model},
|
||||||
|
@ -253,19 +250,19 @@ int ParseModelXML(Model_t *model)
|
||||||
|
|
||||||
// OBJECTS
|
// OBJECTS
|
||||||
{(const xmlChar *)"objects", parseParentFieldXML, model},
|
{(const xmlChar *)"objects", parseParentFieldXML, model},
|
||||||
{(const xmlChar *)"object", parseParentFieldXML, model},
|
{(const xmlChar *)"object", parseParentFieldPropsXML, model},
|
||||||
|
|
||||||
// SPACE
|
// SPACE
|
||||||
{(const xmlChar *)"space", parseParentFieldXML, model},
|
{(const xmlChar *)"space", parseParentFieldPropsXML, model},
|
||||||
|
|
||||||
// SAVESTATES
|
// SAVESTATES
|
||||||
{(const xmlChar *)"savestates", parseParentFieldXML, model},
|
{(const xmlChar *)"savestates", parseParentFieldPropsXML, model},
|
||||||
|
|
||||||
// TRANSITIONS
|
// TRANSITIONS
|
||||||
{(const xmlChar *)"transitions", parseParentFieldXML, model},
|
{(const xmlChar *)"transitions", parseParentFieldPropsXML, model},
|
||||||
// TRANSITION
|
// TRANSITION
|
||||||
// TODO probability
|
// TODO probability
|
||||||
{(const xmlChar *)"transition", parseParentFieldXML, model},
|
{(const xmlChar *)"transition", parseParentFieldPropsXML, model},
|
||||||
{(const xmlChar *)"if", parseParentFieldXML, model},
|
{(const xmlChar *)"if", parseParentFieldXML, model},
|
||||||
{(const xmlChar *)"then", parseParentFieldXML, model},
|
{(const xmlChar *)"then", parseParentFieldXML, model},
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
||||||
//=-------------------------------------------------------------------------=//
|
//=-------------------------------------------------------------------------=//
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/scheduler.h"
|
||||||
#include "../include/centers.h"
|
#include "../include/centers.h"
|
||||||
#include "../include/worker.h"
|
#include "../include/worker.h"
|
||||||
#include "../include/arrows.h"
|
#include "../include/arrows.h"
|
||||||
|
|
16
src/server.c
16
src/server.c
|
@ -19,18 +19,18 @@
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
||||||
//=-------------------------------------------------------------------------=//
|
//=-------------------------------------------------------------------------=//
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/server.h"
|
||||||
#include "../include/cmds.h"
|
#include "../include/cmds.h"
|
||||||
|
|
||||||
#include <netdb.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <errno.h>
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
static Command_t cmdList[] =
|
||||||
|
{
|
||||||
|
{"help", CmdHelp, "Help command"},
|
||||||
|
{"model", CmdModel, "Model command"},
|
||||||
|
{"shutdown", CmdShutdown, "Shutdown command"},
|
||||||
|
};
|
||||||
|
|
||||||
static void *serverMain(void *server);
|
static void *serverMain(void *server);
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
||||||
//=-------------------------------------------------------------------------=//
|
//=-------------------------------------------------------------------------=//
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/supervisor.h"
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <https://www.gnu.org/licenses/>. //
|
||||||
//=-------------------------------------------------------------------------=//
|
//=-------------------------------------------------------------------------=//
|
||||||
|
|
||||||
#include "../include/base.h"
|
#include "../include/worker.h"
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue