// This may look like C code, but it is really -*- C++ -*- // Classe CxxExecutor : Dynmamic C++ compile/execution in piapp // (c) DAPNIA (CEA) LAL (IN2P3/CNRS) // C. Magneville 10/2000 #ifndef CXXEXECUTOR_H_SEEN #define CXXEXECUTOR_H_SEEN #include "machdefs.h" #include #include #include #include #include #include "piacmd.h" #include "nobjmgr.h" class CxxExecutor : public CmdExecutor { public: CxxExecutor(PIACmd* piac, PIStdImgApp* app); virtual ~CxxExecutor(); virtual int Execute(string& keyw,vector& args); int CrFile(string cfilename="cxx_spiapp.cc",string func="usercxx"); void PutInclude(ofstream& os); void PutIncludeUser(ofstream& os); void PutObject(ofstream& os); void PutVar(ofstream& os); void PutUserCode(ofstream& os); int FillUserCode(vector& usercode,uint_4 first); int FillUserCode(string filename); int Compile(string rootfilename="cxx_spiapp"); int CrMakefile(void); int Link(string libname="cxx_spiapp.so",string func="usercxx"); int Call(string func="usercxx"); //int FillArgs(vector& args); //int FillArgs(string& args); //string GetArgs(void); // etc... //int FillInclude(vector& inc); //int FillCompileOpt(vector& copt); //int FillLinkOpt(vector& lopt); //int FillLinkLibs(vector& llibs); private: string mCompOpt; string mLinkOpt; string mMyLibs; vector mUserCode; vector mIncList; vector mCallArgs; }; #endif