00001 /* 00002 Aseba - an event-based framework for distributed robot control 00003 Copyright (C) 2007--2009: 00004 Stephane Magnenat <stephane at magnenat dot net> 00005 (http://stephane.magnenat.net) 00006 and other contributors, see authors.txt for details 00007 Mobots group, Laboratory of Robotics Systems, EPFL, Lausanne 00008 00009 This program is free software: you can redistribute it and/or modify 00010 it under the terms of the GNU General Public License as published by 00011 the Free Software Foundation, either version 3 of the License, or 00012 any other version as decided by the two original authors 00013 Stephane Magnenat and Valentin Longchamp. 00014 00015 This program is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU General Public License for more details. 00019 00020 You should have received a copy of the GNU General Public License 00021 along with this program. If not, see <http://www.gnu.org/licenses/>. 00022 */ 00023 00024 #ifndef ASEBA_SWITCH 00025 #define ASEBA_SWITCH 00026 00027 #include <dashel/dashel.h> 00028 00029 namespace Aseba 00030 { 00035 00039 class Switch: public Dashel::Hub 00040 { 00041 public: 00047 Switch(unsigned port, bool verbose, bool dump, bool forward, bool rawTime); 00048 00053 void forwardDataFrom(Dashel::Stream* stream); 00054 00056 void broadcastDummyUserMessage(); 00057 00058 private: 00059 virtual void connectionCreated(Dashel::Stream *stream); 00060 virtual void incomingData(Dashel::Stream *stream); 00061 virtual void connectionClosed(Dashel::Stream *stream, bool abnormal); 00062 00063 private: 00064 bool verbose; 00065 bool dump; 00066 bool forward; 00067 bool rawTime; 00068 }; 00069 00071 }; 00072 00073 #endif