aboutsummaryrefslogtreecommitdiff
path: root/include/Paradox/Object.h
blob: 2889cd9013a9067e2ddddebc1abb72b43a73e919 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef PARADOX_OBJECT_H
#define PARADOX_OBJECT_H

#include <objc/objc.h>
#include <objc/runtime.h>

@interface PXObject {
	void* dummy;  // it doesn't work without this so don't touch it
}

/* init and lifecycle */
+ (instancetype)alloc;
+ (instancetype)new;
- (instancetype)retain;
- (instancetype)init;
- (void)dealloc;
- (void)release;
- (instancetype)autorelease;

/* object introspection */
- (Class)class;
- (Class)superclass;
- (const char *)className;  // CHANGE TO (PXString *) WHEN IMPLEMENTED
- (BOOL)isKindOfClass:(Class)class;
- (BOOL)isMemberOfClass:(Class)class;

/* selector stuff */
- (BOOL)respondsToSelector:(SEL)selector;

#ifdef PARADOX_DEBUG_FEATURES
+ (instancetype)allocDebug;
- (void)healthCheck;
#endif

@end

#endif