Go to the documentation of this file.
19 #ifndef GNASH_ABC_CLASS_H
20 #define GNASH_ABC_CLASS_H
91 _staticConstructor(0),
115 bool isconst,
bool isstatic);
118 std::uint32_t slotID,
Class *
type,
bool isstatic);
130 std::uint32_t slotID,
Class *
type,
bool isstatic);
134 std::uint32_t slotID,
Method *method,
bool isstatic);
217 return _staticConstructor;
221 _staticTraits.push_back(
t);
225 _instanceTraits.push_back(
t);
230 BindingContainer::iterator
i;
231 if (_bindings.empty())
return NULL;
232 i = _bindings.find(
name);
233 if (
i == _bindings.end())
249 _prototype = prototype;
261 _bindings.insert(std::make_pair(
name,
b));
266 _staticBindings.insert(std::make_pair(
name,
b));
272 if (_staticBindings.empty())
return 0;
273 BindingContainer::iterator
i = _staticBindings.find(
name);
274 if (
i == _staticBindings.end())
return 0;
280 std::vector<Trait> _instanceTraits;
283 std::vector<Trait> _staticTraits;
286 typedef std::map<string_table::key, Property> BindingContainer;
288 as_object *_prototype;
294 std::list<Class*> _interfaces;
295 Namespace* _protectedNs;
297 Method* _constructor;
298 Method* _staticConstructor;
300 BindingContainer _bindings;
301 BindingContainer _staticBindings;
void setName(string_table::key name)
Set our Name.
Definition: Class.h:109
bool isFinal() const
Is the class final?
Definition: Class.h:137
string_table::key getName() const
The global name of the class.
Definition: Class.h:182
void unsetInterface()
Set the class as not an interface.
Definition: Class.h:161
string_table::key getURI() const
What is the Uri of the namespace?
Definition: Namespace.h:76
Class describing a static property.
Definition: AbcBlock.h:72
void setConstructor(Method *m)
Set the iinit method.
Definition: Class.h:198
std::string name
Definition: LocalConnection_as.cpp:149
void setPrototype(as_object *prototype)
Necessary for the current bogus implementation.
Definition: Class.h:248
The base class for all ActionScript objects.
Definition: as_object.h:162
bool addSlotFunction(string_table::key name, Namespace *ns, std::uint32_t slotID, Method *method, bool isstatic)
Definition: Class.cpp:97
Class * getSuper() const
Retrieve the Class from which this Class derives.
Definition: Class.h:185
void addInstanceTrait(const Trait &t)
Definition: Class.h:224
Method * getConstructor() const
Get the iinit method or 'constructor'.
Definition: Class.h:204
Represent an ActionScript Namespace.
Definition: Namespace.h:49
@ i
Definition: GnashKey.h:155
@ CLASS_FUNCTION
Definition: namedStrings.h:216
bool addSlot(string_table::key name, Namespace *ns, std::uint32_t slotID, Class *type, bool isstatic)
Definition: Class.cpp:107
void initTraits(AbcBlock &bl)
This initializes all the traits.
Definition: Class.cpp:80
void init_member(const std::string &name, const as_value &val, int flags=DefaultFlags)
Initialize a member value by string.
Definition: as_object.cpp:669
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:41
An MultiName represents a single ABC multiname.
Definition: MultiName.h:52
@ g
Definition: GnashKey.h:153
Namespace * getProtectedNs()
Get the protected namespace.
Definition: Class.h:176
@ dontEnum
Protect from enumeration.
Definition: PropFlags.h:36
void setDynamic()
Set the class as dynamic.
Definition: Class.h:167
@ dontDelete
Protect from deletion.
Definition: PropFlags.h:39
bool addSetter(string_table::key name, Namespace *ns, Method *method, bool isstatic)
Definition: Class.cpp:154
@ m
Definition: GnashKey.h:159
@ n
Definition: GnashKey.h:160
void init_property(const std::string &key, as_function &getter, as_function &setter, int flags=DefaultFlags)
Initialize a getter/setter property by name.
Definition: as_object.cpp:690
The ActionScript bytecode of a single ABC tag in a SWF.
Definition: AbcBlock.h:209
bool addGetter(string_table::key name, Namespace *ns, Method *method, bool isstatic)
Definition: Class.cpp:134
VM & getVM(const as_environment &env)
Definition: as_environment.h:222
bool isDeclared()
Definition: Class.h:100
void setProtectedNs(Namespace *n)
Set the protected namespace.
Definition: Class.h:179
Property asBinding
Definition: Method.h:48
@ t
Definition: GnashKey.h:166
bool hasProtectedNs() const
Does the class have a protected namespace to be inherited?
Definition: Class.h:173
bool addValue(string_table::key name, Namespace *ns, std::uint32_t slotID, Class *type, as_value &val, bool isconst, bool isstatic)
Definition: Class.cpp:42
void initPrototype()
Necessary for the current bogus implementation.
Definition: Class.cpp:72
void for_each(C &container, R(T::*pmf)(const A &), const A &arg)
Definition: Renderer_ogl.cpp:690
bool finalize(AbcBlock *block, abc::Class *cl, bool do_static)
Definition: AbcBlock.cpp:42
@ a
Definition: GnashKey.h:147
as_object * getPrototype()
Necessary for the current bogus implementation.
Definition: Class.h:256
void setSystem()
Definition: Class.h:104
type
Definition: GnashKey.h:330
void unsetSealed()
Definition: Class.h:152
void unsetSystem()
Definition: Class.h:105
void setFinal()
Set the class as final.
Definition: Class.h:140
T * get(as_object *o)
Extract the DisplayObject attached to an object.
Definition: as_object.h:842
void setSealed()
Set the class as sealed.
Definition: Class.h:149
bool addMemberScript(string_table::key name, Namespace *ns, std::uint32_t slotID, Class *type, bool isstatic)
Definition: Class.cpp:90
An abstract property.
Definition: Property.h:277
bool isInterface() const
Is the class an interface type?
Definition: Class.h:155
@ p
Definition: GnashKey.h:162
bool isDynamic() const
Is the class dynamic?
Definition: Class.h:164
Method * getStaticConstructor() const
Get the cinit method or 'static constructor'.
Definition: Class.h:216
A class to represent AS3 Classes.
Definition: Class.h:76
as_object * to_object(VM &vm) const
Return value as an object, converting primitive values as needed.
Definition: as_value.cpp:453
void setStaticConstructor(Method *m)
Set the cinit method.
Definition: Class.h:211
@ _1
Definition: GnashKey.h:95
void unsetFinal()
Set the class as not final.
Definition: Class.h:143
ActionScript value type.
Definition: as_value.h:95
void unsetDynamic()
Set the class as not dynamic.
Definition: Class.h:170
Property * getSetBinding(as_value &v, abc::MultiName &n)
Property * getBinding(string_table::key name)
Definition: Class.h:228
bool isInherited()
Definition: Class.h:102
bool addMethod(string_table::key name, Namespace *ns, Method *method, bool isstatic)
Definition: Class.cpp:123
void setInterface()
Set the class as an interface.
Definition: Class.h:158
void pushInterface(Class *p)
We implement this interface.
Definition: Class.h:193
ABC-defined Function.
Definition: abc_function.h:41
The Global object ultimately contains all objects in an ActionScript run.
Definition: Global_as.h:50
virtual bool set_member(const ObjectURI &uri, const as_value &val, bool ifFound=false)
Set a member value.
Definition: as_object.cpp:583
uri
Definition: test.py:12
void setSuper(Class *p)
Set the Super Class.
Definition: Class.h:190
@ INTERNAL_TYPE
Definition: namedStrings.h:276
Class()
Definition: Class.h:79
std::size_t key
Definition: string_table.h:83
The implementation of a 'Class' type in ActionScript 3.
Definition: as_class.h:48
Register all of the ActionScript classes, with their dependencies.
Definition: ClassHierarchy.h:41
void setInherited()
Definition: Class.h:101
@ readOnly
Protect from assigning a value.
Definition: PropFlags.h:42
A URI for describing as_objects.
Definition: ObjectURI.h:45
bool is_object() const
Return true if this value is an object.
Definition: as_value.h:219
@ b
Definition: GnashKey.h:148
void setDeclared()
Definition: Class.h:99
abc_function * getPrototype()
Definition: Method.h:105
Property * getGetBinding(as_value &v, abc::MultiName &n)
bool isSystem()
Definition: Class.h:106
void addStaticTrait(const Trait &t)
Definition: Class.h:220
bool isSealed() const
Is the class sealed?
Definition: Class.h:146
Property * getOwnProperty(const ObjectURI &uri)
Get this object's own named property, if existing.
Definition: as_object.cpp:926