1// 2// Copyright (c) ZeroC, Inc. All rights reserved. 3// 4 5#import <objc/Ice.h> 6#import <optional/TestI.h> 7#import <TestCommon.h> 8 9static int 10run(id<ICECommunicator> communicator) 11{ 12 [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; 13 id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; 14 ICEObject* object = [InitialI initial]; 15 [adapter add:object identity:[ICEUtil stringToIdentity:@"initial"]]; 16 [adapter activate]; 17 18 serverReady(communicator); 19 20 [communicator waitForShutdown]; 21 return EXIT_SUCCESS; 22} 23 24#if TARGET_OS_IPHONE 25# define main optionalServer 26#endif 27 28int 29main(int argc, char* argv[]) 30{ 31#ifdef ICE_STATIC_LIBS 32 ICEregisterIceSSL(YES); 33 ICEregisterIceWS(YES); 34#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR 35 ICEregisterIceIAP(YES); 36#endif 37#endif 38 39 int status; 40 @autoreleasepool 41 { 42 id<ICECommunicator> communicator = nil; 43 @try 44 { 45 ICEInitializationData* initData = [ICEInitializationData initializationData]; 46 initData.properties = defaultServerProperties(&argc, argv); 47#if TARGET_OS_IPHONE 48 initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: 49 @"TestOptional", @"::Test", 50 nil]; 51#endif 52 communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; 53 status = run(communicator); 54 } 55 @catch(ICEException* ex) 56 { 57 tprintf("%@\n", ex); 58 status = EXIT_FAILURE; 59 } 60 61 if(communicator) 62 { 63 [communicator destroy]; 64 } 65 } 66 return status; 67} 68