mirror of
https://github.com/dsward2/macSVG.git
synced 2026-09-28 12:02:11 +02:00
81 lines
2.4 KiB
Objective-C
Executable File
81 lines
2.4 KiB
Objective-C
Executable File
#import "iPhoneHTTPServerAppDelegate.h"
|
|
#import "iPhoneHTTPServerViewController.h"
|
|
#import "HTTPServer.h"
|
|
#import "DDLog.h"
|
|
#import "DDTTYLogger.h"
|
|
|
|
// Log levels: off, error, warn, info, verbose
|
|
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
|
|
|
|
|
|
@implementation iPhoneHTTPServerAppDelegate
|
|
|
|
@synthesize window;
|
|
@synthesize viewController;
|
|
|
|
- (void)startServer
|
|
{
|
|
// Start the server (and check for problems)
|
|
|
|
NSError *error;
|
|
if([httpServer start:&error])
|
|
{
|
|
DDLogInfo(@"Started HTTP Server on port %hu", [httpServer listeningPort]);
|
|
}
|
|
else
|
|
{
|
|
DDLogError(@"Error starting HTTP Server: %@", error);
|
|
}
|
|
}
|
|
|
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
|
{
|
|
// Configure our logging framework.
|
|
// To keep things simple and fast, we're just going to log to the Xcode console.
|
|
[DDLog addLogger:[DDTTYLogger sharedInstance]];
|
|
|
|
// Create server using our custom MyHTTPServer class
|
|
httpServer = [[HTTPServer alloc] init];
|
|
|
|
// Tell the server to broadcast its presence via Bonjour.
|
|
// This allows browsers such as Safari to automatically discover our service.
|
|
[httpServer setType:@"_http._tcp."];
|
|
|
|
// Normally there's no need to run our server on any specific port.
|
|
// Technologies like Bonjour allow clients to dynamically discover the server's port at runtime.
|
|
// However, for easy testing you may want force a certain port so you can just hit the refresh button.
|
|
// [httpServer setPort:12345];
|
|
|
|
// Serve files from our embedded Web folder
|
|
NSString *webPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Web"];
|
|
DDLogInfo(@"Setting document root: %@", webPath);
|
|
|
|
[httpServer setDocumentRoot:webPath];
|
|
|
|
[self startServer];
|
|
|
|
// Add the view controller's view to the window and display.
|
|
[window addSubview:viewController.view];
|
|
[window makeKeyAndVisible];
|
|
|
|
return YES;
|
|
}
|
|
|
|
- (void)applicationWillEnterForeground:(UIApplication *)application
|
|
{
|
|
[self startServer];
|
|
}
|
|
|
|
- (void)applicationDidEnterBackground:(UIApplication *)application
|
|
{
|
|
// There is no public(allowed in AppStore) method for iOS to run continiously in the background for our purposes (serving HTTP).
|
|
// So, we stop the server when the app is paused (if a users exits from the app or locks a device) and
|
|
// restart the server when the app is resumed (based on this document: http://developer.apple.com/library/ios/#technotes/tn2277/_index.html )
|
|
|
|
[httpServer stop];
|
|
}
|
|
|
|
|
|
|
|
@end
|