koscript_method.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __KSCRIPT_METHOD_H__
00021 #define __KSCRIPT_METHOD_H__
00022
00023 #include <qshared.h>
00024 #include <qmap.h>
00025 #include <qptrlist.h>
00026 #include <qstring.h>
00027
00028 #include "koscript_ptr.h"
00029 #include "koscript_context.h"
00030 #include "koscript_func.h"
00031 #include "koscript_struct.h"
00032
00033 #include <string.h>
00034
00040 class KSMethod : public QShared
00041 {
00042 public:
00043 KSMethod( KSModule* m, const KSValue::Ptr& obj, const KSValue::Ptr& func )
00044 : QShared(), m_object( obj ), m_func( func ), m_module( m ) { }
00050 KSMethod( KSModule* m, const KSValue::Ptr& obj, const KSValue::Ptr& func, const QString& name )
00051 : QShared(), m_object( obj ), m_func( func ), m_module( m ), m_methodName( name ) { }
00052 virtual ~KSMethod() { }
00053
00054 bool call( KSContext& context );
00055
00056 KSValue* object() { return m_object; }
00057 KSValue* function() { return m_func; }
00058
00059 KSModule* module() { return m_module; }
00060
00061 QString name() { return ( m_methodName.isEmpty() ? m_func->functionValue()->name() : m_methodName ); }
00062
00063 private:
00064 KSValue::Ptr m_object;
00065 KSValue::Ptr m_func;
00066 KSModule* m_module;
00067
00068 QString m_methodName;
00069 };
00070
00071 #endif
This file is part of the documentation for lib Library Version 1.4.2.