Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef ORO_PROGRAMINTERFACE_HPP
00039 #define ORO_PROGRAMINTERFACE_HPP
00040
00041 #include <string>
00042 #include <vector>
00043 #include <boost/shared_ptr.hpp>
00044 #include "../base/DataSourceBase.hpp"
00045 #include "../base/AttributeBase.hpp"
00046 #include "../base/ExecutableInterface.hpp"
00047 #include "rtt-scripting-config.h"
00048 #include "../rtt-fwd.hpp"
00049 #include "rtt-scripting-fwd.hpp"
00050
00051 namespace RTT
00052 { namespace scripting {
00053 typedef boost::shared_ptr<ProgramInterface> ProgramInterfacePtr;
00054 typedef boost::weak_ptr<ProgramInterface> ProgramInterfaceWPtr;
00055
00060 class RTT_SCRIPTING_API ProgramInterface
00061 : public base::ExecutableInterface
00062 {
00063 public:
00067 struct RTT_SCRIPTING_API Status {
00071 enum ProgramStatus {
00072 unknown = 0,
00073 stopped,
00074 paused,
00075 running,
00076 error
00077 };
00078 };
00079 protected:
00080 Status::ProgramStatus pStatus;
00081 public:
00082 ProgramInterface();
00083
00084 virtual ~ProgramInterface();
00085
00089 virtual bool start() = 0;
00090
00094 virtual bool pause() = 0;
00095
00099 virtual bool step() = 0;
00100
00104 virtual bool stop() = 0;
00105
00112 virtual bool execute()= 0;
00113
00117 virtual void reset() = 0;
00118
00122 inline bool isRunning() const { return pStatus == Status::running; }
00123
00127 inline bool isPaused() const { return pStatus == Status::paused; }
00128
00132 inline bool isStopped() const { return pStatus == Status::stopped; }
00133
00137 inline bool inError() const { return pStatus == Status::error; }
00138
00139 virtual bool stepDone() const = 0;
00140
00144 virtual int getLineNumber() const = 0;
00145
00149 Status::ProgramStatus getStatus() const { return pStatus; }
00150
00155 virtual std::string getText() const = 0;
00156
00160 virtual const std::string& getName() const = 0;
00161
00165 virtual std::vector<base::AttributeBase*> getArguments() const = 0;
00166
00170 virtual base::AttributeBase* getResult() const = 0;
00171
00189 virtual ProgramInterface* copy( std::map<const base::DataSourceBase*, base::DataSourceBase*>& replacementdss ) const = 0;
00190
00191 virtual ProgramInterface* clone() const = 0;
00192
00197 virtual bool needsStart() const = 0;
00198
00199 };
00200
00201
00202 }}
00203
00204
00205 #endif
00206
00207