]> git.saurik.com Git - cydia.git/commitdiff
A few random improvements to Menes ObjectHandle.
authorJay Freeman (saurik) <saurik@saurik.com>
Sun, 6 May 2012 19:49:27 +0000 (12:49 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Sun, 6 May 2012 19:49:27 +0000 (12:49 -0700)
Menes/ObjectHandle.h

index da46dd8789329ef0131748e835e14a95cd1beb83..32cc7ea66ce208e5f5c39dfb75ee3c2509966000 100644 (file)
@@ -107,6 +107,10 @@ class MenesObjectHandle {
         return value_;
     }
 
+    _finline Type_ *operator ->() const {
+        return value_;
+    }
+
     _finline MenesObjectHandle &operator =(Type_ *value) {
         if (value_ != value) {
             Type_ *old(value_);
@@ -123,4 +127,25 @@ class MenesObjectHandle {
 
 #define _H MenesObjectHandle
 
+#define rproperty_(Class, field) \
+    - (typeof(((Class*)nil)->_##field.operator->())) field { \
+        return _##field; \
+    }
+
+#define wproperty_(Class, field, Field) \
+    - (void) set##Field:(typeof(((Class*)nil)->_##field.operator->()))field { \
+        _##field = field; \
+    }
+
+#define roproperty(Class, field) \
+@implementation Class (Menes_##field) \
+rproperty_(Class, field) \
+@end
+
+#define rwproperty(Class, field, Field) \
+@implementation Class (Menes_##field) \
+rproperty_(Class, field) \
+wproperty_(Class, field, Field) \
+@end
+
 #endif//Menes_ObjectHandle_H