19 #ifndef GNASH_PROPERTYLIST_H 20 #define GNASH_PROPERTYLIST_H 27 #include <boost/multi_index_container.hpp> 28 #include <boost/multi_index/ordered_index.hpp> 29 #include <boost/multi_index/sequenced_index.hpp> 30 #include <boost/multi_index/key_extractors.hpp> 31 #include <boost/noncopyable.hpp> 92 typedef boost::multi_index::sequenced<
107 typedef boost::multi_index::ordered_unique<
108 boost::multi_index::tag<Case>,
116 typedef boost::multi_index::ordered_non_unique<
117 boost::multi_index::tag<NoCase>,
122 typedef boost::multi_index_container<
124 boost::multi_index::indexed_by<SequencedIndex, CaseIndex, NoCaseIndex>
150 template <
class U,
class V>
153 for (
const auto& prop : _props) {
155 if (!cmp(prop))
continue;
156 as_value val = prop.getValue(_owner);
157 if (!visitor.accept(prop.uri(), val))
return;
170 void visitKeys(
KeyVisitor&
v, PropertyTracker& donelist)
const;
275 void setFlagsAll(
int setTrue,
int setFalse);
282 return _props.size();
311 #endif // GNASH_PROPERTYLIST_H size_t size() const
Return number of properties in this list.
Definition: PropertyList.h:281
void visitValues(V &visitor, U cmp=U()) const
Visit properties.
Definition: PropertyList.h:151
void for_each(C &container, R(T::*pmf)(const A &), const A &arg)
Definition: Renderer_ogl.cpp:690
virtual ~KeyVisitor()
Definition: PropertyList.h:63
ActionScript value type.
Definition: as_value.h:94
An abstract property.
Definition: Property.h:276
void clear()
Clean up the font library.
Definition: fontlib.cpp:36
virtual ~PropertyVisitor()
Definition: PropertyList.h:54
uri
Definition: test.py:12
Flags defining the level of protection of a member.
Definition: PropFlags.h:28
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
void setReachable() const
Mark this property as being reachable (for the GC)
Definition: Property.h:390
as_value(* as_c_function_ptr)(const fn_call &fn)
Definition: Property.h:34
The base class for all ActionScript objects.
Definition: as_object.h:161
A URI for describing as_objects.
Definition: ObjectURI.h:44
container::const_iterator const_iterator
Definition: PropertyList.h:128
boost::multi_index::ordered_unique< boost::multi_index::tag< Case >, KeyExtractor, ObjectURI::LessThan > CaseIndex
The case-sensitive index.
Definition: PropertyList.h:110
boost::multi_index::sequenced< boost::multi_index::tag< CreationOrder > > SequencedIndex
The sequenced index in creation order.
Definition: PropertyList.h:93
An abstract property visitor.
Definition: PropertyList.h:49
boost::multi_index_container< value_type, boost::multi_index::indexed_by< SequencedIndex, CaseIndex, NoCaseIndex > > container
The container of the Properties.
Definition: PropertyList.h:125
Identifier for the case-insensitive index.
Definition: PropertyList.h:113
Property value_type
Definition: PropertyList.h:86
Definition: GnashKey.h:134
virtual bool accept(const ObjectURI &uri, const as_value &val)=0
This function should return false if no further visits are needed.
boost::multi_index::ordered_non_unique< boost::multi_index::tag< NoCase >, KeyExtractor, ObjectURI::CaseLessThan > NoCaseIndex
The case-insensitive index.
Definition: PropertyList.h:119
Definition: GnashKey.h:133
Definition: ObjectURI.h:129
void setReachable() const
Mark all properties reachable.
Definition: PropertyList.h:295
Identifier for the case-sensitive index.
Definition: PropertyList.h:104
Definition: GnashKey.h:162
std::set< ObjectURI, ObjectURI::LessThan > PropertyTracker
Definition: PropertyList.h:85
Set of properties associated with an ActionScript object.
Definition: PropertyList.h:81
container::iterator iterator
Definition: PropertyList.h:127
#define DSOTEXPORT
Definition: dsodefs.h:63
const ObjectURI & uri() const
The name-namespace pair (ObjectURI) of this Property.
Definition: Property.h:385
An abstract key visitor.
Definition: PropertyList.h:58
ActionScript Function, either builtin or SWF-defined.
Definition: as_function.h:62
Identifier for the sequenced index.
Definition: PropertyList.h:89
Definition: ObjectURI.h:121