lib

#include <object.h>

Inheritance diagram for Kross::Api::Object:
Kross::Api::Value< List, TQMap< TQString, Object::Ptr > > Kross::Api::Value< List, TQValueList< Object::Ptr > > Kross::Api::Value< Variant, TQVariant > Kross::Api::Callable Kross::Api::Exception Kross::Api::Value< T, V > Kross::Python::PythonObject Kross::Api::Dict Kross::Api::List Kross::Api::Variant Kross::Api::Event< EventAction > Kross::Api::Event< EventScript > Kross::Api::Event< EventSignal > Kross::Api::Event< EventSlot > Kross::Api::Event< Module > Kross::Api::Event< QtObject > Kross::Api::Event< T >

Public Types

typedef TDESharedPtr< Object > Ptr

Public Member Functions

 Object ()
virtual ~Object ()
virtual const TQString getClassName () const =0
virtual const TQString toString ()
virtual Object::Ptr call (const TQString &name, TDESharedPtr< List > arguments)
virtual TQStringList getCalls ()

Static Public Member Functions

template<class T>
static T * fromObject (Object::Ptr object)
template<typename TYPE>
static Object::Ptr toObject (TYPE t)

Detailed Description

The common Object class all other object-classes are inheritated from.

The Object class is used as base class to provide common functionality. It's similar to what we know in Python as PyObject or in TQt as TQObject.

Inherited from e.g. Value, Module and Class .

This class implementates reference counting for shared objects. So, no need to take care of freeing objects.

Definition at line 50 of file object.h.

Member Typedef Documentation

◆ Ptr

typedef TDESharedPtr<Object> Kross::Api::Object::Ptr

Shared pointer to implement reference-counting.

Definition at line 57 of file object.h.

Constructor & Destructor Documentation

◆ Object()

Object::Object ( )
explicit

Constructor.

Definition at line 29 of file object.cpp.

◆ ~Object()

Object::~Object ( )
virtual

Destructor.

Definition at line 37 of file object.cpp.

Member Function Documentation

◆ call()

Object::Ptr Object::call ( const TQString & name,
TDESharedPtr< List > arguments )
virtual

Pass a call to the object and evaluated it recursive down the object-hierachy.

Objects like Class are able to handle call's by just implementing this function. If the call is done the called() method will be executed recursive from bottom up the call hierachy.

Exceptions
TypeExceptionif the object or the name is not callable.
Parameters
nameEach call has a name that says what should be called. In the case of a Class the name is the functionname.
argumentsThe list of arguments passed to the call.
Returns
The call-result as Object::Ptr instance or NULL if the call has no result.

Reimplemented in Kross::Api::EventScript, Kross::Api::EventSignal, and Kross::Api::EventSlot.

Definition at line 50 of file object.cpp.

◆ fromObject()

template<class T>
T * Kross::Api::Object::fromObject ( Object::Ptr object)
inlinestatic

Try to convert the Object instance to the template class T.

Exceptions
TypeExceptionif the cast failed.
Parameters
objectThe Object to cast.
Returns
The to a instance from template type T casted Object.

Definition at line 141 of file object.h.

◆ getCalls()

virtual TQStringList Kross::Api::Object::getCalls ( )
inlinevirtual

Return a list of supported callable objects.

Returns
List of supported calls.

Reimplemented in Kross::Python::PythonObject.

Definition at line 109 of file object.h.

◆ getClassName()

virtual const TQString Kross::Api::Object::getClassName ( ) const
pure virtual

Return the class name.

This could be something like "Kross::Api::Object" for this object. The value is mainly used for display purposes.

Returns
The name of this class.

Implemented in Kross::Api::Callable, Kross::Api::Dict, Kross::Api::EventAction, Kross::Api::EventScript, Kross::Api::EventSignal, Kross::Api::EventSlot, Kross::Api::Exception, Kross::Api::List, Kross::Api::MainModule, Kross::Api::QtObject, Kross::Api::Variant, and Kross::Python::PythonObject.

◆ toObject()

template<typename TYPE>
Object::Ptr Kross::Api::Object::toObject ( TYPE t)
inlinestatic

This method got used by the ProxyFunction classes to translate an unknown TYPE to a Object instance.

Classes like Value or ListT or Class are overwriting this method to transparently translate these passed type while this method just assumes that the type is already a Object instance.

Definition at line 132 of file object.h.

◆ toString()

const TQString Object::toString ( )
virtual
Returns
a string representation of the object or it's content. This method is mainly used for debugging and testing purposes.

Reimplemented in Kross::Api::Dict, Kross::Api::Exception, Kross::Api::List, and Kross::Api::Variant.

Definition at line 45 of file object.cpp.


The documentation for this class was generated from the following files: