00001
00002
00003 #ifndef STATEMENT_H
00004 #define STATEMENT_H
00005
00006 #include "CliArgList.h"
00007
00008 #include "Serializable.h"
00009
00010
00020 class Statement: public Serializable {
00021 public:
00023 virtual void process(CliArgList *loop_vars) = 0;
00024
00025
00026 protected:
00027 Statement() {}
00028 private:
00029 friend class boost::serialization::access;
00030 template<class Archive>
00031 void serialize(Archive & ar, const unsigned int version) {
00032 this->pre_serialize(ar, version);
00033 try {
00034 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Serializable);
00035 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00036 }
00037 this->post_serialize(ar, version);
00038 }
00039
00040 };
00041
00042 #if BOOST_VERSION <= 103500
00043 BOOST_IS_ABSTRACT(Statement);
00044 #else
00045 BOOST_SERIALIZATION_ASSUME_ABSTRACT(Statement);
00046 #endif
00047
00048 BIE_CLASS_EXPORT_KEY(Statement)
00049 #endif