Skip to content

Commit 284ebac

Browse files
author
Ronan Collobert
committed
First import of Torch, Objective-C version. Basic stuff.
git-archimport-id: [email protected]/torch--devel--1.0--base-0
0 parents  commit 284ebac

18 files changed

+1651
-0
lines changed

base/T4Allocator.h

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#import "T4General.h"
2+
3+
@interface T4Allocator : NSObject
4+
{
5+
NSMutableArray *objects;
6+
}
7+
8+
-init;
9+
-(void)keepObject:(NSObject*)anObject;
10+
-(void)retainAndKeepObject:(NSObject*)anObject;
11+
-(void)freeObject:(NSObject*)anObject;
12+
-(void)dealloc;
13+
14+
+(void*)sysAlloc: (int)size;
15+
+(void)sysFree: (void*)ptr;
16+
17+
@end

base/T4Allocator.m

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
#import "T4Allocator.h"
2+
3+
@implementation T4Allocator
4+
5+
-init
6+
{
7+
if( (self = [super init]) )
8+
objects = nil;
9+
10+
return self;
11+
}
12+
13+
-(void)keepObject:(NSObject*)anObject
14+
{
15+
int index;
16+
17+
if(!anObject)
18+
return;
19+
20+
if(!objects)
21+
objects = [[NSMutableArray alloc] init];
22+
23+
index = [objects indexOfObjectIdenticalTo: anObject];
24+
25+
if(index == NSNotFound)
26+
[objects addObject: anObject];
27+
}
28+
29+
-(void)retainAndKeepObject:(NSObject*)anObject
30+
{
31+
int index;
32+
33+
if(!objects)
34+
objects = [[NSMutableArray alloc] init];
35+
36+
index = [objects indexOfObjectIdenticalTo: anObject];
37+
38+
if(index == NSNotFound)
39+
{
40+
[objects addObject: anObject];
41+
[anObject retain];
42+
}
43+
}
44+
45+
-(void)freeObject:(NSObject*)anObject
46+
{
47+
int index;
48+
49+
if(!anObject)
50+
return;
51+
52+
index = [objects indexOfObjectIdenticalTo: anObject];
53+
54+
if(index == NSNotFound)
55+
T4Error(@"Allocator: cannot free an object which is not mine!");
56+
else
57+
{
58+
NSObject *object = [objects objectAtIndex: index];
59+
[objects removeObjectAtIndex: index];
60+
[object release];
61+
}
62+
}
63+
64+
-(void)dealloc
65+
{
66+
int i;
67+
int nObjects = [objects count];
68+
69+
for(i = nObjects-1; i >= 0; i--)
70+
{
71+
NSObject *object = [objects objectAtIndex: i];
72+
[objects removeObjectAtIndex: i];
73+
[object release];
74+
}
75+
[objects release];
76+
[super dealloc];
77+
}
78+
79+
+(void*)sysAlloc: (int)size
80+
{
81+
void *ptr;
82+
83+
if(size <= 0)
84+
return(nil);
85+
86+
ptr = malloc(size);
87+
88+
if(!ptr)
89+
T4Error(@"Allocator: not enough memory. Buy new ram!!!");
90+
91+
return(ptr);
92+
}
93+
94+
+(void)sysFree: (void*)ptr
95+
{
96+
if(ptr)
97+
free(ptr);
98+
}
99+
100+
@end

base/T4CommandLine.h

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#import "T4Object.h"
2+
#import "T4CommandLineOption.h"
3+
4+
@interface T4CommandLine : T4Object
5+
{
6+
NSMutableArray *cmdArguments;
7+
NSString *processName;
8+
9+
NSString *genericHelp;
10+
NSMutableDictionary *arguments;
11+
NSMutableDictionary *options;
12+
NSMutableArray *switches;
13+
NSString *currentSwitch;
14+
}
15+
16+
-initWithArgv: (char**)argv argc: (int)argc;
17+
-initWithGenericHelp: (NSString*)aGenericHelp argv: (char**)argv argc: (int)argc;
18+
19+
-(int)read;
20+
-(void)printHelp;
21+
22+
-(void)addText: (NSString*)aText;
23+
-(void)addMasterSwitch: (NSString*)aSwitch;
24+
25+
-(void)addCmdOption: (T4CommandLineOption*)option;
26+
-(void)addIntCmdOption: (NSString*)aName address: (int*)anAddress default: (int)aDefault help: (NSString*)aHelp;
27+
-(void)addRealCmdOption: (NSString*)aName address: (real*)anAddress default: (real)aDefault help: (NSString*)aHelp;
28+
-(void)addBoolCmdOption: (NSString*)aName address: (BOOL*)anAddress default: (BOOL)aDefault help: (NSString*)aHelp;
29+
-(void)addStringCmdOption: (NSString*)aName address: (NSMutableString*)anAddress default: (NSString*)aDefault help: (NSString*)aHelp;
30+
31+
-(void)addCmdArgument: (T4CommandLineOption*)argument;
32+
-(void)addIntCmdArgument: (NSString*)aName address: (int*)anAddress help: (NSString*)aHelp;
33+
-(void)addRealCmdArgument: (NSString*)aName address: (real*)anAddress help: (NSString*)aHelp;
34+
//-(void)addBoolCmdArgument: (NSString*)aName address: (BOOL*)anAddress help: (NSString*)aHelp; peut pas exister!!!
35+
-(void)addStringCmdArgument: (NSString*)aName address: (NSMutableString*)anAddress help: (NSString*)aHelp;
36+
37+
@end

0 commit comments

Comments
 (0)