00001 /* 00002 * This file is part of Jelie, 00003 * (c) 2002 Julien Pilet <julien.pilet@epfl.ch> and 00004 * Stephane Magnenat <stephane.magnenat@epfl.ch> 00005 * 00006 * Jelie is free software; you can redistribute it 00007 * and/or modify it under the terms of the GNU General Public License as 00008 * published by the Free Software Foundation; either version 2 of the License, 00009 * or (at your option) any later version. 00010 * 00011 * Jelie is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with Foobar; if not, write to the Free Software 00018 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 */ 00020 00029 #ifndef __JTAG_CTRL_FACTORY 00030 #define __JTAG_CTRL_FACTORY 00031 00032 #include "jtag.h" 00033 #include <vector> 00034 00036 class JTAGControlFactory 00037 { 00038 public: 00040 JTAGControlFactory(void); 00041 00043 ~JTAGControlFactory(void); 00044 00046 JTAGControl *getPrefered(const char *name, int argc, char *argv[]) const; 00047 00049 JTAGControl *getAvailable(int argc, char *argv[]) const; 00050 00052 void dumpList(void) const; 00053 private: 00054 std::vector<JTAGControl *> controls; 00055 }; 00056 00057 #endif