From a8cd31b9681938b1cea0d02e884962fd8f114208 Mon Sep 17 00:00:00 2001 From: haller Date: Sat, 21 Jan 2006 21:10:23 +0000 Subject: - ajout de quelques structures de données - importation de la class nonCopyable et utilisation dans quelques classes - création d'une class exception simulotron_exception - ajout d'un paramètre "bloquant" pour recevoir une GS - modification de la valeur de retour des fonction servant à récupérer une GS - Mise en place de la poignée de main lors de la connection d'un module au hub - Ajout d'un message template pour les message vide - suppression des fonction (get|put)Char et getFD de la classe socket - modification de la fonction GSMessage::getString à deux arguments - ajout d'un test_hub - ajout de la class ComH (un peu comme ComC mais coté hub) --- i/simulotron/src/utils/non_copyable.hh | 41 ++++++++++++++++++++++++ i/simulotron/src/utils/simulotron_exception.hh | 44 ++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 i/simulotron/src/utils/non_copyable.hh create mode 100644 i/simulotron/src/utils/simulotron_exception.hh (limited to 'i/simulotron/src/utils') diff --git a/i/simulotron/src/utils/non_copyable.hh b/i/simulotron/src/utils/non_copyable.hh new file mode 100644 index 0000000..e788365 --- /dev/null +++ b/i/simulotron/src/utils/non_copyable.hh @@ -0,0 +1,41 @@ +#ifndef non_copyable_hh +#define non_copyable_hh +// non_copyable.hh +// robert - programme du robot 2005. {{{ +// +// Copyright (C) 2005 Nicolas Schodet +// +// Robot APB Team/Efrei 2005. +// Web: http://assos.efrei.fr/robot/ +// Email: robot AT efrei DOT fr +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +// }}} + +/// Toute classe qui hérite de NonCopyable ne peut pas être copiée. Cela est +/// assuré par le fait que l'operator= et le constructeur de recopie sont +/// privé. +/// Idée originale : Boost.org. +class NonCopyable +{ + public: + NonCopyable (void) { } + private: + NonCopyable (const NonCopyable &); + const NonCopyable &operator= (const NonCopyable &); +}; + +#endif // non_copyable_hh diff --git a/i/simulotron/src/utils/simulotron_exception.hh b/i/simulotron/src/utils/simulotron_exception.hh new file mode 100644 index 0000000..aeece4f --- /dev/null +++ b/i/simulotron/src/utils/simulotron_exception.hh @@ -0,0 +1,44 @@ +#ifndef simulotron_exception_hh +#define simulotron_exception_hh +// simulotron_exception.hh - exeption générale du simulotron +// robert - programme du robot 2005. {{{ +// +// Copyright (C) 2006 Nicolas Haller +// +// Robot APB Team/Efrei 2005. +// Web: http://assos.efrei.fr/robot/ +// Email: robot AT efrei DOT fr +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +// }}} + +#include +#include +#include +#include + +/// Exception lancé lorsqu'une erreur est retournée par la libc. +class simulotron_exception : public std::exception +{ + std::string what_; + public: + simulotron_exception (const std::string & module, const std::string & desc) + : what_ (module + ": " + desc) { } + ~simulotron_exception (void) throw () { } + virtual const char* what () const throw () { return what_.c_str (); } +}; + +#endif // simulotron_exception_hh -- cgit v1.2.3