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.3.5.