00001 /*------------------------------------------------------------*- c++ -*-\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \-----------------------------------------------------------------------/ 00012 00013 File: Y2StdioFunction.h 00014 a remote function call 00015 00016 Author: Stanislav Visnovsky <visnov@suse.cz> 00017 Maintainer: Stanislav Visnovsky <visnov@suse.cz> 00018 00019 /-*/ 00020 00021 #ifndef Y2StdioFunction_h 00022 #define Y2StdioFunction_h 00023 00024 #include <y2/Y2Namespace.h> 00025 #include <y2/Y2Function.h> 00026 00027 class Y2ProgramComponent; 00028 00029 class Y2StdioFunction : public Y2Function { 00030 00031 string m_namespace; 00032 string m_name; 00033 constFunctionTypePtr m_type; 00034 YCPValue* m_parameters; 00035 00036 Y2ProgramComponent* m_sender; 00037 00038 public: 00039 Y2StdioFunction (string ns, string name 00040 , constFunctionTypePtr type, Y2ProgramComponent* sender); 00041 00042 virtual ~Y2StdioFunction (); 00043 00048 virtual bool attachParameter (const YCPValue& arg, const int position); 00049 00056 virtual constTypePtr wantedParameterType () const; 00057 00062 virtual bool appendParameter (const YCPValue& arg); 00063 00068 virtual bool finishParameters (); 00069 00073 virtual YCPValue evaluateCall (); 00074 00079 virtual bool reset (); 00080 00081 virtual string name () const; 00082 }; 00083 00084 #endif // Y2StdioFunction_h