1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4
5#import <objc/Ice.h>
6#import <proxy/TestI.h>
7#import <TestCommon.h>
8
9static int
10run(id<ICECommunicator> communicator)
11{
12    [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010:udp"];
13    id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"];
14    [adapter add:[TestProxyMyDerivedClassI myDerivedClass]
15        identity:[ICEUtil stringToIdentity:@"test"]];
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 proxyServer
26#endif
27
28int
29main(int argc, char* argv[])
30{
31#ifdef ICE_STATIC_LIBS
32    ICEregisterIceSSL(YES);
33    ICEregisterIceWS(YES);
34    ICEregisterIceUDP(YES);
35#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
36    ICEregisterIceIAP(YES);
37#endif
38#endif
39
40    int status;
41    @autoreleasepool
42    {
43        id<ICECommunicator> communicator = nil;
44
45        @try
46        {
47            ICEInitializationData* initData = [ICEInitializationData initializationData];
48            initData.properties = defaultServerProperties(&argc, argv);
49            [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"];
50#if TARGET_OS_IPHONE
51            initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys:
52                                      @"TestProxy", @"::Test",
53                                      nil];
54#endif
55            communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData];
56            status = run(communicator);
57        }
58        @catch(ICEException* ex)
59        {
60            tprintf("%@\n", ex);
61            status = EXIT_FAILURE;
62        }
63
64        if(communicator)
65        {
66            [communicator destroy];
67        }
68    }
69    return status;
70}
71