Skip to content

Commit 3e2cada

Browse files
committed
Implemented and tested readLineBackwards function.
+ Extended NSMutableData class with prepend: function. + Added switch for forwards/backwards search to user interface. + Added project description to main file. + Added comments, removed debugging commands. + Added doxymentation script. + Added further tests to test target.
1 parent e1c1194 commit 3e2cada

File tree

11 files changed

+356
-105
lines changed

11 files changed

+356
-105
lines changed

DirectoryReader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
@interface DirectoryReader : NSObject {
1313

14-
NSString* m_path;
14+
NSString* m_path; /**< File path. */
1515
}
1616

1717
- (BOOL)readDirectory:(NSArray**)files;

English.lproj/MainMenu.xib

Lines changed: 92 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,7 +1317,7 @@
13171317
<object class="NSWindowTemplate" id="972006081">
13181318
<int key="NSWindowStyleMask">15</int>
13191319
<int key="NSWindowBacking">2</int>
1320-
<string key="NSWindowRect">{{781, 326}, {499, 676}}</string>
1320+
<string key="NSWindowRect">{{781, 842}, {499, 160}}</string>
13211321
<int key="NSWTFlags">1954021376</int>
13221322
<string key="NSWindowTitle">LineReader</string>
13231323
<string key="NSWindowClass">NSWindow</string>
@@ -1331,7 +1331,7 @@
13311331
<object class="NSTextField" id="231717339">
13321332
<reference key="NSNextResponder" ref="439893737"/>
13331333
<int key="NSvFlags">268</int>
1334-
<string key="NSFrame">{{20, 606}, {459, 22}}</string>
1334+
<string key="NSFrame">{{20, 90}, {459, 22}}</string>
13351335
<reference key="NSSuperview" ref="439893737"/>
13361336
<bool key="NSEnabled">YES</bool>
13371337
<object class="NSTextFieldCell" key="NSCell" id="355415411">
@@ -1368,7 +1368,7 @@
13681368
<object class="NSTextField" id="1045706751">
13691369
<reference key="NSNextResponder" ref="439893737"/>
13701370
<int key="NSvFlags">268</int>
1371-
<string key="NSFrame">{{17, 636}, {108, 17}}</string>
1371+
<string key="NSFrame">{{17, 120}, {108, 17}}</string>
13721372
<reference key="NSSuperview" ref="439893737"/>
13731373
<bool key="NSEnabled">YES</bool>
13741374
<object class="NSTextFieldCell" key="NSCell" id="183607361">
@@ -1397,7 +1397,7 @@
13971397
<object class="NSStepper" id="1013929455">
13981398
<reference key="NSNextResponder" ref="439893737"/>
13991399
<int key="NSvFlags">268</int>
1400-
<string key="NSFrame">{{463, 548}, {19, 27}}</string>
1400+
<string key="NSFrame">{{463, 51}, {19, 27}}</string>
14011401
<reference key="NSSuperview" ref="439893737"/>
14021402
<bool key="NSEnabled">YES</bool>
14031403
<object class="NSStepperCell" key="NSCell" id="372307018">
@@ -1412,7 +1412,7 @@
14121412
<object class="NSTextField" id="293172749">
14131413
<reference key="NSNextResponder" ref="439893737"/>
14141414
<int key="NSvFlags">268</int>
1415-
<string key="NSFrame">{{17, 553}, {444, 17}}</string>
1415+
<string key="NSFrame">{{17, 56}, {444, 17}}</string>
14161416
<reference key="NSSuperview" ref="439893737"/>
14171417
<bool key="NSEnabled">YES</bool>
14181418
<object class="NSTextFieldCell" key="NSCell" id="844018831">
@@ -1429,21 +1429,48 @@
14291429
<object class="NSTextField" id="449809172">
14301430
<reference key="NSNextResponder" ref="439893737"/>
14311431
<int key="NSvFlags">268</int>
1432-
<string key="NSFrame">{{17, 581}, {465, 17}}</string>
1432+
<string key="NSFrame">{{17, 56}, {368, 17}}</string>
14331433
<reference key="NSSuperview" ref="439893737"/>
14341434
<bool key="NSEnabled">YES</bool>
14351435
<object class="NSTextFieldCell" key="NSCell" id="630023291">
14361436
<int key="NSCellFlags">68288064</int>
14371437
<int key="NSCellFlags2">272630784</int>
1438-
<string key="NSContents">Numbers of lines per file:</string>
1438+
<string key="NSContents">Maximum numbers of lines to be read from each file:</string>
14391439
<reference key="NSSupport" ref="953681415"/>
14401440
<reference key="NSControlView" ref="449809172"/>
14411441
<reference key="NSBackgroundColor" ref="685989597"/>
14421442
<reference key="NSTextColor" ref="249716613"/>
14431443
</object>
14441444
</object>
1445+
<object class="NSButton" id="332168038">
1446+
<reference key="NSNextResponder" ref="439893737"/>
1447+
<int key="NSvFlags">268</int>
1448+
<string key="NSFrame">{{18, 18}, {200, 18}}</string>
1449+
<reference key="NSSuperview" ref="439893737"/>
1450+
<bool key="NSEnabled">YES</bool>
1451+
<object class="NSButtonCell" key="NSCell" id="64997876">
1452+
<int key="NSCellFlags">-2080244224</int>
1453+
<int key="NSCellFlags2">0</int>
1454+
<string key="NSContents">Read file content backwards</string>
1455+
<reference key="NSSupport" ref="953681415"/>
1456+
<reference key="NSControlView" ref="332168038"/>
1457+
<int key="NSButtonFlags">1211912703</int>
1458+
<int key="NSButtonFlags2">2</int>
1459+
<object class="NSCustomResource" key="NSNormalImage">
1460+
<string key="NSClassName">NSImage</string>
1461+
<string key="NSResourceName">NSSwitch</string>
1462+
</object>
1463+
<object class="NSButtonImageSource" key="NSAlternateImage">
1464+
<string key="NSImageName">NSSwitch</string>
1465+
</object>
1466+
<string key="NSAlternateContents"/>
1467+
<string key="NSKeyEquivalent"/>
1468+
<int key="NSPeriodicDelay">200</int>
1469+
<int key="NSPeriodicInterval">25</int>
1470+
</object>
1471+
</object>
14451472
</object>
1446-
<string key="NSFrameSize">{499, 676}</string>
1473+
<string key="NSFrameSize">{499, 160}</string>
14471474
<reference key="NSSuperview"/>
14481475
</object>
14491476
<string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string>
@@ -2195,6 +2222,22 @@
21952222
</object>
21962223
<int key="connectionID">559</int>
21972224
</object>
2225+
<object class="IBConnectionRecord">
2226+
<object class="IBBindingConnection" key="connection">
2227+
<string key="label">value: searchBackwards</string>
2228+
<reference key="source" ref="332168038"/>
2229+
<reference key="destination" ref="976324537"/>
2230+
<object class="NSNibBindingConnector" key="connector">
2231+
<reference key="NSSource" ref="332168038"/>
2232+
<reference key="NSDestination" ref="976324537"/>
2233+
<string key="NSLabel">value: searchBackwards</string>
2234+
<string key="NSBinding">value</string>
2235+
<string key="NSKeyPath">searchBackwards</string>
2236+
<int key="NSNibBindingConnectorVersion">2</int>
2237+
</object>
2238+
</object>
2239+
<int key="connectionID">566</int>
2240+
</object>
21982241
</object>
21992242
<object class="IBMutableOrderedSet" key="objectRecords">
22002243
<object class="NSArray" key="orderedObjects">
@@ -2752,9 +2795,10 @@
27522795
<bool key="EncodedWithXMLCoder">YES</bool>
27532796
<reference ref="1045706751"/>
27542797
<reference ref="231717339"/>
2755-
<reference ref="449809172"/>
27562798
<reference ref="1013929455"/>
27572799
<reference ref="293172749"/>
2800+
<reference ref="449809172"/>
2801+
<reference ref="332168038"/>
27582802
</object>
27592803
<reference key="parent" ref="972006081"/>
27602804
</object>
@@ -3314,6 +3358,20 @@
33143358
<reference key="object" ref="630023291"/>
33153359
<reference key="parent" ref="449809172"/>
33163360
</object>
3361+
<object class="IBObjectRecord">
3362+
<int key="objectID">564</int>
3363+
<reference key="object" ref="332168038"/>
3364+
<object class="NSMutableArray" key="children">
3365+
<bool key="EncodedWithXMLCoder">YES</bool>
3366+
<reference ref="64997876"/>
3367+
</object>
3368+
<reference key="parent" ref="439893737"/>
3369+
</object>
3370+
<object class="IBObjectRecord">
3371+
<int key="objectID">565</int>
3372+
<reference key="object" ref="64997876"/>
3373+
<reference key="parent" ref="332168038"/>
3374+
</object>
33173375
</object>
33183376
</object>
33193377
<object class="NSMutableDictionary" key="flattenedProperties">
@@ -3549,6 +3607,8 @@
35493607
<string>554.IBPluginDependency</string>
35503608
<string>56.IBPluginDependency</string>
35513609
<string>56.ImportedFromIB2</string>
3610+
<string>564.IBPluginDependency</string>
3611+
<string>565.IBPluginDependency</string>
35523612
<string>57.IBEditorWindowLastContentRect</string>
35533613
<string>57.IBPluginDependency</string>
35543614
<string>57.ImportedFromIB2</string>
@@ -3713,9 +3773,9 @@
37133773
<integer value="1"/>
37143774
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
37153775
<integer value="1"/>
3716-
<string>{{403, 304}, {499, 676}}</string>
3776+
<string>{{403, 820}, {499, 160}}</string>
37173777
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
3718-
<string>{{403, 304}, {499, 676}}</string>
3778+
<string>{{403, 820}, {499, 160}}</string>
37193779
<integer value="1"/>
37203780
<string>{{33, 99}, {480, 360}}</string>
37213781
<string>{3.40282e+38, 3.40282e+38}</string>
@@ -3813,6 +3873,8 @@
38133873
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
38143874
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
38153875
<integer value="1"/>
3876+
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
3877+
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
38163878
<string>{{286, 129}, {275, 183}}</string>
38173879
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
38183880
<integer value="1"/>
@@ -3863,7 +3925,7 @@
38633925
</object>
38643926
</object>
38653927
<nil key="sourceID"/>
3866-
<int key="maxID">559</int>
3928+
<int key="maxID">566</int>
38673929
</object>
38683930
<object class="IBClassDescriber" key="IBDocument.Classes">
38693931
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -3963,6 +4025,22 @@
39634025
<string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
39644026
</object>
39654027
</object>
4028+
<object class="IBPartialClassDescription">
4029+
<string key="className">NSButton</string>
4030+
<string key="superclassName">NSControl</string>
4031+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
4032+
<string key="majorKey">IBFrameworkSource</string>
4033+
<string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
4034+
</object>
4035+
</object>
4036+
<object class="IBPartialClassDescription">
4037+
<string key="className">NSButtonCell</string>
4038+
<string key="superclassName">NSActionCell</string>
4039+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
4040+
<string key="majorKey">IBFrameworkSource</string>
4041+
<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
4042+
</object>
4043+
</object>
39664044
<object class="IBPartialClassDescription">
39674045
<string key="className">NSCell</string>
39684046
<string key="superclassName">NSObject</string>
@@ -4463,11 +4541,13 @@
44634541
<bool key="EncodedWithXMLCoder">YES</bool>
44644542
<string>NSMenuCheckmark</string>
44654543
<string>NSMenuMixedState</string>
4544+
<string>NSSwitch</string>
44664545
</object>
44674546
<object class="NSMutableArray" key="dict.values">
44684547
<bool key="EncodedWithXMLCoder">YES</bool>
44694548
<string>{9, 8}</string>
44704549
<string>{7, 2}</string>
4550+
<string>{15, 15}</string>
44714551
</object>
44724552
</object>
44734553
</data>

FileReader.h

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,16 @@
1313

1414
@interface FileReader : NSObject {
1515

16-
NSString* m_filePath;
17-
NSFileHandle* m_fileHandle;
18-
unsigned long long m_currentOffset;
19-
unsigned long long m_totalFileLength;
20-
NSString* m_lineDelimiter;
21-
NSUInteger m_chunkSize;
16+
NSString* m_filePath; /**< File path. */
17+
NSFileHandle* m_fileHandle; /**< File handle. */
18+
unsigned long long m_currentOffset; /**< Current offset is needed for forwards reading. */
19+
unsigned long long m_currentInset; /**< Current inset is needed for backwards reading. */
20+
NSRange m_prevDelimiterRange; /**< Position and length of the last delimiter. */
21+
unsigned long long m_totalFileLength; /**< Total number of bytes in file. */
22+
NSString* m_lineDelimiter; /**< Character for line break or page break. */
23+
NSUInteger m_chunkSize; /**< Standard block size. */
2224
}
2325

24-
@property (nonatomic, copy) NSString* lineDelimiter;
25-
@property (nonatomic) NSUInteger chunkSize;
26-
2726
- (id)initWithFilePath:(NSString*)filePath;
2827
- (NSString*)readLine;
2928
- (NSString*)readLineBackwards;

0 commit comments

Comments
 (0)