#include "../Internal.hpp"
struct Selector_privateData :
- CYValue<Selector_privateData, SEL>
+ CYRoot
{
+ SEL value_;
+
_finline Selector_privateData(SEL value) :
- CYValue(value)
+ value_(value)
{
}
};
struct Instance :
- CYValue<Instance, id>
+ CYPrivateOld<Instance>
{
typedef unsigned Flags;
static const Flags None = 0;
static const Flags Permanent = 1 << 0;
static const Flags Uninitialized = 1 << 1;
+ id value_;
Flags flags_;
Instance(id value, Flags flags);
namespace cy {
struct Super :
- CYValue<Super, id>
+ CYRoot
{
+ id value_;
Class class_;
_finline Super(id value, Class _class) :
- CYValue(value),
+ value_(value),
class_(_class)
{
}
}; }
struct Messages :
- CYValue<Messages, Class>
+ CYRoot
{
- _finline Messages(Class value) :
- CYValue(value)
+ virtual Class GetClass() const = 0;
+};
+
+struct Prototype :
+ Messages
+{
+ static constexpr const char *const Cache_ = "p";
+
+ Class value_;
+
+ _finline Prototype(Class value) :
+ value_(value)
{
}
+ Class GetClass() const override {
+ return value_;
+ }
+
+ JSValueRef GetPrototype(JSContextRef context) const;
+};
+
+struct Constructor :
+ Messages
+{
+ static constexpr const char *const Cache_ = "m";
+
+ Class value_;
+
+ _finline Constructor(Class value) :
+ value_(value)
+ {
+ }
+
+ Class GetClass() const override {
+ return value_;
+ }
+
JSValueRef GetPrototype(JSContextRef context) const;
};
struct Interior :
- CYValue<Interior, id>
+ CYRoot
{
+ id value_;
CYProtect owner_;
_finline Interior(id value, JSContextRef context, JSObjectRef owner) :
- CYValue(value),
+ value_(value),
owner_(context, owner)
{
}