|
@@ -26,9 +26,12 @@
|
|
|
*/
|
|
|
|
|
|
#import "GCDWebServer.h"
|
|
|
+
|
|
|
#import "GCDWebServerDataRequest.h"
|
|
|
#import "GCDWebServerURLEncodedFormRequest.h"
|
|
|
+
|
|
|
#import "GCDWebServerDataResponse.h"
|
|
|
+#import "GCDWebServerStreamingResponse.h"
|
|
|
|
|
|
#import "GCDWebDAVServer.h"
|
|
|
|
|
@@ -36,7 +39,7 @@
|
|
|
|
|
|
int main(int argc, const char* argv[]) {
|
|
|
BOOL success = NO;
|
|
|
- int mode = (argc == 2 ? MIN(MAX(atoi(argv[1]), 0), 4) : 0);
|
|
|
+ int mode = (argc == 2 ? MIN(MAX(atoi(argv[1]), 0), 5) : 0);
|
|
|
@autoreleasepool {
|
|
|
GCDWebServer* webServer = nil;
|
|
|
switch (mode) {
|
|
@@ -103,6 +106,29 @@ int main(int argc, const char* argv[]) {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ case 5: {
|
|
|
+ webServer = [[GCDWebServer alloc] init];
|
|
|
+ [webServer addHandlerForMethod:@"GET"
|
|
|
+ path:@"/"
|
|
|
+ requestClass:[GCDWebServerRequest class]
|
|
|
+ processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {
|
|
|
+
|
|
|
+ __block int countDown = 10;
|
|
|
+ return [GCDWebServerStreamingResponse responseWithContentType:@"text/plain" streamBlock:^NSData *(NSError** error) {
|
|
|
+
|
|
|
+ usleep(100 * 1000);
|
|
|
+ if (countDown) {
|
|
|
+ return [[NSString stringWithFormat:@"%i\n", countDown--] dataUsingEncoding:NSUTF8StringEncoding];
|
|
|
+ } else {
|
|
|
+ return [NSData data];
|
|
|
+ }
|
|
|
+
|
|
|
+ }];
|
|
|
+
|
|
|
+ }];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
success = [webServer runWithPort:8080];
|
|
|
#if !__has_feature(objc_arc)
|