From fa92b08399708d7846d61094a9b73983684d2138 Mon Sep 17 00:00:00 2001 From: schodet Date: Thu, 8 May 2003 15:18:58 +0000 Subject: Ajout du module automate --- 2003/i/buzz/src/automate/grafcet.cc | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 2003/i/buzz/src/automate/grafcet.cc (limited to '2003/i/buzz/src/automate/grafcet.cc') diff --git a/2003/i/buzz/src/automate/grafcet.cc b/2003/i/buzz/src/automate/grafcet.cc new file mode 100644 index 0000000..b2af52e --- /dev/null +++ b/2003/i/buzz/src/automate/grafcet.cc @@ -0,0 +1,54 @@ +// grafcet.cc +// buzz - Programme du robot Efrei Robotique I1-I2 2003 +// Copyright (C) 2003 Nicolas Schodet +// +#include "grafcet.h" +#include "erreur/erreur.h" + +Automate::Grafcet *parse_file (const char *filename); + +namespace Automate +{ + +// Pointeur vers l'instance unique du grafcet. +Grafcet *Grafcet::m_instance = 0; + +// Constructeur. +Grafcet::Grafcet () +{ +} + +Grafcet::Grafcet (const char *filename) +{ + Grafcet *g = parse_file (filename); + if (!g) throw ErreurFatale ("Impossible de lire le grafcet"); + m_grafcet = g->m_grafcet; + delete g; +} + +// Destructeur. +Grafcet::~Grafcet () +{ + for (vector::iterator i = m_grafcet.begin (); + i != m_grafcet.end (); ++i) + { + switch (i->type) + { + case etape: + delete i->elem.etape; + break; + case action: + delete i->elem.action; + break; + case receptivite: + delete i->elem.receptivite; + break; + case transition: + delete i->elem.transition; + break; + } + } +} + + +} // namespace Automate -- cgit v1.2.3