diff --git a/Mac/main.m b/Mac/main.m index 40a583b..59d2d7d 100644 --- a/Mac/main.m +++ b/Mac/main.m @@ -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)