lib
callable.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KROSS_API_CALLABLE_H
00021 #define KROSS_API_CALLABLE_H
00022
00023 #include "object.h"
00024 #include "list.h"
00025
00026
00027 #include <qstring.h>
00028 #include <qvaluelist.h>
00029 #include <ksharedptr.h>
00030
00031 namespace Kross { namespace Api {
00032
00039 class Callable : public Object
00040 {
00041 public:
00042
00046 typedef KSharedPtr<Callable> Ptr;
00047
00054 Callable(const QString& name);
00055
00059 virtual ~Callable();
00060
00066 const QString getName() const;
00067
00075 virtual const QString getClassName() const;
00076
00082 bool hasChild(const QString& name) const;
00083
00092 Object::Ptr getChild(const QString& name) const;
00093
00099 QMap<QString, Object::Ptr> getChildren() const;
00100
00110 bool addChild(const QString& name, Object* object);
00111
00116 bool addChild(Callable* object);
00117
00125 void removeChild(const QString& name);
00126
00130 void removeAllChildren();
00131
00135 virtual Object::Ptr call(const QString& name, List::Ptr arguments);
00136
00137 private:
00139 QString m_name;
00141 QMap<QString, Object::Ptr> m_children;
00142 };
00143
00144 }}
00145
00146 #endif
00147
|