00001 /*------------------------------------------------------------*- c++ -*-\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \-----------------------------------------------------------------------/ 00012 00013 File: Y2Function.h 00014 a generic interface for calling a function from a namespace 00015 00016 Author: Stanislav Visnovsky <visnov@suse.cz> 00017 Maintainer: Stanislav Visnovsky <visnov@suse.cz> 00018 00019 /-*/ 00020 00021 #ifndef Y2Function_h 00022 #define Y2Function_h 00023 00024 #include <string> 00025 using std::string; 00026 00027 #include "ycp/YCPValue.h" 00028 #include "ycp/Type.h" 00029 00034 class Y2Function { 00035 00036 public: 00041 virtual ~Y2Function () {}; 00042 00047 virtual bool attachParameter (const YCPValue& arg, const int position) = 0; 00048 00055 virtual constTypePtr wantedParameterType () const = 0; 00056 00061 virtual bool appendParameter (const YCPValue& arg) = 0; 00062 00067 virtual bool finishParameters () = 0; 00068 00072 virtual YCPValue evaluateCall () = 0; 00073 }; 00074 00075 #endif // Y2Function_h