00001 /*------------------------------------------------------------*- c++ -*-\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \-----------------------------------------------------------------------/ 00012 00013 File: Y2SystemNamespace.h 00014 a wrapper interface for accessing a LiMaL namespace 00015 (configurable via SCROpen/SCRClose) 00016 00017 Author: Stanislav Visnovsky <visnov@suse.cz> 00018 Maintainer: Stanislav Visnovsky <visnov@suse.cz> 00019 00020 /-*/ 00021 00022 #ifndef Y2SystemFunction_h 00023 #define Y2SystemFunction_h 00024 00025 #include <y2/Y2Namespace.h> 00026 #include <y2/Y2Function.h> 00027 00028 class Y2Component; 00029 00030 class Y2SystemFunction : public Y2Function { 00031 00032 Y2Function* m_local; 00033 Y2Function* m_remote; 00034 00035 bool m_use_remote; 00036 00037 constFunctionTypePtr m_type; 00038 00039 public: 00040 Y2SystemFunction (Y2Function* local_call, constFunctionTypePtr type); 00041 00042 virtual ~Y2SystemFunction (); 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 void useRemote (Y2Function* remote_call); 00082 00083 void useLocal (); 00084 00085 string name () const; 00086 00087 constFunctionTypePtr type () const; 00088 }; 00089 00090 #endif // Y2SystemFunction_h