1 /*
2  *  cAnalyzeCommand.h
3  *  Avida
4  *
5  *  Called "analyze_command.hh" prior to 12/1/05.
6  *  Copyright 1999-2011 Michigan State University. All rights reserved.
7  *  Copyright 1993-2003 California Institute of Technology.
8  *
9  *
10  *  This file is part of Avida.
11  *
12  *  Avida is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
13  *  as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
14  *
15  *  Avida is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
17  *
18  *  You should have received a copy of the GNU Lesser General Public License along with Avida.
19  *  If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef cAnalyzeCommand_h
24 #define cAnalyzeCommand_h
25 
26 #ifndef cString_h
27 #include "cString.h"
28 #endif
29 
30 // cAnalyzeCommand     : A command in a loaded program
31 
32 template <class T> class tList;
33 
34 class cAnalyzeCommand
35 {
36 protected:
37   cString m_command;
38   cString m_args;
39 
40 
41 private:
42   cAnalyzeCommand(); // @not_implemented
43   cAnalyzeCommand(const cAnalyzeCommand&); // @not_implemented
44   cAnalyzeCommand& operator=(const cAnalyzeCommand&); // @not_implemented
45 
46 
47 public:
cAnalyzeCommand(const cString & command,const cString & args)48   cAnalyzeCommand(const cString& command, const cString& args) : m_command(command), m_args(args) { ; }
~cAnalyzeCommand()49   virtual ~cAnalyzeCommand() { ; }
50 
GetCommand()51   const cString& GetCommand() { return m_command; }
GetArgs()52   const cString& GetArgs() const { return m_args; }
GetArgs()53   cString GetArgs() { return m_args; }
GetCommandList()54   virtual tList<cAnalyzeCommand>* GetCommandList() { return NULL; }
55 
56   /*
57   added to satisfy Boost.Python; the semantics are fairly useless --
58   equality of two references means that they refer to the same object.
59   */
60   bool operator==(const cAnalyzeCommand &in) const { return &in == this; }
61 };
62 
63 #endif
64