00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \----------------------------------------------------------------------/ 00012 00013 File: Y2Component.h 00014 00015 Author: Mathias Kettner <kettner@suse.de> 00016 Thomas Roelz <tom@suse.de> 00017 Stanislav Visnovsky <visnov@suse.cz> 00018 Maintainer: Stanislav Visnovsky <visnov@suse.cz> 00019 00020 /-*/ 00021 // -*- c++ -*- 00022 00023 #ifndef Y2Component_h 00024 #define Y2Component_h 00025 00026 #include <string> 00027 00028 using std::string; 00029 00030 class SCRAgent; 00031 class Y2Namespace; 00032 class YCPValue; 00033 class YCPList; 00034 00075 class Y2Component 00076 { 00077 public: 00078 00079 /* ================ common ================ */ 00080 00081 Y2Component(); 00082 00086 virtual ~Y2Component(); 00087 00091 virtual string name() const = 0; 00092 00093 /* ================ server ================ */ 00094 00105 virtual YCPValue evaluate(const YCPValue& command); 00106 00113 virtual void result(const YCPValue& result); 00114 00126 virtual void setServerOptions(int argc, char **argv); 00127 00145 virtual Y2Namespace* import(const char* name_space); 00146 00147 /* ================ client ================ */ 00148 00166 virtual YCPValue doActualWork(const YCPList& arglist, Y2Component *user_interface); 00167 00168 /* ================ misc ================ */ 00169 00176 virtual SCRAgent * getSCRAgent (); 00177 00178 virtual bool remote () const; 00179 }; 00180 00181 #endif // Y2Component_h