1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#import "Identifier.h"
OF_ASSUME_NONNULL_BEGIN
@interface Command: Identifier
@property (readonly, nonatomic) void (*function)();
@property (readonly, nonatomic) int argumentsTypes;
+ (instancetype)commandWithName:(OFString *)name
function:(void (*)())function
argumentsTypes:(int)argumentsTypes;
- (instancetype)initWithName:(OFString *)name OF_UNAVAILABLE;
- (instancetype)initWithName:(OFString *)name
function:(void (*)())function
argumentsTypes:(int)argumentsTypes;
- (int)callWithArguments:(OFArray<OFString *> *)arguments isDown:(bool)isDown;
@end
OF_ASSUME_NONNULL_END
|
>
>
>
>
>
>
>
>
>
>
>
<
<
|
>
<
|
>
|
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
|
#import "Identifier.h"
OF_ASSUME_NONNULL_BEGIN
#define COMMAND(name, nargs, block_) \
OF_CONSTRUCTOR() \
{ \
enqueueInit(^{ \
[Identifier \
addIdentifier:[Command commandWithName:@ #name \
argumentsTypes:nargs \
block:block_]]; \
}); \
}
@interface Command: Identifier
@property (readonly, nonatomic) int argumentsTypes;
+ (instancetype)commandWithName:(OFString *)name
argumentsTypes:(int)argumentsTypes
block:(id)block;
- (instancetype)initWithName:(OFString *)name OF_UNAVAILABLE;
- (instancetype)initWithName:(OFString *)name
argumentsTypes:(int)argumentsTypes
block:(id)block;
- (int)callWithArguments:(OFArray<OFString *> *)arguments isDown:(bool)isDown;
@end
OF_ASSUME_NONNULL_END
|