diff options
Diffstat (limited to 'objective-c')
395 files changed, 11394 insertions, 8739 deletions
diff --git a/objective-c/.gitignore b/objective-c/.gitignore new file mode 100644 index 00000000000..a65b41774ad --- /dev/null +++ b/objective-c/.gitignore @@ -0,0 +1 @@ +lib diff --git a/objective-c/BuildInstructions.md b/objective-c/BuildInstructions.md index ef1d4514722..f5c17d5224b 100644 --- a/objective-c/BuildInstructions.md +++ b/objective-c/BuildInstructions.md @@ -7,30 +7,45 @@ code on OS X. If you prefer, you can install a [Homebrew][1] package instead. ### Operating Systems and Compilers -Ice for Objective-C is currently only supported on OS X, and was extensively -tested using the operating system and compiler versions listed for our -[supported platforms][2]. +Ice for Objective-C is currently only supported on OS X and iOS, and was +extensively tested using the operating system and compiler versions listed for +our [supported platforms][2]. -### Ice Development Kit +## Building Ice for Objective-C -You will need the Ice development kit for C++, which you can install as a binary -distribution or compile from source yourself. +The build of Ice for Objective-C requires to first build Ice for C++ in the +`cpp` subdirectory. -## Building Ice for Objective-C +Edit `config/Make.rules` to establish your build configuration. The comments in +the file provide more information. Change to the Ice for Objective-C source subdirectory: $ cd objective-c -If you have not built Ice for C++ in the `cpp` subdirectory, set `ICE_HOME` to -the directory of your Ice for C++ installation. For example: +Run `make` to build the Ice Objective-C libraries. - $ export ICE_HOME=/opt/Ice +### Build configurations and platforms -Edit `config/Make.rules` to establish your build configuration. The comments in -the file provide more information. +The Objective-C source tree supports multiple build configurations and +platforms. To see the supported configurations and platforms: -Run `make` to build the Ice Objective-C libraries. + make print V=supported-configs + make print V=supported-platforms + +To build all the supported configurations and platforms: + + make CONFIGS=all PLATFORMS=all + +### Ice Xcode SDK + +The build system supports building Xcode SDKs for Ice. These SDKs allow to +easily develop Ice applications with Xcode. To build Xcode SDKs, use the +`xcodesdk` configurations: + + make CONFIGS=xcodesdk # Build the Objective-C mapping Xcode SDK + +The Xcode SDKs are built into `ice/IceSDK`. ## Installing an Objective-C Source Build @@ -55,5 +70,5 @@ This command is equivalent to: If everything worked out, you should see lots of `ok` messages. In case of a failure, the tests abort with `failed`. -[1]: https://doc.zeroc.com/display/Ice36/Using+the+OS+X+Binary+Distribution -[2]: https://zeroc.com/platforms_3_6_0.html +[1]: https://doc.zeroc.com/display/Ice37/Using+the+OS+X+Binary+Distribution +[2]: https://doc.zeroc.com/display/Ice37/Supported+Platforms+for+Ice+3.7.0 diff --git a/objective-c/Makefile b/objective-c/Makefile index 52b5405e38c..bbfb2d51555 100644 --- a/objective-c/Makefile +++ b/objective-c/Makefile @@ -7,47 +7,30 @@ # # ********************************************************************** -top_srcdir = . +top_srcdir := .. +lang_srcdir := $(top_srcdir)/$(notdir $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))) include $(top_srcdir)/config/Make.rules +include $(lang_srcdir)/config/Make.rules -SUBDIRS = src include - -ifneq ($(MAKECMDGOALS),install) - SUBDIRS := $(SUBDIRS) test -endif - -INSTALL_SUBDIRS = $(install_libdir)$(cpp11libdirsuffix) $(install_includedir) - -install:: install-common - @for subdir in $(INSTALL_SUBDIRS); \ - do \ - if test ! -d $(DESTDIR)$$subdir ; \ - then \ - echo "Creating $(DESTDIR)$$subdir..." ; \ - mkdir -p $(DESTDIR)$$subdir ; \ - chmod a+rx $(DESTDIR)$$subdir ; \ - fi ; \ - done -ifeq ($(create_runpath_symlink),yes) - @if test -h $(embedded_runpath_prefix) ; \ - then \ - if `\rm -f $(embedded_runpath_prefix) 2>/dev/null`; \ - then echo "Removed symbolic link $(embedded_runpath_prefix)"; fi \ - fi - @if ! test -d $(embedded_runpath_prefix) ; \ - then \ - if `ln -s $(prefix) $(embedded_runpath_prefix) 2>/dev/null`; \ - then echo "Created symbolic link $(embedded_runpath_prefix) --> $(prefix)"; fi \ - fi -endif +# +# Load C++ dependencies +# +$(eval $(call load-translator-dependencies,$(top_srcdir)/cpp/src/slice2objc)) +$(eval $(call load-dependencies,$(addprefix $(top_srcdir)/cpp/src/,Ice IceSSL))) -$(EVERYTHING):: - @for subdir in $(SUBDIRS); \ - do \ - echo "making $@ in $$subdir"; \ - ( cd $$subdir && $(MAKE) $@ ) || exit 1; \ - done +# +# Load source projects +# +projects := +include $(shell find $(lang_srcdir)/src -name Makefile.mk) +$(call make-projects,$(projects),make-objc-src-project) -test:: - @python $(top_srcdir)/allTests.py +# +# Now, create and load test projects. +# +projects := +tests := $(call tests-without-project-makefile,m) +include $(shell find $(lang_srcdir)/test -name Makefile.mk) +$(foreach t,$(tests),$(eval $(call create-objc-test-project,$(t)))) +$(call make-projects,$(projects),make-objc-test-project) diff --git a/objective-c/allTests.py b/objective-c/allTests.py index dbe2a4f34d3..18df973cab0 100755 --- a/objective-c/allTests.py +++ b/objective-c/allTests.py @@ -8,55 +8,9 @@ # # ********************************************************************** -import os, sys, re, getopt +import os, sys +sys.path.append(os.path.join(os.path.dirname(__file__), "..", "scripts")) -path = [ ".", "..", "../..", "../../..", "../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") +from Util import runTestsWithPath -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -# -# List of all basic tests. -# -tests = [ - ("Slice/keyword", []), - ("Ice/proxy", ["core"]), - ("Ice/ami", ["core", "nocompress"]), - ("Ice/operations", ["core"]), - ("Ice/exceptions", ["core"]), - ("Ice/inheritance", ["core"]), - ("Ice/invoke", ["core"]), - ("Ice/metrics", ["core", "nows", "nossl", "noipv6", "nocompress"]), - ("Ice/facets", ["core"]), - ("Ice/objects", ["core"]), - ("Ice/optional", ["core"]), - ("Ice/interceptor", ["core"]), - ("Ice/dispatcher", ["core"]), - ("Ice/defaultServant", ["core"]), - ("Ice/servantLocator", ["core"]), - ("Ice/defaultValue", ["core"]), - ("Ice/binding", ["core"]), - ("Ice/stream", ["core"]), - ("Ice/hold", ["core"]), - ("Ice/faultTolerance", ["core"]), - ("Ice/location", ["core"]), - ("Ice/adapterDeactivation", ["core"]), - ("Ice/slicing/exceptions", ["core"]), - ("Ice/slicing/objects", ["core"]), - ("Ice/retry", ["core"]), - ("Ice/timeout", ["core", "nocompress"]), - ("Ice/hash", ["core"]), - ("Ice/info", ["core", "noipv6", "nocompress"]), - ("Ice/enums", ["once"]), - ("Ice/services", ["once"]), - ("Ice/acm", ["core"]), - ] - -if __name__ == "__main__": - TestUtil.run(tests) +runTestsWithPath(__file__)
\ No newline at end of file diff --git a/objective-c/config/Make.rules b/objective-c/config/Make.rules index 394a11a1700..ba76d2900ca 100644 --- a/objective-c/config/Make.rules +++ b/objective-c/config/Make.rules @@ -7,169 +7,105 @@ # # ********************************************************************** -# -# Select an installation base directory. The directory will be created -# if it does not exist. -# -prefix ?= /opt/Ice-$(VERSION) - -# -# Define OPTIMIZE as yes if you want to build with -# optimization. Otherwise Ice is build with debug information. -# -#OPTIMIZE = yes - -# -# The build architectures for gcc/llvm based builds. The format of -# these build flags are OS dependent. For example, under OS X to -# build binaries which support both i386 and x86_64 you would use -# "-arch i386 -arch x86_64". The default is OS version dependent. Be -# aware that this value may conflict with the setting of LP64 above. -# -#OBJCARCHFLAGS = -arch i386 -arch x86_64 - # ---------------------------------------------------------------------- # Don't change anything below this line! # ---------------------------------------------------------------------- # -# Common definitions +# Objective-C mapping configurations # -ice_language = objective-c -slice_translator = slice2objc +supported-configs = shared static arc-shared arc-static -ifeq ($(shell test -f $(top_srcdir)/config/Make.common.rules && echo 0),0) - include $(top_srcdir)/config/Make.common.rules -else - include $(top_srcdir)/../config/Make.common.rules +ifeq ($(os),Darwin) +include $(lang_srcdir)/config/Make.xcodesdk.rules endif -bindir = $(top_srcdir)/bin -ifdef ice_src_dist - libdir = $(top_srcdir)/lib - includedir = $(top_srcdir)/include -else - libdir = $(ice_dir)/$(libsubdir) - testlibdir = $(top_srcdir)/lib - includedir = $(ice_dir)/include +ifneq ($(filter arc-%,$(CONFIGS)),) +# Make sure that the non-ARC configuration is also enabled +override CONFIGS := $(call unique,$(CONFIGS) $(patsubst arc-%,%,$(CONFIGS))) endif -headerdir = $(top_srcdir)/include - -install_includedir := $(prefix)/include/objc -install_libdir := $(prefix)/$(libsubdir) -install_bindir := $(prefix)/$(binsubdir) # -# Platform specific definitions +# Build only few components with the static configuration (libraries) # -include $(top_srcdir)/config/Make.rules.$(UNAME) - -ICECPPFLAGS = -I$(slicedir) -SLICE2OBJCFLAGS = $(ICECPPFLAGS) -FLEXFLAGS = -BISONFLAGS = -dvt -CPPFLAGS += -I$(includedir) -LDFLAGS = $(OBJCFLAGS) $(ARCFLAGS) -L$(libdir) -ifndef ice_src_dist - LDFLAGS += -L$(testlibdir) -endif +static_components = Ice IceSSL IceObjC IceSSLObjC Glacier2ObjC IceStormObjC IceGridObjC +static_projects = test/% +static_ldflags += $(if $(filter program,$($1_target)),-ObjC) -ifdef ice_src_dist - ifeq ($(ice_cpp_dir), $(ice_dir)/cpp) - SLICE2OBJC = $(ice_cpp_dir)/bin/slice2objc - else - SLICE2OBJC = $(ice_cpp_dir)/$(binsubdir)/slice2objc - endif -else - SLICE2OBJC = $(ice_dir)/$(binsubdir)/slice2objc -endif +# +# Build only the tests with the ARC configuration +# +arc_projects = test/Slice/% test/Ice/% -# This cannot use .cpp:.o as we have multiple types of source files. +# +# Define the arc configuration to build the tests with ARC support. +# +# Note that we clear the dependency variable to not include the "arc" +# sub-configuration into the dependency name (for example, if "client" +# depends on "IceObjC", client[osx-arc-shared] will still depend on +# Ice[osx-shared] not Ice[osx-arc-shared]). This is necessary since +# we don't have an ARC specific build of the libraries. +# +arc_cppflags := -fobjc-arc -fobjc-arc-exceptions +arc_dependency := -EVERYTHING = all clean install -EVERYTHING_EXCEPT_ALL = clean install +# +# Define slice2objc target extension since it can't be figured out +# automatically from the slice2objc translator name. +# +slice2objc_targetext = m -.SUFFIXES: -.SUFFIXES: .mm .m .o .cpp .c +# Rule for installing headers file from include/objc directory +ifeq ($(filter all obj%c,$(ICE_BIN_DIST)),) +$(DESTDIR)$(install_includedir)/objc: + $(Q)$(MKDIR) -p $(DESTDIR)$(install_includedir)/objc -ifneq ($(SLICE_OBJS),) --include $(addprefix .depend/, $(SLICE_OBJS:.o=.ice.d)) +$(DESTDIR)$(install_includedir)/objc/%.h: include/objc/%.h | $(DESTDIR)$(install_includedir)/objc + $(Q)$(call install-data,objc/$(*).h,include,$(DESTDIR)$(install_includedir)) endif -ifneq ($(OBJS),) --include $(addprefix .depend/, $(OBJS:.o=.d)) +# +# $(make-objc-src-project $1=project) +# +define make-objc-src-project +ifeq ($(filter all obj%c,$(ICE_BIN_DIST)),) +$1_slicecompiler := slice2objc +$1_sliceflags += -I$(slicedir) +$1_cppflags += -I$(includedir) -I$(includedir)/generated +$1_ldflags += -framework Foundation +$(make-project) +srcs:: $1 endif +endef -ifeq ($(wildcard .depend/*.d),) -ifneq ($(OBJCXX_OBJS),) -$(OBJS): $(SLICE_OBJS:.o=.m) $(OBJC_OBJS:.o=.m) $(OBJCXX_OBJS:.o=.mm) -else -$(OBJS): $(OBJS:.o=.m) -endif +# +# $(make-objc-test-project $1=project) +# +define make-objc-test-project +$1_slicecompiler := slice2objc +$1_sliceflags := -I$(slicedir) $$($1_sliceflags) +$1_cppflags := -I$(includedir) -Itest/include -I$1 -I$1/generated $$($1_cppflags) +$1_ldflags += -framework Foundation +ifeq ($(filter all obj%c,$(ICE_BIN_DIST)),) +$1_cppflags += -I$(includedir)/generated endif +$(make-project) +tests:: $1 +endef -all:: $(TARGETS) - -.m.o: - $(CC) -c $(ARCFLAGS) $(CPPFLAGS) $(OBJCFLAGS) $< - @mkdir -p .depend - @$(CXX) -DMAKEDEPEND -MM $(CPPFLAGS) $< > .depend/$(*F).d - -.mm.o: - $(CXX) -c $(ARCFLAGS) $(CPPFLAGS) $(OBJCFLAGS) $< - @mkdir -p .depend - @$(CXX) -DMAKEDEPEND -MM $(CPPFLAGS) $< > .depend/$(*F).d - -$(HDIR)/%F.h: $(SDIR)/%F.ice $(SLICE2OBJC) - rm -f $(HDIR)/$(*F)F.h $(*F)F.m - $(SLICE2OBJC) $(SLICE2OBJCFLAGS) $< - mv $(*F)F.h $(HDIR) - @touch $(*F)F.m - @mkdir -p .depend - @$(SLICE2OBJC) $(SLICE2OBJCFLAGS) --depend $< | sed 's/\(.*: \\\)/\$$(HDIR)\/\1/' > .depend/$(*F)F.ice.d - -$(HDIR)/%.h %.m: $(SDIR)/%.ice $(SLICE2OBJC) - rm -f $(HDIR)/$(*F).h $(*F).m - $(SLICE2OBJC) $(SLICE2OBJCFLAGS) $< - mv $(*F).h $(HDIR) - @touch $(*F).m - @mkdir -p .depend - @$(SLICE2OBJC) $(SLICE2OBJCFLAGS) --depend $< | sed 's/\(.*: \\\)/\$$(HDIR)\/\1/' > .depend/$(*F).ice.d - -%.h %.m: %.ice $(SLICE2OBJC) - rm -f $(*F).h $(*F).m - $(SLICE2OBJC) $(SLICE2OBJCFLAGS) $< - @touch $(*F).m - @mkdir -p .depend - @$(SLICE2OBJC) $(SLICE2OBJCFLAGS) --depend $(*F).ice > .depend/$(*F).ice.d - -%.h %.m: %.y - rm -f $(*F).h $(*F).c - bison $(BISONFLAGS) $< - mv $(*F).tab.c $(*F).m - mv $(*F).tab.h $(*F).h - rm -f $(*F).output - -%.m: %.l - flex $(FLEXFLAGS) $< - rm -f $@ - cat lex.yy.c >> $@ - rm -f lex.yy.c - -clean:: - -rm -f $(TARGETS) - -rm -f core *.o *.bak - -rm -rf .depend - -ifneq ($(SLICE_OBJS),) -clean:: - rm -f $(addsuffix .m, $(basename $(notdir $(SLICE_OBJS)))) - rm -f $(addsuffix .h, $(basename $(notdir $(SLICE_OBJS)))) -endif +# +# $(create-objc-test-project $1=test) +# +define create-objc-test-project +$1_srcext := m +$1_dependencies := $$(or $$($1_dependencies),TestCommonObjC IceObjC) +$1_cppflags += -Itest/Ice -ifneq ($(HDIR),) -clean:: - rm -f $(addprefix $(HDIR)/, $(addsuffix .h, $(basename $(SLICE_OBJS)))) -endif +# Also link with IceSSL when compiling the project with the static configuration +$1[static]_dependencies := IceSSL + +# Dependencies for Xcode SDK configuration +$1[xcodesdk]_dependencies := IceSSL -install:: +$(create-test-project) +endef diff --git a/objective-c/config/Make.rules.Darwin b/objective-c/config/Make.rules.Darwin deleted file mode 100644 index 730f086b7b1..00000000000 --- a/objective-c/config/Make.rules.Darwin +++ /dev/null @@ -1,91 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -# -# This file is included by Make.rules when uname is Darwin. -# - -OSX_TARGET_MIN_SDK_VERSION = 10.9 - -CC = xcrun clang -CXX = xcrun clang++ - -CPPFLAGS += -pthread -fvisibility=hidden -OBJCFLAGS += -Wall -Werror -mmacosx-version-min=$(OSX_TARGET_MIN_SDK_VERSION) - -# -# By default we build x86_64 binaries. -# -ifeq ($(OBJCARCHFLAGS),) -OBJCARCHFLAGS := -arch x86_64 -endif - -ifeq ($(OPTIMIZE),yes) - OBJCFLAGS := $(OBJCARCHFLAGS) -O2 -DNDEBUG $(OBJCFLAGS) -else - OBJCFLAGS := $(OBJCARCHFLAGS) -g $(OBJCFLAGS) -endif - -LOADER_PATH = @loader_path - -ifeq ($(RPATH_DIR),) - ifdef ice_src_dist - RPATH_DIR = @loader_path/$(libdir) - else - RPATH_DIR = $(ice_dir)/$(libsubdir) - endif -endif - -# -# Clear rpath setting when doing a system install -# -ifeq ($(ice_dir),/usr) - RPATH_DIR = -endif - -ifneq ($(RPATH_DIR),) - LDEXEFLAGS = -Wl,-rpath,$(RPATH_DIR) - ifndef ice_src_dist - LDEXEFLAGS += -Wl,-rpath,@loader_path/$(testlibdir) - endif -endif - -ifdef ice_src_dist -rpathlink = -Wl,-rpath,$(1) -endif - -# -# Enable ARC for targets in demo/ and test/ subdirectories -# when COMPILE_WITH_ARC is defined. -# -ifneq ($(findstring demo/,${CURDIR}),) -TARGET_SUPPORT_ARC = yes -endif - -ifneq ($(findstring test/,${CURDIR}),) -TARGET_SUPPORT_ARC = yes -endif - -ifeq ($(TARGET_SUPPORT_ARC),yes) - ifeq ($(COMPILE_WITH_ARC),yes) - # - # Don't add these to OBJCFLAGS flex and bison generated files used in - # some demos doesn't support ARC. - # - ARCFLAGS = -fobjc-arc -fobjc-arc-exceptions - endif -endif - -mklib = libtool -static -o $(1) $(2) -mkshlib = $(CXX) -dynamiclib $(LDFLAGS) -o $(1) -install_name @rpath/$(2) $(3) $(4) - -BASELIBS = -L$(ice_cpp_dir)/$(libsubdir) -lIce -lIceUtil -framework Foundation -LIBS = -lIceObjC$(libsuffix) -framework Foundation -ICESSL_LIBS = -lIceSSLObjC$(libsuffix) -TEST_LIBS = -lTestCommon $(LIBS) diff --git a/objective-c/config/Make.xcodesdk.rules b/objective-c/config/Make.xcodesdk.rules new file mode 100644 index 00000000000..6f68ec66aa3 --- /dev/null +++ b/objective-c/config/Make.xcodesdk.rules @@ -0,0 +1,55 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +include $(top_srcdir)/config/Make.xcodesdk.rules + +supported-configs += xcodesdk arc-xcodesdk + +# +# Xcode configuration to build Xcode IceSDK. +# +xcodesdk_targetdir = $(if $(filter %/build,$5),xcodesdk,IceSDK/$2.sdk/usr/lib) +xcodesdk_installdir = $(if $(filter %/build,$5),xcodesdk,IceSDK/$2.sdk/usr/lib) +xcodesdk_targetrule = $(if $(filter-out program,$($1_target)),static) + +xcodesdk_components = Ice IceSSL IceObjC IceSSLObjC Glacier2ObjC IceStormObjC IceGridObjC TestCommonObjC +xcodesdk_projects = test/Ice/% + +iphoneos_excludes = test/% +iphonesimulator_excludes = test/% + +ifneq ($(findstring xcodesdk,$(configs)),) +$(eval $(call make-xcodesdk,../cpp/bin/slice2objc)) +component_with_config_extensions := make-objc-xcodesdk-component-with-config +endif + +# +# $(call make-xcodesdk-component-with-config,$1=project,$2=component,$3=platform,$4=config,$5=comp[platform-config]) +# +define make-objc-xcodesdk-component-with-config +ifneq ($(filter src/%,$1),) + +$(make-xcodesdk-component-with-config) + +$(top_srcdir)/IceSDK/$3.sdk/usr/include/objc/%.h: include/objc/%.h + $(Q)$(call install-data,objc/$$(*).h,include,$(top_srcdir)/IceSDK/$3.sdk/usr/include) + +$(install_libdir)/IceSDK/$3.sdk/usr/include/objc/%.h: include/objc/%.h + $(Q)$(call install-data,objc/$$(*).h,include,$(install_libdir)/IceSDK/$3.sdk/usr/include) + +$5:: $(top_srcdir)/IceSDK/$3.sdk/usr/include/objc/$(subst ObjC,,$2).h + +$5_install:: $(install_libdir)/IceSDK/$3.sdk/usr/include/objc/$(subst ObjC,,$2).h + +$5_clean:: + $(Q)$(RM) $(top_srcdir)/IceSDK/$3.sdk/usr/include/objc/$(subst ObjC,,$2).h + $(Q)$(RM) -r $(top_srcdir)/IceSDK/$3.sdk/usr/include/objc/$(subst ObjC,,$2) + +endif +endef diff --git a/objective-c/config/makegitignore.py b/objective-c/config/makegitignore.py deleted file mode 100755 index 7a366265661..00000000000 --- a/objective-c/config/makegitignore.py +++ /dev/null @@ -1,159 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys, shutil, fnmatch, re, time, getopt - -# -# NOTE: This scripts generates .gitignore files in directories -# containing Makefile files with targets. The content of the -# .gitignore file is generated by parsing the output of make -n -# clean. -# -# In other words, the .gitignore file contains ignore rules for files -# produced by the Makefile and supposed to be cleaned by make clean. -# - -progname = os.path.basename(sys.argv[0]) -preamble = "// Generated by " + progname -preamble = preamble + """ - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -""" - -# -# Find files matching a pattern. -# -def find(path, patt): - result = [ ] - files = os.listdir(path) - for x in files: - fullpath = os.path.join(path, x); - if os.path.isdir(fullpath) and not os.path.islink(fullpath): - result.extend(find(fullpath, patt)) - elif fnmatch.fnmatch(x, patt): - result.append(fullpath) - return result - - -def createGitIgnore(filename, gitIgnoreFiles): - file = open(filename, "r") - lines = file.readlines() - cwd = os.getcwd() - cwdStack = [] # Working directory stack - newLines = [ ] - ignore = ["*.o", "*.bak", "core"] - - for x in lines: - x = x.strip() - if x.startswith("rm -f"): - x = x.replace("rm -f", "", 1) - elif x.startswith("rm -rf"): - x = x.replace("rm -rf", "", 1) - elif x.startswith("making clean in"): - # Don't clean sub-directories - break - else: - continue - - if len(x) == 0: - continue - - files = x.split() - for f in files: - if f in ignore: - continue - - if f.startswith(".."): - k = os.path.join(cwd, os.path.dirname(f), ".gitignore") - v = os.path.basename(f) + "\n" - else: - k = os.path.join(cwd, ".gitignore") - v = f + "\n" - - if v.find(".so.") > 0: - continue - elif v.endswith(".so\n"): - v = v.replace(".so", ".*") - elif v.endswith(".dylib\n"): - v = v.replace(".dylib", ".*") - if v.find('.', 0, len(v) - 3) > 0: - continue - - k = os.path.normpath(k) - if not gitIgnoreFiles.has_key(k): - gitIgnoreFiles[k] = [ ] - gitIgnoreFiles[k].append(v) - - file.close() - -def usage(): - print "Usage: " + sys.argv[0] + " [options]" - print - print "Options:" - print "-e Run for Ice-E." - print "-h Show this message." - print - -icee = False -try: - opts, args = getopt.getopt(sys.argv[1:], "he") -except getopt.GetoptError: - usage() - sys.exit(1) -for o, a in opts: - if o == "-h": - usage() - sys.exit(0) - elif o == "-e": - icee = True -if len(args) != 0: - usage() - sys.exit(1) - - -# -# Find where the root of the tree is. -# -for toplevel in [".", "..", "../..", "../../..", "../../../.."]: - toplevel = os.path.abspath(toplevel) - if os.path.exists(os.path.join(toplevel, "objective-c", "config", "makegitignore.py")): - break -else: - print("cannot find top-level directory") - sys.exit(1) - -makefiles = find(os.path.join(toplevel, "objective-c"), "Makefile") -cwd = os.getcwd() -gitIgnoreFiles = { } -for i in makefiles: - os.chdir(os.path.dirname(i)) - if not os.system('grep -q TARGETS Makefile'): - try: - os.system("make -n clean > .tmp-gitignore") - createGitIgnore(".tmp-gitignore", gitIgnoreFiles) - os.remove(".tmp-gitignore") - except: - os.remove(".tmp-gitignore") - raise - os.chdir(cwd) - -os.chdir(cwd) - -excludePath = [ os.path.join(toplevel, "objective-c", "bin"), os.path.join(toplevel, "objective-c", "lib") ] -for (path, files) in gitIgnoreFiles.iteritems(): - if os.path.dirname(path) in excludePath: - continue - if not os.path.exists(path): - print files - gitIgnore = open(path, "w") - gitIgnore.write(preamble); - gitIgnore.writelines(files) - gitIgnore.close() - diff --git a/objective-c/include/objc/Glacier2.h b/objective-c/include/objc/Glacier2.h index 7eb7856ce58..a5d10e02900 100644 --- a/objective-c/include/objc/Glacier2.h +++ b/objective-c/include/objc/Glacier2.h @@ -7,4 +7,4 @@ // // ********************************************************************** -#import "Glacier2/Glacier2.h" +#import <objc/Glacier2/Glacier2.h> diff --git a/objective-c/include/objc/Glacier2/.gitignore b/objective-c/include/objc/Glacier2/.gitignore deleted file mode 100644 index 382c7a11d64..00000000000 --- a/objective-c/include/objc/Glacier2/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -Metrics.h -PermissionsVerifierF.h -PermissionsVerifier.h -Router.h -RouterF.h -Session.h -SSLInfo.h diff --git a/objective-c/include/objc/Glacier2/Makefile b/objective-c/include/objc/Glacier2/Makefile deleted file mode 100644 index 8ed5f3157c5..00000000000 --- a/objective-c/include/objc/Glacier2/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -include $(top_srcdir)/config/Make.rules - -install:: - @if test ! -d $(DESTDIR)$(install_includedir)/Glacier2 ; \ - then \ - echo "Creating $(DESTDIR)$(install_includedir)/Glacier2..." ; \ - $(call mkdir,$(DESTDIR)$(install_includedir)/Glacier2) ; \ - fi - - @for i in *.h ; \ - do \ - echo "Installing $$i" ; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/Glacier2/$$i ; \ - chmod a+r $(DESTDIR)$(install_includedir)/Glacier2/$$i ; \ - done diff --git a/objective-c/include/objc/Ice.h b/objective-c/include/objc/Ice.h index 1584f9315d6..ae9c3375d33 100644 --- a/objective-c/include/objc/Ice.h +++ b/objective-c/include/objc/Ice.h @@ -7,4 +7,4 @@ // // ********************************************************************** -#import "Ice/Ice.h" +#import <objc/Ice/Ice.h> diff --git a/objective-c/include/objc/Ice/.gitignore b/objective-c/include/objc/Ice/.gitignore deleted file mode 100644 index 9be90a78435..00000000000 --- a/objective-c/include/objc/Ice/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -BuiltinSequences.h -Communicator.h -CommunicatorF.h -Connection.h -ConnectionF.h -Current.h -Endpoint.h -EndpointF.h -EndpointTypes.h -FacetMap.h -Identity.h -InstrumentationF.h -ImplicitContext.h -ImplicitContextF.h -Locator.h -LocatorF.h -LocalException.h -Logger.h -LoggerF.h -Metrics.h -ObjectAdapter.h -ObjectAdapterF.h -ObjectFactoryF.h -PluginF.h -Process.h -ProcessF.h -Properties.h -PropertiesF.h -PropertiesAdmin.h -RemoteLogger.h -Router.h -RouterF.h -ServantLocator.h -ServantLocatorF.h -SliceChecksumDict.h -Version.h diff --git a/objective-c/include/objc/Ice/Config.h b/objective-c/include/objc/Ice/Config.h index aa84d33e780..98efccf4531 100644 --- a/objective-c/include/objc/Ice/Config.h +++ b/objective-c/include/objc/Ice/Config.h @@ -19,16 +19,34 @@ #import <stdlib.h> +// +// Use system headers as preferred way to detect 32 or 64 bit mode and +// fallback to architecture based checks +// +#include <stdint.h> + +#if defined(__WORDSIZE) && (__WORDSIZE == 64) +# define ICE_64 +#elif defined(__WORDSIZE) && (__WORDSIZE == 32) +# define ICE_32 +#elif defined(__APPLE__) && (defined(__x86_64) || defined(__arm64)) +# define ICE_64 +#else +# define ICE_32 +#endif + #define ICE_DEPRECATED_API(msg) __attribute__((deprecated(msg))) #define ICE_DECLSPEC_EXPORT __attribute__((visibility ("default"))) #define ICE_DECLSPEC_IMPORT __attribute__((visibility ("default"))) #ifndef ICE_API -# ifdef ICE_API_EXPORTS +# if defined(ICE_STATIC_LIBS) +# define ICE_API /**/ +# elif defined(ICE_API_EXPORTS) # define ICE_API ICE_DECLSPEC_EXPORT -# else +# else # define ICE_API ICE_DECLSPEC_IMPORT -# endif +# endif #endif // @@ -38,7 +56,7 @@ typedef unsigned char ICEByte; typedef short ICEShort; typedef int ICEInt; -#if defined(__x86_64) || defined(__arm64) +#if defined(ICE_64) typedef long ICELong; #else typedef long long ICELong; diff --git a/objective-c/include/objc/Ice/DispatchInterceptor.h b/objective-c/include/objc/Ice/DispatchInterceptor.h index 48ef2cf0cc4..97a86906c13 100644 --- a/objective-c/include/objc/Ice/DispatchInterceptor.h +++ b/objective-c/include/objc/Ice/DispatchInterceptor.h @@ -10,7 +10,7 @@ #import <objc/Ice/Object.h> ICE_API @protocol ICEDispatchInterceptor <ICEObject> --(BOOL) dispatch:(id<ICERequest>)request; +-(void) dispatch:(id<ICERequest>)request; @end ICE_API @interface ICEDispatchInterceptor : ICEServant diff --git a/objective-c/include/objc/Ice/Exception.h b/objective-c/include/objc/Ice/Exception.h index 2529ef2446b..18d50d9ffbd 100644 --- a/objective-c/include/objc/Ice/Exception.h +++ b/objective-c/include/objc/Ice/Exception.h @@ -13,14 +13,15 @@ // // Forward declarations -// +// @protocol ICEOutputStream; @protocol ICEInputStream; @class NSCoder; ICE_API @interface ICEException : NSException --(NSString*)ice_name; +-(NSString*)ice_name ICE_DEPRECATED_API("ice_name() is deprecated use ice_id() instead."); +-(NSString*)ice_id; @end ICE_API @interface ICELocalException : ICEException @@ -39,9 +40,9 @@ ICE_API @interface ICELocalException : ICEException @end ICE_API @interface ICEUserException : ICEException --(BOOL)usesClasses__; --(void)write__:(id<ICEOutputStream>)stream; --(void) writeImpl__:(id<ICEOutputStream>)os; --(void)read__:(id<ICEInputStream>)stream; --(void) readImpl__:(id<ICEInputStream>)is; +-(BOOL)iceUsesClasses; +-(void)iceWrite:(id<ICEOutputStream>)stream; +-(void) iceWriteImpl:(id<ICEOutputStream>)os; +-(void)iceRead:(id<ICEInputStream>)stream; +-(void) iceReadImpl:(id<ICEInputStream>)is; @end diff --git a/objective-c/include/objc/Ice/Initialize.h b/objective-c/include/objc/Ice/Initialize.h index be265b2599f..53cc7006e2c 100644 --- a/objective-c/include/objc/Ice/Initialize.h +++ b/objective-c/include/objc/Ice/Initialize.h @@ -38,13 +38,13 @@ ICE_API @interface ICEInitializationData : NSObject id<ICELogger> logger; void(^dispatcher)(id<ICEDispatcherCall>, id<ICEConnection>); void(^batchRequestInterceptor)(id<ICEBatchRequest>, int, int); - NSDictionary* prefixTable__; + NSDictionary* prefixTable_; } @property(retain, nonatomic) id<ICEProperties> properties; @property(retain, nonatomic) id<ICELogger> logger; @property(copy, nonatomic) void(^dispatcher)(id<ICEDispatcherCall>, id<ICEConnection>); @property(copy, nonatomic) void(^batchRequestInterceptor)(id<ICEBatchRequest>, int, int); -@property(retain, nonatomic) NSDictionary* prefixTable__; +@property(retain, nonatomic) NSDictionary* prefixTable_; -(id) init:(id<ICEProperties>)properties logger:(id<ICELogger>)logger dispatcher:(void(^)(id<ICEDispatcherCall>, id<ICEConnection>))d; @@ -71,14 +71,13 @@ ICE_API @interface ICEUtil : NSObject +(id<ICECommunicator>) createCommunicator:(int*)argc argv:(char*[])argv initData:(ICEInitializationData *)initData; +(id<ICEInputStream>) createInputStream:(id<ICECommunicator>)communicator data:(NSData*)data; +(id<ICEInputStream>) createInputStream:(id<ICECommunicator>)c data:(NSData*)data encoding:(ICEEncodingVersion*)e; -+(id<ICEInputStream>) wrapInputStream:(id<ICECommunicator>)communicator data:(NSData*)data; -+(id<ICEInputStream>) wrapInputStream:(id<ICECommunicator>)c data:(NSData*)data encoding:(ICEEncodingVersion*)e; +(id<ICEOutputStream>) createOutputStream:(id<ICECommunicator>)communicator; +(id<ICEOutputStream>) createOutputStream:(id<ICECommunicator>)c encoding:(ICEEncodingVersion*)e; +(NSString*) generateUUID; +(NSArray*)argsToStringSeq:(int)argc argv:(char*[])argv; +(void)stringSeqToArgs:(NSArray*)args argc:(int*)argc argv:(char*[])argv; +(ICEIdentity*) stringToIdentity:(NSString*)str; ++(NSMutableString*) identityToString:(ICEIdentity*)ident toStringMode:(ICEToStringMode)toStringMode; +(NSMutableString*) identityToString:(ICEIdentity*)ident; @end @@ -89,3 +88,10 @@ ICE_API @interface ICEUtil : NSObject @interface ICEProtocolVersion(StringConv) +(ICEProtocolVersion*) protocolVersionWithString:(NSString*)str; @end + +extern void ICEregisterIceSSL(BOOL); +extern void ICEregisterIceDiscovery(BOOL); +extern void ICEregisterIceLocatorDiscovery(BOOL); +#if defined(__APPLE__) && TARGET_OS_IPHONE > 0 +extern void ICEregisterIceIAP(BOOL); +#endif diff --git a/objective-c/include/objc/Ice/Makefile b/objective-c/include/objc/Ice/Makefile deleted file mode 100644 index cab92cc20c7..00000000000 --- a/objective-c/include/objc/Ice/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -include $(top_srcdir)/config/Make.rules - -install:: - @if test ! -d $(DESTDIR)$(install_includedir)/Ice ; \ - then \ - echo "Creating $(DESTDIR)$(install_includedir)/Ice..." ; \ - $(call mkdir,$(DESTDIR)$(install_includedir)/Ice) ; \ - fi - - @for i in *.h ; \ - do \ - echo "Installing $$i" ; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/Ice/$$i ; \ - chmod a+r $(DESTDIR)$(install_includedir)/Ice/$$i ; \ - done diff --git a/objective-c/include/objc/Ice/Object.h b/objective-c/include/objc/Ice/Object.h index a6904dfd05a..8ae9ad8f17f 100644 --- a/objective-c/include/objc/Ice/Object.h +++ b/objective-c/include/objc/Ice/Object.h @@ -39,7 +39,7 @@ ICE_API @protocol ICEObject <NSObject> -(NSArray*) ice_ids:(ICECurrent*)current; -(void) ice_preMarshal; -(void) ice_postUnmarshal; --(BOOL) ice_dispatch:(id<ICERequest>)request; +-(void) ice_dispatch:(id<ICERequest>)request; @end ICE_API @interface ICEObject : NSObject<ICEObject, NSCopying> @@ -47,28 +47,28 @@ ICE_API @interface ICEObject : NSObject<ICEObject, NSCopying> -(void) ice_ping; -(NSString*) ice_id; -(NSArray*) ice_ids; --(BOOL) ice_dispatch:(id<ICERequest>)request; +-(void) ice_dispatch:(id<ICERequest>)request; +(NSString*) ice_staticId; -+(NSString*const*) staticIds__:(int*)count idIndex:(int*)idx; --(void) write__:(id<ICEOutputStream>)os; --(void) read__:(id<ICEInputStream>)is; ++(NSString*const*) iceStaticIds:(int*)count idIndex:(int*)idx; +-(void) iceWrite:(id<ICEOutputStream>)os; +-(void) iceRead:(id<ICEInputStream>)is; @end ICE_API @interface ICEServant : ICEObject { - void* object__; - id delegate__; + void* iceObject_; + id iceDelegate_; } -(id) initWithDelegate:(id)delegate; +(id) objectWithDelegate:(id)delegate; -+(BOOL) ice_isA___:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; -+(BOOL) ice_ping___:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; -+(BOOL) ice_id___:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; -+(BOOL) ice_ids___:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; --(BOOL) dispatch__:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; --(void) writeImpl__:(id<ICEOutputStream>)os; --(void) readImpl__:(id<ICEInputStream>)is; --(id) target__; ++(void) iceD_ice_isA:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; ++(void) iceD_ice_ping:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; ++(void) iceD_ice_id:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; ++(void) iceD_ice_ids:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; +-(void) iceDispatch:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; +-(void) iceWriteImpl:(id<ICEOutputStream>)os; +-(void) iceReadImpl:(id<ICEInputStream>)is; +-(id) iceTarget; @end ICE_API @protocol ICEBlobject<ICEObject> diff --git a/objective-c/include/objc/Ice/ObjectFactory.h b/objective-c/include/objc/Ice/ObjectFactory.h index d622453944c..74bad6cde75 100644 --- a/objective-c/include/objc/Ice/ObjectFactory.h +++ b/objective-c/include/objc/Ice/ObjectFactory.h @@ -13,4 +13,3 @@ ICE_API @protocol ICEObjectFactory <NSObject> -(ICEObject*) create:(NSString*)sliceId NS_RETURNS_RETAINED; -(void) destroy; @end - diff --git a/objective-c/include/objc/Ice/Proxy.h b/objective-c/include/objc/Ice/Proxy.h index 83fa6e93e10..79dbf98eecb 100644 --- a/objective-c/include/objc/Ice/Proxy.h +++ b/objective-c/include/objc/Ice/Proxy.h @@ -162,8 +162,8 @@ ICE_API @protocol ICEObjectPrx <NSObject, NSCopying> ICE_API @interface ICEObjectPrx : NSObject<ICEObjectPrx> { - void* objectPrx__; - id<ICECommunicator> communicator__; + void* objectPrx_; + id<ICECommunicator> communicator_; } +(id) uncheckedCast:(id<ICEObjectPrx>)proxy; +(id) uncheckedCast:(id<ICEObjectPrx>)proxy facet:(NSString*)facet; @@ -173,19 +173,19 @@ ICE_API @interface ICEObjectPrx : NSObject<ICEObjectPrx> +(id) checkedCast:(id<ICEObjectPrx>)proxy facet:(NSString*)facet context:(ICEContext*)context; +(NSString*) ice_staticId; -+(Protocol*) protocol__; --(id<ICEOutputStream>) createOutputStream__; --(void) invoke__:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal - unmarshal:(ICEUnmarshalCB)unmarshal context:(ICEContext*)context; --(id<ICEAsyncResult>) begin_invoke__:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal - returnsData:(BOOL)returnsData context:(ICEContext*)context; --(id<ICEAsyncResult>) begin_invoke__:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal - response:(void(^)())response - exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent ++(Protocol*) iceProtocol; +-(id<ICEOutputStream>) iceCreateOutputStream; +-(void) iceInvoke:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal + unmarshal:(ICEUnmarshalCB)unmarshal context:(ICEContext*)context; +-(id<ICEAsyncResult>) iceI_begin_invoke:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal + returnsData:(BOOL)returnsData context:(ICEContext*)context; +-(id<ICEAsyncResult>) iceI_begin_invoke:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal + response:(void(^)())response + exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent context:(ICEContext*)context; --(id<ICEAsyncResult>) begin_invoke__:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal - completed:(void(^)(id<ICEInputStream>, BOOL))completed - response:(BOOL)response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent - context:(ICEContext*)context; --(void)end_invoke__:(NSString*)operation unmarshal:(ICEUnmarshalCB)unmarshal result:(id<ICEAsyncResult>)result; +-(id<ICEAsyncResult>) iceI_begin_invoke:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal + completed:(void(^)(id<ICEInputStream>, BOOL))completed + response:(BOOL)response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent + context:(ICEContext*)context; +-(void)iceI_end_invoke:(NSString*)operation unmarshal:(ICEUnmarshalCB)unmarshal result:(id<ICEAsyncResult>)result; @end diff --git a/objective-c/include/objc/Ice/SlicedData.h b/objective-c/include/objc/Ice/SlicedData.h index 5e1c0ef251f..1dacba245c9 100644 --- a/objective-c/include/objc/Ice/SlicedData.h +++ b/objective-c/include/objc/Ice/SlicedData.h @@ -14,7 +14,7 @@ ICE_API @protocol ICESlicedData<NSObject> @end -ICE_API @interface ICEUnknownSlicedObject : ICEObject +ICE_API @interface ICEUnknownSlicedValue : ICEObject { @private NSString* unknownTypeId_; diff --git a/objective-c/include/objc/Ice/Stream.h b/objective-c/include/objc/Ice/Stream.h index 113b681087d..b02cc74bd55 100644 --- a/objective-c/include/objc/Ice/Stream.h +++ b/objective-c/include/objc/Ice/Stream.h @@ -17,7 +17,6 @@ // @class ICEObject; @protocol ICEObjectPrx; -@protocol ICECommunicator; @protocol ICESlicedData; @class ICEUserException; @class ICEEncodingVersion; @@ -54,9 +53,7 @@ typedef struct ICE_API @protocol ICEInputStream <NSObject> --(id<ICECommunicator>) communicator; - --(void) sliceObjects:(BOOL)b; +-(void) setSliceValues:(BOOL)b; -(BOOL) readBool; -(NSMutableData*) newBoolSeq; @@ -99,14 +96,14 @@ ICE_API @protocol ICEInputStream <NSObject> -(id<ICEObjectPrx>) newProxy:(Class)c; -(id<ICEObjectPrx>) readProxy:(Class)c; --(void) newObject:(ICEObject*ICE_STRONG_QUALIFIER*)object; --(void) newObject:(ICEObject*ICE_STRONG_QUALIFIER*)object expectedType:(Class)type; --(void) readObject:(ICEObject**)object; --(void) readObject:(ICEObject**)object expectedType:(Class)type; --(NSMutableArray*) newObjectSeq:(Class)expectedType; --(NSMutableArray*) readObjectSeq:(Class)expectedType; --(NSMutableDictionary*) newObjectDict:(Class)keyType expectedType:(Class)type; --(NSMutableDictionary*) readObjectDict:(Class)keyType expectedType:(Class)type; +-(void) newValue:(ICEObject*ICE_STRONG_QUALIFIER*)object; +-(void) newValue:(ICEObject*ICE_STRONG_QUALIFIER*)object expectedType:(Class)type; +-(void) readValue:(ICEObject**)object; +-(void) readValue:(ICEObject**)object expectedType:(Class)type; +-(NSMutableArray*) newValueSeq:(Class)expectedType; +-(NSMutableArray*) readValueSeq:(Class)expectedType; +-(NSMutableDictionary*) newValueDict:(Class)keyType expectedType:(Class)type; +-(NSMutableDictionary*) readValueDict:(Class)keyType expectedType:(Class)type; -(NSMutableArray*) newSequence:(Class)type; -(NSMutableArray*) readSequence:(Class)type; @@ -120,8 +117,8 @@ ICE_API @protocol ICEInputStream <NSObject> -(void) throwException; --(void) startObject; --(id<ICESlicedData>) endObject:(BOOL)preserve NS_RETURNS_RETAINED; +-(void) startValue; +-(id<ICESlicedData>) endValue:(BOOL)preserve NS_RETURNS_RETAINED; -(void) startException; -(id<ICESlicedData>) endException:(BOOL)preserve NS_RETURNS_RETAINED; @@ -132,11 +129,12 @@ ICE_API @protocol ICEInputStream <NSObject> -(ICEEncodingVersion*) startEncapsulation; -(void) endEncapsulation; +-(ICEEncodingVersion*) skipEmptyEncapsulation; -(ICEEncodingVersion*) skipEncapsulation; -(ICEEncodingVersion*) getEncoding; --(void) readPendingObjects; +-(void) readPendingValues; -(void) rewind; @@ -146,8 +144,6 @@ ICE_API @protocol ICEInputStream <NSObject> ICE_API @protocol ICEOutputStream <NSObject> --(id<ICECommunicator>) communicator; - -(void) writeBool:(BOOL)v; -(void) writeBoolSeq:(NSData*)v; @@ -177,9 +173,9 @@ ICE_API @protocol ICEOutputStream <NSObject> -(void) writeProxy:(id<ICEObjectPrx>)v; --(void) writeObject:(ICEObject*)v; --(void) writeObjectSeq:(NSArray*)v; --(void) writeObjectDict:(NSDictionary*)v helper:(Class)helper; +-(void) writeValue:(ICEObject*)v; +-(void) writeValueSeq:(NSArray*)v; +-(void) writeValueDict:(NSDictionary*)v helper:(Class)helper; -(void) writeSequence:(NSArray*)arr helper:(Class)helper; -(void) writeDictionary:(NSDictionary*)dictionary helper:(ICEKeyValueTypeHelper)helper; @@ -190,8 +186,8 @@ ICE_API @protocol ICEOutputStream <NSObject> -(void) writeException:(ICEUserException*)v; --(void) startObject:(id<ICESlicedData>)slicedData; --(void) endObject; +-(void) startValue:(id<ICESlicedData>)slicedData; +-(void) endValue; -(void) startException:(id<ICESlicedData>)slicedData; -(void) endException; @@ -205,7 +201,7 @@ ICE_API @protocol ICEOutputStream <NSObject> -(ICEEncodingVersion*) getEncoding; --(void) writePendingObjects; +-(void) writePendingValues; -(NSMutableData*) finished; -(NSData*) finishedNoCopy; @@ -221,9 +217,9 @@ ICE_API @protocol ICEStreamHelper +(id) readRetained:(id<ICEInputStream>)stream NS_RETURNS_RETAINED; +(id) read:(id<ICEInputStream>)stream; +(void) write:(id)obj stream:(id<ICEOutputStream>)stream; -+(id) readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag; -+(id) readOpt:(id<ICEInputStream>)stream tag:(ICEInt)tag; -+(void) writeOpt:(id)obj stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag; ++(id) readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag; ++(id) readOptional:(id<ICEInputStream>)stream tag:(ICEInt)tag; ++(void) writeOptional:(id)obj stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag; +(ICEInt) minWireSize; @end @@ -259,7 +255,7 @@ ICE_API @interface ICEStringHelper : ICEStreamHelper ICE_API @interface ICEObjectHelper : ICEStreamHelper +(void)read:(ICEObject**)v stream:(id<ICEInputStream>)stream; -+(void)readOpt:(id*)v stream:(id<ICEInputStream>)stream tag:(ICEInt)tag; ++(void)readOptional:(id*)v stream:(id<ICEInputStream>)stream tag:(ICEInt)tag; @end ICE_API @interface ICEProxyHelper : ICEStreamHelper diff --git a/objective-c/include/objc/Ice/ValueFactory.h b/objective-c/include/objc/Ice/ValueFactory.h new file mode 100644 index 00000000000..7022a2b0f4e --- /dev/null +++ b/objective-c/include/objc/Ice/ValueFactory.h @@ -0,0 +1,18 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <objc/Ice/Config.h> +#import <objc/Ice/Object.h> + +typedef ICEObject* (^ICEValueFactory)(NSString*); + +ICE_API @protocol ICEValueFactoryManager <NSObject> +-(void) add:(ICEValueFactory)factory sliceId:(NSString*)id_; +-(ICEValueFactory) find:(NSString*)id_; +@end diff --git a/objective-c/include/objc/IceGrid.h b/objective-c/include/objc/IceGrid.h index a1b6737bb82..83056e2bd43 100644 --- a/objective-c/include/objc/IceGrid.h +++ b/objective-c/include/objc/IceGrid.h @@ -7,4 +7,4 @@ // // ********************************************************************** -#import "IceGrid/IceGrid.h" +#import <objc/IceGrid/IceGrid.h> diff --git a/objective-c/include/objc/IceGrid/.gitignore b/objective-c/include/objc/IceGrid/.gitignore deleted file mode 100644 index 9d13a816fbf..00000000000 --- a/objective-c/include/objc/IceGrid/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -Admin.h -Descriptor.h -Exception.h -FileParser.h -Locator.h -Observer.h -PluginFacade.h -Query.h -Registry.h -Session.h -UserAccountMapper.h diff --git a/objective-c/include/objc/IceGrid/IceGrid.h b/objective-c/include/objc/IceGrid/IceGrid.h index 6db242055ca..7c85edd867c 100644 --- a/objective-c/include/objc/IceGrid/IceGrid.h +++ b/objective-c/include/objc/IceGrid/IceGrid.h @@ -9,11 +9,8 @@ #import <objc/IceGrid/Admin.h> #import <objc/IceGrid/Exception.h> -#import <objc/IceGrid/Observer.h> #import <objc/IceGrid/Registry.h> #import <objc/IceGrid/UserAccountMapper.h> #import <objc/IceGrid/Descriptor.h> #import <objc/IceGrid/FileParser.h> -#import <objc/IceGrid/Locator.h> -#import <objc/IceGrid/Query.h> #import <objc/IceGrid/Session.h> diff --git a/objective-c/include/objc/IceGrid/Makefile b/objective-c/include/objc/IceGrid/Makefile deleted file mode 100644 index 9a79b139dbb..00000000000 --- a/objective-c/include/objc/IceGrid/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -include $(top_srcdir)/config/Make.rules - -install:: - @if test ! -d $(DESTDIR)$(install_includedir)/IceGrid ; \ - then \ - echo "Creating $(DESTDIR)$(install_includedir)/IceGrid..." ; \ - $(call mkdir,$(DESTDIR)$(install_includedir)/IceGrid) ; \ - fi - - @for i in *.h ; \ - do \ - echo "Installing $$i" ; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/IceGrid/$$i ; \ - chmod a+r $(DESTDIR)$(install_includedir)/IceGrid/$$i ; \ - done diff --git a/objective-c/include/objc/IceSSL.h b/objective-c/include/objc/IceSSL.h index 168b25d9c0e..88a877c1ee6 100644 --- a/objective-c/include/objc/IceSSL.h +++ b/objective-c/include/objc/IceSSL.h @@ -7,4 +7,4 @@ // // ********************************************************************** -#import "IceSSL/IceSSL.h" +#import <objc/IceSSL/IceSSL.h> diff --git a/objective-c/include/objc/IceSSL/.gitignore b/objective-c/include/objc/IceSSL/.gitignore deleted file mode 100644 index f53e54c68e3..00000000000 --- a/objective-c/include/objc/IceSSL/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -EndpointInfo.h -ConnectionInfo.h diff --git a/objective-c/include/objc/IceSSL/Makefile b/objective-c/include/objc/IceSSL/Makefile deleted file mode 100644 index 3b390b0ff3f..00000000000 --- a/objective-c/include/objc/IceSSL/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -include $(top_srcdir)/config/Make.rules - -install:: - @if test ! -d $(DESTDIR)$(install_includedir)/IceSSL ; \ - then \ - echo "Creating $(DESTDIR)$(install_includedir)/IceSSL..." ; \ - $(call mkdir,$(DESTDIR)$(install_includedir)/IceSSL) ; \ - fi - - @for i in *.h ; \ - do \ - echo "Installing $$i" ; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/IceSSL/$$i ; \ - chmod a+r $(DESTDIR)$(install_includedir)/IceSSL/$$i ; \ - done diff --git a/objective-c/include/objc/IceStorm.h b/objective-c/include/objc/IceStorm.h index 7834200b400..92b7976867c 100644 --- a/objective-c/include/objc/IceStorm.h +++ b/objective-c/include/objc/IceStorm.h @@ -7,4 +7,4 @@ // // ********************************************************************** -#import "IceStorm/IceStorm.h" +#import <objc/IceStorm/IceStorm.h> diff --git a/objective-c/include/objc/IceStorm/.gitignore b/objective-c/include/objc/IceStorm/.gitignore deleted file mode 100644 index bb5bf8a8dc7..00000000000 --- a/objective-c/include/objc/IceStorm/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -Metrics.h -IceStorm.h diff --git a/objective-c/include/objc/IceStorm/Makefile b/objective-c/include/objc/IceStorm/Makefile deleted file mode 100644 index b6144d64940..00000000000 --- a/objective-c/include/objc/IceStorm/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -include $(top_srcdir)/config/Make.rules - -install:: - @if test ! -d $(DESTDIR)$(install_includedir)/IceStorm ; \ - then \ - echo "Creating $(DESTDIR)$(install_includedir)/IceStorm..." ; \ - $(call mkdir,$(DESTDIR)$(install_includedir)/IceStorm) ; \ - fi - - @for i in *.h ; \ - do \ - echo "Installing $$i" ; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/IceStorm/$$i ; \ - chmod a+r $(DESTDIR)$(install_includedir)/IceStorm/$$i ; \ - done diff --git a/objective-c/include/objc/Makefile b/objective-c/include/objc/Makefile deleted file mode 100644 index d4445893a84..00000000000 --- a/objective-c/include/objc/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -include $(top_srcdir)/config/Make.rules - -SUBDIRS = Ice IceSSL Glacier2 IceStorm IceGrid - -$(EVERYTHING):: - @for subdir in $(SUBDIRS); \ - do \ - echo "making $@ in $$subdir"; \ - ( cd $$subdir && $(MAKE) $@ ) || exit 1; \ - done - -install:: - @for i in *.h ; \ - do \ - echo "Installing $$i" ; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(install_includedir)/$$i ; \ - chmod a+r $(DESTDIR)$(install_includedir)/$$i ; \ - done diff --git a/objective-c/src/Glacier2/.gitignore b/objective-c/src/Glacier2/.gitignore deleted file mode 100644 index ece727d3b20..00000000000 --- a/objective-c/src/Glacier2/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -.depend -Metrics.m -PermissionsVerifierF.m -PermissionsVerifier.m -Router.m -RouterF.m -Session.m -SSLInfo.m -Metrics.h -PermissionsVerifierF.h -PermissionsVerifier.h -Router.h -RouterF.h -Session.h -SSLInfo.h diff --git a/objective-c/src/Glacier2/Makefile b/objective-c/src/Glacier2/Makefile deleted file mode 100644 index 1c277e5460a..00000000000 --- a/objective-c/src/Glacier2/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -LIBFILENAME = $(call mklibfilename,Glacier2ObjC,$(VERSION)) -SONAME = $(call mksoname,Glacier2ObjC,$(SOVERSION)) -LIBNAME = $(call mklibname,Glacier2ObjC) - -TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) - -SLICE_OBJS = Metrics.o \ - PermissionsVerifierF.o \ - PermissionsVerifier.o \ - Router.o \ - RouterF.o \ - Session.o \ - SSLInfo.o - -OBJS = $(SLICE_OBJS) - -HDIR = $(headerdir)/objc/Glacier2 -SDIR = $(slicedir)/Glacier2 - -include $(top_srcdir)/config/Make.rules - -SLICE2OBJCFLAGS := --ice --include-dir objc/Glacier2 --dll-export GLACIER2_API $(SLICE2OBJCFLAGS) - -$(libdir)/$(LIBFILENAME): $(OBJS) $(HDIR)/PermissionsVerifierF.h $(HDIR)/RouterF.h - @mkdir -p $(dir $@) - rm -f $@ - $(call mkshlib,$@,$(SONAME),$(OBJS),$(LIBS)) - -$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(libdir)/$(LIBNAME): $(libdir)/$(SONAME) - @mkdir -p $(libdir) - rm -f $@ - ln -s $(SONAME) $@ - -install:: all - $(call installlib,$(DESTDIR)$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) diff --git a/objective-c/src/Glacier2/Makefile.mk b/objective-c/src/Glacier2/Makefile.mk new file mode 100644 index 00000000000..1d28a2536c8 --- /dev/null +++ b/objective-c/src/Glacier2/Makefile.mk @@ -0,0 +1,20 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(project)_libraries = Glacier2ObjC + +Glacier2ObjC_targetdir := $(libdir) +Glacier2ObjC_sliceflags := --include-dir objc/Glacier2 +Glacier2ObjC_dependencies := IceObjC +Glacier2ObjC_slicedir := $(slicedir)/Glacier2 +Glacier2ObjC_includedir := $(includedir)/objc/Glacier2 + +Glacier2ObjC_install:: $(install_includedir)/objc/Glacier2.h + +projects += $(project) diff --git a/objective-c/src/Ice/.gitignore b/objective-c/src/Ice/.gitignore deleted file mode 100644 index 7f8d62bd8d6..00000000000 --- a/objective-c/src/Ice/.gitignore +++ /dev/null @@ -1,76 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -.depend -BuiltinSequences.m -Communicator.m -CommunicatorF.m -Connection.m -ConnectionF.m -Current.m -Endpoint.m -EndpointF.m -EndpointTypes.m -FacetMap.m -Identity.m -InstrumentationF.m -ImplicitContext.m -ImplicitContextF.m -Locator.m -LocatorF.m -LocalException.m -Logger.m -LoggerF.m -Metrics.m -ObjectAdapter.m -ObjectAdapterF.m -ObjectFactoryF.m -PluginF.m -Process.m -ProcessF.m -Properties.m -PropertiesF.m -PropertiesAdmin.m -RemoteLogger.m -Router.m -RouterF.m -ServantLocator.m -ServantLocatorF.m -SliceChecksumDict.m -Version.m -BuiltinSequences.h -Communicator.h -CommunicatorF.h -Connection.h -ConnectionF.h -Current.h -Endpoint.h -EndpointF.h -EndpointTypes.h -FacetMap.h -Identity.h -InstrumentationF.h -ImplicitContext.h -ImplicitContextF.h -Locator.h -LocatorF.h -LocalException.h -Logger.h -LoggerF.h -Metrics.h -ObjectAdapter.h -ObjectAdapterF.h -ObjectFactoryF.h -PluginF.h -Process.h -ProcessF.h -Properties.h -PropertiesF.h -PropertiesAdmin.h -RemoteLogger.h -Router.h -RouterF.h -ServantLocator.h -ServantLocatorF.h -SliceChecksumDict.h -Version.h diff --git a/objective-c/src/Ice/BatchRequestInterceptor.mm b/objective-c/src/Ice/BatchRequestInterceptor.mm index 5aa3913feae..e64b94bcc14 100644 --- a/objective-c/src/Ice/BatchRequestInterceptor.mm +++ b/objective-c/src/Ice/BatchRequestInterceptor.mm @@ -100,6 +100,6 @@ batchRequestInterceptorWithBatchRequestInterceptor:(void(^)(id<ICEBatchRequest>, } -(id<ICEObjectPrx>) getProxy { - return [ICEObjectPrx objectPrxWithObjectPrx__:cxxRequest_->getProxy()]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:cxxRequest_->getProxy()]; } @end diff --git a/objective-c/src/Ice/CommunicatorI.h b/objective-c/src/Ice/CommunicatorI.h index 5b50e8c7332..42520b55271 100644 --- a/objective-c/src/Ice/CommunicatorI.h +++ b/objective-c/src/Ice/CommunicatorI.h @@ -8,7 +8,6 @@ // ********************************************************************** #import <objc/Ice/Communicator.h> - #import <objc/Ice/LocalObject.h> #import <Foundation/NSSet.h> @@ -16,14 +15,17 @@ #include <Ice/Communicator.h> @class ICEObjectAdapter; +@class ICEValueFactoryManager; +@class ICEInitializationData; @interface ICECommunicator : ICELocalObject<ICECommunicator> { - NSMutableDictionary* objectFactories_; NSDictionary* prefixTable_; NSMutableDictionary* adminFacets_; + ICEValueFactoryManager* valueFactoryManager_; + NSMutableDictionary* objectFactories_; } --(void)setup:(NSDictionary*)prefixTable; +-(void)setup:(ICEInitializationData*)prefixTable; -(Ice::Communicator*)communicator; -(NSDictionary*)getPrefixTable; @end diff --git a/objective-c/src/Ice/CommunicatorI.mm b/objective-c/src/Ice/CommunicatorI.mm index 61d4cbcc9a0..35f33bebca2 100644 --- a/objective-c/src/Ice/CommunicatorI.mm +++ b/objective-c/src/Ice/CommunicatorI.mm @@ -20,133 +20,19 @@ #import <ProxyI.h> #import <LocalObjectI.h> #import <ObjectI.h> +#import <ValueFactoryI.h> #include <Ice/Router.h> #include <Ice/Locator.h> -#include <Ice/ObjectFactory.h> #import <objc/Ice/Router.h> #import <objc/Ice/Locator.h> -#import <objc/Ice/ObjectFactory.h> #import <objc/Ice/Initialize.h> #import <objc/runtime.h> #define COMMUNICATOR dynamic_cast<Ice::Communicator*>(static_cast<IceUtil::Shared*>(cxxObject_)) -namespace IceObjC -{ - -class UnknownSlicedObjectFactoryI : public Ice::ObjectFactory -{ -public: - - virtual Ice::ObjectPtr - create(const std::string&) - { - ICEUnknownSlicedObject* obj = [[ICEUnknownSlicedObject alloc] init]; - Ice::ObjectPtr o = [ICEInputStream createObjectReader:obj]; - [obj release]; - return o; - } - - virtual void - destroy() - { - } -}; - -class ObjectFactoryI : public Ice::ObjectFactory -{ -public: - - // We must explicitely CFRetain/CFRelease so that the garbage - // collector does not trash the dictionaries. - ObjectFactoryI(NSDictionary* factories, NSDictionary* prefixTable) : - _factories(factories), _prefixTable(prefixTable) - { - CFRetain(_factories); - CFRetain(_prefixTable); - } - - ~ObjectFactoryI() - { - CFRelease(_factories); - CFRelease(_prefixTable); - } - - virtual Ice::ObjectPtr - create(const std::string& type) - { - NSString* sliceId = [[NSString alloc] initWithUTF8String:type.c_str()]; - @try - { - id<ICEObjectFactory> factory = nil; - @synchronized(_factories) - { - factory = [_factories objectForKey:sliceId]; - if(factory == nil) - { - factory = [_factories objectForKey:@""]; - } - } - - ICEObject* obj = nil; - if(factory != nil) - { - obj = [factory create:sliceId]; - } - - if(obj == nil) - { - std::string tId = toObjCSliceId(type, _prefixTable); - Class c = objc_lookUpClass(tId.c_str()); - if(c == nil) - { - return 0; // No object factory. - } - if([c isSubclassOfClass:[ICEObject class]]) - { - obj = (ICEObject*)[[c alloc] init]; - } - } - - Ice::ObjectPtr o; - if(obj != nil) - { - o = [ICEInputStream createObjectReader:obj]; - [obj release]; - } - return o; - } - @catch(id ex) - { - rethrowCxxException(ex); - } - @finally - { - [sliceId release]; - } - return nil; // Keep the compiler happy. - } - - virtual void - destroy() - { - for(NSString* k in _factories) - { - [[_factories objectForKey:k] destroy]; - } - } - -private: - - NSDictionary* _factories; - NSDictionary* _prefixTable; -}; - -} - @interface ICEInternalPrefixTable(ICEInternal) +(NSDictionary*) newPrefixTable; @end @@ -174,25 +60,26 @@ private: @end @implementation ICECommunicator --(void)setup:(NSDictionary*)prefixTable +-(void)setup:(ICEInitializationData*)initData { - objectFactories_ = [[NSMutableDictionary alloc] init]; - if(prefixTable) + if(initData.prefixTable_) { - prefixTable_ = [prefixTable retain]; + prefixTable_ = [initData.prefixTable_ retain]; } else { prefixTable_ = [ICEInternalPrefixTable newPrefixTable]; } adminFacets_ = [[NSMutableDictionary alloc] init]; - COMMUNICATOR->addObjectFactory(new IceObjC::UnknownSlicedObjectFactoryI, "::Ice::Object"); - COMMUNICATOR->addObjectFactory(new IceObjC::ObjectFactoryI(objectFactories_, prefixTable_), ""); + + valueFactoryManager_ = [[ICEValueFactoryManager alloc] init:COMMUNICATOR prefixTable:prefixTable_]; + objectFactories_ = [[NSMutableDictionary alloc] init]; } -(void) dealloc { - [prefixTable_ release]; + [valueFactoryManager_ release]; [objectFactories_ release]; + [prefixTable_ release]; [adminFacets_ release]; [super dealloc]; } @@ -219,6 +106,13 @@ private: { [adminFacets_ removeAllObjects]; } + @synchronized(objectFactories_) + { + for(NSString* k in objectFactories_) + { + [[objectFactories_ objectForKey:k] destroy]; + } + } return; } catch(const std::exception& ex) @@ -285,7 +179,7 @@ private: NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:COMMUNICATOR->stringToProxy(fromNSString(str))]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:COMMUNICATOR->stringToProxy(fromNSString(str))]; } catch(const std::exception& ex) { @@ -300,7 +194,7 @@ private: NSException* nsex = nil; try { - return [toNSMutableString(COMMUNICATOR->proxyToString([(ICEObjectPrx*)obj objectPrx__])) autorelease]; + return [toNSMutableString(COMMUNICATOR->proxyToString([(ICEObjectPrx*)obj iceObjectPrx])) autorelease]; } catch(const std::exception& ex) { @@ -315,7 +209,7 @@ private: NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:COMMUNICATOR->propertyToProxy(fromNSString(property))]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:COMMUNICATOR->propertyToProxy(fromNSString(property))]; } catch(const std::exception& ex) { @@ -330,7 +224,7 @@ private: NSException* nsex = nil; try { - return [toNSDictionary(COMMUNICATOR->proxyToProperty([(ICEObjectPrx*)prx objectPrx__], + return [toNSDictionary(COMMUNICATOR->proxyToProperty([(ICEObjectPrx*)prx iceObjectPrx], fromNSString(property))) autorelease]; } catch(const std::exception& ex) @@ -348,7 +242,17 @@ private: -(NSMutableString*) identityToString:(ICEIdentity*)ident { - return [ICEUtil identityToString:ident]; + NSException* nsex = nil; + try + { + return [toNSMutableString(COMMUNICATOR->identityToString([ident identity])) autorelease]; + } + catch(const std::exception& ex) + { + nsex = toObjCException(ex); + } + @throw nsex; + return nil; // Keep the compiler happy. } -(id<ICEObjectAdapter>) createObjectAdapter:(NSString*)name; @@ -392,7 +296,7 @@ private: NSException* nsex = nil; try { - Ice::RouterPrx router = Ice::RouterPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)rtr objectPrx__])); + Ice::RouterPrx router = Ice::RouterPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)rtr iceObjectPrx])); ICEObjectAdapter* adapter = [ICEObjectAdapter localObjectWithCxxObject: COMMUNICATOR->createObjectAdapterWithRouter( fromNSString(name), router).get()]; @@ -405,13 +309,20 @@ private: @throw nsex; return nil; // Keep the compiler happy. } + -(void) addObjectFactory:(id<ICEObjectFactory>)factory sliceId:(NSString*)sliceId { @synchronized(objectFactories_) { [objectFactories_ setObject:factory forKey:sliceId]; } + ICEValueFactory valueFactoryWrapper = ^(NSString* s) + { + return [factory create:s]; + }; + [valueFactoryManager_ add:valueFactoryWrapper sliceId:sliceId]; } + -(id<ICEObjectFactory>) findObjectFactory:(NSString*)sliceId { @synchronized(objectFactories_) @@ -421,6 +332,11 @@ private: return nil; // Keep the compiler happy. } +-(id<ICEValueFactoryManager>) getValueFactoryManager +{ + return valueFactoryManager_; +} + -(id<ICEImplicitContext>) getImplicitContext { return [ICEImplicitContext implicitContextWithImplicitContext:COMMUNICATOR->getImplicitContext().get()]; @@ -466,7 +382,7 @@ private: NSException* nsex = nil; try { - return (id<ICERouterPrx>)[ICERouterPrx objectPrxWithObjectPrx__:COMMUNICATOR->getDefaultRouter()]; + return (id<ICERouterPrx>)[ICERouterPrx iceObjectPrxWithObjectPrx:COMMUNICATOR->getDefaultRouter()]; } catch(const std::exception& ex) { @@ -481,7 +397,7 @@ private: NSException* nsex = nil; try { - COMMUNICATOR->setDefaultRouter(Ice::RouterPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)rtr objectPrx__]))); + COMMUNICATOR->setDefaultRouter(Ice::RouterPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)rtr iceObjectPrx]))); } catch(const std::exception& ex) { @@ -498,7 +414,7 @@ private: NSException* nsex = nil; try { - return (id<ICELocatorPrx>)[ICELocatorPrx objectPrxWithObjectPrx__:COMMUNICATOR->getDefaultLocator()]; + return (id<ICELocatorPrx>)[ICELocatorPrx iceObjectPrxWithObjectPrx:COMMUNICATOR->getDefaultLocator()]; } catch(const std::exception& ex) { @@ -514,7 +430,7 @@ private: try { COMMUNICATOR->setDefaultLocator(Ice::LocatorPrx::uncheckedCast( - Ice::ObjectPrx([(ICEObjectPrx*)loc objectPrx__]))); + Ice::ObjectPrx([(ICEObjectPrx*)loc iceObjectPrx]))); } catch(const std::exception& ex) { @@ -529,12 +445,12 @@ private: { @throw [ICEFeatureNotSupportedException featureNotSupportedException:__FILE__ line:__LINE__]; } --(void) flushBatchRequests +-(void) flushBatchRequests:(ICECompressBatch)compress { NSException* nsex = nil; try { - COMMUNICATOR->flushBatchRequests(); + COMMUNICATOR->flushBatchRequests((Ice::CompressBatch)compress); } catch(const std::exception& ex) { @@ -545,22 +461,24 @@ private: @throw nsex; } } --(id<ICEAsyncResult>) begin_flushBatchRequests +-(id<ICEAsyncResult>) begin_flushBatchRequests:(ICECompressBatch)compress { return beginCppCall(^(Ice::AsyncResultPtr& result) { - result = COMMUNICATOR->begin_flushBatchRequests(); + result = COMMUNICATOR->begin_flushBatchRequests((Ice::CompressBatch)compress); }); } --(id<ICEAsyncResult>) begin_flushBatchRequests:(void(^)(ICEException*))exception +-(id<ICEAsyncResult>) begin_flushBatchRequests:(ICECompressBatch)compress exception:(void(^)(ICEException*))exception { - return [self begin_flushBatchRequests:exception sent:nil]; + return [self begin_flushBatchRequests:compress exception:exception sent:nil]; } --(id<ICEAsyncResult>) begin_flushBatchRequests:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent +-(id<ICEAsyncResult>) begin_flushBatchRequests:(ICECompressBatch)compress + exception:(void(^)(ICEException*))exception + sent:(void(^)(BOOL))sent { return beginCppCall(^(Ice::AsyncResultPtr& result, const Ice::CallbackPtr& cb) { - result = COMMUNICATOR->begin_flushBatchRequests(cb); + result = COMMUNICATOR->begin_flushBatchRequests((Ice::CompressBatch)compress, cb); }, ^(const Ice::AsyncResultPtr& result) { COMMUNICATOR->end_flushBatchRequests(result); @@ -580,7 +498,7 @@ private: try { Ice::ObjectAdapterPtr adminAdapter = [(ICEObjectAdapter*)adapter adapter]; - return [ICEObjectPrx objectPrxWithObjectPrx__:COMMUNICATOR->createAdmin(adminAdapter, [adminId identity])]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:COMMUNICATOR->createAdmin(adminAdapter, [adminId identity])]; } catch(const std::exception& ex) { @@ -593,7 +511,7 @@ private: NSException* nsex; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:COMMUNICATOR->getAdmin()]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:COMMUNICATOR->getAdmin()]; } catch(const std::exception& ex) { @@ -606,7 +524,7 @@ private: NSException* nsex; try { - COMMUNICATOR->addAdminFacet([servant object__], fromNSString(facet)); + COMMUNICATOR->addAdminFacet([servant iceObject], fromNSString(facet)); @synchronized(adminFacets_) { [adminFacets_ setObject:servant forKey:facet]; diff --git a/objective-c/src/Ice/ConnectionI.h b/objective-c/src/Ice/ConnectionI.h index b4b5f174ed6..184baceb0e9 100644 --- a/objective-c/src/Ice/ConnectionI.h +++ b/objective-c/src/Ice/ConnectionI.h @@ -8,11 +8,16 @@ // ********************************************************************** #import <objc/Ice/Connection.h> - #import <objc/Ice/LocalObject.h> #include <Ice/Connection.h> -//#include <IceSSL/ConnectionInfo.h> + +namespace IceObjC +{ + +ICE_API void registerConnectionInfoClass(Class cl); + +} @interface ICEConnectionInfo (ICEInternal) -(id) initWithConnectionInfo:(Ice::ConnectionInfo*)connectionInfo; @@ -34,9 +39,5 @@ -(id) initWithWSConnectionInfo:(Ice::WSConnectionInfo*)wsConnectionInfo; @end -// @interface ICESSLConnectionInfo (ICEInternal) -// -(id) initWithSSLConnectionInfo:(IceSSL::ConnectionInfo*)sslConnectionInfo; -// @end - @interface ICEConnection : ICELocalObject<ICEConnection> @end diff --git a/objective-c/src/Ice/ConnectionI.mm b/objective-c/src/Ice/ConnectionI.mm index df564b164f8..f91acd20339 100644 --- a/objective-c/src/Ice/ConnectionI.mm +++ b/objective-c/src/Ice/ConnectionI.mm @@ -2,7 +2,7 @@ // // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. // -// This copy of Ice is licensed to you under the terms described in the +// This copy of Ice is licensed to you the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** @@ -19,18 +19,96 @@ #import <objc/runtime.h> +#define CONNECTION dynamic_cast<Ice::Connection*>(static_cast<IceUtil::Shared*>(cxxObject_)) + +namespace +{ + +std::vector<Class>* connectionInfoClasses = 0; + +} + +namespace IceObjC +{ + +void +registerConnectionInfoClass(Class cl) +{ + if(!connectionInfoClasses) + { + connectionInfoClasses = new std::vector<Class>(); + } + connectionInfoClasses->push_back(cl); +} + +} + @implementation ICEConnectionInfo (ICEInternal) ++(id) checkedConnectionInfoWithConnectionInfo:(Ice::ConnectionInfo*)connectionInfo +{ + assert(false); + return nil; +} + ++(id) connectionInfoWithConnectionInfo:(NSValue*)v +{ + Ice::ConnectionInfo* info = dynamic_cast<Ice::ConnectionInfo*>(reinterpret_cast<IceUtil::Shared*>(v.pointerValue)); + if(!info) + { + return nil; + } + + Ice::UDPConnectionInfoPtr udpInfo = Ice::UDPConnectionInfoPtr::dynamicCast(info); + if(udpInfo) + { + return [[ICEUDPConnectionInfo alloc] initWithUDPConnectionInfo:udpInfo.get()]; + } + + Ice::WSConnectionInfoPtr wsInfo = Ice::WSConnectionInfoPtr::dynamicCast(info); + if(wsInfo) + { + return [[ICEWSConnectionInfo alloc] initWithWSConnectionInfo:wsInfo.get()]; + } + + Ice::TCPConnectionInfoPtr tcpInfo = Ice::TCPConnectionInfoPtr::dynamicCast(info); + if(tcpInfo) + { + return [[ICETCPConnectionInfo alloc] initWithTCPConnectionInfo:tcpInfo.get()]; + } + + if(connectionInfoClasses) + { + for(std::vector<Class>::const_iterator p = connectionInfoClasses->begin(); p != connectionInfoClasses->end(); + ++p) + { + ICEConnectionInfo* r = [*p checkedConnectionInfoWithConnectionInfo:info]; + if(r) + { + return r; + } + } + } + + Ice::IPConnectionInfoPtr ipInfo = Ice::IPConnectionInfoPtr::dynamicCast(info); + if(ipInfo) + { + return [[ICEIPConnectionInfo alloc] initWithIPConnectionInfo:ipInfo.get()]; + } + + return [[ICEConnectionInfo alloc] initWithConnectionInfo:info]; +} + -(id) initWithConnectionInfo:(Ice::ConnectionInfo*)connectionInfo; { self = [super initWithCxxObject:connectionInfo]; if(self != nil) { + self->underlying = [ICEConnectionInfo localObjectWithCxxObjectNoAutoRelease:connectionInfo->underlying.get() + allocator:@selector(connectionInfoWithConnectionInfo:)]; self->incoming = connectionInfo->incoming; self->adapterName = [[NSString alloc] initWithUTF8String:connectionInfo->adapterName.c_str()]; self->connectionId = [[NSString alloc] initWithUTF8String:connectionInfo->connectionId.c_str()]; - self->rcvSize = connectionInfo->rcvSize; - self->sndSize = connectionInfo->sndSize; } return self; } @@ -58,6 +136,11 @@ -(id) initWithTCPConnectionInfo:(Ice::TCPConnectionInfo*)tcpConnectionInfo { self = [super initWithIPConnectionInfo:tcpConnectionInfo]; + if(self) + { + self->rcvSize = tcpConnectionInfo->rcvSize; + self->sndSize = tcpConnectionInfo->sndSize; + } return self; } @end @@ -71,6 +154,8 @@ { self->mcastAddress = [[NSString alloc] initWithUTF8String:udpConnectionInfo->mcastAddress.c_str()]; self->mcastPort = udpConnectionInfo->mcastPort; + self->rcvSize = udpConnectionInfo->rcvSize; + self->sndSize = udpConnectionInfo->sndSize; } return self; } @@ -80,7 +165,7 @@ @implementation ICEWSConnectionInfo (ICEInternal) -(id) initWithWSConnectionInfo:(Ice::WSConnectionInfo*)wsConnectionInfo { - self = [super initWithIPConnectionInfo:wsConnectionInfo]; + self = [super initWithConnectionInfo:wsConnectionInfo]; if(self) { self->headers = toNSDictionary(wsConnectionInfo->headers); @@ -92,32 +177,31 @@ namespace { -class ConnectionCallbackI : public Ice::ConnectionCallback +class CloseCallbackI : public Ice::CloseCallback { public: - ConnectionCallbackI(id<ICEConnection> connection, id<ICEConnectionCallback> callback) : - _connection(connection), _callback(callback) + CloseCallbackI(id<ICEConnection> connection, ICECloseCallback callback) : + _connection(connection), _callback(Block_copy(callback)) { [_connection retain]; - [_callback retain]; } - ~ConnectionCallbackI() + ~CloseCallbackI() { [_connection release]; [_callback release]; } void - heartbeat(const Ice::ConnectionPtr& connection) + closed(const Ice::ConnectionPtr& connection) { NSException* ex = nil; @autoreleasepool { @try { - [_callback heartbeat:_connection]; + _callback(_connection); } @catch(id e) { @@ -130,15 +214,37 @@ public: } } +private: + + id<ICEConnection> _connection; + ICECloseCallback _callback; +}; + +class HeartbeatCallbackI : public Ice::HeartbeatCallback +{ +public: + + HeartbeatCallbackI(id<ICEConnection> connection, ICEHeartbeatCallback callback) : + _connection(connection), _callback(Block_copy(callback)) + { + [_connection retain]; + } + + ~HeartbeatCallbackI() + { + [_connection release]; + [_callback release]; + } + void - closed(const Ice::ConnectionPtr& connection) + heartbeat(const Ice::ConnectionPtr& connection) { NSException* ex = nil; @autoreleasepool { @try { - [_callback closed:_connection]; + _callback(_connection); } @catch(id e) { @@ -154,20 +260,18 @@ public: private: id<ICEConnection> _connection; - id<ICEConnectionCallback> _callback; + ICEHeartbeatCallback _callback; }; } -#define CONNECTION dynamic_cast<Ice::Connection*>(static_cast<IceUtil::Shared*>(cxxObject_)) - @implementation ICEConnection --(void) close:(BOOL)force +-(void) close:(ICEConnectionClose)mode { NSException* nsex = nil; try { - CONNECTION->close(force); + CONNECTION->close((Ice::ConnectionClose)mode); } catch(const std::exception& ex) { @@ -183,7 +287,7 @@ private: NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:CONNECTION->createProxy([identity identity])]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:CONNECTION->createProxy([identity identity])]; } catch(const std::exception& ex) { @@ -222,12 +326,12 @@ private: @throw nsex; return nil; // Keep the compiler happy. } --(void) flushBatchRequests +-(void) flushBatchRequests:(ICECompressBatch)compress { NSException* nsex = nil; try { - CONNECTION->flushBatchRequests(); + CONNECTION->flushBatchRequests((Ice::CompressBatch)compress); } catch(const std::exception& ex) { @@ -238,22 +342,24 @@ private: @throw nsex; } } --(id<ICEAsyncResult>) begin_flushBatchRequests +-(id<ICEAsyncResult>) begin_flushBatchRequests:(ICECompressBatch)compress { return beginCppCall(^(Ice::AsyncResultPtr& result) { - result = CONNECTION->begin_flushBatchRequests(); + result = CONNECTION->begin_flushBatchRequests((Ice::CompressBatch)compress); }); } --(id<ICEAsyncResult>) begin_flushBatchRequests:(void(^)(ICEException*))exception +-(id<ICEAsyncResult>) begin_flushBatchRequests:(ICECompressBatch)compress exception:(void(^)(ICEException*))exception { - return [self begin_flushBatchRequests:exception sent:nil]; + return [self begin_flushBatchRequests:compress exception:exception sent:nil]; } --(id<ICEAsyncResult>) begin_flushBatchRequests:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent +-(id<ICEAsyncResult>) begin_flushBatchRequests:(ICECompressBatch)compress + exception:(void(^)(ICEException*))exception + sent:(void(^)(BOOL))sent { return beginCppCall(^(Ice::AsyncResultPtr& result, const Ice::CallbackPtr& cb) { - result = CONNECTION->begin_flushBatchRequests(cb); + result = CONNECTION->begin_flushBatchRequests((Ice::CompressBatch)compress, cb); }, ^(const Ice::AsyncResultPtr& result) { CONNECTION->end_flushBatchRequests(result); @@ -267,9 +373,59 @@ private: CONNECTION->end_flushBatchRequests(r); }, result); } --(void) setCallback:(id<ICEConnectionCallback>)callback +-(void) setCloseCallback:(ICECloseCallback)callback; +{ + CONNECTION->setCloseCallback(new CloseCallbackI(self, callback)); +} +-(void) setHeartbeatCallback:(ICEHeartbeatCallback)callback +{ + CONNECTION->setHeartbeatCallback(new HeartbeatCallbackI(self, callback)); +} +-(void) heartbeat { - CONNECTION->setCallback(new ConnectionCallbackI(self, callback)); + NSException* nsex = nil; + try + { + CONNECTION->heartbeat(); + } + catch(const std::exception& ex) + { + nsex = toObjCException(ex); + } + if(nsex != nil) + { + @throw nsex; + } +} +-(id<ICEAsyncResult>) begin_heartbeat +{ + return beginCppCall(^(Ice::AsyncResultPtr& result) + { + result = CONNECTION->begin_heartbeat(); + }); +} +-(id<ICEAsyncResult>) begin_heartbeat:(void(^)(ICEException*))exception +{ + return [self begin_heartbeat:exception sent:nil]; +} +-(id<ICEAsyncResult>) begin_heartbeat:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent +{ + return beginCppCall(^(Ice::AsyncResultPtr& result, const Ice::CallbackPtr& cb) + { + result = CONNECTION->begin_heartbeat(cb); + }, + ^(const Ice::AsyncResultPtr& result) + { + CONNECTION->end_heartbeat(result); + }, + exception, sent); +} +-(void) end_heartbeat:(id<ICEAsyncResult>)result +{ + endCppCall(^(const Ice::AsyncResultPtr& r) + { + CONNECTION->end_heartbeat(r); + }, result); } -(void) setACM:(id)timeout close:(id)close heartbeat:(id)heartbeat { @@ -319,46 +475,8 @@ private: NSException* nsex = nil; try { - Ice::ConnectionInfoPtr info = CONNECTION->getInfo(); - if(!info) - { - return nil; - } - - Ice::UDPConnectionInfoPtr udpInfo = Ice::UDPConnectionInfoPtr::dynamicCast(info); - if(udpInfo) - { - return [[[ICEUDPConnectionInfo alloc] initWithUDPConnectionInfo:udpInfo.get()] autorelease]; - } - - Ice::WSConnectionInfoPtr wsInfo = Ice::WSConnectionInfoPtr::dynamicCast(info); - if(wsInfo) - { - return [[[ICEWSConnectionInfo alloc] initWithWSConnectionInfo:wsInfo.get()] autorelease]; - } - - Ice::TCPConnectionInfoPtr tcpInfo = Ice::TCPConnectionInfoPtr::dynamicCast(info); - if(tcpInfo) - { - return [[[ICETCPConnectionInfo alloc] initWithTCPConnectionInfo:tcpInfo.get()] autorelease]; - } - - std::ostringstream os; - os << "connectionInfoWithType_" << CONNECTION->type() << ":"; - SEL selector = sel_registerName(os.str().c_str()); - if([ICEConnectionInfo respondsToSelector:selector]) - { - IceUtil::Shared* shared = info.get(); - return [ICEConnectionInfo performSelector:selector withObject:[NSValue valueWithPointer:shared]]; - } - - Ice::IPConnectionInfoPtr ipInfo = Ice::IPConnectionInfoPtr::dynamicCast(info); - if(ipInfo) - { - return [[[ICEIPConnectionInfo alloc] initWithIPConnectionInfo:ipInfo.get()] autorelease]; - } - - return [[[ICEConnectionInfo alloc] initWithConnectionInfo:info.get()] autorelease]; + return [ICEConnectionInfo localObjectWithCxxObject:CONNECTION->getInfo().get() + allocator:@selector(connectionInfoWithConnectionInfo:)]; } catch(const std::exception& ex) { @@ -388,6 +506,23 @@ private: } } +-(void) throwException +{ + NSException* nsex = nil; + try + { + CONNECTION->throwException(); + } + catch(const std::exception& ex) + { + nsex = toObjCException(ex); + } + if(nsex != nil) + { + @throw nsex; + } +} + -(ICEEndpoint*) getEndpoint { NSException* nsex = nil; diff --git a/objective-c/src/Ice/DispatchInterceptor.m b/objective-c/src/Ice/DispatchInterceptor.m index 27c6beb687e..006f04c8e51 100644 --- a/objective-c/src/Ice/DispatchInterceptor.m +++ b/objective-c/src/Ice/DispatchInterceptor.m @@ -15,11 +15,11 @@ #import <Foundation/NSInvocation.h> @implementation ICEDispatchInterceptor --(BOOL) dispatch__:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os +-(void) iceDispatch:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os { ICERequest* request = [ICERequest request:current is:is os:os]; id<ICEDispatchInterceptor> dispatchInterceptor = (id<ICEDispatchInterceptor>)self; - return [dispatchInterceptor dispatch:request]; + [dispatchInterceptor dispatch:request]; } @end @@ -36,7 +36,7 @@ return [[[self alloc] init:s] autorelease]; } --(BOOL) dispatch:(id<ICERequest>)request +-(void) dispatch:(id<ICERequest>)request { SEL selector = @selector(ice_dispatch:); NSMethodSignature* sig = [[servant class] instanceMethodSignatureForSelector:selector]; @@ -44,12 +44,7 @@ [inv setTarget:servant]; [inv setSelector:selector]; [inv setArgument:&request atIndex:2]; - [inv performSelectorOnMainThread:@selector(invokeWithTarget:) withObject:servant waitUntilDone:YES]; - - BOOL status; - [inv getReturnValue:&status]; - return status; } -(void)dealloc diff --git a/objective-c/src/Ice/EndpointI.h b/objective-c/src/Ice/EndpointI.h index 437ac3c5a4c..5a6da849eb0 100644 --- a/objective-c/src/Ice/EndpointI.h +++ b/objective-c/src/Ice/EndpointI.h @@ -8,11 +8,17 @@ // ********************************************************************** #import <objc/Ice/Endpoint.h> - #import <objc/Ice/LocalObject.h> #include <Ice/Endpoint.h> +namespace IceObjC +{ + +ICE_API void registerEndpointInfoClass(Class cl); + +} + @interface ICEEndpoint : ICELocalObject<ICEEndpoint> -(Ice::Endpoint*) endpoint; @end diff --git a/objective-c/src/Ice/EndpointI.mm b/objective-c/src/Ice/EndpointI.mm index bc24e32cc15..3b987cbe09a 100644 --- a/objective-c/src/Ice/EndpointI.mm +++ b/objective-c/src/Ice/EndpointI.mm @@ -21,90 +21,96 @@ #define ENDPOINT dynamic_cast<Ice::Endpoint*>(static_cast<IceUtil::Shared*>(cxxObject_)) #define ENDPOINTINFO dynamic_cast<Ice::EndpointInfo*>(static_cast<IceUtil::Shared*>(cxxObject_)) -@implementation ICEEndpoint - --(Ice::Endpoint*) endpoint +namespace { - return ENDPOINT; + +std::vector<Class>* endpointInfoClasses = 0; + } --(ICEEndpointInfo*) getInfo +namespace IceObjC { - NSException* nsex = nil; - try + +void +registerEndpointInfoClass(Class cl) +{ + if(!endpointInfoClasses) { - Ice::EndpointInfoPtr info = ENDPOINT->getInfo(); - if(!info) - { - return nil; - } - - Ice::UDPEndpointInfoPtr udpInfo = Ice::UDPEndpointInfoPtr::dynamicCast(info); - if(udpInfo) - { - return [[[ICEUDPEndpointInfo alloc] initWithUDPEndpointInfo:udpInfo.get()] autorelease]; - } + endpointInfoClasses = new std::vector<Class>(); + } + endpointInfoClasses->push_back(cl); +} - Ice::WSEndpointInfoPtr wsInfo = Ice::WSEndpointInfoPtr::dynamicCast(info); - if(wsInfo) - { - return [[[ICEWSEndpointInfo alloc] initWithWSEndpointInfo:wsInfo.get()] autorelease]; - } +} - Ice::TCPEndpointInfoPtr tcpInfo = Ice::TCPEndpointInfoPtr::dynamicCast(info); - if(tcpInfo) - { - return [[[ICETCPEndpointInfo alloc] initWithTCPEndpointInfo:tcpInfo.get()] autorelease]; - } +@implementation ICEEndpointInfo(ICEInternal) - Ice::OpaqueEndpointInfoPtr opaqueInfo = Ice::OpaqueEndpointInfoPtr::dynamicCast(info); - if(opaqueInfo) - { - return [[[ICEOpaqueEndpointInfo alloc] initWithOpaqueEndpointInfo:opaqueInfo.get()] autorelease]; - } - - std::ostringstream os; - os << "endpointInfoWithType_" << info->type() << ":"; - SEL selector = sel_registerName(os.str().c_str()); - if([ICEEndpointInfo respondsToSelector:selector]) - { - IceUtil::Shared* shared = info.get(); - return [ICEEndpointInfo performSelector:selector withObject:[NSValue valueWithPointer:shared]]; - } ++(id) checkedEndpointInfoWithEndpointInfo:(Ice::EndpointInfo*)endpointInfo +{ + assert(false); + return nil; +} - Ice::IPEndpointInfoPtr ipInfo = Ice::IPEndpointInfoPtr::dynamicCast(info); - if(ipInfo) - { - return [[[ICEIPEndpointInfo alloc] initWithIPEndpointInfo:ipInfo.get()] autorelease]; - } ++(id) endpointInfoWithEndpointInfo:(NSValue*)v +{ + Ice::EndpointInfo* info = dynamic_cast<Ice::EndpointInfo*>(reinterpret_cast<IceUtil::Shared*>([v pointerValue])); + if(!info) + { + return nil; + } - return [[[ICEEndpointInfo alloc] initWithEndpointInfo:info.get()] autorelease]; + Ice::UDPEndpointInfoPtr udpInfo = Ice::UDPEndpointInfoPtr::dynamicCast(info); + if(udpInfo) + { + return [[ICEUDPEndpointInfo alloc] initWithUDPEndpointInfo:udpInfo.get()]; } - catch(const std::exception& ex) + + Ice::WSEndpointInfoPtr wsInfo = Ice::WSEndpointInfoPtr::dynamicCast(info); + if(wsInfo) { - nsex = toObjCException(ex); + return [[ICEWSEndpointInfo alloc] initWithWSEndpointInfo:wsInfo.get()]; } - if(nsex != nil) + + Ice::TCPEndpointInfoPtr tcpInfo = Ice::TCPEndpointInfoPtr::dynamicCast(info); + if(tcpInfo) { - @throw nsex; + return [[ICETCPEndpointInfo alloc] initWithTCPEndpointInfo:tcpInfo.get()]; } - return nil; -} --(NSMutableString*) toString -{ - return [toNSMutableString(ENDPOINT->toString()) autorelease]; -} + Ice::OpaqueEndpointInfoPtr opaqueInfo = Ice::OpaqueEndpointInfoPtr::dynamicCast(info); + if(opaqueInfo) + { + return [[ICEOpaqueEndpointInfo alloc] initWithOpaqueEndpointInfo:opaqueInfo.get()]; + } -@end + if(endpointInfoClasses) + { + for(std::vector<Class>::const_iterator p = endpointInfoClasses->begin(); p != endpointInfoClasses->end(); ++p) + { + ICEEndpointInfo* r = [*p checkedEndpointInfoWithEndpointInfo:info]; + if(r) + { + return r; + } + } + } -@implementation ICEEndpointInfo(ICEInternal) + Ice::IPEndpointInfoPtr ipInfo = Ice::IPEndpointInfoPtr::dynamicCast(info); + if(ipInfo) + { + return [[ICEIPEndpointInfo alloc] initWithIPEndpointInfo:ipInfo.get()]; + } + + return [[ICEEndpointInfo alloc] initWithEndpointInfo:info]; +} -(id) initWithEndpointInfo:(Ice::EndpointInfo*)endpointInfo; { self = [super initWithCxxObject:endpointInfo]; if(self) { + self->underlying = [ICEEndpointInfo localObjectWithCxxObjectNoAutoRelease:endpointInfo->underlying.get() + allocator:@selector(endpointInfoWithEndpointInfo:)]; self->timeout = endpointInfo->timeout; self->compress = endpointInfo->compress; } @@ -170,7 +176,7 @@ -(id) initWithWSEndpointInfo:(Ice::WSEndpointInfo*)wsEndpointInfo { - self = [super initWithIPEndpointInfo:wsEndpointInfo]; + self = [super initWithEndpointInfo:wsEndpointInfo]; if(self) { self->resource = [[NSString alloc] initWithUTF8String:wsEndpointInfo->resource.c_str()]; @@ -194,3 +200,37 @@ } @end + +@implementation ICEEndpoint + +-(Ice::Endpoint*) endpoint +{ + return ENDPOINT; +} + +-(ICEEndpointInfo*) getInfo +{ + NSException* nsex = nil; + try + { + return [ICEEndpointInfo localObjectWithCxxObject:ENDPOINT->getInfo().get() + allocator:@selector(endpointInfoWithEndpointInfo:)]; + } + catch(const std::exception& ex) + { + nsex = toObjCException(ex); + } + if(nsex != nil) + { + @throw nsex; + } + return nil; +} + +-(NSMutableString*) toString +{ + return [toNSMutableString(ENDPOINT->toString()) autorelease]; +} + +@end + diff --git a/objective-c/src/Ice/Exception.mm b/objective-c/src/Ice/Exception.mm index f382e83f7d6..c0db762d8f7 100644 --- a/objective-c/src/Ice/Exception.mm +++ b/objective-c/src/Ice/Exception.mm @@ -21,17 +21,22 @@ @implementation ICEException -(id)init { - return [super initWithName:[self ice_name] reason:nil userInfo:nil]; + return [super initWithName:[self ice_id] reason:nil userInfo:nil]; } -(id)initWithReason:(NSString*)reason { - return [super initWithName:[self ice_name] reason:reason userInfo:nil]; + return [super initWithName:[self ice_id] reason:reason userInfo:nil]; } -(NSString*)ice_name { - NSAssert(false, @"ice_name not overriden"); + return [[self ice_id] substringFromIndex:2]; +} + +-(NSString*)ice_id +{ + NSAssert(false, @"ice_id not overriden"); return nil; } @@ -166,33 +171,33 @@ localExceptionToString(const Ice::LocalException& ex) @end @implementation ICEUserException --(BOOL)usesClasses__ +-(BOOL)iceUsesClasses { return NO; } --(void)write__:(id<ICEOutputStream>)os +-(void)iceWrite:(id<ICEOutputStream>)os { [os startException:nil]; - [self writeImpl__:os]; + [self iceWriteImpl:os]; [os endException]; } --(void) writeImpl__:(id<ICEOutputStream>)os +-(void) iceWriteImpl:(id<ICEOutputStream>)os { - NSAssert(NO, @"writeImpl__ requires override"); + NSAssert(NO, @"iceWriteImpl requires override"); } --(void)read__:(id<ICEInputStream>)is +-(void)iceRead:(id<ICEInputStream>)is { [is startException]; - [self readImpl__:is]; + [self iceReadImpl:is]; [is endException:NO]; } --(void) readImpl__:(id<ICEInputStream>)is +-(void) iceReadImpl:(id<ICEInputStream>)is { - NSAssert(NO, @"readImpl__ requires override"); + NSAssert(NO, @"iceReadImpl requires override"); } -(id) copyWithZone:(NSZone *)zone @@ -730,13 +735,6 @@ localExceptionToString(const Ice::LocalException& ex) } @end -@implementation ICEForcedCloseConnectionException (ICEInternal) --(void) rethrowCxx -{ - throw Ice::ForcedCloseConnectionException(file, line, fromNSString([self reason_])); -} -@end - @implementation ICEIllegalMessageSizeException (ICEInternal) -(void) rethrowCxx { @@ -864,7 +862,7 @@ localExceptionToString(const Ice::LocalException& ex) } @end -@implementation ICENoObjectFactoryException (ICEInternal) +@implementation ICENoValueFactoryException (ICEInternal) -(id)initWithLocalException:(const Ice::LocalException&)ex { self = [super initWithLocalException:ex]; @@ -872,14 +870,14 @@ localExceptionToString(const Ice::LocalException& ex) { return nil; } - NSAssert(dynamic_cast<const Ice::NoObjectFactoryException*>(&ex), @"invalid local exception type"); - const Ice::NoObjectFactoryException& localEx = dynamic_cast<const Ice::NoObjectFactoryException&>(ex); + NSAssert(dynamic_cast<const Ice::NoValueFactoryException*>(&ex), @"invalid local exception type"); + const Ice::NoValueFactoryException& localEx = dynamic_cast<const Ice::NoValueFactoryException&>(ex); type = toNSString(localEx.type); return self; } -(void) rethrowCxx { - throw Ice::NoObjectFactoryException(file, line, fromNSString([self reason_]), fromNSString(type)); + throw Ice::NoValueFactoryException(file, line, fromNSString([self reason_]), fromNSString(type)); } @end diff --git a/objective-c/src/Ice/ImplicitContextI.h b/objective-c/src/Ice/ImplicitContextI.h index 6b3051e4646..18edac6a26c 100644 --- a/objective-c/src/Ice/ImplicitContextI.h +++ b/objective-c/src/Ice/ImplicitContextI.h @@ -15,7 +15,7 @@ { @private - Ice::ImplicitContext* implicitContext__; + Ice::ImplicitContext* implicitContext_; } -(id) init:(Ice::ImplicitContext*)implicitContext; +(id) implicitContextWithImplicitContext:(Ice::ImplicitContext*)implicitContext; diff --git a/objective-c/src/Ice/ImplicitContextI.mm b/objective-c/src/Ice/ImplicitContextI.mm index 0930d1b7c4a..c00f56a2bce 100644 --- a/objective-c/src/Ice/ImplicitContextI.mm +++ b/objective-c/src/Ice/ImplicitContextI.mm @@ -17,8 +17,8 @@ self = [super init]; if(self) { - self->implicitContext__ = implicitContext; - self->implicitContext__->__incRef(); + self->implicitContext_ = implicitContext; + self->implicitContext_->__incRef(); } return self; } @@ -37,32 +37,32 @@ -(void) dealloc { - self->implicitContext__->__decRef(); + self->implicitContext_->__decRef(); [super dealloc]; } -(ICEContext*) getContext { - return [toNSDictionary(implicitContext__->getContext()) autorelease]; + return [toNSDictionary(implicitContext_->getContext()) autorelease]; } -(void) setContext:(ICEContext*)context { Ice::Context ctx; fromNSDictionary(context, ctx); - implicitContext__->setContext(ctx); + implicitContext_->setContext(ctx); } -(BOOL) containsKey:(NSString*)key { - return implicitContext__->containsKey(fromNSString(key)); + return implicitContext_->containsKey(fromNSString(key)); } -(NSMutableString*) get:(NSString*)key { - if(implicitContext__->containsKey(fromNSString(key))) + if(implicitContext_->containsKey(fromNSString(key))) { - return [toNSMutableString(implicitContext__->get(fromNSString(key))) autorelease]; + return [toNSMutableString(implicitContext_->get(fromNSString(key))) autorelease]; } else { @@ -72,12 +72,12 @@ -(NSMutableString*) put:(NSString*)key value:(NSString*)value { - return [toNSMutableString(implicitContext__->put(fromNSString(key), fromNSString(value))) autorelease]; + return [toNSMutableString(implicitContext_->put(fromNSString(key), fromNSString(value))) autorelease]; } -(NSMutableString*) remove:(NSString*)key { - return [toNSMutableString(implicitContext__->remove(fromNSString(key))) autorelease]; + return [toNSMutableString(implicitContext_->remove(fromNSString(key))) autorelease]; } @end diff --git a/objective-c/src/Ice/Initialize.mm b/objective-c/src/Ice/Initialize.mm index 8a81a10daa1..a7ce4ab2b60 100644 --- a/objective-c/src/Ice/Initialize.mm +++ b/objective-c/src/Ice/Initialize.mm @@ -22,6 +22,7 @@ #import <objc/Ice/LocalException.h> #include <Ice/Initialize.h> +#include <Ice/RegisterPlugins.h> #include <IceUtil/UUID.h> #include <IceUtil/MutexPtrLock.h> @@ -34,6 +35,21 @@ # define ICE_USE_CFSTREAM 1 #endif +extern "C" +{ + +Ice::Plugin* +createIceSSL(const Ice::CommunicatorPtr&, const std::string&, const Ice::StringSeq&); +Ice::Plugin* +createIceDiscovery(const Ice::CommunicatorPtr&, const std::string&, const Ice::StringSeq&); +Ice::Plugin* +createIceLocatorDiscovery(const Ice::CommunicatorPtr&, const std::string&, const Ice::StringSeq&); +#if defined(__APPLE__) && TARGET_OS_IPHONE > 0 +Ice::Plugin* +createIceIAP(const Ice::CommunicatorPtr&, const std::string&, const Ice::StringSeq&); +#endif +} + namespace { typedef std::map<int, std::string> CompactIdMap; @@ -171,7 +187,7 @@ private: @synthesize logger; @synthesize dispatcher; @synthesize batchRequestInterceptor; -@synthesize prefixTable__; +@synthesize prefixTable_; -(id) init:(id<ICEProperties>)props logger:(id<ICELogger>)log dispatcher:(void(^)(id<ICEDispatcherCall>, id<ICEConnection>))d; @@ -206,7 +222,7 @@ private: copy->properties = [properties retain]; copy->logger = [logger retain]; copy->dispatcher = [dispatcher copy]; - copy->prefixTable__ = [prefixTable__ retain]; + copy->prefixTable_ = [prefixTable_ retain]; return copy; } @@ -215,7 +231,7 @@ private: NSUInteger h = 0; h = (h << 5 ^ [properties hash]); h = (h << 5 ^ [logger hash]); - h = (h << 5 ^ [prefixTable__ hash]); + h = (h << 5 ^ [prefixTable_ hash]); return h; } @@ -272,16 +288,16 @@ private: return NO; } } - if(!prefixTable__) + if(!prefixTable_) { - if(obj->prefixTable__) + if(obj->prefixTable_) { return NO; } } else { - if(![prefixTable__ isEqual:obj->prefixTable__]) + if(![prefixTable_ isEqual:obj->prefixTable_]) { return NO; } @@ -294,7 +310,7 @@ private: [properties release]; [logger release]; [dispatcher release]; - [prefixTable__ release]; + [prefixTable_ release]; [super dealloc]; } @end @@ -390,7 +406,7 @@ private: } ICECommunicator* c = [ICECommunicator localObjectWithCxxObject:communicator.get()]; - [c setup:initData.prefixTable__]; + [c setup:initData]; return c; } catch(const std::exception& ex) @@ -401,23 +417,12 @@ private: return nil; // Keep the compiler happy. } -+(id<ICEInputStream>) createInputStream:(id<ICECommunicator>)communicator data:(NSData*)data ++(id<ICEInputStream>) createInputStream:(id<ICECommunicator>)c data:(NSData*)data { NSException* nsex = nil; try { - Ice::CommunicatorPtr com = [(ICECommunicator*)communicator communicator]; - Ice::Byte* start = (Ice::Byte*)[data bytes]; - Ice::Byte* end = (Ice::Byte*)[data bytes] + [data length]; - Ice::InputStreamPtr is = Ice::createInputStream(com, std::make_pair(start, end)); - if(is) - { - return [ICEInputStream localObjectWithCxxObject:is.get()]; - } - else - { - return nil; - } + return [[[ICEInputStream alloc] initWithCommunicator:c data:data encoding:nil] autorelease]; } catch(const std::exception& ex) { @@ -432,70 +437,7 @@ private: NSException* nsex = nil; try { - Ice::CommunicatorPtr com = [(ICECommunicator*)c communicator]; - Ice::Byte* start = (Ice::Byte*)[data bytes]; - Ice::Byte* end = (Ice::Byte*)[data bytes] + [data length]; - Ice::InputStreamPtr is = Ice::createInputStream(com, std::make_pair(start, end), [e encodingVersion]); - if(is) - { - return [ICEInputStream localObjectWithCxxObject:is.get()]; - } - else - { - return nil; - } - } - catch(const std::exception& ex) - { - nsex = toObjCException(ex); - } - @throw nsex; - return nil; // Keep the compiler happy. -} - -+(id<ICEInputStream>) wrapInputStream:(id<ICECommunicator>)communicator data:(NSData*)data -{ - NSException* nsex = nil; - try - { - Ice::CommunicatorPtr com = [(ICECommunicator*)communicator communicator]; - Ice::Byte* start = (Ice::Byte*)[data bytes]; - Ice::Byte* end = (Ice::Byte*)[data bytes] + [data length]; - Ice::InputStreamPtr is = Ice::wrapInputStream(com, std::make_pair(start, end)); - if(is) - { - return [ICEInputStream localObjectWithCxxObject:is.get()]; - } - else - { - return nil; - } - } - catch(const std::exception& ex) - { - nsex = toObjCException(ex); - } - @throw nsex; - return nil; // Keep the compiler happy. -} - -+(id<ICEInputStream>) wrapInputStream:(id<ICECommunicator>)c data:(NSData*)data encoding:(ICEEncodingVersion*)e -{ - NSException* nsex = nil; - try - { - Ice::CommunicatorPtr com = [(ICECommunicator*)c communicator]; - Ice::Byte* start = (Ice::Byte*)[data bytes]; - Ice::Byte* end = (Ice::Byte*)[data bytes] + [data length]; - Ice::InputStreamPtr is = Ice::wrapInputStream(com, std::make_pair(start, end), [e encodingVersion]); - if(is) - { - return [ICEInputStream localObjectWithCxxObject:is.get()]; - } - else - { - return nil; - } + return [[[ICEInputStream alloc] initWithCommunicator:c data:data encoding:e] autorelease]; } catch(const std::exception& ex) { @@ -510,16 +452,7 @@ private: NSException* nsex = nil; try { - Ice::CommunicatorPtr com = [(ICECommunicator*)communicator communicator]; - Ice::OutputStreamPtr os = Ice::createOutputStream(com); - if(os) - { - return [ICEOutputStream localObjectWithCxxObject:os.get()]; - } - else - { - return nil; - } + return [[[ICEOutputStream alloc] initWithCommunicator:communicator encoding:nil] autorelease]; } catch(const std::exception& ex) { @@ -534,16 +467,7 @@ private: NSException* nsex = nil; try { - Ice::CommunicatorPtr com = [(ICECommunicator*)communicator communicator]; - Ice::OutputStreamPtr os = Ice::createOutputStream(com, [encoding encodingVersion]); - if(os) - { - return [ICEOutputStream localObjectWithCxxObject:os.get()]; - } - else - { - return nil; - } + return [[[ICEOutputStream alloc] initWithCommunicator:communicator encoding:encoding] autorelease]; } catch(const std::exception& ex) { @@ -630,12 +554,13 @@ private: return nil; // Keep the compiler happy. } -+(NSMutableString*) identityToString:(ICEIdentity*)ident ++(NSMutableString*) identityToString:(ICEIdentity*)ident toStringMode:(ICEToStringMode)toStringMode { NSException* nsex = nil; try { - return [toNSMutableString(Ice::identityToString([ident identity])) autorelease]; + return [toNSMutableString(Ice::identityToString([ident identity], + static_cast<Ice::ToStringMode>(toStringMode))) autorelease]; } catch(const std::exception& ex) { @@ -644,6 +569,12 @@ private: @throw nsex; return nil; // Keep the compiler happy. } + ++(NSMutableString*) identityToString:(ICEIdentity*)ident +{ + return [ICEUtil identityToString:ident toStringMode:ICEUnicode]; +} + @end @implementation ICEEncodingVersion(StringConv) diff --git a/objective-c/src/Ice/LocalObject.mm b/objective-c/src/Ice/LocalObject.mm index dc8e0feff65..0321a776619 100644 --- a/objective-c/src/Ice/LocalObject.mm +++ b/objective-c/src/Ice/LocalObject.mm @@ -16,7 +16,7 @@ #define CXXOBJECT ((IceUtil::Shared*)cxxObject_) -namespace +namespace { std::map<IceUtil::Shared*, ICELocalObject*> cachedObjects; @@ -59,7 +59,7 @@ std::map<IceUtil::Shared*, ICELocalObject*> cachedObjects; } -(void) dealloc -{ +{ if(cxxObject_) { // @@ -84,7 +84,7 @@ std::map<IceUtil::Shared*, ICELocalObject*> cachedObjects; { return nil; } - + @synchronized([ICELocalObject class]) { std::map<IceUtil::Shared*, ICELocalObject*>::const_iterator p = cachedObjects.find(arg); @@ -102,7 +102,7 @@ std::map<IceUtil::Shared*, ICELocalObject*> cachedObjects; { return nil; } - + @synchronized([ICELocalObject class]) { std::map<IceUtil::Shared*, ICELocalObject*>::const_iterator p = cachedObjects.find(arg); @@ -118,11 +118,37 @@ std::map<IceUtil::Shared*, ICELocalObject*> cachedObjects; return nil; // Keep the compiler happy. } ++(id) localObjectWithCxxObjectNoAutoRelease:(IceUtil::Shared*)arg allocator:(SEL)alloc +{ + if(arg == 0) + { + return nil; + } + + @synchronized([ICELocalObject class]) + { + std::map<IceUtil::Shared*, ICELocalObject*>::const_iterator p = cachedObjects.find(arg); + if(p != cachedObjects.end()) + { + return [p->second retain]; + } + else + { + return [self performSelector:alloc withObject:[NSValue valueWithPointer:arg]]; + } + } + return nil; // Keep the compiler happy. +} + +(id) localObjectWithCxxObject:(IceUtil::Shared*)arg { return [[self localObjectWithCxxObjectNoAutoRelease:arg] autorelease]; } ++(id) localObjectWithCxxObject:(IceUtil::Shared*)arg allocator:(SEL)alloc +{ + return [[self localObjectWithCxxObjectNoAutoRelease:arg allocator:alloc] autorelease]; +} -(id) retain { @@ -132,7 +158,7 @@ std::map<IceUtil::Shared*, ICELocalObject*> cachedObjects; -(oneway void) release { - @synchronized([ICELocalObject class]) + @synchronized([ICELocalObject class]) { if(NSDecrementExtraRefCountWasZero(self)) { diff --git a/objective-c/src/Ice/LocalObjectI.h b/objective-c/src/Ice/LocalObjectI.h index 97ab13e82e8..6f59daf9316 100644 --- a/objective-c/src/Ice/LocalObjectI.h +++ b/objective-c/src/Ice/LocalObjectI.h @@ -24,7 +24,9 @@ class Shared; +(id) getLocalObjectWithCxxObjectNoAutoRelease:(IceUtil::Shared*)arg; +(id) localObjectWithCxxObjectNoAutoRelease:(IceUtil::Shared*)arg; ++(id) localObjectWithCxxObjectNoAutoRelease:(IceUtil::Shared*)arg allocator:(SEL)alloc; +(id) localObjectWithCxxObject:(IceUtil::Shared*)arg; ++(id) localObjectWithCxxObject:(IceUtil::Shared*)arg allocator:(SEL)alloc; -(IceUtil::Shared*) cxxObject; @end diff --git a/objective-c/src/Ice/Makefile b/objective-c/src/Ice/Makefile deleted file mode 100644 index 667cfa11b63..00000000000 --- a/objective-c/src/Ice/Makefile +++ /dev/null @@ -1,128 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -LIBFILENAME = $(call mklibfilename,IceObjC$(libsuffix),$(VERSION)) -SONAME = $(call mksoname,IceObjC$(libsuffix),$(SOVERSION)) -LIBNAME = $(call mklibname,IceObjC$(libsuffix)) - -TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) - -SLICE_OBJS = BuiltinSequences.o \ - Communicator.o \ - CommunicatorF.o \ - Connection.o \ - ConnectionF.o \ - Current.o \ - Endpoint.o \ - EndpointF.o \ - EndpointTypes.o \ - FacetMap.o \ - Identity.o \ - InstrumentationF.o \ - ImplicitContext.o \ - ImplicitContextF.o \ - Locator.o \ - LocatorF.o \ - LocalException.o \ - Logger.o \ - LoggerF.o \ - Metrics.o \ - ObjectAdapter.o \ - ObjectAdapterF.o \ - ObjectFactoryF.o \ - PluginF.o \ - Process.o \ - ProcessF.o \ - Properties.o \ - PropertiesF.o \ - PropertiesAdmin.o \ - RemoteLogger.o \ - Router.o \ - RouterF.o \ - ServantLocator.o \ - ServantLocatorF.o \ - SliceChecksumDict.o \ - Version.o - -OBJC_OBJS = DispatchInterceptor.o \ - Request.o \ - $(SLICE_OBJS) - -OBJCXX_OBJS = BatchRequestInterceptor.o \ - CommunicatorI.o \ - ConnectionI.o \ - CurrentI.o \ - EndpointI.o \ - Exception.o \ - Dispatcher.o \ - IdentityI.o \ - ImplicitContextI.o \ - Initialize.o \ - LocalObject.o \ - LoggerI.o \ - Object.o \ - ObjectAdapterI.o \ - PropertiesI.o \ - Proxy.o \ - Stream.o \ - SlicedData.o \ - Util.o \ - VersionI.o - -OBJS := $(OBJC_OBJS) $(OBJCXX_OBJS) - -HDIR = $(includedir)/objc/Ice -SDIR = $(slicedir)/Ice - -include $(top_srcdir)/config/Make.rules - -# -# Set RPATH to the cpp/lib directory or Ice installation lib directory. Note that unlike Linux -# platforms, we always set the RPATH for source builds on OS X. This is required because we -# can no longer rely on DYLD_LIBRARY_PATH on El Capitan. The RPATH is updated when the library -# is installed (see cpp/config/Make.rules.Darwin). -# -ifdef ice_src_dist - RPATH_DIR = @loader_path/../../cpp/$(libsubdir) -else - RPATH_DIR = $(ice_dir)/$(libsubdir) -endif - -ifdef usr_dir_install - installlib += ; install_name_tool -delete_rpath $(RPATH_DIR) $(1)/$(3) -else ifdef ice_src_dist - installlib += ; install_name_tool -delete_rpath $(RPATH_DIR) $(1)/$(3) -endif - -CPPFLAGS := -I. -I$(ice_cpp_dir)/include -DICE_API_EXPORTS $(CPPFLAGS) -SLICE2OBJCFLAGS := --ice --include-dir objc/Ice --dll-export ICE_API $(SLICE2OBJCFLAGS) -LINKWITH := $(BASELIBS) -LDFLAGS := -Wl,-rpath,$(RPATH_DIR) $(LDFLAGS) - -$(libdir)/$(LIBFILENAME): $(OBJS) - rm -f $@ - $(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH)) - -$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(libdir)/$(LIBNAME): $(libdir)/$(SONAME) - rm -f $@ - ln -s $(SONAME) $@ - -# Prevent generation of these files from .ice files - -$(HDIR)/ObjectFactory.h ObjectFactory.m: - @echo - -install:: all - $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) diff --git a/objective-c/src/Ice/Makefile.mk b/objective-c/src/Ice/Makefile.mk new file mode 100644 index 00000000000..d47e61d6d16 --- /dev/null +++ b/objective-c/src/Ice/Makefile.mk @@ -0,0 +1,30 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(project)_libraries = IceObjC + +IceObjC_targetdir := $(libdir) +IceObjC_cppflags := -DICE_API_EXPORTS -I$(project) -I$(top_srcdir)/cpp/include -I$(top_srcdir)/cpp/include/generated +IceObjC_sliceflags := --include-dir objc/Ice +IceObjC_dependencies := Ice +IceObjC_slicedir := $(slicedir)/Ice +IceObjC_includedir := $(includedir)/objc/Ice +IceObjC_excludes := $(slicedir)/Ice/ValueFactory.ice \ + $(slicedir)/Ice/ObjectFactory.ice \ + $(slicedir)/Ice/Instrumentation.ice \ + $(slicedir)/Ice/Plugin.ice + +IceObjC_install:: $(install_includedir)/objc/Ice.h + +# Create the default implicit rule for these 2 header files to make sure the +# Slice files aren't re-generated +$(includedir)/objc/Ice/ValueFactory.h: ; +$(includedir)/objc/Ice/ObjectFactory.h: ; + +projects += $(project) diff --git a/objective-c/src/Ice/Object.mm b/objective-c/src/Ice/Object.mm index a985001129d..bbace1b827f 100644 --- a/objective-c/src/Ice/Object.mm +++ b/objective-c/src/Ice/Object.mm @@ -25,7 +25,7 @@ namespace { -std::map<Ice::Object*, ICEObjectWrapper*> cachedObjects; +std::map<Ice::Object*, ICEServantWrapper*> cachedObjects; NSString* operationModeToString(ICEOperationMode mode) @@ -46,7 +46,7 @@ operationModeToString(ICEOperationMode mode) } } -class ObjectI : public IceObjC::ObjectWrapper, public Ice::BlobjectArrayAsync +class ObjectI : public IceObjC::ServantWrapper, public Ice::BlobjectArrayAsync { public: @@ -56,7 +56,7 @@ public: const std::pair<const Ice::Byte*, const Ice::Byte*>&, const Ice::Current&); - virtual ICEObject* getObject() + virtual ICEObject* getServant() { return _object; } @@ -78,7 +78,7 @@ private: ICEServant* _object; }; -class BlobjectI : public IceObjC::ObjectWrapper, public Ice::BlobjectArrayAsync +class BlobjectI : public IceObjC::ServantWrapper, public Ice::BlobjectArrayAsync { public: @@ -88,7 +88,7 @@ public: const std::pair<const Ice::Byte*, const Ice::Byte*>&, const Ice::Current&); - virtual ICEObject* getObject() + virtual ICEObject* getServant() { return _blobject; } @@ -117,19 +117,12 @@ ObjectI::ObjectI(ICEServant* object) : _object(object) void ObjectI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, - const std::pair<const Ice::Byte*, const Ice::Byte*>& inParams, - const Ice::Current& current) + const std::pair<const Ice::Byte*, const Ice::Byte*>& inParams, + const Ice::Current& current) { - ICEInputStream* is = nil; - ICEOutputStream* os = nil; - { - Ice::InputStreamPtr s = Ice::createInputStream(current.adapter->getCommunicator(), inParams); - is = [ICEInputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - } - { - Ice::OutputStreamPtr s = Ice::createOutputStream(current.adapter->getCommunicator()); - os = [ICEOutputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - } + Ice::Communicator* communicator = current.adapter->getCommunicator().get(); + ICEInputStream* is = [[ICEInputStream alloc] initWithCxxCommunicator:communicator data:inParams]; + ICEOutputStream* os = [[ICEOutputStream alloc] initWithCxxCommunicator:communicator]; NSException* exception = nil; BOOL ok = YES; // Keep the compiler happy @@ -138,7 +131,14 @@ ObjectI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, ICECurrent* c = [[ICECurrent alloc] initWithCurrent:current]; @try { - ok = [_object dispatch__:c is:is os:os]; + [_object iceDispatch:c is:is os:os]; + } + @catch(ICEUserException* ex) + { + // The generated code started the encapsulation with the appropriate format. + ok = NO; + [os writeException:ex]; + [os endEncapsulation]; } @catch(id ex) { @@ -157,21 +157,18 @@ ObjectI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, rethrowCxxException(exception, true); // True = release the exception. } - std::vector<Ice::Byte> outParams; - [os os]->finished(outParams); + cb->ice_response(ok, [os os]->finished()); [os release]; - - cb->ice_response(ok, std::make_pair(&outParams[0], &outParams[0] + outParams.size())); } -BlobjectI::BlobjectI(ICEBlobject* blobject) : _blobject(blobject), _target([blobject target__]) +BlobjectI::BlobjectI(ICEBlobject* blobject) : _blobject(blobject), _target([blobject iceTarget]) { } void BlobjectI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, - const std::pair<const Ice::Byte*, const Ice::Byte*>& inEncaps, - const Ice::Current& current) + const std::pair<const Ice::Byte*, const Ice::Byte*>& inEncaps, + const Ice::Current& current) { NSException* exception = nil; BOOL ok = YES; // Keep the compiler happy. @@ -188,6 +185,17 @@ BlobjectI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, ok = [_target ice_invoke:inE outEncaps:&outE current:c]; [outE retain]; } + @catch(ICEUserException* ex) + { + ok = NO; + Ice::Communicator* communicator = current.adapter->getCommunicator().get(); + ICEOutputStream* os = [[ICEOutputStream alloc] initWithCxxCommunicator:communicator]; + [os startEncapsulation:c.encoding format:ICEDefaultFormat]; + [os writeException:ex]; + [os endEncapsulation]; + outE = [[os finished] retain]; + [os release]; + } @catch(id ex) { exception = [ex retain]; @@ -276,15 +284,15 @@ ICEInternalCheckModeAndSelector(id target, ICEOperationMode expected, SEL sel, I } @implementation ICEObject (ICEInternal) --(Ice::Object*) object__ +-(Ice::Object*) iceObject { - NSAssert(NO, @"object__ requires override"); + NSAssert(NO, @"iceObject requires override"); return 0; } @end @implementation ICEObject -static NSString* ICEObject_ids__[1] = +static NSString* ICEObject_ids[1] = { @"::Ice::Object" }; @@ -344,30 +352,29 @@ static NSString* ICEObject_ids__[1] = NSAssert(NO, @"ice_ids requires override"); return nil; } --(BOOL) ice_dispatch:(id<ICERequest>)request; +-(void) ice_dispatch:(id<ICERequest>)request; { NSAssert(NO, @"ice_dispatch requires override"); - return NO; } +(NSString*) ice_staticId { int count, index; - NSString*const* staticIds = [self staticIds__:&count idIndex:&index]; + NSString*const* staticIds = [self iceStaticIds:&count idIndex:&index]; return staticIds[index]; } -+(NSString*const*) staticIds__:(int*)count idIndex:(int*)idx ++(NSString*const*) iceStaticIds:(int*)count idIndex:(int*)idx { - *count = sizeof(ICEObject_ids__) / sizeof(NSString*); + *count = sizeof(ICEObject_ids) / sizeof(NSString*); *idx = 0; - return ICEObject_ids__; + return ICEObject_ids; } --(void) write__:(id<ICEOutputStream>)os +-(void) iceWrite:(id<ICEOutputStream>)os { - NSAssert(NO, @"write__ requires override"); + NSAssert(NO, @"iceWrite requires override"); } --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { - NSAssert(NO, @"read__ requires override"); + NSAssert(NO, @"iceRead requires override"); } -(id) copyWithZone:(NSZone*)zone { @@ -376,7 +383,7 @@ static NSString* ICEObject_ids__[1] = @end @implementation ICEServant -static NSString* ICEObject_all__[4] = +static NSString* ICEObject_all[4] = { @"ice_id", @"ice_ids", @@ -391,8 +398,8 @@ static NSString* ICEObject_all__[4] = { return nil; } - object__ = 0; - delegate__ = 0; + iceObject_ = 0; + iceDelegate_ = 0; return self; } @@ -403,19 +410,19 @@ static NSString* ICEObject_all__[4] = { return nil; } - object__ = 0; - delegate__ = [delegate retain]; + iceObject_ = 0; + iceDelegate_ = [delegate retain]; return self; } -(void) dealloc { - if(object__) + if(iceObject_) { - delete static_cast<IceObjC::ObjectWrapper*>(object__); - object__ = 0; + delete static_cast<IceObjC::ServantWrapper*>(iceObject_); + iceObject_ = 0; } - [delegate__ release]; + [iceDelegate_ release]; [super dealloc]; } @@ -427,7 +434,7 @@ static NSString* ICEObject_all__[4] = -(BOOL) ice_isA:(NSString*)typeId current:(ICECurrent*)current { int count, index; - NSString*const* staticIds = [[self class] staticIds__:&count idIndex:&index]; + NSString*const* staticIds = [[self class] iceStaticIds:&count idIndex:&index]; return ICEInternalLookupString(staticIds, count, typeId) >= 0; } @@ -444,123 +451,114 @@ static NSString* ICEObject_all__[4] = -(NSArray*) ice_ids:(ICECurrent*)current { int count, index; - NSString*const* staticIds = [[self class] staticIds__:&count idIndex:&index]; + NSString*const* staticIds = [[self class] iceStaticIds:&count idIndex:&index]; return [NSArray arrayWithObjects:staticIds count:count]; } --(BOOL) ice_dispatch:(id<ICERequest>)request +-(void) ice_dispatch:(id<ICERequest>)request { - @try - { - ICERequest* requestI = (ICERequest*)request; - return [requestI callDispatch:self]; - } - @catch(ICELocalException*) - { - @throw; - } - return FALSE; + [(ICERequest*)request callDispatch:self]; } -+(BOOL) ice_isA___:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os ++(void) iceD_ice_isA:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os { ICEEncodingVersion* encoding = [is startEncapsulation]; - NSString* id__ = [is readString]; + NSString* ident = [is readString]; [is endEncapsulation]; [os startEncapsulation:encoding format:ICEDefaultFormat]; - BOOL ret__ = [servant ice_isA:id__ current:current]; - [os writeBool:ret__]; + BOOL ret = [servant ice_isA:ident current:current]; + [os writeBool:ret]; [os endEncapsulation]; - return YES; } -+(BOOL) ice_ping___:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os ++(void) iceD_ice_ping:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os { ICEEncodingVersion* encoding = [is startEncapsulation]; [is endEncapsulation]; [os startEncapsulation:encoding format:ICEDefaultFormat]; [servant ice_ping:current]; [os endEncapsulation]; - return YES; } -+(BOOL) ice_id___:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os ++(void) iceD_ice_id:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os { ICEEncodingVersion* encoding = [is startEncapsulation]; [is endEncapsulation]; [os startEncapsulation:encoding format:ICEDefaultFormat]; - NSString* ret__ = [servant ice_id:current]; - [os writeString:ret__]; + NSString* ret = [servant ice_id:current]; + [os writeString:ret]; [os endEncapsulation]; - return YES; } -+(BOOL) ice_ids___:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os ++(void) iceD_ice_ids:(id)servant current:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os { ICEEncodingVersion* encoding = [is startEncapsulation]; [is endEncapsulation]; [os startEncapsulation:encoding format:ICEDefaultFormat]; - NSArray* ret__ = [servant ice_ids:current]; - [os writeStringSeq:ret__]; + NSArray* ret = [servant ice_ids:current]; + [os writeStringSeq:ret]; [os endEncapsulation]; - return YES; } --(BOOL) dispatch__:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os +-(void) iceDispatch:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os { - switch(ICEInternalLookupString(ICEObject_all__, sizeof(ICEObject_all__) / sizeof(NSString*), current.operation)) + switch(ICEInternalLookupString(ICEObject_all, sizeof(ICEObject_all) / sizeof(NSString*), current.operation)) { case 0: - return [ICEServant ice_id___:self current:current is:is os:os]; + [ICEServant iceD_ice_id:self current:current is:is os:os]; + return; case 1: - return [ICEServant ice_ids___:self current:current is:is os:os]; + [ICEServant iceD_ice_ids:self current:current is:is os:os]; + return; case 2: - return [ICEServant ice_isA___:self current:current is:is os:os]; + [ICEServant iceD_ice_isA:self current:current is:is os:os]; + return; case 3: - return [ICEServant ice_ping___:self current:current is:is os:os]; + [ICEServant iceD_ice_ping:self current:current is:is os:os]; + return; default: @throw [ICEOperationNotExistException requestFailedException:__FILE__ - line:__LINE__ - id:current.id_ - facet:current.facet - operation:current.operation]; + line:__LINE__ + id:current.id_ + facet:current.facet + operation:current.operation]; } } --(void) write__:(id<ICEOutputStream>)os +-(void) iceWrite:(id<ICEOutputStream>)os { - [os startObject:nil]; - [self writeImpl__:os]; - [os endObject]; + [os startValue:nil]; + [self iceWriteImpl:os]; + [os endValue]; } --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { - [is startObject]; - [self readImpl__:is]; - [is endObject:NO]; + [is startValue]; + [self iceReadImpl:is]; + [is endValue:NO]; } --(void) writeImpl__:(id<ICEOutputStream>)os +-(void) iceWriteImpl:(id<ICEOutputStream>)os { - NSAssert(NO, @"writeImpl__ requires override"); + NSAssert(NO, @"iceWriteImpl requires override"); } --(void) readImpl__:(id<ICEInputStream>)is +-(void) iceReadImpl:(id<ICEInputStream>)is { - NSAssert(NO, @"readImpl__ requires override"); + NSAssert(NO, @"iceReadImpl requires override"); } --(id)target__ +-(id)iceTarget { - return (delegate__ == 0) ? self : delegate__; + return (iceDelegate_ == 0) ? self : iceDelegate_; } --(Ice::Object*) object__ +-(Ice::Object*) iceObject { @synchronized([self class]) { - if(object__ == 0) + if(iceObject_ == 0) { // // NOTE: IceObjC::ObjectI implements it own reference counting and there's no need @@ -570,19 +568,19 @@ static NSString* ICEObject_all__[4] = // reference to the object (without this, servants added to the object adapter // couldn't be retained or released easily). // - object__ = static_cast<IceObjC::ObjectWrapper*>(new ObjectI(self)); + iceObject_ = static_cast<IceObjC::ServantWrapper*>(new ObjectI(self)); } } - return static_cast<IceObjC::ObjectWrapper*>(object__); + return static_cast<IceObjC::ServantWrapper*>(iceObject_); } @end @implementation ICEBlobject --(Ice::Object*) object__ +-(Ice::Object*) iceObject { @synchronized([self class]) { - if(object__ == 0) + if(iceObject_ == 0) { // // NOTE: IceObjC::ObjectI implements it own reference counting and there's no need @@ -592,14 +590,14 @@ static NSString* ICEObject_all__[4] = // reference to the object (without this, servants added to the object adapter // couldn't be retained or released easily). // - object__ = static_cast<IceObjC::ObjectWrapper*>(new BlobjectI(self)); + iceObject_ = static_cast<IceObjC::ServantWrapper*>(new BlobjectI(self)); } } - return static_cast<IceObjC::ObjectWrapper*>(object__); + return static_cast<IceObjC::ServantWrapper*>(iceObject_); } @end -@implementation ICEObjectWrapper +@implementation ICEServantWrapper -(id) initWithCxxObject:(Ice::Object*)arg { self = [super init]; @@ -608,30 +606,30 @@ static NSString* ICEObject_all__[4] = return nil; } - object__ = arg; - object__->__incRef(); - assert(cachedObjects.find(object__) == cachedObjects.end()); - cachedObjects.insert(std::make_pair(object__, self)); + object_ = arg; + object_->__incRef(); + assert(cachedObjects.find(object_) == cachedObjects.end()); + cachedObjects.insert(std::make_pair(object_, self)); return self; } -(void) dealloc { - cachedObjects.erase(object__); - object__->__decRef(); + cachedObjects.erase(object_); + object_->__decRef(); [super dealloc]; } -+(id) objectWrapperWithCxxObject:(Ice::Object*)arg ++(id) servantWrapperWithCxxObject:(Ice::Object*)arg { - @synchronized([ICEObjectWrapper class]) + @synchronized([ICEServantWrapper class]) { - std::map<Ice::Object*, ICEObjectWrapper*>::const_iterator p = cachedObjects.find(arg); + std::map<Ice::Object*, ICEServantWrapper*>::const_iterator p = cachedObjects.find(arg); if(p != cachedObjects.end()) { return [p->second retain]; } else { - return [[(ICEObjectWrapper*)[self alloc] initWithCxxObject:arg] autorelease]; + return [[(ICEServantWrapper*)[self alloc] initWithCxxObject:arg] autorelease]; } } } @@ -642,7 +640,7 @@ static NSString* ICEObject_all__[4] = } -(oneway void) release { - @synchronized([ICEObjectWrapper class]) + @synchronized([ICEServantWrapper class]) { if(NSDecrementExtraRefCountWasZero(self)) { @@ -655,7 +653,7 @@ static NSString* ICEObject_all__[4] = NSException* nsex = nil; try { - return object__->ice_isA(fromNSString(typeId), Ice::Current()); + return object_->ice_isA(fromNSString(typeId), Ice::Current()); } catch(const std::exception& ex) { @@ -668,7 +666,7 @@ static NSString* ICEObject_all__[4] = NSException* nsex = nil; try { - return object__->ice_ping(Ice::Current()); + return object_->ice_ping(Ice::Current()); } catch(const std::exception& ex) { @@ -681,7 +679,7 @@ static NSString* ICEObject_all__[4] = NSException* nsex = nil; try { - return toNSString(object__->ice_id(Ice::Current())); + return toNSString(object_->ice_id(Ice::Current())); } catch(const std::exception& ex) { @@ -694,7 +692,7 @@ static NSString* ICEObject_all__[4] = NSException* nsex = nil; try { - return toNSArray(object__->ice_ids(Ice::Current())); + return toNSArray(object_->ice_ids(Ice::Current())); } catch(const std::exception& ex) { @@ -702,16 +700,16 @@ static NSString* ICEObject_all__[4] = } @throw nsex; } --(BOOL) ice_dispatch:(id<ICERequest>)request +-(void) ice_dispatch:(id<ICERequest>)request { @throw [ICEFeatureNotSupportedException featureNotSupportedException:__FILE__ line:__LINE__]; } --(void) write__:(id<ICEOutputStream>)os +-(void) iceWrite:(id<ICEOutputStream>)os { NSException* nsex = nil; try { - object__->__write([(ICEOutputStream*)os os]); + object_->_iceWrite([(ICEOutputStream*)os os]); } catch(const std::exception& ex) { @@ -719,12 +717,12 @@ static NSString* ICEObject_all__[4] = } @throw nsex; } --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { NSException* nsex = nil; try { - object__->__read([(ICEInputStream*)is is]); + object_->_iceRead([(ICEInputStream*)is is]); } catch(const std::exception& ex) { @@ -732,8 +730,8 @@ static NSString* ICEObject_all__[4] = } @throw nsex; } --(Ice::Object*) object__ +-(Ice::Object*) iceObject { - return object__; + return object_; } @end diff --git a/objective-c/src/Ice/ObjectAdapterI.mm b/objective-c/src/Ice/ObjectAdapterI.mm index 1df62151317..8af1acebce3 100644 --- a/objective-c/src/Ice/ObjectAdapterI.mm +++ b/objective-c/src/Ice/ObjectAdapterI.mm @@ -23,7 +23,7 @@ #include <Ice/Locator.h> #include <Ice/ServantLocator.h> -#include <Ice/Stream.h> +#include <Ice/OutputStream.h> namespace { @@ -88,12 +88,11 @@ private: }; typedef IceUtil::Handle<Cookie> CookiePtr; -class ExceptionWriter : public Ice::UserExceptionWriter +class ExceptionWriter : public Ice::UserException { public: - ExceptionWriter(const Ice::CommunicatorPtr& communicator, ICEUserException* ex) : - Ice::UserExceptionWriter(communicator), _ex(ex) + ExceptionWriter(ICEUserException* ex) : _ex(ex) { } @@ -103,23 +102,29 @@ public: } void - write(const Ice::OutputStreamPtr& s) const + _write(Ice::OutputStream* s) const { - ICEOutputStream* os = [ICEOutputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - [_ex write__:os]; + ICEOutputStream* os = [[ICEOutputStream alloc] initWithCxxStream:s]; + [_ex iceWrite:os]; [os release]; } + void + _read(Ice::InputStream*) + { + assert(false); + } + bool - usesClasses() const + _usesClasses() const { - return [_ex usesClasses__]; + return [_ex iceUsesClasses]; } std::string - ice_name() const + ice_id() const { - return [[_ex ice_name] UTF8String]; + return [[_ex ice_id] UTF8String]; } Ice::UserException* @@ -134,6 +139,11 @@ public: throw *this; } +protected: + + virtual void _writeImpl(Ice::OutputStream*) const {} + virtual void _readImpl(Ice::InputStream*) {} + private: ICEUserException* _ex; @@ -169,7 +179,7 @@ public: { cookie = new Cookie(co); } - return [servant object__]; + return [servant iceObject]; } @catch(id e) { @@ -184,7 +194,7 @@ public: { if([ex isKindOfClass:[ICEUserException class]]) { - throw ExceptionWriter(current.adapter->getCommunicator(), (ICEUserException*)ex); + throw ExceptionWriter((ICEUserException*)ex); } rethrowCxxException(ex, true); // True = release the exception. } @@ -215,7 +225,7 @@ public: { if([ex isKindOfClass:[ICEUserException class]]) { - throw ExceptionWriter(current.adapter->getCommunicator(), (ICEUserException*)ex); + throw ExceptionWriter((ICEUserException*)ex); } rethrowCxxException(ex, true); // True = release the exception. } @@ -424,7 +434,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:OBJECTADAPTER->add([servant object__], [ident identity])]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:OBJECTADAPTER->add([servant iceObject], [ident identity])]; } catch(const std::exception& ex) { @@ -439,7 +449,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:OBJECTADAPTER->addFacet([servant object__], [ident identity], + return [ICEObjectPrx iceObjectPrxWithObjectPrx:OBJECTADAPTER->addFacet([servant iceObject], [ident identity], fromNSString(facet))]; } catch(const std::exception& ex) @@ -455,7 +465,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:OBJECTADAPTER->addWithUUID([servant object__])]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:OBJECTADAPTER->addWithUUID([servant iceObject])]; } catch(const std::exception& ex) { @@ -470,7 +480,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:OBJECTADAPTER->addFacetWithUUID([servant object__], + return [ICEObjectPrx iceObjectPrxWithObjectPrx:OBJECTADAPTER->addFacetWithUUID([servant iceObject], fromNSString(facet))]; } catch(const std::exception& ex) @@ -486,7 +496,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - Ice::ServantLocatorPtr servantLocator = new DefaultServantLocator([servant object__]); + Ice::ServantLocatorPtr servantLocator = new DefaultServantLocator([servant iceObject]); OBJECTADAPTER->addServantLocator(servantLocator, fromNSString(category)); } catch(const std::exception& ex) @@ -618,7 +628,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return toObjC(OBJECTADAPTER->findByProxy([(ICEObjectPrx*)proxy objectPrx__])); + return toObjC(OBJECTADAPTER->findByProxy([(ICEObjectPrx*)proxy iceObjectPrx])); } catch(const std::exception& ex) { @@ -704,7 +714,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:OBJECTADAPTER->createProxy([ident identity])]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:OBJECTADAPTER->createProxy([ident identity])]; } catch(const std::exception& ex) { @@ -719,7 +729,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:OBJECTADAPTER->createDirectProxy([ident identity])]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:OBJECTADAPTER->createDirectProxy([ident identity])]; } catch(const std::exception& ex) { @@ -734,7 +744,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return [ICEObjectPrx objectPrxWithObjectPrx__:OBJECTADAPTER->createIndirectProxy([ident identity])]; + return [ICEObjectPrx iceObjectPrxWithObjectPrx:OBJECTADAPTER->createIndirectProxy([ident identity])]; } catch(const std::exception& ex) { @@ -749,7 +759,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - OBJECTADAPTER->setLocator(Ice::LocatorPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)loc objectPrx__]))); + OBJECTADAPTER->setLocator(Ice::LocatorPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)loc iceObjectPrx]))); } catch(const std::exception& ex) { @@ -766,7 +776,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; NSException* nsex = nil; try { - return (id<ICELocatorPrx>)[ICELocatorPrx objectPrxWithObjectPrx__:OBJECTADAPTER->getLocator()]; + return (id<ICELocatorPrx>)[ICELocatorPrx iceObjectPrxWithObjectPrx:OBJECTADAPTER->getLocator()]; } catch(const std::exception& ex) { @@ -779,6 +789,24 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; return nil; // Keep the compiler happy. } +-(ICEMutableEndpointSeq*) getEndpoints +{ + NSException* nsex = nil; + try + { + return [toNSArray(OBJECTADAPTER->getEndpoints()) autorelease]; + } + catch(const std::exception& ex) + { + nsex = toObjCException(ex); + } + if(nsex != nil) + { + @throw nsex; + } + return nil; +} + -(void) refreshPublishedEndpoints { NSException* nsex = nil; @@ -796,12 +824,12 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; } } --(ICEEndpointSeq*) getEndpoints +-(ICEMutableEndpointSeq*) getPublishedEndpoints { NSException* nsex = nil; try { - return [toNSArray(OBJECTADAPTER->getEndpoints()) autorelease]; + return [toNSArray(OBJECTADAPTER->getPublishedEndpoints()) autorelease]; } catch(const std::exception& ex) { @@ -814,12 +842,14 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; return nil; } --(ICEEndpointSeq*) getPublishedEndpoints +-(void) setPublishedEndpoints:(ICEEndpointSeq*)newEndpoints { NSException* nsex = nil; try { - return [toNSArray(OBJECTADAPTER->getPublishedEndpoints()) autorelease]; + Ice::EndpointSeq cxxNewEndpoints; + fromNSArray(newEndpoints, cxxNewEndpoints); + OBJECTADAPTER->setPublishedEndpoints(cxxNewEndpoints); } catch(const std::exception& ex) { @@ -829,7 +859,7 @@ typedef IceUtil::Handle<ServantLocatorWrapper> ServantLocatorWrapperPtr; { @throw nsex; } - return nil; } + @end diff --git a/objective-c/src/Ice/ObjectI.h b/objective-c/src/Ice/ObjectI.h index 1e3ff5b2e73..91276c18279 100644 --- a/objective-c/src/Ice/ObjectI.h +++ b/objective-c/src/Ice/ObjectI.h @@ -21,24 +21,24 @@ namespace IceObjC { -class ObjectWrapper : virtual public Ice::Object +class ServantWrapper : virtual public Ice::Object { public: - virtual ~ObjectWrapper() { } - virtual ICEObject* getObject() = 0; + virtual ~ServantWrapper() { } + virtual ICEObject* getServant() = 0; }; -typedef IceUtil::Handle<ObjectWrapper> ObjectWrapperPtr; +typedef IceUtil::Handle<ServantWrapper> ServantWrapperPtr; }; @interface ICEObject (ICEInternal) --(Ice::Object*) object__; +-(Ice::Object*) iceObject; @end -@interface ICEObjectWrapper : ICEObject +@interface ICEServantWrapper : ICEObject { - Ice::Object* object__; + Ice::Object* object_; } -+(id) objectWrapperWithCxxObject:(Ice::Object*)arg; ++(id) servantWrapperWithCxxObject:(Ice::Object*)arg; @end diff --git a/objective-c/src/Ice/PropertiesI.h b/objective-c/src/Ice/PropertiesI.h index 54cfddc0103..79573c83eb0 100644 --- a/objective-c/src/Ice/PropertiesI.h +++ b/objective-c/src/Ice/PropertiesI.h @@ -24,7 +24,7 @@ -(Ice::Properties*)properties; @end -@interface ICENativePropertiesAdmin : ICEObjectWrapper<ICENativePropertiesAdmin> +@interface ICENativePropertiesAdmin : ICEServantWrapper<ICENativePropertiesAdmin> { IceUtil::Mutex mutex_; std::vector<Ice::PropertiesAdminUpdateCallbackPtr> callbacks_; diff --git a/objective-c/src/Ice/PropertiesI.mm b/objective-c/src/Ice/PropertiesI.mm index 3a853ec07bc..c15a0d6dea9 100644 --- a/objective-c/src/Ice/PropertiesI.mm +++ b/objective-c/src/Ice/PropertiesI.mm @@ -282,14 +282,14 @@ typedef IceUtil::Handle<UpdateCallbackI> UpdateCallbackIPtr; @implementation ICEPropertiesAdminUpdateCallback @end -#define NATIVEPROPERTIESADMIN dynamic_cast<Ice::NativePropertiesAdmin*>(object__) +#define NATIVEPROPERTIESADMIN dynamic_cast<Ice::NativePropertiesAdmin*>(object_) @implementation ICENativePropertiesAdmin -(void) addUpdateCallback:(id<ICEPropertiesAdminUpdateCallback>)cb { IceUtil::Mutex::Lock sync(mutex_); callbacks_.push_back(new UpdateCallbackI(cb)); - assert(Ice::NativePropertiesAdminPtr::dynamicCast(object__)); + assert(Ice::NativePropertiesAdminPtr::dynamicCast(object_)); NATIVEPROPERTIESADMIN->addUpdateCallback(callbacks_.back()); } diff --git a/objective-c/src/Ice/Proxy.mm b/objective-c/src/Ice/Proxy.mm index 7c14b83463e..3433886cd2f 100644 --- a/objective-c/src/Ice/Proxy.mm +++ b/objective-c/src/Ice/Proxy.mm @@ -35,8 +35,8 @@ #include <Block.h> -#define OBJECTPRX ((IceProxy::Ice::Object*)objectPrx__) -#define ASYNCRESULT ((Ice::AsyncResult*)asyncResult__) +#define OBJECTPRX ((IceProxy::Ice::Object*)objectPrx_) +#define ASYNCRESULT ((Ice::AsyncResult*)asyncResult_) namespace { @@ -45,10 +45,12 @@ class BeginInvokeAsyncCallback : public IceUtil::Shared { public: -BeginInvokeAsyncCallback(void (^completed)(id<ICEInputStream>, BOOL), +BeginInvokeAsyncCallback(const Ice::CommunicatorPtr& communicator, + void (^completed)(id<ICEInputStream>, BOOL), void (^exception)(ICEException*), void (^sent)(BOOL), BOOL returnsData) : + _communicator(communicator), _completed(Block_copy(completed)), _exception(Block_copy(exception)), _sent(Block_copy(sent)), @@ -63,99 +65,88 @@ virtual ~BeginInvokeAsyncCallback() Block_release(_sent); } -void completed(const Ice::AsyncResultPtr& result) +void response(bool ok, const std::pair<const Ice::Byte*, const Ice::Byte*>& outParams) { - BOOL ok = YES; // Keep the compiler happy. - id<ICEInputStream> is = nil; - NSException* nsex = nil; - Ice::ObjectPrx proxy = result->getProxy(); - try + id<ICEInputStream> is = [[ICEInputStream alloc] initWithCxxCommunicator:_communicator.get() data:outParams]; + NSException* exception = nil; + @autoreleasepool { - std::vector<Ice::Byte> outParams; - ok = proxy->end_ice_invoke(outParams, result); - if(_returnsData) - { - Ice::InputStreamPtr s = Ice::createInputStream(proxy->ice_getCommunicator(), outParams); - is = [ICEInputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - } - else if(!outParams.empty()) + @try { - if(ok) + if(_returnsData) { - if(outParams.size() != 6) - { - throw Ice::EncapsulationException(__FILE__, __LINE__); - } + _completed(is, ok); } - else + else if(outParams.first != outParams.second) { - Ice::InputStreamPtr s = Ice::createInputStream(proxy->ice_getCommunicator(), outParams); - is = [ICEInputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - @try + if(ok) { - [is startEncapsulation]; - [is throwException]; + [is skipEmptyEncapsulation]; } - @catch(ICEUserException* ex) + else { - [is endEncapsulation]; - [is release]; - is = nil; - nsex = [ICEUnknownUserException unknownUserException:__FILE__ line:__LINE__ unknown:[ex ice_name]]; + @try + { + [is startEncapsulation]; + [is throwException]; + } + @catch(ICEUserException *ex) + { + [is endEncapsulation]; + @throw [ICEUnknownUserException unknownUserException:__FILE__ line:__LINE__ unknown:[ex ice_id]]; + } } + _completed(nil, ok); } } - } - catch(const std::exception& ex) - { - if(is != nil) + @catch(id e) + { + exception = [e retain]; + } + @finally { [is release]; - is = nil; } - nsex = toObjCException(ex); } + if(exception != nil) + { + rethrowCxxException(exception, true); // True = release the exception. + } +} + +void exception(const Ice::Exception& ex) +{ NSException* exception = nil; @autoreleasepool { @try { - if(nsex != nil) + @throw toObjCException(ex); + } + @catch(ICEException* ex) + { + if(_exception) { @try { - @throw nsex; + _exception(ex); } - @catch(ICEException* ex) + @catch(id e) { - if(_exception) - { - _exception(ex); - } - return; + exception = [e retain]; } } - - _completed(is, ok); - } - @catch(id e) - { - exception = [e retain]; - } - @finally - { - [is release]; + return; } } - if(exception != nil) { rethrowCxxException(exception, true); // True = release the exception. } } -void sent(const Ice::AsyncResultPtr& result) +void sent(bool sentSynchronously) { if(!_sent) { @@ -167,7 +158,7 @@ void sent(const Ice::AsyncResultPtr& result) { @try { - _sent(result->sentSynchronously()); + _sent(sentSynchronously); } @catch(id e) { @@ -183,6 +174,7 @@ void sent(const Ice::AsyncResultPtr& result) private: +const Ice::CommunicatorPtr _communicator; void (^_completed)(id<ICEInputStream>, BOOL); void (^_exception)(ICEException*); void (^_sent)(BOOL); @@ -193,7 +185,7 @@ BOOL _returnsData; }; @implementation ICEAsyncResult --(ICEAsyncResult*) initWithAsyncResult__:(const Ice::AsyncResultPtr&)arg +-(ICEAsyncResult*) initWithAsyncResult:(const Ice::AsyncResultPtr&)arg operation:(NSString*)op proxy:(id<ICEObjectPrx>)p; { @@ -203,14 +195,14 @@ BOOL _returnsData; return nil; } - asyncResult__ = arg.get(); + asyncResult_ = arg.get(); ASYNCRESULT->__incRef(); operation_ = [op retain]; proxy_ = [p retain]; return self; } --(Ice::AsyncResult*) asyncResult__ +-(Ice::AsyncResult*) asyncResult { return ASYNCRESULT; } @@ -218,17 +210,17 @@ BOOL _returnsData; -(void) dealloc { ASYNCRESULT->__decRef(); - asyncResult__ = 0; + asyncResult_ = 0; [operation_ release]; [proxy_ release]; [super dealloc]; } -+(ICEAsyncResult*) asyncResultWithAsyncResult__:(const Ice::AsyncResultPtr&)arg ++(ICEAsyncResult*) asyncResultWithAsyncResult:(const Ice::AsyncResultPtr&)arg { - return [self asyncResultWithAsyncResult__:arg operation:nil proxy:nil]; + return [self asyncResultWithAsyncResult:arg operation:nil proxy:nil]; } -+(ICEAsyncResult*) asyncResultWithAsyncResult__:(const Ice::AsyncResultPtr&)arg ++(ICEAsyncResult*) asyncResultWithAsyncResult:(const Ice::AsyncResultPtr&)arg operation:(NSString*)op proxy:(id<ICEObjectPrx>)p { @@ -238,7 +230,7 @@ BOOL _returnsData; } else { - return [[[self alloc] initWithAsyncResult__:arg operation:op proxy:p] autorelease]; + return [[[self alloc] initWithAsyncResult:arg operation:op proxy:p] autorelease]; } } -(NSString*) operation @@ -321,33 +313,33 @@ BOOL _returnsData; @implementation ICEObjectPrx --(ICEObjectPrx*) initWithObjectPrx__:(const Ice::ObjectPrx&)arg +-(ICEObjectPrx*) iceInitWithObjectPrx:(const Ice::ObjectPrx&)arg { self = [super init]; if(!self) { return nil; } - communicator__ = [ICECommunicator localObjectWithCxxObjectNoAutoRelease:arg->ice_getCommunicator().get()]; - objectPrx__ = arg.get(); + communicator_ = [ICECommunicator localObjectWithCxxObjectNoAutoRelease:arg->ice_getCommunicator().get()]; + objectPrx_ = arg.get(); OBJECTPRX->__incRef(); return self; } --(IceProxy::Ice::Object*) objectPrx__ +-(IceProxy::Ice::Object*) iceObjectPrx { - return (IceProxy::Ice::Object*)objectPrx__; + return (IceProxy::Ice::Object*)objectPrx_; } -(void) dealloc { OBJECTPRX->__decRef(); - objectPrx__ = 0; - [communicator__ release]; + objectPrx_ = 0; + [communicator_ release]; [super dealloc]; } -+(ICEObjectPrx*) objectPrxWithObjectPrx__:(const Ice::ObjectPrx&)arg ++(ICEObjectPrx*) iceObjectPrxWithObjectPrx:(const Ice::ObjectPrx&)arg { if(!arg) { @@ -355,7 +347,7 @@ BOOL _returnsData; } else { - return [[[self alloc] initWithObjectPrx__:arg] autorelease]; + return [[[self alloc] iceInitWithObjectPrx:arg] autorelease]; } } @@ -369,7 +361,7 @@ BOOL _returnsData; } else { - return [[[self alloc] initWithObjectPrx__:[(ICEObjectPrx*)proxy objectPrx__]] autorelease]; + return [[[self alloc] iceInitWithObjectPrx:[(ICEObjectPrx*)proxy iceObjectPrx]] autorelease]; } } return nil; @@ -386,10 +378,10 @@ BOOL _returnsData; { return [[proxy retain] autorelease]; } - else if([(ICEObjectPrx*)proxy conformsToProtocol:[self protocol__]] || + else if([(ICEObjectPrx*)proxy conformsToProtocol:[self iceProtocol]] || [proxy ice_isA:[self ice_staticId]]) { - return [[[self alloc] initWithObjectPrx__:[(ICEObjectPrx*)proxy objectPrx__]] autorelease]; + return [[[self alloc] iceInitWithObjectPrx:[(ICEObjectPrx*)proxy iceObjectPrx]] autorelease]; } } return nil; @@ -413,10 +405,10 @@ BOOL _returnsData; { return [[proxy retain] autorelease]; } - else if([(ICEObjectPrx*)proxy conformsToProtocol:[self protocol__]] || + else if([(ICEObjectPrx*)proxy conformsToProtocol:[self iceProtocol]] || [proxy ice_isA:[self ice_staticId] context:context]) { - return [[[self alloc] initWithObjectPrx__:[(ICEObjectPrx*)proxy objectPrx__]] autorelease]; + return [[[self alloc] iceInitWithObjectPrx:[(ICEObjectPrx*)proxy iceObjectPrx]] autorelease]; } } return nil; @@ -437,18 +429,17 @@ BOOL _returnsData; return @"::Ice::Object"; } -+(Protocol*) protocol__ ++(Protocol*) iceProtocol { return objc_getProtocol(class_getName([self class])); } --(id<ICEOutputStream>) createOutputStream__ +-(id<ICEOutputStream>) iceCreateOutputStream { NSException* nsex = nil; try { - Ice::OutputStreamPtr os = Ice::createOutputStream(OBJECTPRX->ice_getCommunicator()); - return [ICEOutputStream localObjectWithCxxObjectNoAutoRelease:os.get()]; + return [[ICEOutputStream alloc] initWithCxxCommunicator:OBJECTPRX->ice_getCommunicator().get()]; } catch(const std::exception& ex) { @@ -457,7 +448,7 @@ BOOL _returnsData; @throw nsex; return nil; // Keep the compiler happy. } --(void) checkAsyncTwowayOnly__:(NSString*)operation +-(void) iceCheckAsyncTwowayOnly:(NSString*)operation { // // No mutex lock necessary, there is nothing mutable in this @@ -472,7 +463,7 @@ BOOL _returnsData; } } --(void) invoke__:(NSString*)operation +-(void) iceInvoke:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(ICEMarshalCB)marshal @@ -487,7 +478,7 @@ BOOL _returnsData; ICEOutputStream<ICEOutputStream>* os = nil; if(marshal) { - os = [self createOutputStream__]; + os = [self iceCreateOutputStream]; try { [os os]->startEncapsulation(IceInternal::getCompatibleEncoding(OBJECTPRX->ice_getEncodingVersion()), @@ -510,8 +501,6 @@ BOOL _returnsData; } } - BOOL ok = YES; // Keep the compiler happy. - ICEInputStream<ICEInputStream>* is = nil; NSException* nsex = nil; try { @@ -524,6 +513,7 @@ BOOL _returnsData; os = nil; } + BOOL ok = YES; // Keep the compiler happy. std::vector<Ice::Byte> outParams; if(context != nil) { @@ -536,38 +526,41 @@ BOOL _returnsData; ok = OBJECTPRX->ice_invoke(fromNSString(operation), (Ice::OperationMode)mode, inParams, outParams); } - if(unmarshal) - { - Ice::InputStreamPtr s = Ice::createInputStream(OBJECTPRX->ice_getCommunicator(), outParams); - is = [ICEInputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - } - else if(!outParams.empty()) + std::pair<const Ice::Byte*, const Ice::Byte*> p(&outParams[0], &outParams[0] + outParams.size()); + ICEInputStream<ICEInputStream>* is; + is = [[ICEInputStream alloc] initWithCxxCommunicator:OBJECTPRX->ice_getCommunicator().get() data:p]; + @try { - if(ok) + if(unmarshal) { - if(outParams.size() != 6) - { - throw Ice::EncapsulationException(__FILE__, __LINE__); - } + unmarshal(is, ok); } - else + else if(!outParams.empty()) { - Ice::InputStreamPtr s = Ice::createInputStream(OBJECTPRX->ice_getCommunicator(), outParams); - is = [ICEInputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - @try + if(ok) { - [is startEncapsulation]; - [is throwException]; + [is skipEmptyEncapsulation]; } - @catch(ICEUserException* ex) + else { - [is endEncapsulation]; - [is release]; - is = nil; - nsex = [ICEUnknownUserException unknownUserException:__FILE__ line:__LINE__ unknown:[ex ice_name]]; + @try + { + [is startEncapsulation]; + [is throwException]; + } + @catch(ICEUserException* ex) + { + [is endEncapsulation]; + @throw [ICEUnknownUserException unknownUserException:__FILE__ line:__LINE__ unknown:[ex ice_id]]; + } } } } + @catch(id e) + { + nsex = [e retain]; + } + [is release]; } catch(const std::exception& ex) { @@ -576,11 +569,6 @@ BOOL _returnsData; [os release]; os = nil; } - if(is != nil) - { - [is release]; - is = nil; - } nsex = toObjCException(ex); } if(nsex != nil) @@ -589,20 +577,9 @@ BOOL _returnsData; } NSAssert(os == nil, @"output stream not cleared"); - if(is) - { - @try - { - unmarshal(is, ok); - } - @finally - { - [is release]; - } - } } --(id<ICEAsyncResult>) begin_invoke__:(NSString*)operation +-(id<ICEAsyncResult>) iceI_begin_invoke:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(void(^)(id<ICEOutputStream>))marshal @@ -611,13 +588,13 @@ BOOL _returnsData; { if(returnsData) { - [self checkAsyncTwowayOnly__:operation]; + [self iceCheckAsyncTwowayOnly:operation]; } ICEOutputStream<ICEOutputStream>* os = nil; if(marshal) { - os = [self createOutputStream__]; + os = [self iceCreateOutputStream]; try { [os os]->startEncapsulation(IceInternal::getCompatibleEncoding(OBJECTPRX->ice_getEncodingVersion()), @@ -663,7 +640,7 @@ BOOL _returnsData; { r = OBJECTPRX->begin_ice_invoke(fromNSString(operation), (Ice::OperationMode)mode, inParams); } - return [ICEAsyncResult asyncResultWithAsyncResult__:r operation:operation proxy:self]; + return [ICEAsyncResult asyncResultWithAsyncResult:r operation:operation proxy:self]; } catch(const std::exception& ex) { @@ -681,7 +658,7 @@ BOOL _returnsData; return nil; // Keep the compiler happy. } --(id<ICEAsyncResult>) begin_invoke__:(NSString*)operation +-(id<ICEAsyncResult>) iceI_begin_invoke:(NSString*)operation mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(void(^)(id<ICEOutputStream>))marshal @@ -694,7 +671,7 @@ BOOL _returnsData; { if(returnsData) { - [self checkAsyncTwowayOnly__:operation]; + [self iceCheckAsyncTwowayOnly:operation]; if(!response) { @throw [NSException exceptionWithName:NSInvalidArgumentException @@ -713,7 +690,7 @@ BOOL _returnsData; ICEOutputStream<ICEOutputStream>* os = nil; if(marshal) { - os = [self createOutputStream__]; + os = [self iceCreateOutputStream]; try { [os os]->startEncapsulation(IceInternal::getCompatibleEncoding(OBJECTPRX->ice_getEncodingVersion()), @@ -748,9 +725,12 @@ BOOL _returnsData; os = nil; } - Ice::CallbackPtr cb = Ice::newCallback(new BeginInvokeAsyncCallback(completed, exception, sent, returnsData), - &BeginInvokeAsyncCallback::completed, - &BeginInvokeAsyncCallback::sent); + Ice::Callback_Object_ice_invokePtr cb = Ice::newCallback_Object_ice_invoke( + new BeginInvokeAsyncCallback(OBJECTPRX->ice_getCommunicator(), completed, exception, sent, returnsData), + &BeginInvokeAsyncCallback::response, + &BeginInvokeAsyncCallback::exception, + &BeginInvokeAsyncCallback::sent); + Ice::AsyncResultPtr r; if(context != nil) { @@ -762,7 +742,7 @@ BOOL _returnsData; { r = OBJECTPRX->begin_ice_invoke(fromNSString(operation), (Ice::OperationMode)mode, inParams, cb); } - return [ICEAsyncResult asyncResultWithAsyncResult__:r operation:operation proxy:self]; + return [ICEAsyncResult asyncResultWithAsyncResult:r operation:operation proxy:self]; } catch(const std::exception& ex) { @@ -779,7 +759,7 @@ BOOL _returnsData; } return nil; // Keep the compiler happy. } --(id<ICEAsyncResult>) begin_invoke__:(NSString*)op +-(id<ICEAsyncResult>) iceI_begin_invoke:(NSString*)op mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(void(^)(id<ICEOutputStream>))marshal @@ -794,19 +774,19 @@ BOOL _returnsData; response(); } }; - return [self begin_invoke__:op + return [self iceI_begin_invoke:op mode:mode format:format marshal:marshal returnsData:NO completed:completed - response:TRUE + response:YES exception:exception sent:sent context:ctx]; } --(id<ICEAsyncResult>) begin_invoke__:(NSString*)op +-(id<ICEAsyncResult>) iceI_begin_invoke:(NSString*)op mode:(ICEOperationMode)mode format:(ICEFormatType)format marshal:(void(^)(id<ICEOutputStream>))marshal @@ -816,18 +796,18 @@ BOOL _returnsData; sent:(void(^)(BOOL))sent context:(ICEContext*)ctx { - return [self begin_invoke__:op + return [self iceI_begin_invoke:op mode:mode format:format marshal:marshal - returnsData:TRUE + returnsData:YES completed:completed response:response exception:exception sent:sent context:ctx]; } --(void)end_invoke__:(NSString*)operation unmarshal:(ICEUnmarshalCB)unmarshal result:(id<ICEAsyncResult>)r +-(void)iceI_end_invoke:(NSString*)operation unmarshal:(ICEUnmarshalCB)unmarshal result:(id<ICEAsyncResult>)r { ICEAsyncResult* result = (ICEAsyncResult*)r; if(operation != [result operation]) @@ -844,72 +824,56 @@ BOOL _returnsData; userInfo:nil]; } - BOOL ok = YES; // Keep the compiler happy. NSException* nsex = nil; - ICEInputStream* is = nil; try { - std::vector<Ice::Byte> outParams; - ok = OBJECTPRX->end_ice_invoke(outParams, [result asyncResult__]); + std::pair<const Ice::Byte*, const Ice::Byte*> outParams; + BOOL ok = OBJECTPRX->_iceI_end_ice_invoke(outParams, [result asyncResult]); - if(unmarshal) - { - Ice::InputStreamPtr s = Ice::createInputStream(OBJECTPRX->ice_getCommunicator(), outParams); - is = [ICEInputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - } - else if(!outParams.empty()) + ICEInputStream* is; + is = [[ICEInputStream alloc] initWithCxxCommunicator:OBJECTPRX->ice_getCommunicator().get() data:outParams]; + @try { - if(ok) + if(unmarshal) { - if(outParams.size() != 6) - { - throw Ice::EncapsulationException(__FILE__, __LINE__); - } + unmarshal(is, ok); } - else + else if(outParams.first != outParams.second) { - Ice::InputStreamPtr s = Ice::createInputStream(OBJECTPRX->ice_getCommunicator(), outParams); - is = [ICEInputStream localObjectWithCxxObjectNoAutoRelease:s.get()]; - @try + if(ok) { - [is startEncapsulation]; - [is throwException]; + [is skipEmptyEncapsulation]; } - @catch(ICEUserException* ex) + else { - [is endEncapsulation]; - [is release]; - is = nil; - nsex = [ICEUnknownUserException unknownUserException:__FILE__ line:__LINE__ unknown:[ex ice_name]]; + @try + { + [is startEncapsulation]; + [is throwException]; + } + @catch(ICEUserException* ex) + { + [is endEncapsulation]; + @throw [ICEUnknownUserException unknownUserException:__FILE__ line:__LINE__ unknown:[ex ice_id]]; + } } } } + @catch(id e) + { + nsex = [e retain]; + } + [is release]; } catch(const std::exception& ex) { - if(is != nil) - { - [is release]; - is = nil; - } nsex = toObjCException(ex); } + if(nsex != nil) { @throw nsex; } - - if(is != nil) - { - @try - { - unmarshal(is, ok); - } - @finally - { - [is release]; - } - } } -(id) copyWithZone:(NSZone *)zone @@ -919,7 +883,7 @@ BOOL _returnsData; -(NSUInteger) hash { - return (NSUInteger)OBJECTPRX->__hash(); + return (NSUInteger)OBJECTPRX->_hash(); } -(NSString*) description { @@ -935,13 +899,13 @@ BOOL _returnsData; { return NO; } - return *OBJECTPRX == *[o_ objectPrx__]; + return *OBJECTPRX == *[o_ iceObjectPrx]; } -(NSComparisonResult) compareIdentity:(id<ICEObjectPrx>)aProxy { IceProxy::Ice::Object* lhs = OBJECTPRX; - IceProxy::Ice::Object* rhs = [(ICEObjectPrx*)aProxy objectPrx__]; + IceProxy::Ice::Object* rhs = [(ICEObjectPrx*)aProxy iceObjectPrx]; if(Ice::proxyIdentityEqual(lhs, rhs)) { return NSOrderedSame; @@ -959,7 +923,7 @@ BOOL _returnsData; -(NSComparisonResult) compareIdentityAndFacet:(id<ICEObjectPrx>)aProxy { IceProxy::Ice::Object* lhs = OBJECTPRX; - IceProxy::Ice::Object* rhs = [(ICEObjectPrx*)aProxy objectPrx__]; + IceProxy::Ice::Object* rhs = [(ICEObjectPrx*)aProxy iceObjectPrx]; if(Ice::proxyIdentityAndFacetEqual(lhs, rhs)) { return NSOrderedSame; @@ -976,7 +940,7 @@ BOOL _returnsData; -(id<ICECommunicator>) ice_getCommunicator { - return [[communicator__ retain] autorelease]; + return [[communicator_ retain] autorelease]; } -(NSMutableString*) ice_toString @@ -986,15 +950,15 @@ BOOL _returnsData; -(BOOL) ice_isA:(NSString*)typeId { - __block BOOL ret__; - cppCall(^ { ret__ = OBJECTPRX->ice_isA(fromNSString(typeId)); }); - return ret__; + __block BOOL ret; + cppCall(^ { ret = OBJECTPRX->ice_isA(fromNSString(typeId)); }); + return ret; } -(BOOL) ice_isA:(NSString*)typeId context:(ICEContext*)context { - __block BOOL ret__; - cppCall(^(const Ice::Context& ctx) { ret__ = OBJECTPRX->ice_isA(fromNSString(typeId), ctx); }, context); - return ret__; + __block BOOL ret; + cppCall(^(const Ice::Context& ctx) { ret = OBJECTPRX->ice_isA(fromNSString(typeId), ctx); }, context); + return ret; } -(id<ICEAsyncResult>) begin_ice_isA:(NSString*)typeId { @@ -1034,10 +998,10 @@ BOOL _returnsData; result = OBJECTPRX->begin_ice_isA(fromNSString(typeId), cb); }, ^(const Ice::AsyncResultPtr& result) { - BOOL ret__ = OBJECTPRX->end_ice_isA(result); + BOOL ret = OBJECTPRX->end_ice_isA(result); if(response) { - response(ret__); + response(ret); } }, exception, sent, self); @@ -1055,19 +1019,19 @@ BOOL _returnsData; }, context, ^(const Ice::AsyncResultPtr& result) { - BOOL ret__ = OBJECTPRX->end_ice_isA(result); + BOOL ret = OBJECTPRX->end_ice_isA(result); if(response) { - response(ret__); + response(ret); } }, exception, sent, self); } -(BOOL) end_ice_isA:(id<ICEAsyncResult>)result { - __block BOOL ret__; - endCppCall(^(const Ice::AsyncResultPtr& r) { ret__ = OBJECTPRX->end_ice_isA(r); }, result); - return ret__; + __block BOOL ret; + endCppCall(^(const Ice::AsyncResultPtr& r) { ret = OBJECTPRX->end_ice_isA(r); }, result); + return ret; } -(void) ice_ping @@ -1145,15 +1109,15 @@ BOOL _returnsData; -(NSMutableArray*) ice_ids { - __block NSMutableArray* ret__; - cppCall(^ { ret__ = [toNSArray(OBJECTPRX->ice_ids()) autorelease]; }); - return ret__; + __block NSMutableArray* ret; + cppCall(^ { ret = [toNSArray(OBJECTPRX->ice_ids()) autorelease]; }); + return ret; } -(NSMutableArray*) ice_ids:(ICEContext*)context { - __block NSMutableArray* ret__; - cppCall(^(const Ice::Context& ctx) { ret__ = [toNSArray(OBJECTPRX->ice_ids(ctx)) autorelease]; }, context); - return ret__; + __block NSMutableArray* ret; + cppCall(^(const Ice::Context& ctx) { ret = [toNSArray(OBJECTPRX->ice_ids(ctx)) autorelease]; }, context); + return ret; } -(id<ICEAsyncResult>) begin_ice_ids { @@ -1186,10 +1150,10 @@ BOOL _returnsData; result = OBJECTPRX->begin_ice_ids(cb); }, ^(const Ice::AsyncResultPtr& result) { - NSMutableArray* ret__ = [toNSArray(OBJECTPRX->end_ice_ids(result)) autorelease]; + NSMutableArray* ret = [toNSArray(OBJECTPRX->end_ice_ids(result)) autorelease]; if(response) { - response(ret__); + response(ret); } }, exception, sent, self); @@ -1205,32 +1169,32 @@ BOOL _returnsData; }, context, ^(const Ice::AsyncResultPtr& result) { - NSMutableArray* ret__ = [toNSArray(OBJECTPRX->end_ice_ids(result)) autorelease]; + NSMutableArray* ret = [toNSArray(OBJECTPRX->end_ice_ids(result)) autorelease]; if(response) { - response(ret__); + response(ret); } }, exception, sent, self); } -(NSMutableArray*) end_ice_ids:(id<ICEAsyncResult>)result { - __block NSMutableArray* ret__; - endCppCall(^(const Ice::AsyncResultPtr& r) { ret__ = [toNSArray(OBJECTPRX->end_ice_ids(r)) autorelease]; }, result); - return ret__; + __block NSMutableArray* ret; + endCppCall(^(const Ice::AsyncResultPtr& r) { ret = [toNSArray(OBJECTPRX->end_ice_ids(r)) autorelease]; }, result); + return ret; } -(NSMutableString*) ice_id { - __block NSMutableString* ret__; - cppCall(^ { ret__ = [toNSMutableString(OBJECTPRX->ice_id()) autorelease]; }); - return ret__; + __block NSMutableString* ret; + cppCall(^ { ret = [toNSMutableString(OBJECTPRX->ice_id()) autorelease]; }); + return ret; } -(NSMutableString*) ice_id:(ICEContext*)context { - __block NSMutableString* ret__; - cppCall(^(const Ice::Context& ctx) { ret__ = [toNSMutableString(OBJECTPRX->ice_id(ctx)) autorelease]; }, context); - return ret__; + __block NSMutableString* ret; + cppCall(^(const Ice::Context& ctx) { ret = [toNSMutableString(OBJECTPRX->ice_id(ctx)) autorelease]; }, context); + return ret; } -(id<ICEAsyncResult>) begin_ice_id { @@ -1263,10 +1227,10 @@ BOOL _returnsData; result = OBJECTPRX->begin_ice_id(cb); }, ^(const Ice::AsyncResultPtr& result) { - NSString* ret__ = [toNSString(OBJECTPRX->end_ice_id(result)) autorelease]; + NSString* ret = [toNSString(OBJECTPRX->end_ice_id(result)) autorelease]; if(response) { - response(ret__); + response(ret); } }, exception, sent, self); @@ -1282,20 +1246,20 @@ BOOL _returnsData; }, context, ^(const Ice::AsyncResultPtr& result) { - NSString* ret__ = [toNSString(OBJECTPRX->end_ice_id(result)) autorelease]; + NSString* ret = [toNSString(OBJECTPRX->end_ice_id(result)) autorelease]; if(response) { - response(ret__); + response(ret); } }, exception, sent, self); } -(NSMutableString*) end_ice_id:(id<ICEAsyncResult>)result { - __block NSMutableString* ret__; - endCppCall(^(const Ice::AsyncResultPtr& r) { ret__ = [toNSMutableString(OBJECTPRX->end_ice_id(r)) autorelease]; }, + __block NSMutableString* ret; + endCppCall(^(const Ice::AsyncResultPtr& r) { ret = [toNSMutableString(OBJECTPRX->end_ice_id(r)) autorelease]; }, result); - return ret__; + return ret; } -(BOOL) ice_invoke:(NSString*)operation @@ -1303,15 +1267,7 @@ BOOL _returnsData; inEncaps:(NSData*)inEncaps outEncaps:(NSMutableData**)outEncaps { - __block BOOL ret__; - cppCall(^ { - std::pair<const Ice::Byte*, const Ice::Byte*> inP((ICEByte*)[inEncaps bytes], - (ICEByte*)[inEncaps bytes] + [inEncaps length]); - std::vector<Ice::Byte> outP; - ret__ = OBJECTPRX->ice_invoke(fromNSString(operation), (Ice::OperationMode)mode, inP, outP); - *outEncaps = [NSMutableData dataWithBytes:&outP[0] length:outP.size()]; - }); - return ret__; + return [self end_ice_invoke:outEncaps result:[self begin_ice_invoke:operation mode:mode inEncaps:inEncaps]]; } -(BOOL) ice_invoke:(NSString*)operation @@ -1320,16 +1276,10 @@ BOOL _returnsData; outEncaps:(NSMutableData**)outEncaps context:(ICEContext*)context { - __block BOOL ret__; - cppCall(^(const Ice::Context& ctx) { - std::pair<const Ice::Byte*, const Ice::Byte*> inP((ICEByte*)[inEncaps bytes], - (ICEByte*)[inEncaps bytes] + [inEncaps length]); - std::vector<Ice::Byte> outP; - ret__ = OBJECTPRX->ice_invoke(fromNSString(operation), (Ice::OperationMode)mode, inP, outP, ctx); - *outEncaps = [NSMutableData dataWithBytes:&outP[0] length:outP.size()]; - }, context); - return ret__; + return [self end_ice_invoke:outEncaps + result:[self begin_ice_invoke:operation mode:mode inEncaps:inEncaps context:context]]; } + -(id<ICEAsyncResult>) begin_ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps { return beginCppCall(^(Ice::AsyncResultPtr& result) @@ -1392,12 +1342,12 @@ BOOL _returnsData; }, ^(const Ice::AsyncResultPtr& result) { std::pair<const ::Ice::Byte*, const ::Ice::Byte*> outP; - BOOL ret__ = OBJECTPRX->___end_ice_invoke(outP, result); - NSMutableData* outEncaps = - [NSMutableData dataWithBytes:outP.first length:(outP.second - outP.first)]; + BOOL ret = OBJECTPRX->_iceI_end_ice_invoke(outP, result); if(response) { - response(ret__, outEncaps); + NSMutableData* outEncaps = + [NSMutableData dataWithBytes:outP.first length:(outP.second - outP.first)]; + response(ret, outEncaps); } }, exception, sent, self); @@ -1423,12 +1373,12 @@ BOOL _returnsData; context, ^(const Ice::AsyncResultPtr& result) { std::pair<const ::Ice::Byte*, const ::Ice::Byte*> outP; - BOOL ret__ = OBJECTPRX->___end_ice_invoke(outP, result); - NSMutableData* outEncaps = - [NSMutableData dataWithBytes:outP.first length:(outP.second - outP.first)]; + BOOL ret = OBJECTPRX->_iceI_end_ice_invoke(outP, result); if(response) { - response(ret__, outEncaps); + NSMutableData* outEncaps = + [NSMutableData dataWithBytes:outP.first length:(outP.second - outP.first)]; + response(ret, outEncaps); } }, exception, sent, self); @@ -1436,14 +1386,14 @@ BOOL _returnsData; -(BOOL) end_ice_invoke:(NSMutableData**)outEncaps result:(id<ICEAsyncResult>)result { - __block BOOL ret__; + __block BOOL ret; endCppCall(^(const Ice::AsyncResultPtr& r) { - std::vector<Ice::Byte> outP; - ret__ = OBJECTPRX->end_ice_invoke(outP, r); - *outEncaps = [NSMutableData dataWithBytes:&outP[0] length:outP.size()]; + std::pair<const ::Ice::Byte*, const ::Ice::Byte*> outP; + ret = OBJECTPRX->_iceI_end_ice_invoke(outP, r); + *outEncaps = [NSMutableData dataWithBytes:outP.first length:(outP.second - outP.first)]; }, result); - return ret__; + return ret; } -(ICEIdentity*) ice_getIdentity @@ -1452,7 +1402,7 @@ BOOL _returnsData; } -(id) ice_identity:(ICEIdentity*)identity { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_identity([identity identity])]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_identity([identity identity])]; } -(ICEMutableContext*) ice_getContext { @@ -1461,7 +1411,7 @@ BOOL _returnsData; -(id) ice_context:(ICEContext*)context { Ice::Context ctx; - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_context(fromNSDictionary(context, ctx))]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_context(fromNSDictionary(context, ctx))]; } -(NSMutableString*) ice_getFacet { @@ -1469,7 +1419,7 @@ BOOL _returnsData; } -(id) ice_facet:(NSString*)facet { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_facet(fromNSString(facet))]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_facet(fromNSString(facet))]; } -(NSMutableString*) ice_getAdapterId { @@ -1485,12 +1435,12 @@ BOOL _returnsData; { Ice::EndpointSeq cxxEndpoints; fromNSArray(endpoints, cxxEndpoints); - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_endpoints(cxxEndpoints)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_endpoints(cxxEndpoints)]; } -(id) ice_adapterId:(NSString*)adapterId { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_adapterId(fromNSString(adapterId))]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_adapterId(fromNSString(adapterId))]; } -(ICEInt) ice_getLocatorCacheTimeout @@ -1502,7 +1452,7 @@ BOOL _returnsData; NSException* nsex; try { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_locatorCacheTimeout(timeout)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_locatorCacheTimeout(timeout)]; } catch(const std::exception& ex) { @@ -1516,7 +1466,7 @@ BOOL _returnsData; } -(id) ice_connectionCached:(BOOL)cached { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_connectionCached(cached)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_connectionCached(cached)]; } -(ICEEndpointSelectionType) ice_getEndpointSelection { @@ -1524,7 +1474,7 @@ BOOL _returnsData; } -(id) ice_endpointSelection:(ICEEndpointSelectionType)type { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_endpointSelection((Ice::EndpointSelectionType)type)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_endpointSelection((Ice::EndpointSelectionType)type)]; } -(BOOL) ice_isSecure { @@ -1532,7 +1482,7 @@ BOOL _returnsData; } -(id) ice_secure:(BOOL)secure { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_secure(secure)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_secure(secure)]; } -(ICEEncodingVersion*) ice_getEncodingVersion @@ -1542,7 +1492,7 @@ BOOL _returnsData; -(id) ice_encodingVersion:(ICEEncodingVersion*)encoding; { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_encodingVersion([encoding encodingVersion])]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_encodingVersion([encoding encodingVersion])]; } -(BOOL) ice_isPreferSecure @@ -1551,25 +1501,25 @@ BOOL _returnsData; } -(id) ice_preferSecure:(BOOL)preferSecure { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_preferSecure(preferSecure)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_preferSecure(preferSecure)]; } -(id<ICERouterPrx>) ice_getRouter { - return (id<ICERouterPrx>)[ICERouterPrx objectPrxWithObjectPrx__:OBJECTPRX->ice_getRouter()]; + return (id<ICERouterPrx>)[ICERouterPrx iceObjectPrxWithObjectPrx:OBJECTPRX->ice_getRouter()]; } -(id) ice_router:(id<ICERouterPrx>)router { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_router( - Ice::RouterPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)router objectPrx__])))]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_router( + Ice::RouterPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)router iceObjectPrx])))]; } -(id<ICELocatorPrx>) ice_getLocator { - return (id<ICELocatorPrx>)[ICELocatorPrx objectPrxWithObjectPrx__:OBJECTPRX->ice_getLocator()]; + return (id<ICELocatorPrx>)[ICELocatorPrx iceObjectPrxWithObjectPrx:OBJECTPRX->ice_getLocator()]; } -(id) ice_locator:(id<ICELocatorPrx>)locator { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_locator( - Ice::LocatorPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)locator objectPrx__])))]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_locator( + Ice::LocatorPrx::uncheckedCast(Ice::ObjectPrx([(ICEObjectPrx*)locator iceObjectPrx])))]; } -(BOOL) ice_isCollocationOptimized { @@ -1577,7 +1527,7 @@ BOOL _returnsData; } -(id) ice_collocationOptimized:(BOOL)collocOptimized { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_collocationOptimized(collocOptimized)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_collocationOptimized(collocOptimized)]; } -(ICEInt) ice_getInvocationTimeout { @@ -1588,7 +1538,7 @@ BOOL _returnsData; NSException* nsex; try { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_invocationTimeout(timeout)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_invocationTimeout(timeout)]; } catch(const std::exception& ex) { @@ -1598,7 +1548,7 @@ BOOL _returnsData; } -(id) ice_twoway { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_twoway()]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_twoway()]; } -(BOOL) ice_isTwoway { @@ -1606,7 +1556,7 @@ BOOL _returnsData; } -(id) ice_oneway { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_oneway()]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_oneway()]; } -(BOOL) ice_isOneway { @@ -1614,7 +1564,7 @@ BOOL _returnsData; } -(id) ice_batchOneway { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_batchOneway()]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_batchOneway()]; } -(BOOL) ice_isBatchOneway { @@ -1622,7 +1572,7 @@ BOOL _returnsData; } -(id) ice_datagram { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_datagram()]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_datagram()]; } -(BOOL) ice_isDatagram { @@ -1630,7 +1580,7 @@ BOOL _returnsData; } -(id) ice_batchDatagram { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_batchDatagram()]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_batchDatagram()]; } -(BOOL) ice_isBatchDatagram { @@ -1638,14 +1588,14 @@ BOOL _returnsData; } -(id) ice_compress:(BOOL)compress { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_compress(compress)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_compress(compress)]; } -(id) ice_timeout:(int)timeout { NSException* nsex; try { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_timeout(timeout)]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_timeout(timeout)]; } catch(const std::exception& ex) { @@ -1655,7 +1605,7 @@ BOOL _returnsData; } -(id) ice_connectionId:(NSString*)connectionId { - return [[self class] objectPrxWithObjectPrx__:OBJECTPRX->ice_connectionId(fromNSString(connectionId))]; + return [[self class] iceObjectPrxWithObjectPrx:OBJECTPRX->ice_connectionId(fromNSString(connectionId))]; } -(id<ICEConnection>) ice_getConnection { @@ -1687,23 +1637,23 @@ BOOL _returnsData; result = OBJECTPRX->begin_ice_getConnection(cb); }, ^(const Ice::AsyncResultPtr& result) { - id<ICEConnection> ret__ = + id<ICEConnection> ret = [ICEConnection localObjectWithCxxObject:OBJECTPRX->end_ice_getConnection(result).get()]; if(response) { - response(ret__); + response(ret); } }, exception, nil, self); } -(id<ICEConnection>) end_ice_getConnection:(id<ICEAsyncResult>)result { - __block id<ICEConnection> ret__; + __block id<ICEConnection> ret; endCppCall(^(const Ice::AsyncResultPtr& r) { - ret__ = [ICEConnection localObjectWithCxxObject:OBJECTPRX->end_ice_getConnection(r).get()]; + ret = [ICEConnection localObjectWithCxxObject:OBJECTPRX->end_ice_getConnection(r).get()]; }, result); - return ret__; + return ret; } -(id<ICEConnection>) ice_getCachedConnection diff --git a/objective-c/src/Ice/ProxyI.h b/objective-c/src/Ice/ProxyI.h index 441a7911f67..9396e08910e 100644 --- a/objective-c/src/Ice/ProxyI.h +++ b/objective-c/src/Ice/ProxyI.h @@ -14,19 +14,19 @@ @interface ICEAsyncResult : NSObject<ICEAsyncResult> { @private - void* asyncResult__; + void* asyncResult_; NSString* operation_; id<ICEObjectPrx> proxy_; } --(ICEAsyncResult*)initWithAsyncResult__:(const Ice::AsyncResultPtr&)arg operation:(NSString*)op proxy:(id<ICEObjectPrx>)p; --(Ice::AsyncResult*) asyncResult__; -+(ICEAsyncResult*)asyncResultWithAsyncResult__:(const Ice::AsyncResultPtr&)arg; -+(ICEAsyncResult*)asyncResultWithAsyncResult__:(const Ice::AsyncResultPtr&)arg operation:(NSString*)op proxy:(id<ICEObjectPrx>)p; +-(ICEAsyncResult*)initWithAsyncResult:(const Ice::AsyncResultPtr&)arg operation:(NSString*)op proxy:(id<ICEObjectPrx>)p; +-(Ice::AsyncResult*) asyncResult; ++(ICEAsyncResult*)asyncResultWithAsyncResult:(const Ice::AsyncResultPtr&)arg; ++(ICEAsyncResult*)asyncResultWithAsyncResult:(const Ice::AsyncResultPtr&)arg operation:(NSString*)op proxy:(id<ICEObjectPrx>)p; -(NSString*)operation; @end @interface ICEObjectPrx () --(ICEObjectPrx*)initWithObjectPrx__:(const Ice::ObjectPrx&)arg; --(IceProxy::Ice::Object*) objectPrx__; -+(ICEObjectPrx*)objectPrxWithObjectPrx__:(const Ice::ObjectPrx&)arg; +-(ICEObjectPrx*)iceInitWithObjectPrx:(const Ice::ObjectPrx&)arg; +-(IceProxy::Ice::Object*) iceObjectPrx; ++(ICEObjectPrx*)iceObjectPrxWithObjectPrx:(const Ice::ObjectPrx&)arg; @end diff --git a/objective-c/src/Ice/Request.h b/objective-c/src/Ice/Request.h index 5754bc57c81..61bcbb1218a 100644 --- a/objective-c/src/Ice/Request.h +++ b/objective-c/src/Ice/Request.h @@ -19,5 +19,5 @@ } +(id) request:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; -(id) init:(ICECurrent*)current is:(id<ICEInputStream>)is os:(id<ICEOutputStream>)os; --(BOOL) callDispatch:(ICEServant*)servant; +-(void) callDispatch:(ICEServant*)servant; @end diff --git a/objective-c/src/Ice/Request.m b/objective-c/src/Ice/Request.m index b69aa609420..07881d3ec5c 100644 --- a/objective-c/src/Ice/Request.m +++ b/objective-c/src/Ice/Request.m @@ -35,7 +35,7 @@ return self; } --(BOOL) callDispatch:(ICEServant*)servant +-(void) callDispatch:(ICEServant*)servant { if(needReset == NO) { @@ -46,7 +46,7 @@ [is rewind]; [os reset:NO]; } - return [servant dispatch__:current is:is os:os]; + [servant iceDispatch:current is:is os:os]; } -(void) dealloc diff --git a/objective-c/src/Ice/SlicedData.mm b/objective-c/src/Ice/SlicedData.mm index 385ae3dfbca..f27f2bd8f3c 100644 --- a/objective-c/src/Ice/SlicedData.mm +++ b/objective-c/src/Ice/SlicedData.mm @@ -21,25 +21,25 @@ { return nil; } - self->slicedData__ = slicedData; - self->slicedData__->__incRef(); + self->slicedData_ = slicedData; + self->slicedData_->__incRef(); return self; } -(void) dealloc { - self->slicedData__->__decRef(); + self->slicedData_->__decRef(); [super dealloc]; } -(Ice::SlicedData*) slicedData { - return slicedData__; + return slicedData_; } @end -@implementation ICEUnknownSlicedObject +@implementation ICEUnknownSlicedValue -(id) init { @@ -70,16 +70,16 @@ return [[slicedData_ retain] autorelease]; } --(void) write__:(id<ICEOutputStream>)os +-(void) iceWrite:(id<ICEOutputStream>)os { - [os startObject:slicedData_]; - [os endObject]; + [os startValue:slicedData_]; + [os endValue]; } --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { - [is startObject]; - slicedData_ = [is endObject:YES]; + [is startValue]; + slicedData_ = [is endValue:YES]; // Initialize unknown type ID to type ID of first slice. Ice::SlicedData* slicedData = [((ICESlicedData*)slicedData_) slicedData]; diff --git a/objective-c/src/Ice/SlicedDataI.h b/objective-c/src/Ice/SlicedDataI.h index eef9c8d1173..6cf0b947e10 100644 --- a/objective-c/src/Ice/SlicedDataI.h +++ b/objective-c/src/Ice/SlicedDataI.h @@ -14,7 +14,7 @@ @interface ICESlicedData : NSObject<ICESlicedData> { @private - Ice::SlicedData* slicedData__; + Ice::SlicedData* slicedData_; } -(id) initWithSlicedData:(Ice::SlicedData*)slicedData; -(Ice::SlicedData*) slicedData; diff --git a/objective-c/src/Ice/Stream.mm b/objective-c/src/Ice/Stream.mm index 700d0210a86..016b12a99be 100644 --- a/objective-c/src/Ice/Stream.mm +++ b/objective-c/src/Ice/Stream.mm @@ -18,7 +18,8 @@ #import <objc/Ice/LocalException.h> -#include <Ice/Stream.h> +#include <Ice/OutputStream.h> +#include <Ice/InputStream.h> #include <Ice/SlicedData.h> #import <objc/runtime.h> @@ -28,20 +29,28 @@ ICE_API id ICENone = nil; namespace IceObjC { -class ObjectWriter : public Ice::ObjectWriter +class ValueWrapper : public Ice::Object { public: - ObjectWriter(ICEObject* obj, ICEOutputStream* stream) : _obj(obj), _stream(stream) + // We must explicitely CFRetain/CFRelease so that the garbage + // collector does not trash the _obj. + ValueWrapper(ICEObject* obj) : _obj(obj) { + CFRetain(_obj); + } + + virtual ~ValueWrapper() + { + CFRelease(_obj); } virtual void - write(const Ice::OutputStreamPtr& stream) const + _iceWrite(Ice::OutputStream* stream) const { @try { - [_obj write__:_stream]; + [_obj iceWrite:static_cast<ICEOutputStream*>(stream->getClosure())]; } @catch(id ex) { @@ -49,44 +58,12 @@ public: } } - virtual void ice_preMarshal() - { - [_obj ice_preMarshal]; - } - -private: - - ICEObject* _obj; - ICEOutputStream* _stream; -}; - -class ObjectReader : public Ice::ObjectReader -{ -public: - - // We must explicitely CFRetain/CFRelease so that the garbage - // collector does not trash the _obj. - ObjectReader(ICEObject* obj) : _obj(obj) - { - CFRetain(_obj); - } - - virtual ~ObjectReader() - { - CFRelease(_obj); - } - virtual void - read(const Ice::InputStreamPtr& stream) + _iceRead(Ice::InputStream* stream) { @try { - // - // TODO: explain why calling getLocalObjectWithCxxObjectNoAutoRelease is safe here - // - ICEInputStream* is = [ICEInputStream getLocalObjectWithCxxObjectNoAutoRelease:stream.get()]; - assert(is != 0); - [_obj read__:is]; + [_obj iceRead:static_cast<ICEInputStream*>(stream->getClosure())]; } @catch(id ex) { @@ -94,10 +71,9 @@ public: } } - ICEObject* - getObject() + virtual void ice_preMarshal() { - return _obj; + [_obj ice_preMarshal]; } virtual void ice_postUnmarshal() @@ -105,20 +81,32 @@ public: [_obj ice_postUnmarshal]; } + ICEObject* + getValue() + { + return _obj; + } + private: ICEObject* _obj; }; -typedef IceUtil::Handle<ObjectReader> ObjectReaderPtr; +typedef IceUtil::Handle<ValueWrapper> ValueWrapperPtr; -class ReadObjectBase : public Ice::ReadObjectCallback +class ReadValueBase { public: - ReadObjectBase(Class expectedType) : _expectedType(expectedType) + ReadValueBase(Class expectedType) : _expectedType(expectedType) { } + virtual + ~ReadValueBase() + { + } + + virtual void invoke(const Ice::ValuePtr&) = 0; void checkType(ICEObject*); private: @@ -127,7 +115,15 @@ private: }; void -ReadObjectBase::checkType(ICEObject* o) +patchFunc(void* obj, const Ice::ValuePtr& value) +{ + ReadValueBase* reader = static_cast<ReadValueBase*>(obj); + reader->invoke(value); + delete reader; +} + +void +ReadValueBase::checkType(ICEObject* o) { if(o != nil && ![o isKindOfClass:_expectedType]) { @@ -144,23 +140,23 @@ ReadObjectBase::checkType(ICEObject* o) } } -class ReadObject : public ReadObjectBase +class ReadValue : public ReadValueBase { public: - ReadObject(ICEObject** addr, Class expectedType, bool autorelease) : - ReadObjectBase(expectedType), _addr(addr), _autorelease(autorelease) + ReadValue(ICEObject** addr, Class expectedType, bool autorelease) : + ReadValueBase(expectedType), _addr(addr), _autorelease(autorelease) { } virtual void - invoke(const Ice::ObjectPtr& obj) + invoke(const Ice::ValuePtr& obj) { @try { if(obj) { - ICEObject* o = ObjectReaderPtr::dynamicCast(obj)->getObject(); + ICEObject* o = ValueWrapperPtr::dynamicCast(obj)->getValue(); checkType(o); *_addr = [o retain]; if(_autorelease) @@ -185,23 +181,23 @@ private: bool _autorelease; }; -class ReadObjectAtIndex : public ReadObjectBase +class ReadValueAtIndex : public ReadValueBase { public: - ReadObjectAtIndex(NSMutableArray* array, ICEInt index, Class expectedType) : - ReadObjectBase(expectedType), _array(array), _index(index) + ReadValueAtIndex(NSMutableArray* array, ICEInt index, Class expectedType) : + ReadValueBase(expectedType), _array(array), _index(index) { } virtual void - invoke(const Ice::ObjectPtr& obj) + invoke(const Ice::ValuePtr& obj) { @try { if(obj) { - ICEObject* o = ObjectReaderPtr::dynamicCast(obj)->getObject(); + ICEObject* o = ValueWrapperPtr::dynamicCast(obj)->getValue(); checkType(o); [_array replaceObjectAtIndex:_index withObject:o]; } @@ -218,31 +214,31 @@ private: ICEInt _index; }; -class ReadObjectForKey : public ReadObjectBase +class ReadValueForKey : public ReadValueBase { public: // We must explicitely CFRetain/CFRelease so that the garbage // collector does not trash the _key. - ReadObjectForKey(NSMutableDictionary* dict, id key, Class expectedType) : - ReadObjectBase(expectedType), _dict(dict), _key(key) + ReadValueForKey(NSMutableDictionary* dict, id key, Class expectedType) : + ReadValueBase(expectedType), _dict(dict), _key(key) { CFRetain(_key); } - virtual ~ReadObjectForKey() + virtual ~ReadValueForKey() { CFRelease(_key); } virtual void - invoke(const Ice::ObjectPtr& obj) + invoke(const Ice::ValuePtr& obj) { @try { if(obj) { - ICEObject* o = ObjectReaderPtr::dynamicCast(obj)->getObject(); + ICEObject* o = ValueWrapperPtr::dynamicCast(obj)->getValue(); checkType(o); [_dict setObject:o forKey:_key]; } @@ -263,34 +259,30 @@ private: id _key; }; -class ExceptionWriter : public Ice::UserExceptionWriter +class ExceptionWrapper : public Ice::UserException { public: - ExceptionWriter(const Ice::CommunicatorPtr& communicator, ICEOutputStream* stream, ICEUserException* ex) : - Ice::UserExceptionWriter(communicator), - _stream(stream), - _ex(ex) + ExceptionWrapper(ICEUserException* ex) : _ex(ex) { - } virtual bool - usesClasses() const + _usesClasses() const { - return [_ex usesClasses__]; + return [_ex iceUsesClasses]; } virtual std::string - ice_name() const + ice_id() const { - return [[_ex ice_name] UTF8String]; + return [[_ex ice_id] UTF8String]; } virtual Ice::UserException* ice_clone() const { - return new ExceptionWriter(*this); + return new ExceptionWrapper(*this); } virtual void @@ -300,97 +292,55 @@ public: } virtual void - write(const Ice::OutputStreamPtr& stream) const - { - [_ex write__:_stream]; - } - -private: - - ICEOutputStream* _stream; - ICEUserException* _ex; -}; - -class ExceptionReader : public Ice::UserExceptionReader -{ -public: - - ExceptionReader(const Ice::CommunicatorPtr& communicator, ICEInputStream* stream, ICEUserException* ex) : - Ice::UserExceptionReader(communicator), - _stream(stream), - _ex(ex) - { - } - - void - read(const Ice::InputStreamPtr& stream) const - { - [_ex read__:_stream]; - } - - virtual std::string - ice_name() const + _write(Ice::OutputStream* s) const { - return [[_ex ice_name] UTF8String]; - } - - virtual bool - usesClasses() const - { - return [_ex usesClasses__]; - } - - virtual Ice::UserException* - ice_clone() const - { - assert(false); - return 0; + [_ex iceWrite:static_cast<ICEOutputStream*>(s->getClosure())]; } virtual void - ice_throw() const + _read(Ice::InputStream* s) { - throw *this; + [_ex iceRead:static_cast<ICEInputStream*>(s->getClosure())]; } - ICEUserException* getException() const + ICEUserException* + getException() const { return _ex; } +protected: + + virtual void _writeImpl(Ice::OutputStream*) const {} + virtual void _readImpl(Ice::InputStream*) {} + private: - ICEInputStream* _stream; ICEUserException* _ex; }; -class UserExceptionReaderFactoryI : public Ice::UserExceptionReaderFactory +class UserExceptionFactoryI : public Ice::UserExceptionFactory { public: - UserExceptionReaderFactoryI(const Ice::CommunicatorPtr& communicator, ICEInputStream* is) : - _communicator(communicator), - _is(is) + UserExceptionFactoryI(NSDictionary* prefixTable) : _prefixTable(prefixTable) { } - virtual void createAndThrow(const std::string& typeId) const + virtual void createAndThrow(const std::string& typeId) { ICEUserException* ex = nil; - std::string objcId = toObjCSliceId(typeId, - [[ICECommunicator localObjectWithCxxObject:_communicator.get()] getPrefixTable]); - Class c = objc_lookUpClass(objcId.c_str()); + Class c = objc_lookUpClass(toObjCSliceId(typeId, _prefixTable).c_str()); if(c != nil) { ex = [[c alloc] init]; - throw ExceptionReader(_communicator, _is, ex); + throw ExceptionWrapper(ex); } } private: - Ice::CommunicatorPtr _communicator; - ICEInputStream* _is; + NSDictionary* _prefixTable; }; } @@ -428,20 +378,56 @@ private: @end @implementation ICEInputStream --(id) initWithCxxObject:(IceUtil::Shared*)cxxObject +-(id) initWithCxxCommunicator:(Ice::Communicator*)com data:(const std::pair<const Byte*, const Byte*>&)data +{ + self = [super init]; + if(!self) + { + return nil; + } + + Ice::InputStream(com, data).swap(stream_); + is_ = &stream_; + is_->setClosure(self); + data_ = nil; + prefixTable_ = [[[ICECommunicator localObjectWithCxxObject:com] getPrefixTable] retain]; + return self; +} + +-(id) initWithCommunicator:(id<ICECommunicator>)communicator data:(NSData*)data encoding:(ICEEncodingVersion*)e { - self = [super initWithCxxObject:cxxObject]; + self = [super init]; if(!self) { return nil; } - is_ = dynamic_cast<Ice::InputStream*>(cxxObject); + ICECommunicator* com = (ICECommunicator*)communicator; + std::pair<const Ice::Byte*, const Ice::Byte*> p((Ice::Byte*)[data bytes], (Ice::Byte*)[data bytes] + [data length]); + if(e != nil) + { + Ice::InputStream([com communicator], [e encodingVersion], p).swap(stream_); + } + else + { + Ice::InputStream([com communicator], p).swap(stream_); + } + is_ = &stream_; + is_->setClosure(self); + data_ = [data retain]; + prefixTable_ = [[com getPrefixTable] retain]; return self; } +-(void) dealloc +{ + [data_ release]; + [prefixTable_ release]; + [super dealloc]; +} + +(Ice::Object*)createObjectReader:(ICEObject*)obj { - return new IceObjC::ObjectReader(obj); + return new IceObjC::ValueWrapper(obj); } -(Ice::InputStream*) is @@ -451,17 +437,12 @@ private: // @protocol ICEInputStream methods --(id<ICECommunicator>) communicator -{ - return [ICECommunicator localObjectWithCxxObject:is_->communicator().get()]; -} - --(void) sliceObjects:(BOOL)b +-(void) setSliceValues:(BOOL)b { NSException* nsex = nil; try { - is_->sliceObjects(b); + is_->setSliceValues(b); } catch(const std::exception& ex) { @@ -934,15 +915,9 @@ private: NSException* nsex = nil; try { - Ice::ObjectPrx p = is_->readProxy(); - if(!p) - { - return nil; - } - else - { - return [[type alloc] initWithObjectPrx__:p]; - } + Ice::ObjectPrx p; + is_->read(p); + return p ? [[type alloc] iceInitWithObjectPrx:p] : nil; } catch(const std::exception& ex) { @@ -951,16 +926,16 @@ private: @throw nsex; return nil; // Keep the compiler happy. } --(void) readObject:(ICEObject**)object +-(void) readValue:(ICEObject**)object { - [self readObject:object expectedType:[ICEObject class]]; + [self readValue:object expectedType:[ICEObject class]]; } --(void) readObject:(ICEObject**)object expectedType:(Class)type +-(void) readValue:(ICEObject**)object expectedType:(Class)type { NSException* nsex = nil; try { - is_->readObject(new IceObjC::ReadObject(object, type, true)); + is_->read(IceObjC::patchFunc, new IceObjC::ReadValue(object, type, true)); } catch(const std::exception& ex) { @@ -971,16 +946,16 @@ private: @throw nsex; } } --(void) newObject:(ICEObject*ICE_STRONG_QUALIFIER*)object +-(void) newValue:(ICEObject*ICE_STRONG_QUALIFIER*)object { - [self newObject:object expectedType:[ICEObject class]]; + [self newValue:object expectedType:[ICEObject class]]; } --(void) newObject:(ICEObject*ICE_STRONG_QUALIFIER*)object expectedType:(Class)type +-(void) newValue:(ICEObject*ICE_STRONG_QUALIFIER*)object expectedType:(Class)type { NSException* nsex = nil; try { - is_->readObject(new IceObjC::ReadObject(object, type, false)); + is_->read(IceObjC::patchFunc, new IceObjC::ReadValue(object, type, false)); } catch(const std::exception& ex) { @@ -992,12 +967,12 @@ private: } } --(NSMutableArray*) readObjectSeq:(Class)type +-(NSMutableArray*) readValueSeq:(Class)type { - return [[self newObjectSeq:(Class)type] autorelease]; + return [[self newValueSeq:(Class)type] autorelease]; } --(NSMutableArray*) newObjectSeq:(Class)type +-(NSMutableArray*) newValueSeq:(Class)type { ICEInt sz = [self readAndCheckSeqSize:1]; NSMutableArray* arr = [[NSMutableArray alloc] initWithCapacity:sz]; @@ -1009,7 +984,7 @@ private: for(i = 0; i < sz; i++) { [arr addObject:null]; - is_->readObject(new IceObjC::ReadObjectAtIndex(arr, i, type)); + is_->read(IceObjC::patchFunc, new IceObjC::ReadValueAtIndex(arr, i, type)); } } catch(const std::exception& ex) @@ -1024,12 +999,12 @@ private: return arr; } --(NSMutableDictionary*) readObjectDict:(Class)keyHelper expectedType:(Class)type +-(NSMutableDictionary*) readValueDict:(Class)keyHelper expectedType:(Class)type { - return [[self newObjectDict:(Class)keyHelper expectedType:(Class)type] autorelease]; + return [[self newValueDict:(Class)keyHelper expectedType:(Class)type] autorelease]; } --(NSMutableDictionary*) newObjectDict:(Class)keyHelper expectedType:(Class)type +-(NSMutableDictionary*) newValueDict:(Class)keyHelper expectedType:(Class)type { ICEInt sz = [self readAndCheckSeqSize:[keyHelper minWireSize] + 1]; NSMutableDictionary* dictionary = [[NSMutableDictionary alloc] initWithCapacity:sz]; @@ -1049,7 +1024,7 @@ private: NSException* nsex = nil; try { - is_->readObject(new IceObjC::ReadObjectForKey(dictionary, key, type)); + is_->read(IceObjC::patchFunc, new IceObjC::ReadValueForKey(dictionary, key, type)); } catch(const std::exception& ex) { @@ -1078,9 +1053,9 @@ private: id obj = nil; @try { - while(sz-- > 0) - { - obj = [helper readRetained:self]; + while(sz-- > 0) + { + obj = [helper readRetained:self]; if(obj == nil) { [arr addObject:[NSNull null]]; @@ -1090,12 +1065,12 @@ private: [arr addObject:obj]; [obj release]; } - } + } } @catch(id ex) { [arr release]; - [obj release]; + [obj release]; @throw ex; } return arr; @@ -1114,10 +1089,10 @@ private: id value = nil; @try { - while(sz-- > 0) - { - key = [helper.key readRetained:self]; - value = [helper.value readRetained:self]; + while(sz-- > 0) + { + key = [helper.key readRetained:self]; + value = [helper.value readRetained:self]; if(value == nil) { [dictionary setObject:[NSNull null] forKey:key]; @@ -1127,14 +1102,14 @@ private: [dictionary setObject:value forKey:key]; [value release]; } - [key release]; - } + [key release]; + } } @catch(id ex) { - [dictionary release]; - [key release]; - [value release]; + [dictionary release]; + [key release]; + [value release]; @throw ex; } return dictionary; @@ -1164,13 +1139,11 @@ private: NSException* nsex = nil; try { - Ice::UserExceptionReaderFactoryPtr factory = - new IceObjC::UserExceptionReaderFactoryI(is_->communicator().get(), self); - is_->throwException(factory); + is_->throwException(new IceObjC::UserExceptionFactoryI(prefixTable_)); } - catch(const IceObjC::ExceptionReader& reader) + catch(const IceObjC::ExceptionWrapper& e) { - ex = reader.getException(); + ex = e.getException(); @throw [ex autorelease]; // NOTE: exceptions are always auto-released, no need for the caller to do it. } catch(const std::exception& ex) @@ -1180,12 +1153,12 @@ private: } } --(void) startObject +-(void) startValue { NSException* nsex = nil; try { - is_->startObject(); + is_->startValue(); } catch(const std::exception& ex) { @@ -1197,12 +1170,12 @@ private: } } --(id<ICESlicedData>) endObject:(BOOL)preserve +-(id<ICESlicedData>) endValue:(BOOL)preserve { NSException* nsex = nil; try { - Ice::SlicedDataPtr slicedData = is_->endObject(preserve); + Ice::SlicedDataPtr slicedData = is_->endValue(preserve); return slicedData ? [[ICESlicedData alloc] initWithSlicedData:slicedData.get()] : nil; } catch(const std::exception& ex) @@ -1338,6 +1311,24 @@ private: } } +-(ICEEncodingVersion*) skipEmptyEncapsulation +{ + NSException* nsex = nil; + try + { + return [ICEEncodingVersion encodingVersionWithEncodingVersion:is_->skipEmptyEncapsulation()]; + } + catch(const std::exception& ex) + { + nsex = toObjCException(ex); + } + if(nsex != nil) + { + @throw nsex; + } + return nil; // Keep the compiler happy. +} + -(ICEEncodingVersion*) skipEncapsulation { NSException* nsex = nil; @@ -1361,12 +1352,12 @@ private: return [ICEEncodingVersion encodingVersionWithEncodingVersion:is_->getEncoding()]; } --(void) readPendingObjects +-(void) readPendingValues { NSException* nsex = nil; try { - is_->readPendingObjects(); + is_->readPendingValues(); } catch(const std::exception& ex) { @@ -1383,7 +1374,8 @@ private: NSException* nsex = nil; try { - is_->rewind(); + is_->pos(0); + is_->clear(); } catch(const std::exception& ex) { @@ -1395,6 +1387,7 @@ private: } } + -(void) skip:(ICEInt)sz { NSException* nsex = nil; @@ -1432,14 +1425,51 @@ private: @end @implementation ICEOutputStream --(id) initWithCxxObject:(IceUtil::Shared*)cxxObject +-(id) initWithCxxCommunicator:(Ice::Communicator*)com +{ + self = [super init]; + if(!self) + { + return nil; + } + Ice::OutputStream(com).swap(stream_); + os_ = &stream_; + os_->setClosure(self); + objectWriters_ = 0; + return self; +} + +-(id) initWithCxxStream:(Ice::OutputStream*)stream +{ + self = [super init]; + if(!self) + { + return nil; + } + os_ = stream; + os_->setClosure(self); + objectWriters_ = 0; + return self; +} + +-(id) initWithCommunicator:(id<ICECommunicator>)communicator encoding:(ICEEncodingVersion*)e { - self = [super initWithCxxObject:cxxObject]; + self = [super init]; if(!self) { return nil; } - os_ = dynamic_cast<Ice::OutputStream*>(cxxObject); + ICECommunicator* com = (ICECommunicator*)communicator; + if(e != nil) + { + Ice::OutputStream([com communicator], [e encodingVersion]).swap(stream_); + } + else + { + Ice::OutputStream([com communicator]).swap(stream_); + } + os_ = &stream_; + os_->setClosure(self); objectWriters_ = 0; return self; } @@ -1460,11 +1490,6 @@ private: // @protocol ICEOutputStream methods --(id<ICECommunicator>) communicator -{ - return [ICECommunicator localObjectWithCxxObject:os_->communicator().get()]; -} - -(void)writeBool:(BOOL)v { NSException* nsex = nil; @@ -1487,8 +1512,7 @@ private: NSException* nsex = nil; try { - v == nil ? os_->writeSize(0) - : os_->write((bool*)[v bytes], (bool*)[v bytes] + [v length] / sizeof(BOOL)); + v == nil ? os_->writeSize(0) : os_->write((bool*)[v bytes], (bool*)[v bytes] + [v length] / sizeof(BOOL)); } catch(const std::exception& ex) { @@ -1522,8 +1546,7 @@ private: NSException* nsex = nil; try { - v == nil ? os_->writeSize(0) - : os_->write((ICEByte*)[v bytes], (ICEByte*)[v bytes] + [v length]); + v == nil ? os_->writeSize(0) : os_->write((ICEByte*)[v bytes], (ICEByte*)[v bytes] + [v length]); } catch(const std::exception& ex) { @@ -1699,7 +1722,7 @@ private: { v == nil ? os_->writeSize(0) : os_->write((ICEDouble*)[v bytes], - (ICEDouble*)[v bytes] + [v length] / sizeof(ICEDouble)); + (ICEDouble*)[v bytes] + [v length] / sizeof(ICEDouble)); } catch(const std::exception& ex) { @@ -1716,7 +1739,7 @@ private: NSException* nsex = nil; try { - os_->write(fromNSString(v)); + os_->write(fromNSString(v)); } catch(const std::exception& ex) { @@ -1733,8 +1756,8 @@ private: NSException* nsex = nil; try { - std::vector<std::string> s; - os_->write(fromNSArray(v, s)); + std::vector<std::string> s; + os_->write(fromNSArray(v, s)); } catch(const std::exception& ex) { @@ -1757,7 +1780,7 @@ private: [self writeSize:[arr count]]; for(id i in arr) { - [helper write:(i == [NSNull null] ? nil : i) stream:self]; + [helper write:(i == [NSNull null] ? nil : i) stream:self]; } } @@ -1766,7 +1789,7 @@ private: if(dictionary == nil) { [self writeSize:0]; - return; + return; } [self writeSize:[dictionary count]]; @@ -1774,13 +1797,13 @@ private: id key; while((key = [e nextObject])) { - if(key == [NSNull null]) - { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; - } - [helper.key write:key stream:self]; - NSObject *obj = [dictionary objectForKey:key]; - [helper.value write:(obj == [NSNull null] ? nil : obj) stream:self]; + if(key == [NSNull null]) + { + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + } + [helper.key write:key stream:self]; + NSObject *obj = [dictionary objectForKey:key]; + [helper.value write:(obj == [NSNull null] ? nil : obj) stream:self]; } } @@ -1899,7 +1922,7 @@ private: NSException* nsex = nil; try { - os_->writeProxy([(ICEObjectPrx*)v objectPrx__]); + os_->write(Ice::ObjectPrx([(ICEObjectPrx*)v iceObjectPrx])); } catch(const std::exception& ex) { @@ -1911,18 +1934,18 @@ private: } } --(void) writeObject:(ICEObject*)v +-(void) writeValue:(ICEObject*)v { NSException* nsex = nil; try { if(v == nil) { - os_->writeObject(0); + os_->write(Ice::ValuePtr()); } else { - os_->writeObject([self addObject:v]); + os_->write(Ice::ValuePtr([self addObject:v])); } } catch(const std::exception& ex) @@ -1935,7 +1958,7 @@ private: } } --(void) writeObjectSeq:(NSArray*)arr +-(void) writeValueSeq:(NSArray*)arr { if(arr == nil) { @@ -1946,16 +1969,16 @@ private: [self writeSize:[arr count]]; for(id i in arr) { - [self writeObject:(i == [NSNull null] ? nil : i)]; + [self writeValue:(i == [NSNull null] ? nil : i)]; } } --(void) writeObjectDict:(NSDictionary*)dictionary helper:(Class)helper +-(void) writeValueDict:(NSDictionary*)dictionary helper:(Class)helper { if(dictionary == nil) { [self writeSize:0]; - return; + return; } [self writeSize:[dictionary count]]; @@ -1963,34 +1986,34 @@ private: id key; while((key = [e nextObject])) { - if(key == [NSNull null]) - { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; - } - [helper write:key stream:self]; - id obj = [dictionary objectForKey:key]; - [self writeObject:(obj == [NSNull null] ? nil : obj)]; + if(key == [NSNull null]) + { + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + } + [helper write:key stream:self]; + id obj = [dictionary objectForKey:key]; + [self writeValue:(obj == [NSNull null] ? nil : obj)]; } } -(void) writeException:(ICEUserException*)ex { - IceObjC::ExceptionWriter writer(os_->communicator().get(), self, ex); + IceObjC::ExceptionWrapper writer(ex); os_->writeException(writer); } --(void) startObject:(id<ICESlicedData>)slicedData +-(void) startValue:(id<ICESlicedData>)slicedData { NSException* nsex = nil; try { if(slicedData != nil) { - os_->startObject([self writeSlicedData:slicedData]); + os_->startValue([self writeSlicedData:slicedData]); } else { - os_->startObject(0); + os_->startValue(0); } } catch(const std::exception& ex) @@ -2003,12 +2026,12 @@ private: } } --(void) endObject +-(void) endValue { NSException* nsex = nil; try { - os_->endObject(); + os_->endValue(); } catch(const std::exception& ex) { @@ -2151,12 +2174,12 @@ private: return [ICEEncodingVersion encodingVersionWithEncodingVersion:os_->getEncoding()]; } --(void) writePendingObjects +-(void) writePendingValues { NSException* nsex = nil; try { - os_->writePendingObjects(); + os_->writePendingValues(); } catch(const std::exception& ex) { @@ -2206,7 +2229,8 @@ private: NSException* nsex = nil; try { - os_->reset(clearBuffer); + os_->clear(); + os_->resize(0); } catch(const std::exception& ex) { @@ -2221,23 +2245,23 @@ private: -(Ice::Object*) addObject:(ICEObject*)object { // - // Ice::ObjectWriter is a subclass of Ice::Object that wraps an Objective-C object for marshaling. + // Ice::ValueWrapper is a subclass of Ice::Object that wraps an Objective-C object for marshaling. // It is possible that this Objective-C object has already been marshaled, therefore we first must - // check the object map to see if this object is present. If so, we use the existing ObjectWriter, + // check the object map to see if this object is present. If so, we use the existing ValueWrapper, // otherwise we create a new one. // if(!objectWriters_) { - objectWriters_ = new std::map<ICEObject*, Ice::ObjectPtr>(); + objectWriters_ = new std::map<ICEObject*, Ice::ValuePtr>(); } - std::map<ICEObject*, Ice::ObjectPtr>::const_iterator p = objectWriters_->find(object); + std::map<ICEObject*, Ice::ValuePtr>::const_iterator p = objectWriters_->find(object); if(p != objectWriters_->end()) { return p->second.get(); } else { - Ice::ObjectWriterPtr writer = new IceObjC::ObjectWriter(object, self); + IceObjC::ValueWrapperPtr writer = new IceObjC::ValueWrapper(object); objectWriters_->insert(std::make_pair(object, writer)); return writer.get(); } @@ -2257,16 +2281,16 @@ private: info->hasOptionalMembers = (*p)->hasOptionalMembers; info->isLastSlice = (*p)->isLastSlice; - for(std::vector<Ice::ObjectPtr>::const_iterator q = (*p)->objects.begin(); q != (*p)->objects.end(); ++q) + for(std::vector<Ice::ValuePtr>::const_iterator q = (*p)->instances.begin(); q != (*p)->instances.end(); ++q) { if(*q) { - assert(IceObjC::ObjectReaderPtr::dynamicCast(*q)); - info->objects.push_back([self addObject:IceObjC::ObjectReaderPtr::dynamicCast(*q)->getObject()]); + assert(IceObjC::ValueWrapperPtr::dynamicCast(*q)); + info->instances.push_back([self addObject:IceObjC::ValueWrapperPtr::dynamicCast(*q)->getValue()]); } else { - info->objects.push_back(0); + info->instances.push_back(0); } } slices.push_back(info); @@ -2290,17 +2314,17 @@ private: { NSAssert(NO, @"requires override"); } -+(id) readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id) readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { NSAssert(NO, @"requires override"); return nil; } -+(id) readOpt:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id) readOptional:(id<ICEInputStream>)stream tag:(ICEInt)tag { - return [[self readOptRetained:stream tag:tag] autorelease]; + return [[self readOptionalRetained:stream tag:tag] autorelease]; return nil; } -+(void) writeOpt:(id)obj stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)obj stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { NSAssert(NO, @"requires override"); } @@ -2320,11 +2344,11 @@ private: { if(obj == nil) { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; } [stream writeBool:[obj boolValue]]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatF1]) { @@ -2332,7 +2356,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { BOOL value; if([ICEOptionalGetter getBool:v value:&value] && [stream writeOptional:tag format:ICEOptionalFormatF1]) @@ -2355,11 +2379,11 @@ private: { if(obj == nil) { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; } [stream writeByte:[obj unsignedCharValue]]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatF1]) { @@ -2367,7 +2391,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICEByte value; if([ICEOptionalGetter getByte:v value:&value] && [stream writeOptional:tag format:ICEOptionalFormatF1]) @@ -2390,11 +2414,11 @@ private: { if(obj == nil) { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; } [stream writeShort:[obj shortValue]]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatF2]) { @@ -2402,7 +2426,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICEShort value; if([ICEOptionalGetter getShort:v value:&value] && [stream writeOptional:tag format:ICEOptionalFormatF2]) @@ -2425,11 +2449,11 @@ private: { if(obj == nil) { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; } [stream writeInt:[obj intValue]]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatF4]) { @@ -2437,7 +2461,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICEInt value; if([ICEOptionalGetter getInt:v value:&value] && [stream writeOptional:tag format:ICEOptionalFormatF4]) @@ -2460,11 +2484,11 @@ private: { if(obj == nil) { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; } [stream writeLong:[obj longValue]]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatF8]) { @@ -2472,7 +2496,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICELong value; if([ICEOptionalGetter getLong:v value:&value] && [stream writeOptional:tag format:ICEOptionalFormatF8]) @@ -2495,11 +2519,11 @@ private: { if(obj == nil) { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; } [stream writeFloat:[obj floatValue]]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatF4]) { @@ -2507,7 +2531,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICEFloat value; if([ICEOptionalGetter getFloat:v value:&value] && [stream writeOptional:tag format:ICEOptionalFormatF4]) @@ -2530,11 +2554,11 @@ private: { if(obj == nil) { - @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; + @throw [ICEMarshalException marshalException:__FILE__ line:__LINE__ reason:@"illegal NSNull value"]; } [stream writeDouble:[obj doubleValue]]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatF8]) { @@ -2542,7 +2566,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICEDouble value; if([ICEOptionalGetter getDouble:v value:&value] && [stream writeOptional:tag format:ICEOptionalFormatF8]) @@ -2569,7 +2593,7 @@ private: } [stream writeString:obj]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatVSize]) { @@ -2577,7 +2601,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { NSString* value; if([ICEOptionalGetter get:v value:&value type:[NSString class]] && @@ -2605,7 +2629,7 @@ private: } [stream writeEnumerator:[obj intValue] min:[self getMinValue] max:[self getMaxValue]]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatSize]) { @@ -2613,7 +2637,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICEInt value; if([ICEOptionalGetter getInt:v value:&value] && [stream writeOptional:tag format:ICEOptionalFormatSize]) @@ -2645,22 +2669,22 @@ private: // objects are read when readPendingObjects is called. // ICEObject* obj; - [stream newObject:&obj]; + [stream newValue:&obj]; return (id)obj; } +(void)readRetained:(ICEObject**)v stream:(id<ICEInputStream>)stream { - [stream newObject:v]; + [stream newValue:v]; } +(void)read:(ICEObject**)v stream:(id<ICEInputStream>)stream { - [stream readObject:v]; + [stream readValue:v]; } +(void) write:(id)obj stream:(id<ICEOutputStream>)stream { - [stream writeObject:obj]; + [stream writeValue:obj]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatClass]) { @@ -2668,7 +2692,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICEObject* value; if([ICEOptionalGetter get:v value:&value type:[ICEObject class]] && @@ -2677,7 +2701,7 @@ private: [self write:value stream:stream]; } } -+(void)readOptRetained:(id *)v stream:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(void)readOptionalRetained:(id *)v stream:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatClass]) { @@ -2688,7 +2712,7 @@ private: *v = ICENone; } } -+(void)readOpt:(id *)v stream:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(void)readOptional:(id *)v stream:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatClass]) { @@ -2714,7 +2738,7 @@ private: { [stream writeProxy:obj]; } -+(id)readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id)readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatFSize]) { @@ -2722,7 +2746,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { ICEObjectPrx* value; if([ICEOptionalGetter get:v value:&value type:[ICEObjectPrx class]] && @@ -2755,7 +2779,7 @@ private: @try { - [p read__:stream]; + [p iceRead:stream]; } @catch(NSException *ex) { @@ -2775,7 +2799,7 @@ private: obj = [[self getType] new]; @try { - [obj write__:stream]; + [obj iceWrite:stream]; } @finally { @@ -2784,10 +2808,10 @@ private: } else { - [obj write__:stream]; + [obj iceWrite:stream]; } } -+(id) readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id) readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { Class helper = [self getOptionalHelper]; if([stream readOptional:tag format:[helper optionalFormat]]) @@ -2796,7 +2820,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)s tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)s tag:(ICEInt)tag { Class helper = [self getOptionalHelper]; NSObject* a; @@ -2831,7 +2855,7 @@ private: { [stream writeSequence:obj helper:[self getElementHelper]]; } -+(id) readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id) readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { Class helper = [self getOptionalHelper]; if([stream readOptional:tag format:[helper optionalFormat]]) @@ -2840,7 +2864,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)s tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)s tag:(ICEInt)tag { Class helper = [self getOptionalHelper]; NSArray* a; @@ -2879,7 +2903,7 @@ private: { NSAssert(NO, @"write requires override"); } -+(id) readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id) readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatVSize]) { @@ -2887,7 +2911,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { NSData* a; if([ICEOptionalGetter get:v value:&a type:[NSData class]] && @@ -2919,7 +2943,7 @@ private: { [stream writeBoolSeq:obj]; } -+(id) readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id) readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatVSize]) { @@ -2927,7 +2951,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { NSData* a; if([ICEOptionalGetter get:v value:&a type:[NSData class]] && @@ -2951,7 +2975,7 @@ private: { [stream writeByteSeq:obj]; } -+(id) readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id) readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { if([stream readOptional:tag format:ICEOptionalFormatVSize]) { @@ -2959,7 +2983,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)stream tag:(ICEInt)tag { NSData* a; if([ICEOptionalGetter get:v value:&a type:[NSData class]] && @@ -3082,11 +3106,11 @@ private: @implementation ICEObjectSequenceHelper +(id) readRetained:(id<ICEInputStream>)stream { - return [stream newObjectSeq:[ICEObject class]]; + return [stream newValueSeq:[ICEObject class]]; } +(void) write:(id)obj stream:(id<ICEOutputStream>)stream { - [stream writeObjectSeq:obj]; + [stream writeValueSeq:obj]; } +(Class) getElementHelper { @@ -3118,7 +3142,7 @@ private: { [stream writeDictionary:obj helper:[self getKeyValueHelper]]; } -+(id) readOptRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag ++(id) readOptionalRetained:(id<ICEInputStream>)stream tag:(ICEInt)tag { Class helper = [self getOptionalHelper]; if([stream readOptional:tag format:[helper optionalFormat]]) @@ -3127,7 +3151,7 @@ private: } return ICENone; } -+(void) writeOpt:(id)v stream:(id<ICEOutputStream>)s tag:(ICEInt)tag ++(void) writeOptional:(id)v stream:(id<ICEOutputStream>)s tag:(ICEInt)tag { Class helper = [self getOptionalHelper]; NSDictionary* a; @@ -3169,6 +3193,11 @@ private: { NSAssert(NO, @"ICEObjectDictionaryHelper write requires override"); } + ++(Class) getOptionalHelper +{ + return [ICEVarLengthOptionalHelper class]; +} @end @implementation ICEVarLengthOptionalHelper diff --git a/objective-c/src/Ice/StreamI.h b/objective-c/src/Ice/StreamI.h index 2eff566d988..88afa8974c0 100644 --- a/objective-c/src/Ice/StreamI.h +++ b/objective-c/src/Ice/StreamI.h @@ -10,20 +10,32 @@ #import <objc/Ice/Stream.h> #import <objc/Ice/LocalObject.h> -#include <Ice/Stream.h> +#include <Ice/InputStream.h> +#include <Ice/OutputStream.h> -@interface ICEInputStream : ICELocalObject<ICEInputStream> +@protocol ICECommunicator; + +@interface ICEInputStream : NSObject<ICEInputStream> { Ice::InputStream* is_; + Ice::InputStream stream_; + NSDictionary* prefixTable_; + NSData* data_; } +(Ice::Object*)createObjectReader:(ICEObject*)obj; +-initWithCxxCommunicator:(Ice::Communicator*)com data:(const std::pair<const Byte*, const Byte*>&)data; +-initWithCommunicator:(id<ICECommunicator>)com data:(NSData*)data encoding:(ICEEncodingVersion*)e; -(Ice::InputStream*) is; @end -@interface ICEOutputStream : ICELocalObject<ICEOutputStream> +@interface ICEOutputStream : NSObject<ICEOutputStream> { Ice::OutputStream* os_; + Ice::OutputStream stream_; std::map<ICEObject*, Ice::ObjectPtr>* objectWriters_; } +-initWithCxxCommunicator:(Ice::Communicator*)communicator; +-initWithCxxStream:(Ice::OutputStream*)stream; +-initWithCommunicator:(id<ICECommunicator>)com encoding:(ICEEncodingVersion*)e; -(Ice::OutputStream*) os; @end diff --git a/objective-c/src/Ice/Util.h b/objective-c/src/Ice/Util.h index c83ef4fc96c..7aeccb74074 100644 --- a/objective-c/src/Ice/Util.h +++ b/objective-c/src/Ice/Util.h @@ -30,17 +30,17 @@ void cppCall(void (^fn)()); void cppCall(void (^fn)(const Ice::Context&), ICEContext*); ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&), ICEObjectPrx* = nil); -ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&, const Ice::CallbackPtr&), +ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&, const Ice::CallbackPtr&), void (^completed)(const Ice::AsyncResultPtr&), void (^exception)(ICEException*), void (^sent)(BOOL), ICEObjectPrx* = nil); ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&, const Ice::Context&), ICEContext*, ICEObjectPrx* = nil); -ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&, const Ice::Context&, const Ice::CallbackPtr&), +ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&, const Ice::Context&, const Ice::CallbackPtr&), ICEContext*, void (^completed)(const Ice::AsyncResultPtr&), void (^exception)(ICEException*), - void (^sent)(BOOL), + void (^sent)(BOOL), ICEObjectPrx* = nil); void endCppCall(void (^fn)(const Ice::AsyncResultPtr&), ICEAsyncResult*); @@ -119,7 +119,7 @@ toNSData(const std::vector<T>& seq) T* target = (T*)[array bytes]; for(typename std::vector<T>::const_iterator p = seq.begin(); p != seq.end(); ++p) { - *target++ = *p; + *target++ = *p; } return array; } @@ -130,12 +130,12 @@ fromNSArray(NSArray* array, std::vector<T>& seq) if(array != nil) { seq.reserve([array count]); - NSEnumerator* enumerator = [array objectEnumerator]; - id obj = nil; - while((obj = [enumerator nextObject])) - { + NSEnumerator* enumerator = [array objectEnumerator]; + id obj = nil; + while((obj = [enumerator nextObject])) + { T v; - fromObjC(obj, v); + fromObjC(obj, v); seq.push_back(v); } } @@ -147,13 +147,13 @@ fromNSData(NSData* array, std::vector<T>& seq) { if(array != nil) { - int len = [array length] / sizeof(T); + int len = [array length] / sizeof(T); seq.reserve(len); - T* src = (T*)[array bytes]; - while(len-- > 0) - { + T* src = (T*)[array bytes]; + while(len-- > 0) + { seq.push_back(*src++); - } + } } return seq; } @@ -178,10 +178,10 @@ fromNSDictionary(NSDictionary* dictionary, std::map<K, V>& dict) { if(dictionary != nil) { - NSEnumerator* enumerator = [dictionary keyEnumerator]; - id obj = nil; - while((obj = [enumerator nextObject])) - { + NSEnumerator* enumerator = [dictionary keyEnumerator]; + id obj = nil; + while((obj = [enumerator nextObject])) + { K k; fromObjC(obj, k); V v; @@ -229,7 +229,7 @@ public: Exception(const Exception&); virtual ~Exception() throw(); - virtual std::string ice_name() const; + virtual std::string ice_id() const; virtual void ice_print(std::ostream& os) const; virtual Exception* ice_clone() const; virtual void ice_throw() const; @@ -237,7 +237,7 @@ public: id<NSObject> exception() const { return _ex; } private: - + id<NSObject> _ex; }; diff --git a/objective-c/src/Ice/Util.mm b/objective-c/src/Ice/Util.mm index fa6b6d0eb11..d0e0032d4db 100644 --- a/objective-c/src/Ice/Util.mm +++ b/objective-c/src/Ice/Util.mm @@ -157,7 +157,7 @@ ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&), ICEObjectPrx* prx { Ice::AsyncResultPtr r; fn(r); - return [ICEAsyncResult asyncResultWithAsyncResult__:r operation:nil proxy:prx]; + return [ICEAsyncResult asyncResultWithAsyncResult:r operation:nil proxy:prx]; } catch(const std::exception& ex) { @@ -179,7 +179,7 @@ ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&, const Ice::Callbac Ice::AsyncResultPtr r; Ice::CallbackPtr callback = Ice::newCallback(cb, &AsyncCallback::completed, &AsyncCallback::sent); fn(r, callback); - return [ICEAsyncResult asyncResultWithAsyncResult__:r operation:nil proxy:prx]; + return [ICEAsyncResult asyncResultWithAsyncResult:r operation:nil proxy:prx]; } catch(const std::exception& ex) { @@ -199,7 +199,7 @@ ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&, const Ice::Context fromNSDictionary(context, ctx); Ice::AsyncResultPtr r; fn(r, ctx); - return [ICEAsyncResult asyncResultWithAsyncResult__:r operation:nil proxy:prx]; + return [ICEAsyncResult asyncResultWithAsyncResult:r operation:nil proxy:prx]; } catch(const std::exception& ex) { @@ -224,7 +224,7 @@ ICEAsyncResult* beginCppCall(void (^fn)(Ice::AsyncResultPtr&, const Ice::Context Ice::AsyncResultPtr r; Ice::CallbackPtr callback = Ice::newCallback(cb, &AsyncCallback::completed, &AsyncCallback::sent); fn(r, ctx, callback); - return [ICEAsyncResult asyncResultWithAsyncResult__:r operation:nil proxy:prx]; + return [ICEAsyncResult asyncResultWithAsyncResult:r operation:nil proxy:prx]; } catch(const std::exception& ex) { @@ -238,7 +238,7 @@ void endCppCall(void (^fn)(const Ice::AsyncResultPtr&), ICEAsyncResult* r) NSException* nsex = nil; try { - fn([r asyncResult__]); + fn([r asyncResult]); return; } catch(const std::exception& ex) @@ -254,7 +254,7 @@ toObjCException(const std::exception& ex) const Ice::LocalException* lex = dynamic_cast<const Ice::LocalException*>(&ex); if(lex) { - std::string typeId = std::string("ICE") + lex->ice_name().substr(5); + std::string typeId = std::string("ICE") + lex->ice_id().substr(7); Class c = objc_getClass(typeId.c_str()); if(c != nil) { @@ -408,9 +408,9 @@ IceObjC::Exception::~Exception() throw() } std::string -IceObjC::Exception::ice_name() const +IceObjC::Exception::ice_id() const { - return "IceObjC::Exception"; + return "::IceObjC::Exception"; } void @@ -455,14 +455,14 @@ toObjC(const Ice::ObjectPtr& object) return nil; } - IceObjC::ObjectWrapperPtr wrapper = IceObjC::ObjectWrapperPtr::dynamicCast(object); + IceObjC::ServantWrapperPtr wrapper = IceObjC::ServantWrapperPtr::dynamicCast(object); if(wrapper) { // // Given object is an Objective-C servant wrapped into a C++ // object, return the wrapped Objective-C object. // - return [[wrapper->getObject() retain] autorelease]; + return [[wrapper->getServant() retain] autorelease]; } else if(Ice::NativePropertiesAdminPtr::dynamicCast(object)) { @@ -470,13 +470,13 @@ toObjC(const Ice::ObjectPtr& object) // Given object is a properties admin facet, return the // Objective-C wrapper. // - return [ICENativePropertiesAdmin objectWrapperWithCxxObject:object.get()]; + return [ICENativePropertiesAdmin servantWrapperWithCxxObject:object.get()]; } else { // // Given object is a C++ servant, return an Objective-C wrapper. // - return [ICEObjectWrapper objectWrapperWithCxxObject:object.get()]; + return [ICEServantWrapper servantWrapperWithCxxObject:object.get()]; } } diff --git a/objective-c/src/Ice/ValueFactoryI.h b/objective-c/src/Ice/ValueFactoryI.h new file mode 100644 index 00000000000..6520a1a84e7 --- /dev/null +++ b/objective-c/src/Ice/ValueFactoryI.h @@ -0,0 +1,19 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <objc/Ice/ValueFactory.h> + +#include <Ice/Communicator.h> + +@interface ICEValueFactoryManager : NSObject<ICEValueFactoryManager> +{ + NSMutableDictionary* valueFactories_; +} +-(id) init:(Ice::Communicator*)communicator prefixTable:(NSDictionary*)prefixTable; +@end diff --git a/objective-c/src/Ice/ValueFactoryI.mm b/objective-c/src/Ice/ValueFactoryI.mm new file mode 100644 index 00000000000..a4005058680 --- /dev/null +++ b/objective-c/src/Ice/ValueFactoryI.mm @@ -0,0 +1,161 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <Ice/ObjectFactory.h> + +#import <ValueFactoryI.h> +#import <LocalObjectI.h> +#import <StreamI.h> +#import <Util.h> + +#import <objc/Ice/ObjectFactory.h> +#import <objc/Ice/SlicedData.h> + +#import <objc/runtime.h> + +namespace IceObjC +{ + +class UnknownSlicedValueFactoryI : public Ice::ValueFactory +{ +public: + + virtual Ice::ObjectPtr + create(const std::string&) + { + ICEUnknownSlicedValue* obj = [[ICEUnknownSlicedValue alloc] init]; + Ice::ObjectPtr o = [ICEInputStream createObjectReader:obj]; + [obj release]; + return o; + } +}; + +class ValueFactoryI : public Ice::ValueFactory +{ +public: + + // We must explicitely CFRetain/CFRelease so that the garbage + // collector does not trash the dictionaries. + ValueFactoryI(NSDictionary* factories, NSDictionary* prefixTable) : + _factories(factories), _prefixTable(prefixTable) + { + CFRetain(_factories); + CFRetain(_prefixTable); + } + + ~ValueFactoryI() + { + CFRelease(_factories); + CFRelease(_prefixTable); + } + + virtual Ice::ObjectPtr + create(const std::string& type) + { + NSString* sliceId = [[NSString alloc] initWithUTF8String:type.c_str()]; + @try + { + ICEValueFactory factory = nil; + @synchronized(_factories) + { + factory = [_factories objectForKey:sliceId]; + if(factory == nil) + { + factory = [_factories objectForKey:@""]; + } + } + + ICEObject* obj = nil; + if(factory != nil) + { + obj = [factory(sliceId) retain]; + } + + if(obj == nil) + { + std::string tId = toObjCSliceId(type, _prefixTable); + Class c = objc_lookUpClass(tId.c_str()); + if(c == nil) + { + return 0; // No value factory. + } + if([c isSubclassOfClass:[ICEObject class]]) + { + obj = (ICEObject*)[[c alloc] init]; + } + } + + Ice::ObjectPtr o; + if(obj != nil) + { + o = [ICEInputStream createObjectReader:obj]; + [obj release]; + } + return o; + } + @catch(id ex) + { + rethrowCxxException(ex); + } + @finally + { + [sliceId release]; + } + return nil; // Keep the compiler happy. + } + +private: + + NSDictionary* _factories; + NSDictionary* _prefixTable; +}; + +} + +@implementation ICEValueFactoryManager +-(id) init:(Ice::Communicator*)com prefixTable:(NSDictionary*)prefixTable +{ + self = [super init]; + if(!self) + { + return nil; + } + + valueFactories_ = [[NSMutableDictionary alloc] init]; + + com->getValueFactoryManager()->add(new IceObjC::UnknownSlicedValueFactoryI, "::Ice::Object"); + com->getValueFactoryManager()->add(new IceObjC::ValueFactoryI(valueFactories_, prefixTable), ""); + + return self; +} + +-(void) dealloc +{ + [valueFactories_ release]; + [super dealloc]; +} + +-(void) add:(ICEValueFactory)factory sliceId:(NSString*)sliceId +{ + @synchronized(valueFactories_) + { + [valueFactories_ setObject:ICE_AUTORELEASE([factory copy]) forKey:sliceId]; + } +} + +-(ICEValueFactory) find:(NSString*)sliceId +{ + @synchronized(valueFactories_) + { + return [valueFactories_ objectForKey:sliceId]; + } + return nil; // Keep the compiler happy. +} + +@end diff --git a/objective-c/src/IceGrid/.gitignore b/objective-c/src/IceGrid/.gitignore deleted file mode 100644 index 5ed0ac9fde0..00000000000 --- a/objective-c/src/IceGrid/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -.depend -Admin.m -Descriptor.m -Exception.m -FileParser.m -Locator.m -Observer.m -PluginFacade.m -Query.m -Registry.m -Session.m -UserAccountMapper.m -Admin.h -Descriptor.h -Exception.h -FileParser.h -Locator.h -Observer.h -PluginFacade.h -Query.h -Registry.h -Session.h -UserAccountMapper.h diff --git a/objective-c/src/IceGrid/Makefile b/objective-c/src/IceGrid/Makefile deleted file mode 100644 index bea6bdb3ae0..00000000000 --- a/objective-c/src/IceGrid/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -LIBFILENAME = $(call mklibfilename,IceGridObjC,$(VERSION)) -SONAME = $(call mksoname,IceGridObjC,$(SOVERSION)) -LIBNAME = $(call mklibname,IceGridObjC) - -TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) - -SLICE_OBJS = Admin.o \ - Descriptor.o \ - Exception.o \ - FileParser.o \ - Locator.o \ - Observer.o \ - PluginFacade.o \ - Query.o \ - Registry.o \ - Session.o \ - UserAccountMapper.o - -OBJS = $(SLICE_OBJS) - -HDIR = $(headerdir)/objc/IceGrid -SDIR = $(slicedir)/IceGrid - -include $(top_srcdir)/config/Make.rules - -SLICE2OBJCFLAGS := --ice --include-dir objc/IceGrid --dll-export ICE_GRID_API $(SLICE2OBJCFLAGS) -LINKWITH := -lGlacier2ObjC $(LIBS) - -$(libdir)/$(LIBFILENAME): $(OBJS) - @mkdir -p $(dir $@) - rm -f $@ - $(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH)) - -$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(libdir)/$(LIBNAME): $(libdir)/$(SONAME) - @mkdir -p $(libdir) - rm -f $@ - ln -s $(SONAME) $@ - -install:: all - $(call installlib,$(DESTDIR)$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) diff --git a/objective-c/src/IceGrid/Makefile.mk b/objective-c/src/IceGrid/Makefile.mk new file mode 100644 index 00000000000..3c631ddc9f7 --- /dev/null +++ b/objective-c/src/IceGrid/Makefile.mk @@ -0,0 +1,20 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(project)_libraries = IceGridObjC + +IceGridObjC_targetdir := $(libdir) +IceGridObjC_sliceflags := --include-dir objc/IceGrid +IceGridObjC_dependencies := IceObjC Glacier2ObjC +IceGridObjC_slicedir := $(slicedir)/IceGrid +IceGridObjC_includedir := $(includedir)/objc/IceGrid + +IceGridObjC_install:: $(install_includedir)/objc/IceGrid.h + +projects += $(project) diff --git a/objective-c/src/IceSSL/.gitignore b/objective-c/src/IceSSL/.gitignore deleted file mode 100644 index 6252a80b316..00000000000 --- a/objective-c/src/IceSSL/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -.depend -EndpointInfo.m -ConnectionInfo.m -EndpointInfo.h -ConnectionInfo.h diff --git a/objective-c/src/IceSSL/ConnectionInfoI.mm b/objective-c/src/IceSSL/ConnectionInfoI.mm index 67f0c81af17..91dfd31199a 100644 --- a/objective-c/src/IceSSL/ConnectionInfoI.mm +++ b/objective-c/src/IceSSL/ConnectionInfoI.mm @@ -16,9 +16,14 @@ @implementation ICESSLConnectionInfo (IceSSL) ++(void) load +{ + IceObjC::registerConnectionInfoClass([ICESSLConnectionInfo class]); +} + -(id) initWithSSLConnectionInfo:(IceSSL::ConnectionInfo*)sslConnectionInfo { - self = [super initWithIPConnectionInfo:sslConnectionInfo]; + self = [super initWithConnectionInfo:sslConnectionInfo]; if(self) { self->cipher = [[NSString alloc] initWithUTF8String:sslConnectionInfo->cipher.c_str()]; @@ -28,56 +33,12 @@ return self; } -@end - -@implementation ICEConnectionInfo (IceSSL) - -+(id) connectionInfoWithType_ssl:(NSValue*)connectionInfo ++(id) checkedConnectionInfoWithConnectionInfo:(Ice::ConnectionInfo*)connectionInfo { - if(!connectionInfo) - { - return nil; - } - - IceUtil::Shared* shared = reinterpret_cast<IceUtil::Shared*>([connectionInfo pointerValue]); - IceSSL::ConnectionInfo* obj = dynamic_cast<IceSSL::ConnectionInfo*>(shared); - if(obj) - { - return [[[ICESSLConnectionInfo alloc] initWithSSLConnectionInfo:obj] autorelease]; - } - return nil; -} - -@end - -@implementation ICESSLWSSConnectionInfo (IceSSL) - --(id) initWithWSSConnectionInfo:(IceSSL::WSSConnectionInfo*)wssConnectionInfo -{ - self = [super initWithSSLConnectionInfo:wssConnectionInfo]; - if(self) - { - self->headers = toNSDictionary(wssConnectionInfo->headers); - } - return self; -} - -@end - -@implementation ICEConnectionInfo (IceSSLWSS) - -+(id) connectionInfoWithType_wss:(NSValue*)connectionInfo -{ - if(!connectionInfo) - { - return nil; - } - - IceUtil::Shared* shared = reinterpret_cast<IceUtil::Shared*>([connectionInfo pointerValue]); - IceSSL::WSSConnectionInfo* obj = dynamic_cast<IceSSL::WSSConnectionInfo*>(shared); - if(obj) + IceSSL::ConnectionInfo* sslConnectionInfo = dynamic_cast<IceSSL::ConnectionInfo*>(connectionInfo); + if(sslConnectionInfo) { - return [[[ICESSLWSSConnectionInfo alloc] initWithWSSConnectionInfo:obj] autorelease]; + return [[ICESSLConnectionInfo alloc] initWithSSLConnectionInfo:sslConnectionInfo]; } return nil; } diff --git a/objective-c/src/IceSSL/EndpointInfoI.mm b/objective-c/src/IceSSL/EndpointInfoI.mm index ee7486f64a0..ebca41d0560 100644 --- a/objective-c/src/IceSSL/EndpointInfoI.mm +++ b/objective-c/src/IceSSL/EndpointInfoI.mm @@ -8,73 +8,25 @@ // ********************************************************************** #import <objc/IceSSL/EndpointInfo.h> -#import <ConnectionI.h> +#import <EndpointI.h> #import <LocalObjectI.h> #import <Util.h> #include <IceSSL/EndpointInfo.h> @implementation ICESSLEndpointInfo (IceSSL) - --(id) initWithSSLEndpointInfo:(IceSSL::EndpointInfo*)sslEndpointInfo ++(void) load { - self = [super initWithIPEndpointInfo:sslEndpointInfo]; - return self; + IceObjC::registerEndpointInfoClass([ICESSLEndpointInfo class]); } -@end - -@implementation ICEEndpointInfo (IceSSL) - -+(id) endpointInfoWithType_2:(NSValue*)endpointInfo ++(id) checkedEndpointInfoWithEndpointInfo:(Ice::EndpointInfo*)endpointInfo { - if(!endpointInfo) + IceSSL::EndpointInfo* sslEndpointInfo = dynamic_cast<IceSSL::EndpointInfo*>(endpointInfo); + if(sslEndpointInfo) { - return nil; - } - - IceUtil::Shared* shared = reinterpret_cast<IceUtil::Shared*>([endpointInfo pointerValue]); - IceSSL::EndpointInfo* obj = dynamic_cast<IceSSL::EndpointInfo*>(shared); - if(obj) - { - return [[[ICESSLEndpointInfo alloc] initWithSSLEndpointInfo:obj] autorelease]; + return [[ICESSLEndpointInfo alloc] initWithEndpointInfo:sslEndpointInfo]; } return nil; } - @end - -@implementation ICESSLWSSEndpointInfo (IceSSL) - --(id) initWithWSSEndpointInfo:(IceSSL::WSSEndpointInfo*)wssEndpointInfo -{ - self = [super initWithSSLEndpointInfo:wssEndpointInfo]; - if(self) - { - self->resource = [[NSString alloc] initWithUTF8String:wssEndpointInfo->resource.c_str()]; - } - return self; -} - -@end - -@implementation ICEEndpointInfo (IceSSLWSS) - -+(id) endpointInfoWithType_5:(NSValue*)endpointInfo -{ - if(!endpointInfo) - { - return nil; - } - - IceUtil::Shared* shared = reinterpret_cast<IceUtil::Shared*>([endpointInfo pointerValue]); - IceSSL::WSSEndpointInfo* obj = dynamic_cast<IceSSL::WSSEndpointInfo*>(shared); - if(obj) - { - return [[[ICESSLWSSEndpointInfo alloc] initWithWSSEndpointInfo:obj] autorelease]; - } - return nil; -} - -@end - diff --git a/objective-c/src/IceSSL/Makefile b/objective-c/src/IceSSL/Makefile deleted file mode 100644 index b61d2335353..00000000000 --- a/objective-c/src/IceSSL/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -LIBFILENAME = $(call mklibfilename,IceSSLObjC,$(VERSION)) -SONAME = $(call mksoname,IceSSLObjC,$(SOVERSION)) -LIBNAME = $(call mklibname,IceSSLObjC) - -TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) - -SLICE_OBJS = EndpointInfo.o \ - ConnectionInfo.o - -OBJCXX_OBJS = EndpointInfoI.o \ - ConnectionInfoI.o - -OBJS = $(SLICE_OBJS) $(OBJCXX_OBJS) - -HDIR = $(headerdir)/objc/IceSSL -SDIR = $(slicedir)/IceSSL - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I../Ice -I$(ice_cpp_dir)/include $(CPPFLAGS) -SLICE2OBJCFLAGS := --ice --include-dir objc/IceSSL --dll-export ICE_SSL_API $(SLICE2OBJCFLAGS) -LINKWITH := -lIceObjC$(libsuffix) $(BASELIBS) - -$(libdir)/$(LIBFILENAME): $(OBJS) - @mkdir -p $(dir $@) - rm -f $@ - $(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH)) - -$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(libdir)/$(LIBNAME): $(libdir)/$(SONAME) - @mkdir -p $(libdir) - rm -f $@ - ln -s $(SONAME) $@ - -install:: all - $(call installlib,$(DESTDIR)$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) diff --git a/objective-c/src/IceSSL/Makefile.mk b/objective-c/src/IceSSL/Makefile.mk new file mode 100644 index 00000000000..76bf3841719 --- /dev/null +++ b/objective-c/src/IceSSL/Makefile.mk @@ -0,0 +1,21 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(project)_libraries = IceSSLObjC + +IceSSLObjC_targetdir := $(libdir) +IceSSLObjC_cppflags := -DICESSL_API_EXPORTS -Isrc/Ice -I$(top_srcdir)/cpp/include -I$(top_srcdir)/cpp/include/generated +IceSSLObjC_sliceflags := --include-dir objc/IceSSL +IceSSLObjC_dependencies := IceObjC IceSSL Ice +IceSSLObjC_slicedir := $(slicedir)/IceSSL +IceSSLObjC_includedir := $(includedir)/objc/IceSSL + +IceSSLObjC_install:: $(install_includedir)/objc/IceSSL.h + +projects += $(project) diff --git a/objective-c/src/IceStorm/.gitignore b/objective-c/src/IceStorm/.gitignore deleted file mode 100644 index 166500719d4..00000000000 --- a/objective-c/src/IceStorm/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -.depend -Metrics.m -IceStorm.m -Metrics.h -IceStorm.h diff --git a/objective-c/src/IceStorm/Makefile b/objective-c/src/IceStorm/Makefile deleted file mode 100644 index 274647dde2a..00000000000 --- a/objective-c/src/IceStorm/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -LIBFILENAME = $(call mklibfilename,IceStormObjC,$(VERSION)) -SONAME = $(call mksoname,IceStormObjC,$(SOVERSION)) -LIBNAME = $(call mklibname,IceStormObjC) - -TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) - -SLICE_OBJS = Metrics.o \ - IceStorm.o - -OBJS = $(SLICE_OBJS) - -HDIR = $(headerdir)/objc/IceStorm -SDIR = $(slicedir)/IceStorm - -include $(top_srcdir)/config/Make.rules - -SLICE2OBJCFLAGS := --ice --include-dir objc/IceStorm --dll-export ICE_STORM_API $(SLICE2OBJCFLAGS) - -$(libdir)/$(LIBFILENAME): $(OBJS) - @mkdir -p $(dir $@) - rm -f $@ - $(call mkshlib,$@,$(SONAME),$(OBJS),$(LIBS)) - -$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(libdir)/$(LIBNAME): $(libdir)/$(SONAME) - @mkdir -p $(libdir) - rm -f $@ - ln -s $(SONAME) $@ - -install:: all - $(call installlib,$(DESTDIR)$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) diff --git a/objective-c/src/IceStorm/Makefile.mk b/objective-c/src/IceStorm/Makefile.mk new file mode 100644 index 00000000000..cb2a622332f --- /dev/null +++ b/objective-c/src/IceStorm/Makefile.mk @@ -0,0 +1,20 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(project)_libraries = IceStormObjC + +IceStormObjC_targetdir := $(libdir) +IceStormObjC_sliceflags := --include-dir objc/IceStorm +IceStormObjC_dependencies := IceObjC +IceStormObjC_slicedir := $(slicedir)/IceStorm +IceStormObjC_includedir := $(includedir)/objc/IceStorm + +IceStormObjC_install:: $(install_includedir)/objc/IceStorm.h + +projects += $(project) diff --git a/objective-c/src/Makefile b/objective-c/src/Makefile deleted file mode 100644 index 27fe3adea4f..00000000000 --- a/objective-c/src/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = .. - -include $(top_srcdir)/config/Make.rules - -SUBDIRS = Ice IceSSL Glacier2 IceStorm IceGrid - -.PHONY: $(EVERYTHING) $(SUBDIRS) - -# -# Dependencies for 'all' target when using -jx -# - -IceSSL Glacier2 IceStorm IceGrid: Ice - -IceGrid: Glacier2 - -all:: $(SUBDIRS) - -$(SUBDIRS): - @echo "making all in $@" - @$(MAKE) all --directory=$@ - -$(EVERYTHING_EXCEPT_ALL):: - @for subdir in $(SUBDIRS); \ - do \ - if test -d $$subdir ; \ - then \ - echo "making $@ in $$subdir"; \ - ( cd $$subdir && $(MAKE) $@ ) || exit 1; \ - fi; \ - done diff --git a/objective-c/test/Common/.gitignore b/objective-c/test/Common/.gitignore deleted file mode 100644 index 3a412ca89c7..00000000000 --- a/objective-c/test/Common/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -.depend diff --git a/objective-c/test/Common/Makefile b/objective-c/test/Common/Makefile deleted file mode 100644 index 488e2992fff..00000000000 --- a/objective-c/test/Common/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -LIBNAME = $(call mklibname,TestCommon) - -TARGETS = ../../lib/$(LIBNAME) - -OBJS = TestCommon.o - -SRCS := $(OBJS:.o=.m) - -include $(top_srcdir)/config/Make.rules - -ifeq ($(STATICLIBS),yes) - mklibname = lib$(1).a -else - mklibname = lib$(1).dylib -endif - -CPPFLAGS := -I../include $(CPPFLAGS) - -ifeq ($(STATICLIBS),yes) - -../../lib/$(LIBNAME): $(OBJS) - rm -f $@ - $(call mklib,$@,$(OBJS)) - -else - -../../lib/$(LIBNAME): $(OBJS) - rm -f $@ - $(call mkshlib,$@,$(LIBNAME),$(OBJS),$(LIBS)) - -endif diff --git a/objective-c/test/Common/Makefile.mk b/objective-c/test/Common/Makefile.mk new file mode 100644 index 00000000000..7f604be2974 --- /dev/null +++ b/objective-c/test/Common/Makefile.mk @@ -0,0 +1,21 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(project)_libraries = TestCommonObjC +$(project)_noinstall = 1 + +# +# Put the shared TestCommon library in the lib directory for convenience on platforms +# which don't support something like @loader_path. +# +TestCommonObjC[shared]_targetdir := lib +TestCommonObjC_dependencies := IceObjC +TestCommonObjC_cppflags := -DTEST_API_EXPORTS -I$(includedir) -Itest/include + +projects += $(project) diff --git a/objective-c/test/Ice/Makefile b/objective-c/test/Ice/Makefile deleted file mode 100644 index aa42b68efb4..00000000000 --- a/objective-c/test/Ice/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -include $(top_srcdir)/config/Make.rules - -SUBDIRS = proxy \ - acm \ - admin \ - ami \ - operations \ - exceptions \ - inheritance \ - facets \ - objects \ - optional \ - interceptor \ - invoke \ - dispatcher \ - defaultServant \ - defaultValue \ - enums \ - faultTolerance \ - location \ - adapterDeactivation \ - slicing \ - binding \ - hold \ - retry \ - stream \ - timeout \ - hash \ - info \ - metrics \ - services \ - servantLocator - -$(EVERYTHING):: - @for subdir in $(SUBDIRS); \ - do \ - echo "making $@ in $$subdir"; \ - ( cd $$subdir && $(MAKE) $@ ) || exit 1; \ - done diff --git a/objective-c/test/Ice/acm/.gitignore b/objective-c/test/Ice/acm/.gitignore deleted file mode 100644 index 3fdb6d1ddfc..00000000000 --- a/objective-c/test/Ice/acm/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -ACMTest.m -ACMTest.h diff --git a/objective-c/test/Ice/acm/ACMTest.ice b/objective-c/test/Ice/acm/ACMTest.ice index 828193d21cd..3af340f03fa 100644 --- a/objective-c/test/Ice/acm/ACMTest.ice +++ b/objective-c/test/Ice/acm/ACMTest.ice @@ -18,7 +18,8 @@ interface TestIntf void sleep(int seconds); void sleepAndHold(int seconds); void interruptSleep(); - void waitForHeartbeat(int count); + void startHeartbeatCount(); + void waitForHeartbeatCount(int count); }; interface RemoteObjectAdapter diff --git a/objective-c/test/Ice/acm/AllTests.m b/objective-c/test/Ice/acm/AllTests.m index b42fe47907f..74fb0705e78 100644 --- a/objective-c/test/Ice/acm/AllTests.m +++ b/objective-c/test/Ice/acm/AllTests.m @@ -109,7 +109,7 @@ @class TestCaseThread; -@interface TestCase : NSObject<ICEConnectionCallback> +@interface TestCase : ICELocalObject { NSCondition* _cond; @@ -262,7 +262,20 @@ @try { - [[proxy ice_getConnection] setCallback:self]; + [[proxy ice_getConnection] setCloseCallback:^(id<ICEConnection> connection) + { + [_cond lock]; + _closed = YES; + [_cond signal]; + [_cond unlock]; + }]; + [[proxy ice_getConnection] setHeartbeatCallback:^(id<ICEConnection> connection) + { + [_cond lock]; + ++_heartbeat; + [_cond unlock]; + }]; + [self runTestCase:_adapter proxy:proxy]; } @catch(ICEException* ex) @@ -282,20 +295,6 @@ NSAssert(NO, @"Subclasses need to overwrite this method"); } --(void)closed:(id<ICEConnection>)connection -{ - [_cond lock]; - _closed = YES; - [_cond signal]; - [_cond unlock]; -} --(void)heartbeat:(id<ICEConnection>)connection -{ - [_cond lock]; - ++_heartbeat; - [_cond unlock]; -} - -(void) waitForClosed { [_cond lock]; @@ -750,6 +749,40 @@ } @end +@interface HeartbeatManualTest : TestCase ++(id) testCase:(id<TestACMRemoteCommunicatorPrx>)com; ++(NSString*) getName; +-(void) runTestCase:(id<TestACMRemoteObjectAdapterPrx>)adapter proxy:(id<TestACMTestIntfPrx>)proxy; +@end + +@implementation HeartbeatManualTest ++(id) testCase:(id<TestACMRemoteCommunicatorPrx>)com +{ + id tc = [super testCase:com]; + // + // Disable heartbeats. + // + [tc setClientACM:10 close:-1 heartbeat:0]; + [tc setServerACM:10 close:-1 heartbeat:0]; + return tc; +} ++(NSString*) getName +{ + return @"manual heartbeats"; +} +-(void) runTestCase:(id<TestACMRemoteObjectAdapterPrx>)adapter proxy:(id<TestACMTestIntfPrx>)proxy +{ + [proxy startHeartbeatCount]; + id<ICEConnection> con = [proxy ice_getConnection]; + [con heartbeat]; + [con heartbeat]; + [con heartbeat]; + [con heartbeat]; + [con heartbeat]; + [proxy waitForHeartbeatCount:5]; +} +@end + @interface SetACMTest : TestCase +(id) testCase:(id<TestACMRemoteCommunicatorPrx>)com; +(NSString*) getName; @@ -789,7 +822,8 @@ test(acm.close == ICECloseOnInvocationAndIdle); test(acm.heartbeat == ICEHeartbeatAlways); - [proxy waitForHeartbeat:2]; + [proxy startHeartbeatCount]; + [proxy waitForHeartbeatCount:2]; } @end @@ -813,6 +847,7 @@ acmAllTests(id<ICECommunicator> communicator) [tests addObject:[HeartbeatOnIdleTest testCase:com]]; [tests addObject:[HeartbeatAlwaysTest testCase:com]]; + [tests addObject:[HeartbeatManualTest testCase:com]]; [tests addObject:[SetACMTest testCase:com]]; for(int i = 0; i < tests.count; ++i) diff --git a/objective-c/test/Ice/acm/Client.m b/objective-c/test/Ice/acm/Client.m index 2d32df1e81b..ce4ab06ff3b 100644 --- a/objective-c/test/Ice/acm/Client.m +++ b/objective-c/test/Ice/acm/Client.m @@ -26,6 +26,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -34,10 +41,10 @@ main(int argc, char* argv[]) { ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); - [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; + [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestACM", @"::Test", nil]; #endif @@ -56,15 +63,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/acm/Makefile b/objective-c/test/Ice/acm/Makefile deleted file mode 100644 index 6e4cf046644..00000000000 --- a/objective-c/test/Ice/acm/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = ACMTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/acm/Server.m b/objective-c/test/Ice/acm/Server.m index ec536d0f59d..d174502df00 100644 --- a/objective-c/test/Ice/acm/Server.m +++ b/objective-c/test/Ice/acm/Server.m @@ -17,8 +17,8 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; [[communicator getProperties] setProperty:@"TestAdapter.ACM.Timeout" value:@"0"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; - [adapter add:[RemoteCommunicatorI remoteCommunicator] - identity:[communicator stringToIdentity:@"communicator"]]; + [adapter add:[ACMRemoteCommunicatorI remoteCommunicator] + identity:[ICEUtil stringToIdentity:@"communicator"]]; [adapter activate]; // Disable ready print for further adapters. @@ -37,6 +37,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + @autoreleasepool { int status; @@ -46,11 +53,11 @@ main(int argc, char* argv[]) { ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); - [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; - [initData.properties setProperty:@"Ice.ACM.Timeout" value:@"1"]; + [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; + [initData.properties setProperty:@"Ice.ACM.Timeout" value:@"1"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestACM", @"::Test", nil]; #endif @@ -65,15 +72,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } return status; } diff --git a/objective-c/test/Ice/acm/TestI.h b/objective-c/test/Ice/acm/TestI.h index 56397e9450c..1a8f30e174f 100644 --- a/objective-c/test/Ice/acm/TestI.h +++ b/objective-c/test/Ice/acm/TestI.h @@ -12,10 +12,10 @@ #import <Foundation/Foundation.h> -@interface RemoteCommunicatorI : TestACMRemoteCommunicator<TestACMRemoteCommunicator> +@interface ACMRemoteCommunicatorI : TestACMRemoteCommunicator<TestACMRemoteCommunicator> @end -@interface RemoteObjectAdapterI : TestACMRemoteObjectAdapter<TestACMRemoteObjectAdapter> +@interface ACMRemoteObjectAdapterI : TestACMRemoteObjectAdapter<TestACMRemoteObjectAdapter> { id<ICEObjectAdapter> _adapter; id<TestACMTestIntfPrx> _testIntf; @@ -23,8 +23,17 @@ -(id) initWithAdapter:(id<ICEObjectAdapter>)adapter; @end +@interface ACMConnectionCallbackI : NSObject +{ + NSCondition* _cond; + int _count; +} +-(void) waitForCount:(int)count; +@end + @interface TestACMTestIntfI : TestACMTestIntf<TestACMTestIntf> { NSCondition* _cond; + ACMConnectionCallbackI* _callback; } @end diff --git a/objective-c/test/Ice/acm/TestI.m b/objective-c/test/Ice/acm/TestI.m index 7f4cf6c642f..2d0cde338fe 100644 --- a/objective-c/test/Ice/acm/TestI.m +++ b/objective-c/test/Ice/acm/TestI.m @@ -9,16 +9,7 @@ #import <acm/TestI.h> -@interface ConnectionCallbackI : NSObject<ICEConnectionCallback> -{ - NSCondition* _cond; - int _count; -} --(void) waitForCount:(int)count; -@end - - -@implementation ConnectionCallbackI +@implementation ACMConnectionCallbackI -(id) init { self = [super init]; @@ -33,20 +24,16 @@ -(void) heartbeat:(id<ICEConnection>)c { [_cond lock]; - --_count; + ++_count; [_cond signal]; [_cond unlock]; } --(void) closed:(id<ICEConnection>)c -{ -} -(void) waitForCount:(int)count { [_cond lock]; - _count = count; @try { - while(_count > 0) + while(_count < count) { [_cond wait]; } @@ -58,7 +45,7 @@ } @end -@implementation RemoteCommunicatorI +@implementation ACMRemoteCommunicatorI -(id<TestACMRemoteObjectAdapterPrx>) createObjectAdapter:(ICEInt)timeout close:(ICEInt)close heartbeat:(ICEInt)heartbeat current:(ICECurrent*)current { @@ -88,7 +75,7 @@ [com createObjectAdapterWithEndpoints:name endpoints:[NSString stringWithFormat:@"%@ -h \"%@\"", protocol, host]]; - RemoteObjectAdapterI* remoteAdapter = ICE_AUTORELEASE([[RemoteObjectAdapterI alloc] initWithAdapter:adapter]); + ACMRemoteObjectAdapterI* remoteAdapter = ICE_AUTORELEASE([[ACMRemoteObjectAdapterI alloc] initWithAdapter:adapter]); return [TestACMRemoteObjectAdapterPrx uncheckedCast:[current.adapter addWithUUID:remoteAdapter]]; } -(void) shutdown:(ICECurrent*)current @@ -97,7 +84,7 @@ } @end -@implementation RemoteObjectAdapterI +@implementation ACMRemoteObjectAdapterI -(id) initWithAdapter:(id<ICEObjectAdapter>)adapter { self = [super init]; @@ -107,7 +94,7 @@ } _adapter = ICE_RETAIN(adapter); _testIntf = ICE_RETAIN([TestACMTestIntfPrx uncheckedCast:[_adapter add:[TestACMTestIntfI testIntf] - identity:[[_adapter getCommunicator] stringToIdentity:@"test"]]]); + identity:[ICEUtil stringToIdentity:@"test"]]]); [_adapter activate]; return self; @@ -195,11 +182,18 @@ [_cond signal]; [_cond unlock]; } --(void) waitForHeartbeat:(int)count current:(ICECurrent*)current +-(void) startHeartbeatCount:(ICECurrent*)current +{ + ACMConnectionCallbackI* callback = [ACMConnectionCallbackI new]; + _callback = callback; + [current.con setHeartbeatCallback:^(id<ICEConnection> c) + { + [callback heartbeat:c]; + }]; +} +-(void) waitForHeartbeatCount:(int)count current:(ICECurrent*)current { - ConnectionCallbackI* callback = [ConnectionCallbackI new]; - [current.con setCallback:callback]; - [callback waitForCount:count]; - ICE_RELEASE(callback); + [_callback waitForCount:count]; + ICE_RELEASE(_callback); } @end diff --git a/objective-c/test/Ice/acm/run.py b/objective-c/test/Ice/acm/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/acm/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/adapterDeactivation/.gitignore b/objective-c/test/Ice/adapterDeactivation/.gitignore deleted file mode 100644 index cd60a278305..00000000000 --- a/objective-c/test/Ice/adapterDeactivation/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -AdapterDeactivationTest.m -AdapterDeactivationTest.h diff --git a/objective-c/test/Ice/adapterDeactivation/Client.m b/objective-c/test/Ice/adapterDeactivation/Client.m index f42c6e0d2ed..7966022e713 100644 --- a/objective-c/test/Ice/adapterDeactivation/Client.m +++ b/objective-c/test/Ice/adapterDeactivation/Client.m @@ -26,6 +26,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -36,8 +43,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestAdapterDeactivation", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestAdapterDeactivation", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -55,15 +62,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/adapterDeactivation/Collocated.m b/objective-c/test/Ice/adapterDeactivation/Collocated.m index 31c823e60e1..0d6da3bb8b3 100644 --- a/objective-c/test/Ice/adapterDeactivation/Collocated.m +++ b/objective-c/test/Ice/adapterDeactivation/Collocated.m @@ -16,7 +16,7 @@ run(id<ICECommunicator> communicator) { [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; - [adapter add:[TestAdapterDeactivationI testIntf] identity:[communicator stringToIdentity:@"test"]]; + [adapter add:[TestAdapterDeactivationI testIntf] identity:[ICEUtil stringToIdentity:@"test"]]; id<TestAdapterDeactivationTestIntfPrx> adapterDeactivationAllTests(id<ICECommunicator>); adapterDeactivationAllTests(communicator); @@ -32,6 +32,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -42,7 +49,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestAdapterDeactivation", @"::Test", nil]; #endif @@ -57,15 +64,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/adapterDeactivation/Makefile b/objective-c/test/Ice/adapterDeactivation/Makefile deleted file mode 100644 index 034debd7844..00000000000 --- a/objective-c/test/Ice/adapterDeactivation/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = AdapterDeactivationTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(COLOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/adapterDeactivation/Server.m b/objective-c/test/Ice/adapterDeactivation/Server.m index c8c59172162..530dca4524d 100644 --- a/objective-c/test/Ice/adapterDeactivation/Server.m +++ b/objective-c/test/Ice/adapterDeactivation/Server.m @@ -16,7 +16,7 @@ run(id<ICECommunicator> communicator) { [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; - [adapter add:[TestAdapterDeactivationI testIntf] identity:[communicator stringToIdentity:@"test"]]; + [adapter add:[TestAdapterDeactivationI testIntf] identity:[ICEUtil stringToIdentity:@"test"]]; [adapter activate]; serverReady(communicator); @@ -32,6 +32,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -42,8 +49,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestAdapterDeactivation", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestAdapterDeactivation", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -57,15 +64,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/adapterDeactivation/run.py b/objective-c/test/Ice/adapterDeactivation/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/adapterDeactivation/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/admin/.gitignore b/objective-c/test/Ice/admin/.gitignore deleted file mode 100644 index a064c4256c8..00000000000 --- a/objective-c/test/Ice/admin/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -AdminTest.m -AdminTest.h diff --git a/objective-c/test/Ice/admin/AllTests.m b/objective-c/test/Ice/admin/AllTests.m index 56c1db3c2c2..ddabdac7b5d 100644 --- a/objective-c/test/Ice/admin/AllTests.m +++ b/objective-c/test/Ice/admin/AllTests.m @@ -254,7 +254,7 @@ adminAllTests(id<ICECommunicator> communicator) id<ICECommunicator> com = [ICEUtil createCommunicator:init]; test([com getAdmin] == nil); - ICEIdentity* ident = [com stringToIdentity:@"test-admin"]; + ICEIdentity* ident = [ICEUtil stringToIdentity:@"test-admin"]; @try { [com createAdmin:nil adminId:ident]; diff --git a/objective-c/test/Ice/admin/Client.m b/objective-c/test/Ice/admin/Client.m index 4d2b833a003..0aa432d5dd0 100644 --- a/objective-c/test/Ice/admin/Client.m +++ b/objective-c/test/Ice/admin/Client.m @@ -26,6 +26,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -35,8 +42,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestAdmin", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestAdmin", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -54,15 +61,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/admin/Makefile b/objective-c/test/Ice/admin/Makefile deleted file mode 100644 index 43bbe287ae5..00000000000 --- a/objective-c/test/Ice/admin/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = AdminTest.o - -COBJS = Client.o \ - TestI.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/admin/Makefile.mk b/objective-c/test/Ice/admin/Makefile.mk new file mode 100644 index 00000000000..a3c111a77f6 --- /dev/null +++ b/objective-c/test/Ice/admin/Makefile.mk @@ -0,0 +1,12 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_client_sources = $(test-client-sources) TestI.m + +tests += $(test) diff --git a/objective-c/test/Ice/admin/Server.m b/objective-c/test/Ice/admin/Server.m index e0a372c4168..33f50100860 100644 --- a/objective-c/test/Ice/admin/Server.m +++ b/objective-c/test/Ice/admin/Server.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010 -t 10000"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; [adapter add:[TestAdminRemoteCommunicatorFactoryI remoteCommunicatorFactory] - identity:[communicator stringToIdentity:@"factory"]]; + identity:[ICEUtil stringToIdentity:@"factory"]]; [adapter activate]; // Disable ready print for further adapters. @@ -36,6 +36,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + @autoreleasepool { int status; @@ -46,8 +53,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestAdmin", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestAdmin", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -61,15 +68,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } return status; } diff --git a/objective-c/test/Ice/admin/run.py b/objective-c/test/Ice/admin/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/admin/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/ami/.gitignore b/objective-c/test/Ice/ami/.gitignore deleted file mode 100644 index a8a4ccc28db..00000000000 --- a/objective-c/test/Ice/ami/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -AMITest.m -AMITest.h diff --git a/objective-c/test/Ice/ami/AMITest.ice b/objective-c/test/Ice/ami/AMITest.ice index ea622442430..a3e98fad64b 100644 --- a/objective-c/test/Ice/ami/AMITest.ice +++ b/objective-c/test/Ice/ami/AMITest.ice @@ -19,18 +19,31 @@ exception TestIntfException { }; +["objc:scoped"] +enum CloseMode +{ + Forcefully, + Gracefully, + GracefullyWithWait +}; + interface TestIntf { void op(); void opWithPayload(Ice::ByteSeq seq); int opWithResult(); void opWithUE() - throws TestIntfException; + throws TestIntfException; void opBatch(); int opBatchCount(); bool waitForBatch(int count); + void close(CloseMode mode); + void sleep(int ms); + ["amd"] void startDispatch(); + void finishDispatch(); void shutdown(); + bool supportsAMD(); bool supportsFunctionalTests(); }; diff --git a/objective-c/test/Ice/ami/AllTests.m b/objective-c/test/Ice/ami/AllTests.m index af87ec139a1..3f109737b43 100644 --- a/objective-c/test/Ice/ami/AllTests.m +++ b/objective-c/test/Ice/ami/AllTests.m @@ -79,7 +79,7 @@ amiAllTests(id<ICECommunicator> communicator, BOOL collocated) id<TestAMITestIntfPrx> p = [TestAMITestIntfPrx checkedCast:base]; test(p); - ref = @"testController:tcp -p 12011"; + ref = @"testController:default -p 12011"; base = [communicator stringToProxy:ref]; TestAMITestIntfControllerPrx* testController = [TestAMITestIntfControllerPrx uncheckedCast:base]; test(testController); @@ -563,7 +563,7 @@ amiAllTests(id<ICECommunicator> communicator, BOOL collocated) test([p opBatchCount] == 0); id<TestAMITestIntfPrx> b1 = [p ice_batchOneway]; [b1 opBatch]; - [[b1 ice_getConnection] close:false]; + [[b1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; id<ICEAsyncResult> r = [b1 begin_ice_flushBatchRequests]; [b1 end_ice_flushBatchRequests:r]; test([r isSent]); @@ -585,12 +585,13 @@ amiAllTests(id<ICECommunicator> communicator, BOOL collocated) [b1 opBatch]; [b1 opBatch]; TestAMICallback* cb = [TestAMICallback create]; - id<ICEAsyncResult> r = [[b1 ice_getConnection] begin_flushBatchRequests:^(ICEException* ex) - { - test(NO); - } - sent:^(BOOL sentSynchronously) { [cb called]; }]; - [cb check]; + id<ICEAsyncResult> r = [[b1 ice_getConnection] begin_flushBatchRequests:ICECompressBatchBasedOnProxy + exception:^(ICEException* ex) + { + test(NO); + } + sent:^(BOOL sentSynchronously) { [cb called]; }]; + [cb check]; test([r isSent]); test([r isCompleted]); test([p waitForBatch:2]); @@ -603,10 +604,10 @@ amiAllTests(id<ICECommunicator> communicator, BOOL collocated) uncheckedCast:[[p ice_getConnection] createProxy:[p ice_getIdentity]]] ice_batchOneway]; [b1 opBatch]; - [[b1 ice_getConnection] close:false]; + [[b1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; TestAMICallback* cb = [TestAMICallback create]; - id<ICEAsyncResult> r = [[b1 ice_getConnection] begin_flushBatchRequests: - ^(ICEException* ex) { [cb called]; } + id<ICEAsyncResult> r = [[b1 ice_getConnection] begin_flushBatchRequests:ICECompressBatchBasedOnProxy + exception:^(ICEException* ex) { [cb called]; } sent:^(BOOL sentSynchronously) { test(NO); }]; [cb check]; test(![r isSent]); @@ -627,7 +628,8 @@ amiAllTests(id<ICECommunicator> communicator, BOOL collocated) [b1 opBatch]; [b1 opBatch]; TestAMICallback* cb = [TestAMICallback create]; - id<ICEAsyncResult> r = [communicator begin_flushBatchRequests:^(ICEException* ex) { test(NO); } + id<ICEAsyncResult> r = [communicator begin_flushBatchRequests:ICECompressBatchBasedOnProxy + exception:^(ICEException* ex) { test(NO); } sent:^(BOOL sentSynchronously) { [cb called]; }]; [cb check]; test([r isSent]); @@ -642,9 +644,10 @@ amiAllTests(id<ICECommunicator> communicator, BOOL collocated) uncheckedCast:[[p ice_getConnection] createProxy:[p ice_getIdentity]]] ice_batchOneway]; [b1 opBatch]; - [[b1 ice_getConnection] close:false]; + [[b1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; TestAMICallback* cb = [TestAMICallback create]; - id<ICEAsyncResult> r = [communicator begin_flushBatchRequests:^(ICEException* ex) { test(NO); } + id<ICEAsyncResult> r = [communicator begin_flushBatchRequests:ICECompressBatchBasedOnProxy + exception:^(ICEException* ex) { test(NO); } sent:^(BOOL sentSynchronously) { [cb called]; }]; [cb check]; test([r isSent]); @@ -758,7 +761,7 @@ amiAllTests(id<ICECommunicator> communicator, BOOL collocated) id<ICEConnection> con = [p ice_getConnection]; p2 = [p ice_batchOneway]; [p2 ice_ping]; - r = [con begin_flushBatchRequests]; + r = [con begin_flushBatchRequests:ICECompressBatchBasedOnProxy]; test([[r getConnection] isEqual:con]); test([r getCommunicator] == communicator); test([r getProxy] == nil); // Expected @@ -769,7 +772,7 @@ amiAllTests(id<ICECommunicator> communicator, BOOL collocated) // p2 = [p ice_batchOneway]; [p2 ice_ping]; - r = [communicator begin_flushBatchRequests]; + r = [communicator begin_flushBatchRequests:ICECompressBatchBasedOnProxy]; test([r getConnection] == nil); // Expected test([r getCommunicator] == communicator); test([r getProxy] == nil); // Expected diff --git a/objective-c/test/Ice/ami/Client.m b/objective-c/test/Ice/ami/Client.m index d8b3dce884f..565761cf905 100644 --- a/objective-c/test/Ice/ami/Client.m +++ b/objective-c/test/Ice/ami/Client.m @@ -26,6 +26,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -52,7 +59,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"Ice.MessageSizeMax" value:@"100"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestAMI", @"::Test", nil]; #endif @@ -72,15 +79,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/ami/Collocated.m b/objective-c/test/Ice/ami/Collocated.m index ba798305e07..8a7e268cd79 100644 --- a/objective-c/test/Ice/ami/Collocated.m +++ b/objective-c/test/Ice/ami/Collocated.m @@ -15,7 +15,7 @@ static int run(id<ICECommunicator> communicator) { [[communicator getProperties] setProperty:@"TestAMIAdapter.Endpoints" value:@"default -p 12010:udp"]; - [[communicator getProperties] setProperty:@"ControllerAdapter.Endpoints" value:@"tcp -p 12011"]; + [[communicator getProperties] setProperty:@"ControllerAdapter.Endpoints" value:@"default -p 12011"]; [[communicator getProperties] setProperty:@"ControllerAdapter.ThreadPool.Size" value:@"1"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAMIAdapter"]; @@ -24,10 +24,10 @@ run(id<ICECommunicator> communicator) TestAMITestIntfControllerI* testController = ICE_AUTORELEASE([[TestAMITestIntfControllerI alloc] initWithAdapter:adapter]); - [adapter add:[TestAMITestIntfI testIntf] identity:[communicator stringToIdentity:@"test"]]; + [adapter add:[TestAMITestIntfI testIntf] identity:[ICEUtil stringToIdentity:@"test"]]; //[adapter activate]; // Collocated test doesn't need to activate the OA - [adapter2 add:testController identity:[communicator stringToIdentity:@"testController"]]; + [adapter2 add:testController identity:[ICEUtil stringToIdentity:@"testController"]]; //[adapter2 activate]; // Collocated test doesn't need to activate the OA void amiAllTests(id<ICECommunicator>, BOOL); @@ -37,12 +37,19 @@ run(id<ICECommunicator> communicator) } #if TARGET_OS_IPHONE -# define main amiServer +# define main amiCollocated #endif int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -54,7 +61,7 @@ main(int argc, char* argv[]) initData.properties = defaultServerProperties(&argc, argv); [initData.properties setProperty:@"Ice.Warn.AMICallback" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestAMI", @"::Test", nil]; #endif @@ -69,15 +76,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/ami/Makefile b/objective-c/test/Ice/ami/Makefile deleted file mode 100644 index d6142fdfb8f..00000000000 --- a/objective-c/test/Ice/ami/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = AMITest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(COLOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/ami/Server.m b/objective-c/test/Ice/ami/Server.m index 9c46881c846..f87bcaba752 100644 --- a/objective-c/test/Ice/ami/Server.m +++ b/objective-c/test/Ice/ami/Server.m @@ -10,24 +10,24 @@ #import <objc/Ice.h> #import <ami/TestI.h> #import <TestCommon.h> - + static int run(id<ICECommunicator> communicator) { [[communicator getProperties] setProperty:@"TestAMIAdapter.Endpoints" value:@"default -p 12010:udp"]; - [[communicator getProperties] setProperty:@"ControllerAdapter.Endpoints" value:@"tcp -p 12011"]; + [[communicator getProperties] setProperty:@"ControllerAdapter.Endpoints" value:@"default -p 12011"]; [[communicator getProperties] setProperty:@"ControllerAdapter.ThreadPool.Size" value:@"1"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAMIAdapter"]; id<ICEObjectAdapter> adapter2 = [communicator createObjectAdapter:@"ControllerAdapter"]; - TestAMITestIntfControllerI* testController + TestAMITestIntfControllerI* testController = ICE_AUTORELEASE([[TestAMITestIntfControllerI alloc] initWithAdapter:adapter]); - [adapter add:[TestAMITestIntfI testIntf] identity:[communicator stringToIdentity:@"test"]]; + [adapter add:[TestAMITestIntfI testIntf] identity:[ICEUtil stringToIdentity:@"test"]]; [adapter activate]; - [adapter2 add:testController identity:[communicator stringToIdentity:@"testController"]]; + [adapter2 add:testController identity:[ICEUtil stringToIdentity:@"testController"]]; [adapter2 activate]; serverReady(communicator); @@ -43,6 +43,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -53,15 +60,10 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); - // - // Its possible to have batch oneway requests dispatched after - // the adapter is deactivated due to thread scheduling so we - // supress this warning. - // - [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; + [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestAMI", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestAMI", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -75,15 +77,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/ami/TestI.m b/objective-c/test/Ice/ami/TestI.m index 73273f17427..a02cf25fffd 100644 --- a/objective-c/test/Ice/ami/TestI.m +++ b/objective-c/test/Ice/ami/TestI.m @@ -90,6 +90,32 @@ } return NO; } +-(void) close:(TestAMICloseMode)mode current:(ICECurrent *)current +{ + [current.con close:(ICEConnectionClose)mode]; +} +-(void) sleep:(ICEInt)delay current:(ICECurrent *)current +{ + [_cond lock]; + @try + { + [_cond waitUntilDate:[NSDate dateWithTimeIntervalSinceNow:delay / 1000.0]]; + } + @finally + { + [_cond unlock]; + } +} +-(void) startDispatch:(ICECurrent*)current +{ +} +-(void) finishDispatch:(ICECurrent*)current +{ +} +-(BOOL) supportsAMD:(ICECurrent *)current +{ + return NO; +} -(BOOL) supportsFunctionalTests:(ICECurrent *)current { return NO; diff --git a/objective-c/test/Ice/ami/run.py b/objective-c/test/Ice/ami/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/ami/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/binding/.gitignore b/objective-c/test/Ice/binding/.gitignore deleted file mode 100644 index 111134fb8e1..00000000000 --- a/objective-c/test/Ice/binding/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -BindingTest.m -BindingTest.h diff --git a/objective-c/test/Ice/binding/AllTests.m b/objective-c/test/Ice/binding/AllTests.m index 4ea59a40c2f..c15cce64044 100644 --- a/objective-c/test/Ice/binding/AllTests.m +++ b/objective-c/test/Ice/binding/AllTests.m @@ -84,7 +84,7 @@ NSString* getAdapterNameWithAMI(id<TestBindingTestIntfPrx> test) { GetAdapterNameCB* cb = ICE_AUTORELEASE([[GetAdapterNameCB alloc] init]); - [test begin_getAdapterName:^(NSMutableString* name) { [cb response:name]; } + [test begin_getAdapterName:^(NSMutableString* name) { [cb response:name]; } exception:^(ICEException* ex) { [cb exception:ex]; }]; return [cb getResult]; } @@ -182,13 +182,13 @@ bindingAllTests(id<ICECommunicator> communicator) [test1 ice_ping]; [test2 ice_ping]; - + [com deactivateObjectAdapter:adapter]; - + id<TestBindingTestIntfPrx> test3 = [TestBindingTestIntfPrx uncheckedCast:test1]; test([[test3 ice_getConnection] isEqual:[test1 ice_getConnection]]); test([[test3 ice_getConnection] isEqual:[test2 ice_getConnection]]); - + @try { [test3 ice_ping]; @@ -227,9 +227,9 @@ bindingAllTests(id<ICECommunicator> communicator) test([[test1 ice_getConnection] isEqual:[test2 ice_getConnection]]); test([[test2 ice_getConnection] isEqual:[test3 ice_getConnection]]); - + [names removeObject:[test1 getAdapterName]]; - [[test1 ice_getConnection] close:NO]; + [[test1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } // @@ -241,7 +241,7 @@ bindingAllTests(id<ICECommunicator> communicator) { [[a getTestIntf] ice_ping]; } - + id<TestBindingTestIntfPrx> test = createTestIntfPrx(adapters); NSString* name = [test getAdapterName]; const int nRetry = 10; @@ -251,9 +251,9 @@ bindingAllTests(id<ICECommunicator> communicator) for(id<TestBindingRemoteObjectAdapterPrx> a in adapters) { - [[[a getTestIntf] ice_getConnection] close:NO]; + [[[a getTestIntf] ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } - } + } // // Deactivate an adapter and ensure that we can still @@ -271,19 +271,19 @@ bindingAllTests(id<ICECommunicator> communicator) id<TestBindingTestIntfPrx> test2 = createTestIntfPrx(adpts); random_shuffle(adpts); id<TestBindingTestIntfPrx> test3 = createTestIntfPrx(adpts); - + test([[test1 ice_getConnection] isEqual:[test2 ice_getConnection]]); test([[test2 ice_getConnection] isEqual:[test3 ice_getConnection]]); [names removeObject:[test1 getAdapterName]]; - [[test1 ice_getConnection] close:NO]; + [[test1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } - + // // Deactivate an adapter and ensure that we can still // establish the connection to the remaining adapter. // - [com deactivateObjectAdapter:[adapters objectAtIndex:2]]; + [com deactivateObjectAdapter:[adapters objectAtIndex:2]]; id<TestBindingTestIntfPrx> test = createTestIntfPrx(adapters); test([[test getAdapterName] isEqualToString:@"Adapter12"]); @@ -318,9 +318,9 @@ bindingAllTests(id<ICECommunicator> communicator) test([[test1 ice_getConnection] isEqual:[test2 ice_getConnection]]); test([[test2 ice_getConnection] isEqual:[test3 ice_getConnection]]); - + [names removeObject:getAdapterNameWithAMI(test1)]; - [[test1 ice_getConnection] close:NO]; + [[test1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } // @@ -332,7 +332,7 @@ bindingAllTests(id<ICECommunicator> communicator) { [[a getTestIntf] ice_ping]; } - + id<TestBindingTestIntfPrx> test = createTestIntfPrx(adapters); NSString* name = getAdapterNameWithAMI(test); const int nRetry = 10; @@ -342,9 +342,9 @@ bindingAllTests(id<ICECommunicator> communicator) for(id<TestBindingRemoteObjectAdapterPrx> a in adapters) { - [[[a getTestIntf] ice_getConnection] close:NO]; + [[[a getTestIntf] ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } - } + } // // Deactivate an adapter and ensure that we can still @@ -362,21 +362,21 @@ bindingAllTests(id<ICECommunicator> communicator) id<TestBindingTestIntfPrx> test2 = createTestIntfPrx(adpts); random_shuffle(adpts); id<TestBindingTestIntfPrx> test3 = createTestIntfPrx(adpts); - + test([[test1 ice_getConnection] isEqual:[test2 ice_getConnection]]); test([[test2 ice_getConnection] isEqual:[test3 ice_getConnection]]); [names removeObject:[test1 getAdapterName]]; - [[test1 ice_getConnection] close:NO]; + [[test1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } - + // // Deactivate an adapter and ensure that we can still // establish the connection to the remaining adapter. // - [com deactivateObjectAdapter:[adapters objectAtIndex:2]]; + [com deactivateObjectAdapter:[adapters objectAtIndex:2]]; id<TestBindingTestIntfPrx> test = createTestIntfPrx(adapters); - test([[test getAdapterName] isEqualToString:@"AdapterAMI12"]); + test([[test getAdapterName] isEqualToString:@"AdapterAMI12"]); deactivate(com, adapters); } @@ -399,7 +399,7 @@ bindingAllTests(id<ICECommunicator> communicator) while([names count] != 0) { [names removeObject:[test getAdapterName]]; - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } test = [TestBindingTestIntfPrx uncheckedCast:[test ice_endpointSelection:ICERandom]]; @@ -411,7 +411,7 @@ bindingAllTests(id<ICECommunicator> communicator) while([names count] != 0) { [names removeObject:[test getAdapterName]]; - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } deactivate(com, adapters); @@ -439,7 +439,7 @@ bindingAllTests(id<ICECommunicator> communicator) #if TARGET_OS_IPHONE > 0 if(i != nRetry) { - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter31"]; i++); } #endif @@ -449,7 +449,7 @@ bindingAllTests(id<ICECommunicator> communicator) #if TARGET_OS_IPHONE > 0 if(i != nRetry) { - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter32"]; i++); } #endif @@ -459,13 +459,13 @@ bindingAllTests(id<ICECommunicator> communicator) #if TARGET_OS_IPHONE > 0 if(i != nRetry) { - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter33"]; i++); } #endif test(i == nRetry); [com deactivateObjectAdapter:[adapters objectAtIndex:2]]; - + @try { [test getAdapterName]; @@ -481,35 +481,35 @@ bindingAllTests(id<ICECommunicator> communicator) // // Now, re-activate the adapters with the same endpoints in the opposite // order. - // + // [adapters addObject:[com createObjectAdapter:@"Adapter36" endpoints:[endpoints objectAtIndex:2]]]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter36"]; i++); #if TARGET_OS_IPHONE > 0 if(i != nRetry) { - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter36"]; i++); } #endif test(i == nRetry); - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; [adapters addObject:[com createObjectAdapter:@"Adapter35" endpoints:[endpoints objectAtIndex:1]]]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter35"]; i++); #if TARGET_OS_IPHONE > 0 if(i != nRetry) { - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter35"]; i++); } #endif test(i == nRetry); - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; [adapters addObject:[com createObjectAdapter:@"Adapter34" endpoints:[endpoints objectAtIndex:0]]]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter34"]; i++); #if TARGET_OS_IPHONE > 0 if(i != nRetry) { - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter34"]; i++); } #endif @@ -526,12 +526,13 @@ bindingAllTests(id<ICECommunicator> communicator) id<TestBindingTestIntfPrx> test2 = [TestBindingTestIntfPrx uncheckedCast:[[adapter getTestIntf] ice_connectionCached:NO]]; test(![test1 ice_isConnectionCached]); test(![test2 ice_isConnectionCached]); + test([test1 ice_getConnection] && [test2 ice_getConnection]); test([[test1 ice_getConnection] isEqual:[test2 ice_getConnection]]); [test1 ice_ping]; - + [com deactivateObjectAdapter:adapter]; - + id<TestBindingTestIntfPrx> test3 = [TestBindingTestIntfPrx uncheckedCast:test1]; @try { @@ -576,7 +577,7 @@ bindingAllTests(id<ICECommunicator> communicator) test([[test getAdapterName] isEqualToString:@"Adapter52"]); - + deactivate(com, adapters); } tprintf("ok\n"); @@ -612,7 +613,7 @@ bindingAllTests(id<ICECommunicator> communicator) [com deactivateObjectAdapter:[adapters objectAtIndex:2]]; test([[test getAdapterName] isEqualToString:@"AdapterAMI52"]); - + deactivate(com, adapters); } tprintf("ok\n"); @@ -657,7 +658,7 @@ bindingAllTests(id<ICECommunicator> communicator) test(i == nRetry); #endif [com deactivateObjectAdapter:[adapters objectAtIndex:2]]; - + @try { [test getAdapterName]; @@ -673,7 +674,7 @@ bindingAllTests(id<ICECommunicator> communicator) // // Now, re-activate the adapters with the same endpoints in the opposite // order. - // + // [adapters addObject:[com createObjectAdapter:@"Adapter66" endpoints:[endpoints objectAtIndex:2]]]; for(i = 0; i < nRetry && [[test getAdapterName] isEqualToString:@"Adapter66"]; i++); #if TARGET_OS_IPHONE > 0 @@ -740,7 +741,7 @@ bindingAllTests(id<ICECommunicator> communicator) test(i == nRetry); #endif [com deactivateObjectAdapter:[adapters objectAtIndex:2]]; - + @try { [test getAdapterName]; @@ -756,7 +757,7 @@ bindingAllTests(id<ICECommunicator> communicator) // // Now, re-activate the adapters with the same endpoints in the opposite // order. - // + // [adapters addObject:[com createObjectAdapter:@"AdapterAMI66" endpoints:[endpoints objectAtIndex:2]]]; for(i = 0; i < nRetry && [getAdapterNameWithAMI(test) isEqualToString:@"AdapterAMI66"]; i++); #if TARGET_OS_IPHONE > 0 @@ -791,7 +792,7 @@ bindingAllTests(id<ICECommunicator> communicator) id<TestBindingTestIntfPrx> test = createTestIntfPrx(adapters); test([[test getAdapterName] isEqualToString:@"Adapter71"]); - + id<TestBindingTestIntfPrx> testUDP = [TestBindingTestIntfPrx uncheckedCast:[test ice_datagram]]; test([test ice_getConnection] != [testUDP ice_getConnection]); @try @@ -811,15 +812,15 @@ bindingAllTests(id<ICECommunicator> communicator) NSMutableArray* adapters = [NSMutableArray arrayWithCapacity:3]; [adapters addObject:[com createObjectAdapter:@"Adapter81" endpoints:@"ssl"]]; [adapters addObject:[com createObjectAdapter:@"Adapter82" endpoints:@"tcp"]]; - + id<TestBindingTestIntfPrx> test = createTestIntfPrx(adapters); int i; for(i = 0; i < 5; i++) { test([[test getAdapterName] isEqualToString:@"Adapter82"]); - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } - + id<TestBindingTestIntfPrx> testSecure = [TestBindingTestIntfPrx uncheckedCast:[test ice_secure:YES]]; test([testSecure ice_isSecure]); testSecure = [TestBindingTestIntfPrx uncheckedCast:[test ice_secure:NO]]; @@ -829,11 +830,11 @@ bindingAllTests(id<ICECommunicator> communicator) test([test ice_getConnection] != [testSecure ice_getConnection]); [com deactivateObjectAdapter:[adapters objectAtIndex:1]]; - + for(i = 0; i < 5; i++) { test([[test getAdapterName] isEqualToString:@"Adapter81"]); - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } [com createObjectAdapter:@"Adapter83" endpoints:[getEndpoints(test) objectAtIndex:1]]; // Reactive tcp OA. @@ -841,7 +842,7 @@ bindingAllTests(id<ICECommunicator> communicator) for(i = 0; i < 5; i++) { test([[test getAdapterName] isEqualToString:@"Adapter83"]); - [[test ice_getConnection] close:NO]; + [[test ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; } [com deactivateObjectAdapter:[adapters objectAtIndex:0]]; diff --git a/objective-c/test/Ice/binding/Client.m b/objective-c/test/Ice/binding/Client.m index 08879590715..c92da694f98 100644 --- a/objective-c/test/Ice/binding/Client.m +++ b/objective-c/test/Ice/binding/Client.m @@ -26,6 +26,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -35,8 +42,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestBinding", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestBinding", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -54,15 +61,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/binding/Makefile b/objective-c/test/Ice/binding/Makefile deleted file mode 100644 index 7f4a863710b..00000000000 --- a/objective-c/test/Ice/binding/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = BindingTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/binding/Server.m b/objective-c/test/Ice/binding/Server.m index 1eebc6b0b9e..ad1223f2729 100644 --- a/objective-c/test/Ice/binding/Server.m +++ b/objective-c/test/Ice/binding/Server.m @@ -16,7 +16,7 @@ run(id<ICECommunicator> communicator) { [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; - [adapter add:[RemoteCommunicatorI remoteCommunicator] identity:[communicator stringToIdentity:@"communicator"]]; + [adapter add:[RemoteCommunicatorI remoteCommunicator] identity:[ICEUtil stringToIdentity:@"communicator"]]; [adapter activate]; // Disable ready print for further adapters. @@ -35,6 +35,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + @autoreleasepool { int status; @@ -45,8 +52,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestBinding", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestBinding", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -60,15 +67,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } return status; } diff --git a/objective-c/test/Ice/binding/TestI.m b/objective-c/test/Ice/binding/TestI.m index 3af9a07638c..8524c9b6eb1 100644 --- a/objective-c/test/Ice/binding/TestI.m +++ b/objective-c/test/Ice/binding/TestI.m @@ -54,8 +54,8 @@ } adapter_ = ICE_RETAIN(adapter); testIntf_ = ICE_RETAIN([TestBindingTestIntfPrx uncheckedCast:[ - adapter_ add:[TestBindingI testIntf] - identity:[[adapter_ getCommunicator] stringToIdentity:@"test"]]]); + adapter_ add:[TestBindingI testIntf] + identity:[ICEUtil stringToIdentity:@"test"]]]); [adapter_ activate]; return self; } diff --git a/objective-c/test/Ice/binding/run.py b/objective-c/test/Ice/binding/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/binding/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/defaultServant/.gitignore b/objective-c/test/Ice/defaultServant/.gitignore deleted file mode 100644 index f330ebd1012..00000000000 --- a/objective-c/test/Ice/defaultServant/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -.depend -DefaultServantTest.m -DefaultServantTest.h diff --git a/objective-c/test/Ice/defaultServant/Client.m b/objective-c/test/Ice/defaultServant/Client.m index d8c9192fd79..04f3cd89175 100644 --- a/objective-c/test/Ice/defaultServant/Client.m +++ b/objective-c/test/Ice/defaultServant/Client.m @@ -10,14 +10,14 @@ #import <objc/Ice.h> #import <TestCommon.h> #import <DefaultServantTest.h> -#import <defaultServant/MyObjectI.h> +#import <defaultServant/TestI.h> static int run(id<ICECommunicator> communicator) { // // Create OA - // + // id<ICEObjectAdapter> oa = [communicator createObjectAdapterWithEndpoints:@"MyOA" endpoints:@"tcp -h localhost"]; [oa activate]; ICEObject* servant = [TestDefaultServantMyObjectI myObject]; @@ -33,7 +33,7 @@ run(id<ICECommunicator> communicator) tprintf("testing single category... "); ICEObject* r = [oa findDefaultServant:@"foo"]; test(r == servant); - + r = [oa findDefaultServant:@"bar"]; test(r == nil); @@ -42,13 +42,13 @@ run(id<ICECommunicator> communicator) for(NSString* name in stringArray) { - [identity setName:name]; + [identity setName:name]; id<TestDefaultServantMyObjectPrx> prx = [TestDefaultServantMyObjectPrx uncheckedCast:[oa createProxy:identity]]; [prx ice_ping]; test([[prx getName] isEqualToString:name]); } - [identity setName:@"ObjectNotExist"]; + [identity setName:@"ObjectNotExist"]; id<TestDefaultServantMyObjectPrx> prx = [TestDefaultServantMyObjectPrx uncheckedCast:[oa createProxy:identity]]; @try { @@ -69,7 +69,7 @@ run(id<ICECommunicator> communicator) // expected } - [identity setName:@"FacetNotExist"]; + [identity setName:@"FacetNotExist"]; prx = [TestDefaultServantMyObjectPrx uncheckedCast:[oa createProxy:identity]]; @try @@ -81,7 +81,7 @@ run(id<ICECommunicator> communicator) { // expected } - + @try { [prx getName]; @@ -95,7 +95,7 @@ run(id<ICECommunicator> communicator) [identity setCategory:@"bar"]; for(NSString* name in stringArray) { - [identity setName:name]; + [identity setName:name]; id<TestDefaultServantMyObjectPrx> prx = [TestDefaultServantMyObjectPrx uncheckedCast:[oa createProxy:identity]]; @try @@ -116,20 +116,20 @@ run(id<ICECommunicator> communicator) { } } - tprintf("ok\n"); + tprintf("ok\n"); tprintf("testing default category... "); - + [oa addDefaultServant:servant category:@""]; - + r = [oa findDefaultServant:@"bar"]; test(r == nil); r = [oa findDefaultServant:@""]; test(r == servant); - + for(NSString* name in stringArray) { - [identity setName:name]; + [identity setName:name]; id<TestDefaultServantMyObjectPrx> prx = [TestDefaultServantMyObjectPrx uncheckedCast:[oa createProxy:identity]]; [prx ice_ping]; test([[prx getName] isEqualToString:name]); @@ -152,6 +152,13 @@ defaultServantServer(int argc, char* argv[]) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -161,8 +168,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestDefaultServant", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestDefaultServant", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -180,17 +187,8 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; } - diff --git a/objective-c/test/Ice/defaultServant/Makefile b/objective-c/test/Ice/defaultServant/Makefile deleted file mode 100644 index 9dd91fd82b7..00000000000 --- a/objective-c/test/Ice/defaultServant/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client - -TARGETS = $(CLIENT) - -SLICE_OBJS = DefaultServantTest.o - -COBJS = Client.o \ - MyObjectI.o - -OBJS = $(COBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/defaultServant/Makefile.mk b/objective-c/test/Ice/defaultServant/Makefile.mk new file mode 100644 index 00000000000..616ec980c81 --- /dev/null +++ b/objective-c/test/Ice/defaultServant/Makefile.mk @@ -0,0 +1,12 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_client_sources = DefaultServantTest.ice Client.m TestI.m + +tests += $(test) diff --git a/objective-c/test/Ice/defaultServant/MyObjectI.h b/objective-c/test/Ice/defaultServant/TestI.h index df61834b228..df61834b228 100644 --- a/objective-c/test/Ice/defaultServant/MyObjectI.h +++ b/objective-c/test/Ice/defaultServant/TestI.h diff --git a/objective-c/test/Ice/defaultServant/MyObjectI.m b/objective-c/test/Ice/defaultServant/TestI.m index de7b4cf992a..8d74f41ec30 100644 --- a/objective-c/test/Ice/defaultServant/MyObjectI.m +++ b/objective-c/test/Ice/defaultServant/TestI.m @@ -1,6 +1,6 @@ // ********************************************************************** // -// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. @@ -8,7 +8,7 @@ // ********************************************************************** #import <objc/Ice.h> -#import <defaultServant/MyObjectI.h> +#import <defaultServant/TestI.h> @implementation TestDefaultServantMyObjectI @@ -20,7 +20,7 @@ { @throw [ICEObjectNotExistException objectNotExistException:__FILE__ line:__LINE__]; } - + if([name isEqualToString:@"FacetNotExist"]) { @throw [ICEFacetNotExistException facetNotExistException:__FILE__ line:__LINE__]; @@ -35,7 +35,7 @@ { @throw [ICEObjectNotExistException objectNotExistException:__FILE__ line:__LINE__]; } - + if([name isEqualToString:@"FacetNotExist"]) { @throw [ICEFacetNotExistException facetNotExistException:__FILE__ line:__LINE__]; diff --git a/objective-c/test/Ice/defaultServant/run.py b/objective-c/test/Ice/defaultServant/run.py deleted file mode 100755 index 16fb095d655..00000000000 --- a/objective-c/test/Ice/defaultServant/run.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -client = os.path.join(os.getcwd(), "client") - -TestUtil.simpleTest(client) diff --git a/objective-c/test/Ice/defaultValue/.gitignore b/objective-c/test/Ice/defaultValue/.gitignore deleted file mode 100644 index e4c2ca683a3..00000000000 --- a/objective-c/test/Ice/defaultValue/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -.depend -DefaultValueTest.m -DefaultValueTest.h diff --git a/objective-c/test/Ice/defaultValue/Client.m b/objective-c/test/Ice/defaultValue/Client.m index ec601f12cd0..12238ed5b56 100644 --- a/objective-c/test/Ice/defaultValue/Client.m +++ b/objective-c/test/Ice/defaultValue/Client.m @@ -26,6 +26,13 @@ run() int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + @autoreleasepool { int status; diff --git a/objective-c/test/Ice/defaultValue/Makefile b/objective-c/test/Ice/defaultValue/Makefile deleted file mode 100644 index 941a4327fdb..00000000000 --- a/objective-c/test/Ice/defaultValue/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client - -TARGETS = $(CLIENT) - -SLICE_OBJS = DefaultValueTest.o - -COBJS = Client.o \ - AllTests.o - -OBJS = $(COBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/defaultValue/run.py b/objective-c/test/Ice/defaultValue/run.py deleted file mode 100755 index a1a3e8f199a..00000000000 --- a/objective-c/test/Ice/defaultValue/run.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -client = os.path.join(os.getcwd(), "client") -TestUtil.simpleTest(client) diff --git a/objective-c/test/Ice/dispatcher/.gitignore b/objective-c/test/Ice/dispatcher/.gitignore deleted file mode 100644 index 6d0e4a9258e..00000000000 --- a/objective-c/test/Ice/dispatcher/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -DispatcherTest.m -DispatcherTest.h diff --git a/objective-c/test/Ice/dispatcher/Client.m b/objective-c/test/Ice/dispatcher/Client.m index f04e9e9b7d4..5f391eb6720 100644 --- a/objective-c/test/Ice/dispatcher/Client.m +++ b/objective-c/test/Ice/dispatcher/Client.m @@ -28,6 +28,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -42,8 +49,8 @@ main(int argc, char* argv[]) dispatch_sync(queue, ^ { [call run]; }); }; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestDispatcher", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestDispatcher", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -64,15 +71,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/dispatcher/Collocated.m b/objective-c/test/Ice/dispatcher/Collocated.m index e8f2e99964a..7ee0d881987 100644 --- a/objective-c/test/Ice/dispatcher/Collocated.m +++ b/objective-c/test/Ice/dispatcher/Collocated.m @@ -27,10 +27,10 @@ run(id<ICECommunicator> communicator) ICEObject* object = [TestDispatcherTestIntfI testIntf]; - [adapter add:object identity:[communicator stringToIdentity:@"test"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"test"]]; //[adapter activate]; // Don't activate OA to ensure collocation is used. - [adapter2 add:testController identity:[communicator stringToIdentity:@"testController"]]; + [adapter2 add:testController identity:[ICEUtil stringToIdentity:@"testController"]]; //[adapter2 activate]; // Don't activate OA to ensure collocation is used. TestDispatcherTestIntfPrx* dispatcherAllTests(id<ICECommunicator>); @@ -46,6 +46,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -59,7 +66,7 @@ main(int argc, char* argv[]) dispatch_sync(queue, ^ { [call run]; }); }; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestDispatcher", @"::Test", nil]; #endif @@ -74,15 +81,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/dispatcher/Makefile b/objective-c/test/Ice/dispatcher/Makefile deleted file mode 100644 index 8a4f6fb670e..00000000000 --- a/objective-c/test/Ice/dispatcher/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = DispatcherTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/dispatcher/Server.m b/objective-c/test/Ice/dispatcher/Server.m index 221b787e15a..5789917506b 100644 --- a/objective-c/test/Ice/dispatcher/Server.m +++ b/objective-c/test/Ice/dispatcher/Server.m @@ -27,10 +27,10 @@ run(id<ICECommunicator> communicator) ICEObject* object = [TestDispatcherTestIntfI testIntf]; - [adapter add:object identity:[communicator stringToIdentity:@"test"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"test"]]; [adapter activate]; - [adapter2 add:testController identity:[communicator stringToIdentity:@"testController"]]; + [adapter2 add:testController identity:[ICEUtil stringToIdentity:@"testController"]]; [adapter2 activate]; serverReady(communicator); @@ -46,6 +46,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -59,7 +66,7 @@ main(int argc, char* argv[]) dispatch_sync(queue, ^ { [call run]; }); }; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestDispatcher", @"::Test", nil]; #endif @@ -74,15 +81,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/dispatcher/run.py b/objective-c/test/Ice/dispatcher/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/dispatcher/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/enums/.gitignore b/objective-c/test/Ice/enums/.gitignore deleted file mode 100644 index 657ea9d677b..00000000000 --- a/objective-c/test/Ice/enums/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -EnumTest.m -EnumTest.h diff --git a/objective-c/test/Ice/enums/Client.m b/objective-c/test/Ice/enums/Client.m index c55be37a109..c6f44630a3e 100644 --- a/objective-c/test/Ice/enums/Client.m +++ b/objective-c/test/Ice/enums/Client.m @@ -23,12 +23,19 @@ run(id<ICECommunicator> communicator) } #if TARGET_OS_IPHONE -# define main enumClient +# define main enumsClient #endif int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -39,7 +46,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestEnum", @"::Test", nil]; #endif @@ -58,15 +65,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/enums/Makefile b/objective-c/test/Ice/enums/Makefile deleted file mode 100644 index 98020ade8c3..00000000000 --- a/objective-c/test/Ice/enums/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = EnumTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/enums/Server.m b/objective-c/test/Ice/enums/Server.m index ddf0070d902..7fb25ab0bd1 100644 --- a/objective-c/test/Ice/enums/Server.m +++ b/objective-c/test/Ice/enums/Server.m @@ -16,7 +16,7 @@ run(id<ICECommunicator> communicator) { [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; - [adapter add:[TestEnumTestIntfI testIntf] identity:[communicator stringToIdentity:@"test"]]; + [adapter add:[TestEnumTestIntfI testIntf] identity:[ICEUtil stringToIdentity:@"test"]]; [adapter activate]; serverReady(communicator); @@ -26,12 +26,19 @@ run(id<ICECommunicator> communicator) } #if TARGET_OS_IPHONE -# define main enumServer +# define main enumsServer #endif int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -42,7 +49,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestEnum", @"::Test", nil]; #endif @@ -57,15 +64,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/enums/run.py b/objective-c/test/Ice/enums/run.py deleted file mode 100755 index 651b1b334b6..00000000000 --- a/objective-c/test/Ice/enums/run.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("Running test with 1.0 encoding.") -TestUtil.clientServerTest(additionalClientOptions="--Ice.Default.EncodingVersion=1.0", - additionalServerOptions="--Ice.Default.EncodingVersion=1.0") - -print("Running test with 1.1 encoding.") -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/exceptions/.gitignore b/objective-c/test/Ice/exceptions/.gitignore deleted file mode 100644 index 2d0da9fe75b..00000000000 --- a/objective-c/test/Ice/exceptions/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -ExceptionsTest.m -ExceptionsTest.h diff --git a/objective-c/test/Ice/exceptions/AllTests.m b/objective-c/test/Ice/exceptions/AllTests.m index e4a27d9db31..1ca917c2439 100644 --- a/objective-c/test/Ice/exceptions/AllTests.m +++ b/objective-c/test/Ice/exceptions/AllTests.m @@ -23,70 +23,70 @@ exceptionsAllTests(id<ICECommunicator> communicator) tprintf("testing object adapter registration exceptions... "); { id<ICEObjectAdapter> first; - @try - { - first = [communicator createObjectAdapter:@"TestAdapter0"]; - test(false); - } - @catch(ICEInitializationException *ex) - { - // Expeccted - } - - [[communicator getProperties] setProperty:@"TestAdapter0.Endpoints" value:@"default"]; - first = [communicator createObjectAdapter:@"TestAdapter0"]; - @try - { - [communicator createObjectAdapter:@"TestAdapter0"]; - test(false); - } - @catch(ICEAlreadyRegisteredException *ex) - { - // Expected - } - - @try - { - } - @catch(ICEAlreadyRegisteredException *ex) - { - // Expected - } - - // - // Properties must remain unaffected if an exception occurs. - // - test([[[communicator getProperties] getProperty:@"TestAdapter0.Endpoints"] isEqualToString:@"default"]); - [first deactivate]; + @try + { + first = [communicator createObjectAdapter:@"TestAdapter0"]; + test(false); + } + @catch(ICEInitializationException *ex) + { + // Expeccted + } + + [[communicator getProperties] setProperty:@"TestAdapter0.Endpoints" value:@"default"]; + first = [communicator createObjectAdapter:@"TestAdapter0"]; + @try + { + [communicator createObjectAdapter:@"TestAdapter0"]; + test(false); + } + @catch(ICEAlreadyRegisteredException *ex) + { + // Expected + } + + @try + { + } + @catch(ICEAlreadyRegisteredException *ex) + { + // Expected + } + + // + // Properties must remain unaffected if an exception occurs. + // + test([[[communicator getProperties] getProperty:@"TestAdapter0.Endpoints"] isEqualToString:@"default"]); + [first deactivate]; } tprintf("ok\n"); tprintf("testing servant registration exceptions... "); { [[communicator getProperties] setProperty:@"TestAdapter1.Endpoints" value:@"default"]; - id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter1"]; - ICEObject* obj = [ExceptionsEmptyI empty]; - [adapter add:obj identity:[communicator stringToIdentity:@"x"]]; - @try - { - [adapter add:obj identity:[communicator stringToIdentity:@"x"]]; - test(false); - } - @catch(ICEAlreadyRegisteredException *ex) - { - } - - [adapter remove:[communicator stringToIdentity:@"x"]]; - @try - { - [adapter remove:[communicator stringToIdentity:@"x"]]; - test(false); - } - @catch(ICENotRegisteredException *ex) - { - } - - [adapter deactivate]; + id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter1"]; + ICEObject* obj = [ExceptionsEmptyI empty]; + [adapter add:obj identity:[ICEUtil stringToIdentity:@"x"]]; + @try + { + [adapter add:obj identity:[ICEUtil stringToIdentity:@"x"]]; + test(false); + } + @catch(ICEAlreadyRegisteredException *ex) + { + } + + [adapter remove:[ICEUtil stringToIdentity:@"x"]]; + @try + { + [adapter remove:[ICEUtil stringToIdentity:@"x"]]; + test(false); + } + @catch(ICENotRegisteredException *ex) + { + } + + [adapter deactivate]; } tprintf("ok\n"); @@ -107,7 +107,7 @@ exceptionsAllTests(id<ICECommunicator> communicator) @try { [thrower throwAasA:1]; - test(false); + test(false); } @catch(TestExceptionsA *ex) { @@ -318,6 +318,7 @@ exceptionsAllTests(id<ICECommunicator> communicator) } @catch(NSException *ex) { + NSLog(@"%@", ex); test(false); } @@ -405,10 +406,10 @@ exceptionsAllTests(id<ICECommunicator> communicator) tprintf("catching object not exist exception... "); - ICEIdentity *id_ = [communicator stringToIdentity:@"does not exist"]; + ICEIdentity *id_ = [ICEUtil stringToIdentity:@"does not exist"]; @try { - id<TestExceptionsThrowerPrx> thrower2 = [TestExceptionsThrowerPrx uncheckedCast:[thrower ice_identity:id_]]; + id<TestExceptionsThrowerPrx> thrower2 = [TestExceptionsThrowerPrx uncheckedCast:[thrower ice_identity:id_]]; [thrower2 throwAasA:1]; // //[thrower2 ice_ping]; test(false); diff --git a/objective-c/test/Ice/exceptions/Client.m b/objective-c/test/Ice/exceptions/Client.m index 3a34ca74a02..3d44232b58c 100644 --- a/objective-c/test/Ice/exceptions/Client.m +++ b/objective-c/test/Ice/exceptions/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -38,7 +45,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"Ice.MessageSizeMax" value:@"10"]; // 10KB max [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestExceptions", @"::Test", @"TestExceptionsMod", @"::Test::Mod", nil]; @@ -58,15 +65,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/exceptions/Collocated.m b/objective-c/test/Ice/exceptions/Collocated.m index 1348fb64bad..ddaebc52980 100644 --- a/objective-c/test/Ice/exceptions/Collocated.m +++ b/objective-c/test/Ice/exceptions/Collocated.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [ThrowerI thrower]; - [adapter add:object identity:[communicator stringToIdentity:@"thrower"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"thrower"]]; TestExceptionsThrowerPrx* exceptionsAllTests(id<ICECommunicator>); exceptionsAllTests(communicator); @@ -26,12 +26,19 @@ run(id<ICECommunicator> communicator) } #if TARGET_OS_IPHONE -# define main exceptionsServer +# define main exceptionsCollocated #endif int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -46,7 +53,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestExceptions", @"::Test", @"TestExceptionsMod", @"::Test::Mod", nil]; @@ -63,15 +70,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/exceptions/Makefile b/objective-c/test/Ice/exceptions/Makefile deleted file mode 100644 index 2a169023eaa..00000000000 --- a/objective-c/test/Ice/exceptions/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = ExceptionsTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(COLOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/exceptions/Server.m b/objective-c/test/Ice/exceptions/Server.m index 8437328cc52..24e97a71f92 100644 --- a/objective-c/test/Ice/exceptions/Server.m +++ b/objective-c/test/Ice/exceptions/Server.m @@ -24,9 +24,9 @@ run(id<ICECommunicator> communicator) id<ICEObjectAdapter> adapter2 = [communicator createObjectAdapter:@"TestAdapter2"]; id<ICEObjectAdapter> adapter3 = [communicator createObjectAdapter:@"TestAdapter3"]; ICEObject* object = [ThrowerI thrower]; - [adapter add:object identity:[communicator stringToIdentity:@"thrower"]]; - [adapter2 add:object identity:[communicator stringToIdentity:@"thrower"]]; - [adapter3 add:object identity:[communicator stringToIdentity:@"thrower"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"thrower"]]; + [adapter2 add:object identity:[ICEUtil stringToIdentity:@"thrower"]]; + [adapter3 add:object identity:[ICEUtil stringToIdentity:@"thrower"]]; [adapter activate]; [adapter2 activate]; [adapter3 activate]; @@ -44,6 +44,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -58,7 +65,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestExceptions", @"::Test", @"TestExceptionsMod", @"::Test::Mod", nil]; @@ -75,15 +82,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/exceptions/run.py b/objective-c/test/Ice/exceptions/run.py deleted file mode 100755 index e12efffae05..00000000000 --- a/objective-c/test/Ice/exceptions/run.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("Running test with compact (default) format.") -TestUtil.clientServerTest() - -print("Running test with sliced format.") -TestUtil.clientServerTest(additionalClientOptions="--Ice.Default.SlicedFormat", - additionalServerOptions="--Ice.Default.SlicedFormat") - -print("Running test with 1.0 encoding.") -TestUtil.clientServerTest(additionalClientOptions="--Ice.Default.EncodingVersion=1.0", - additionalServerOptions="--Ice.Default.EncodingVersion=1.0") - -print("Running collocated test.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/facets/.gitignore b/objective-c/test/Ice/facets/.gitignore deleted file mode 100644 index 461935cd9dd..00000000000 --- a/objective-c/test/Ice/facets/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -FacetsTest.m -FacetsTest.h diff --git a/objective-c/test/Ice/facets/AllTests.m b/objective-c/test/Ice/facets/AllTests.m index b78fd37b674..2f523b0c948 100644 --- a/objective-c/test/Ice/facets/AllTests.m +++ b/objective-c/test/Ice/facets/AllTests.m @@ -45,20 +45,20 @@ facetsAllTests(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"FacetExceptionTestAdapter.Endpoints" value:@"default"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"FacetExceptionTestAdapter"]; ICEObject* obj = [FacetsEmptyI empty]; - [adapter add:obj identity:[communicator stringToIdentity:@"d"]]; - [adapter addFacet:obj identity:[communicator stringToIdentity:@"d"] facet:@"facetABCD"]; + [adapter add:obj identity:[ICEUtil stringToIdentity:@"d"]]; + [adapter addFacet:obj identity:[ICEUtil stringToIdentity:@"d"] facet:@"facetABCD"]; @try { - [adapter addFacet:obj identity:[communicator stringToIdentity:@"d"] facet:@"facetABCD"]; + [adapter addFacet:obj identity:[ICEUtil stringToIdentity:@"d"] facet:@"facetABCD"]; test(NO); } @catch(ICEAlreadyRegisteredException*) { } - [adapter removeFacet:[communicator stringToIdentity:@"d"] facet:@"facetABCD"]; + [adapter removeFacet:[ICEUtil stringToIdentity:@"d"] facet:@"facetABCD"]; @try { - [adapter removeFacet:[communicator stringToIdentity:@"d"] facet:@"facetABCD"]; + [adapter removeFacet:[ICEUtil stringToIdentity:@"d"] facet:@"facetABCD"]; test(NO); } @catch(ICENotRegisteredException*) @@ -70,27 +70,27 @@ facetsAllTests(id<ICECommunicator> communicator) ICEObject* obj1 = [FacetsEmptyI empty]; ICEObject* obj2 = [FacetsEmptyI empty]; - [adapter addFacet:obj1 identity:[communicator stringToIdentity:@"id1"] facet:@"f1"]; - [adapter addFacet:obj2 identity:[communicator stringToIdentity:@"id1"] facet:@"f2"]; + [adapter addFacet:obj1 identity:[ICEUtil stringToIdentity:@"id1"] facet:@"f1"]; + [adapter addFacet:obj2 identity:[ICEUtil stringToIdentity:@"id1"] facet:@"f2"]; ICEObject* obj3 = [FacetsEmptyI empty]; - [adapter addFacet:obj1 identity:[communicator stringToIdentity:@"id2"] facet:@"f1"]; - [adapter addFacet:obj2 identity:[communicator stringToIdentity:@"id2"] facet:@"f2"]; - [adapter addFacet:obj3 identity:[communicator stringToIdentity:@"id2"] facet:@""]; - NSDictionary* fm = [adapter removeAllFacets:[communicator stringToIdentity:@"id1"]]; + [adapter addFacet:obj1 identity:[ICEUtil stringToIdentity:@"id2"] facet:@"f1"]; + [adapter addFacet:obj2 identity:[ICEUtil stringToIdentity:@"id2"] facet:@"f2"]; + [adapter addFacet:obj3 identity:[ICEUtil stringToIdentity:@"id2"] facet:@""]; + NSDictionary* fm = [adapter removeAllFacets:[ICEUtil stringToIdentity:@"id1"]]; test([fm count] == 2); test([fm objectForKey:@"f1"] == obj1); test([fm objectForKey:@"f2"] == obj2); @try { - [adapter removeAllFacets:[communicator stringToIdentity:@"id1"]]; + [adapter removeAllFacets:[ICEUtil stringToIdentity:@"id1"]]; test(NO); } @catch(ICENotRegisteredException*) { } - fm = [adapter removeAllFacets:[communicator stringToIdentity:@"id2"]]; + fm = [adapter removeAllFacets:[ICEUtil stringToIdentity:@"id2"]]; test([fm count] == 3); test([fm objectForKey:@"f1"] == obj1); test([fm objectForKey:@"f2"] == obj2); diff --git a/objective-c/test/Ice/facets/Client.m b/objective-c/test/Ice/facets/Client.m index e7ed6f1cb6a..153f354b496 100644 --- a/objective-c/test/Ice/facets/Client.m +++ b/objective-c/test/Ice/facets/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -37,7 +44,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestFacets", @"::Test", nil]; #endif @@ -56,15 +63,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/facets/Collocated.m b/objective-c/test/Ice/facets/Collocated.m index 5cdc9f160be..e8ef9ec8c58 100644 --- a/objective-c/test/Ice/facets/Collocated.m +++ b/objective-c/test/Ice/facets/Collocated.m @@ -19,10 +19,10 @@ run(id<ICECommunicator> communicator) ICEObject* d = [TestFacetsDI d]; ICEObject* f = [TestFacetsFI f]; ICEObject* h = [TestFacetsHI h]; - [adapter add:d identity:[communicator stringToIdentity:@"d"]]; - [adapter addFacet:d identity:[communicator stringToIdentity:@"d"] facet:@"facetABCD"]; - [adapter addFacet:f identity:[communicator stringToIdentity:@"d"] facet:@"facetEF"]; - [adapter addFacet:h identity:[communicator stringToIdentity:@"d"] facet:@"facetGH"]; + [adapter add:d identity:[ICEUtil stringToIdentity:@"d"]]; + [adapter addFacet:d identity:[ICEUtil stringToIdentity:@"d"] facet:@"facetABCD"]; + [adapter addFacet:f identity:[ICEUtil stringToIdentity:@"d"] facet:@"facetEF"]; + [adapter addFacet:h identity:[ICEUtil stringToIdentity:@"d"] facet:@"facetGH"]; id<TestFacetsGPrx> facetsAllTests(id<ICECommunicator>); facetsAllTests(communicator); @@ -31,12 +31,19 @@ run(id<ICECommunicator> communicator) } #if TARGET_OS_IPHONE -# define main facetsServer +# define main facetsCollocated #endif int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -46,7 +53,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestFacets", @"::Test", nil]; #endif @@ -61,15 +68,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/facets/Makefile b/objective-c/test/Ice/facets/Makefile deleted file mode 100644 index 31ca0b634d3..00000000000 --- a/objective-c/test/Ice/facets/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = FacetsTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(COLOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/facets/Server.m b/objective-c/test/Ice/facets/Server.m index 5c268353c4f..d276084d57d 100644 --- a/objective-c/test/Ice/facets/Server.m +++ b/objective-c/test/Ice/facets/Server.m @@ -19,10 +19,10 @@ run(id<ICECommunicator> communicator) ICEObject* d = [TestFacetsDI d]; ICEObject* f = [TestFacetsFI f]; ICEObject* h = [TestFacetsHI h]; - [adapter add:d identity:[communicator stringToIdentity:@"d"]]; - [adapter addFacet:d identity:[communicator stringToIdentity:@"d"] facet:@"facetABCD"]; - [adapter addFacet:f identity:[communicator stringToIdentity:@"d"] facet:@"facetEF"]; - [adapter addFacet:h identity:[communicator stringToIdentity:@"d"] facet:@"facetGH"]; + [adapter add:d identity:[ICEUtil stringToIdentity:@"d"]]; + [adapter addFacet:d identity:[ICEUtil stringToIdentity:@"d"] facet:@"facetABCD"]; + [adapter addFacet:f identity:[ICEUtil stringToIdentity:@"d"] facet:@"facetEF"]; + [adapter addFacet:h identity:[ICEUtil stringToIdentity:@"d"] facet:@"facetGH"]; [adapter activate]; @@ -40,6 +40,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -49,7 +56,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestFacets", @"::Test", nil]; #endif @@ -64,15 +71,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/facets/run.py b/objective-c/test/Ice/facets/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/facets/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/faultTolerance/.gitignore b/objective-c/test/Ice/faultTolerance/.gitignore deleted file mode 100644 index 17e70af0964..00000000000 --- a/objective-c/test/Ice/faultTolerance/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -FaultToleranceTest.m -FaultToleranceTest.h diff --git a/objective-c/test/Ice/faultTolerance/AllTests.m b/objective-c/test/Ice/faultTolerance/AllTests.m index a07c0966583..170fa82de3c 100644 --- a/objective-c/test/Ice/faultTolerance/AllTests.m +++ b/objective-c/test/Ice/faultTolerance/AllTests.m @@ -136,10 +136,10 @@ allTests(id<ICECommunicator> communicator, NSArray* ports) { tprintf("testing stringToProxy... "); NSString* ref = @"test"; - for(NSString* p in ports) + for(NSNumber* p in ports) { ref = [ref stringByAppendingString:@":default -p "]; - ref = [ref stringByAppendingString:p]; + ref = [ref stringByAppendingString:[p stringValue]]; } id<ICEObjectPrx> base = [communicator stringToProxy:ref]; test(base); diff --git a/objective-c/test/Ice/faultTolerance/Client.m b/objective-c/test/Ice/faultTolerance/Client.m index ce8a9840e03..8c0689e3ad5 100644 --- a/objective-c/test/Ice/faultTolerance/Client.m +++ b/objective-c/test/Ice/faultTolerance/Client.m @@ -32,7 +32,7 @@ run(int argc, char* argv[], id<ICECommunicator> communicator) return EXIT_FAILURE; } - [ports addObject:[NSString stringWithUTF8String:argv[i]]]; + [ports addObject:[NSNumber numberWithInt:(atoi(argv[i]) + 12010)]]; } if([ports count] == 0) @@ -59,6 +59,13 @@ run(int argc, char* argv[], id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -85,15 +92,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - NSLog(@"%@", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/faultTolerance/Makefile b/objective-c/test/Ice/faultTolerance/Makefile deleted file mode 100644 index 824d5f819eb..00000000000 --- a/objective-c/test/Ice/faultTolerance/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = FaultToleranceTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/faultTolerance/Server.m b/objective-c/test/Ice/faultTolerance/Server.m index 777e6579055..9532ccac951 100644 --- a/objective-c/test/Ice/faultTolerance/Server.m +++ b/objective-c/test/Ice/faultTolerance/Server.m @@ -39,7 +39,7 @@ run(int argc, char** argv, id<ICECommunicator> communicator) return EXIT_FAILURE; } - port = atoi(argv[i]); + port = 12010 + atoi(argv[i]); } if(port <= 0) @@ -49,12 +49,12 @@ run(int argc, char** argv, id<ICECommunicator> communicator) return EXIT_FAILURE; } - NSString* endpts = [NSString stringWithFormat:@"default -p %d:udp", port]; + NSString* endpts = [NSString stringWithFormat:@"default -p %d:udp", port]; [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:endpts]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [TestI testIntf]; - [adapter add:object identity:[communicator stringToIdentity:@"test"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"test"]]; [adapter activate]; [communicator waitForShutdown]; return EXIT_SUCCESS; @@ -63,6 +63,13 @@ run(int argc, char** argv, id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -90,15 +97,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - NSLog(@"%@", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/faultTolerance/run.py b/objective-c/test/Ice/faultTolerance/run.py deleted file mode 100755 index e9a27c1662b..00000000000 --- a/objective-c/test/Ice/faultTolerance/run.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -server = os.path.join(os.getcwd(), "server") -client = os.path.join(os.getcwd(), "client") - -num = 12 -base = 13340 - -serverProc = [] -for i in range(0, num): - print "starting server #%d..." % (i + 1), - serverProc.append(TestUtil.startServer(server, "%d" % (base + i))) - print "ok" - -ports = "" -for i in range(0, num): - ports = "%s %d" % (ports, base + i) - -print "starting client...", -clientProc = TestUtil.startClient(client, ports + " " + "--Ice.Trace.Network=0", startReader = False) -print "ok" -clientProc.startReader() - -clientProc.waitTestSuccess() -for p in serverProc: - p.waitTestSuccess() diff --git a/objective-c/test/Ice/hash/.gitignore b/objective-c/test/Ice/hash/.gitignore deleted file mode 100644 index be837f9fdf3..00000000000 --- a/objective-c/test/Ice/hash/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -.depend -HashTest.m -HashTest.h diff --git a/objective-c/test/Ice/hash/AllTests.m b/objective-c/test/Ice/hash/AllTests.m index a42c9422d4e..e36c880f3e3 100644 --- a/objective-c/test/Ice/hash/AllTests.m +++ b/objective-c/test/Ice/hash/AllTests.m @@ -94,9 +94,9 @@ hashAllTests() NSMutableDictionary* seenObject = [[NSMutableDictionary alloc] init]; for(int i = 0; collisions < maxCollisions && i < maxIterations; ++i) { - TestHashPointF* obj = [TestHashPointF pointF:(arc4random() % 1000)/3 - y:(arc4random() % 1000)/5 - z:(arc4random() % 1000)/7]; + TestHashPointF* obj = [TestHashPointF pointF:(arc4random() % 1000)/3.0 + y:(arc4random() % 1000)/5.0 + z:(arc4random() % 1000)/7.0]; NSNumber* hash = [NSNumber numberWithUnsignedInteger:[obj hash]]; if([seenObject objectForKey:hash]) @@ -126,9 +126,9 @@ hashAllTests() NSMutableDictionary* seenObject = [[NSMutableDictionary alloc] init]; for(int i = 0; collisions < maxCollisions && i < maxIterations; ++i) { - TestHashPointD* obj = [TestHashPointD pointD:(arc4random() % 1000)/3 - y:(arc4random() % 1000)/5 - z:(arc4random() % 1000)/7]; + TestHashPointD* obj = [TestHashPointD pointD:(arc4random() % 1000)/3.0 + y:(arc4random() % 1000)/5.0 + z:(arc4random() % 1000)/7.0]; NSNumber* hash = [NSNumber numberWithUnsignedInteger:[obj hash]]; if([seenObject objectForKey:hash]) { diff --git a/objective-c/test/Ice/hash/Client.m b/objective-c/test/Ice/hash/Client.m index 4897d0d95ba..c54ee47e0c6 100644 --- a/objective-c/test/Ice/hash/Client.m +++ b/objective-c/test/Ice/hash/Client.m @@ -26,6 +26,13 @@ run() int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { diff --git a/objective-c/test/Ice/hash/Makefile b/objective-c/test/Ice/hash/Makefile deleted file mode 100644 index b0d557cc6ce..00000000000 --- a/objective-c/test/Ice/hash/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client - -TARGETS = $(CLIENT) - -SLICE_OBJS = HashTest.o - -COBJS = Client.o \ - AllTests.o - -OBJS = $(COBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/hash/run.py b/objective-c/test/Ice/hash/run.py deleted file mode 100755 index a1a3e8f199a..00000000000 --- a/objective-c/test/Ice/hash/run.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -client = os.path.join(os.getcwd(), "client") -TestUtil.simpleTest(client) diff --git a/objective-c/test/Ice/hold/.gitignore b/objective-c/test/Ice/hold/.gitignore deleted file mode 100644 index 4e573bb9e5f..00000000000 --- a/objective-c/test/Ice/hold/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -HoldTest.m -HoldTest.h diff --git a/objective-c/test/Ice/hold/AllTests.m b/objective-c/test/Ice/hold/AllTests.m index 38dbf06da20..7528ba50762 100644 --- a/objective-c/test/Ice/hold/AllTests.m +++ b/objective-c/test/Ice/hold/AllTests.m @@ -146,7 +146,7 @@ allTests(id<ICECommunicator> communicator) { Condition* cond = ICE_AUTORELEASE([[Condition alloc] initWithValue:YES]); int value = 0; - AMICheckSetValue* cb; + AMICheckSetValue* cb = nil; while([cond value]) { cb = ICE_AUTORELEASE([[AMICheckSetValue alloc] init:cond expected:value]); @@ -176,7 +176,7 @@ allTests(id<ICECommunicator> communicator) { Condition* cond = ICE_AUTORELEASE([[Condition alloc] initWithValue:YES]); int value = 0; - AMICheckSetValue* cb; + AMICheckSetValue* cb = nil; #if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR while(value < 300 && [cond value]) #else diff --git a/objective-c/test/Ice/hold/Client.m b/objective-c/test/Ice/hold/Client.m index cbbc44740db..3571f6f5686 100644 --- a/objective-c/test/Ice/hold/Client.m +++ b/objective-c/test/Ice/hold/Client.m @@ -11,7 +11,7 @@ #import <TestCommon.h> #import <HoldTest.h> -int +static int run(id<ICECommunicator> communicator) { void allTests(id<ICECommunicator>); @@ -26,6 +26,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -36,8 +43,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestHold", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestHold", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -55,15 +62,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/hold/Makefile b/objective-c/test/Ice/hold/Makefile deleted file mode 100644 index df8de712de7..00000000000 --- a/objective-c/test/Ice/hold/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = HoldTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/hold/Server.m b/objective-c/test/Ice/hold/Server.m index 3c5937a6f54..000eb894095 100644 --- a/objective-c/test/Ice/hold/Server.m +++ b/objective-c/test/Ice/hold/Server.m @@ -15,22 +15,22 @@ static int run(id<ICECommunicator> communicator) { [[communicator getProperties] setProperty:@"TestAdapter1.Endpoints" value:@"default -p 12010 -t 10000:udp"]; - [[communicator getProperties] setProperty:@"TestAdapter1.ThreadPool.Size" value:@"5"]; - [[communicator getProperties] setProperty:@"TestAdapter1.ThreadPool.SizeMax" value:@"5"]; - [[communicator getProperties] setProperty:@"TestAdapter1.ThreadPool.SizeWarn" value:@"0"]; + [[communicator getProperties] setProperty:@"TestAdapter1.ThreadPool.Size" value:@"5"]; + [[communicator getProperties] setProperty:@"TestAdapter1.ThreadPool.SizeMax" value:@"5"]; + [[communicator getProperties] setProperty:@"TestAdapter1.ThreadPool.SizeWarn" value:@"0"]; [[communicator getProperties] setProperty:@"TestAdapter1.ThreadPool.Serialize" value:@"0"]; id<ICEObjectAdapter> adapter1 = [communicator createObjectAdapter:@"TestAdapter1"]; [[communicator getProperties] setProperty:@"TestAdapter2.Endpoints" value:@"default -p 12011 -t 10000:udp"]; - [[communicator getProperties] setProperty:@"TestAdapter2.ThreadPool.Size" value:@"5"]; - [[communicator getProperties] setProperty:@"TestAdapter2.ThreadPool.SizeMax" value:@"5"]; - [[communicator getProperties] setProperty:@"TestAdapter2.ThreadPool.SizeWarn" value:@"0"]; + [[communicator getProperties] setProperty:@"TestAdapter2.ThreadPool.Size" value:@"5"]; + [[communicator getProperties] setProperty:@"TestAdapter2.ThreadPool.SizeMax" value:@"5"]; + [[communicator getProperties] setProperty:@"TestAdapter2.ThreadPool.SizeWarn" value:@"0"]; [[communicator getProperties] setProperty:@"TestAdapter2.ThreadPool.Serialize" value:@"1"]; id<ICEObjectAdapter> adapter2 = [communicator createObjectAdapter:@"TestAdapter2"]; - - [adapter1 add:[HoldI hold] identity:[communicator stringToIdentity:@"hold"]]; - [adapter2 add:[HoldI hold] identity:[communicator stringToIdentity:@"hold"]]; + + [adapter1 add:[HoldI hold] identity:[ICEUtil stringToIdentity:@"hold"]]; + [adapter2 add:[HoldI hold] identity:[ICEUtil stringToIdentity:@"hold"]]; [adapter1 activate]; [adapter2 activate]; @@ -49,6 +49,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + @autoreleasepool { int status; @@ -59,8 +66,8 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestHold", @"::Test", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestHold", @"::Test", nil]; #endif @@ -75,15 +82,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } return status; } diff --git a/objective-c/test/Ice/hold/run.py b/objective-c/test/Ice/hold/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/hold/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/info/.gitignore b/objective-c/test/Ice/info/.gitignore deleted file mode 100644 index 23a7fa22453..00000000000 --- a/objective-c/test/Ice/info/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -InfoTest.m -InfoTest.h diff --git a/objective-c/test/Ice/info/AllTests.m b/objective-c/test/Ice/info/AllTests.m index 1560e6439f8..699ca43498a 100644 --- a/objective-c/test/Ice/info/AllTests.m +++ b/objective-c/test/Ice/info/AllTests.m @@ -12,6 +12,31 @@ #import <TestCommon.h> #import <InfoTest.h> +static ICETCPEndpointInfo<ICEEndpointInfo>* +getTCPEndpointInfo(ICEEndpointInfo<ICEEndpointInfo>* info) +{ + for(; info; info = info.underlying) + { + if([info isKindOfClass:[ICETCPEndpointInfo class]]) + { + return (ICETCPEndpointInfo<ICEEndpointInfo>*)info; + } + } + return nil; +} + +static ICETCPConnectionInfo* +getTCPConnectionInfo(ICEConnectionInfo* info) +{ + for(; info; info = info.underlying) + { + if([info isKindOfClass:[ICETCPConnectionInfo class]]) + { + return (ICETCPConnectionInfo*)info; + } + } + return nil; +} TestInfoTestIntfPrx* infoAllTests(id<ICECommunicator> communicator) @@ -25,8 +50,9 @@ infoAllTests(id<ICECommunicator> communicator) ICEEndpointSeq* endps = [p1 ice_getEndpoints]; id<ICEEndpoint> endpoint = [endps objectAtIndex:0]; - ICEIPEndpointInfo<ICEEndpointInfo>* ipEndpoint = (ICEIPEndpointInfo<ICEEndpointInfo>*)[endpoint getInfo]; - test([ipEndpoint isKindOfClass:[ICEIPEndpointInfo class]]); + ICEEndpointInfo<ICEEndpointInfo>* info = [endpoint getInfo]; + ICETCPEndpointInfo<ICEEndpointInfo>* ipEndpoint = getTCPEndpointInfo(info); + test([ipEndpoint isKindOfClass:[ICETCPEndpointInfo class]]); test([[ipEndpoint host] isEqualToString:@"tcphost"]); test(ipEndpoint.port == 10000); test(ipEndpoint.timeout == 1200); @@ -38,11 +64,10 @@ infoAllTests(id<ICECommunicator> communicator) ([ipEndpoint type] == ICEWSEndpointType && ![ipEndpoint secure]) || ([ipEndpoint type] == ICEWSSEndpointType && [ipEndpoint secure])); - test(([ipEndpoint type] == ICETCPEndpointType && [ipEndpoint isKindOfClass:[ICETCPEndpointInfo class]]) || - ([ipEndpoint type] == ICESSLEndpointType && [ipEndpoint isKindOfClass:[ICESSLEndpointInfo class]]) || - ([ipEndpoint type] == ICEWSEndpointType && [ipEndpoint isKindOfClass:[ICEWSEndpointInfo class]]) || - ([ipEndpoint type] == ICEWSSEndpointType && [ipEndpoint isKindOfClass:[ICESSLWSSEndpointInfo class]])); - + test(([ipEndpoint type] == ICETCPEndpointType && [info isKindOfClass:[ICETCPEndpointInfo class]]) || + ([ipEndpoint type] == ICESSLEndpointType && [info isKindOfClass:[ICESSLEndpointInfo class]]) || + ([ipEndpoint type] == ICEWSEndpointType && [info isKindOfClass:[ICEWSEndpointInfo class]]) || + ([ipEndpoint type] == ICEWSSEndpointType && [info isKindOfClass:[ICEWSEndpointInfo class]])); endpoint = [endps objectAtIndex:1]; ICEUDPEndpointInfo<ICEEndpointInfo>* udpEndpoint = (ICEUDPEndpointInfo<ICEEndpointInfo>*)[endpoint getInfo]; @@ -72,14 +97,14 @@ infoAllTests(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -t 15000:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; - ICEEndpointSeq* endpoints = [adapter getEndpoints]; + ICEMutableEndpointSeq* endpoints = [adapter getEndpoints]; test([endpoints count] == 2); ICEEndpointSeq* publishedEndpoints = [adapter getPublishedEndpoints]; test([endpoints isEqualToArray:publishedEndpoints]); id<ICEEndpoint> endpoint = [endpoints objectAtIndex:0]; - ICEIPEndpointInfo<ICEEndpointInfo>* ipEndpoint = (ICEIPEndpointInfo<ICEEndpointInfo>*)[endpoint getInfo]; - test([ipEndpoint isKindOfClass:[ICEIPEndpointInfo class]]); + ICETCPEndpointInfo<ICEEndpointInfo>* ipEndpoint = getTCPEndpointInfo([endpoint getInfo]); + test([ipEndpoint isKindOfClass:[ICETCPEndpointInfo class]]); test([ipEndpoint type] == ICETCPEndpointType || [ipEndpoint type] == ICESSLEndpointType || [ipEndpoint type] == ICEWSEndpointType || [ipEndpoint type] == ICEWSSEndpointType); test([ipEndpoint.host isEqualToString:defaultHost]); @@ -93,6 +118,12 @@ infoAllTests(id<ICECommunicator> communicator) test([udpEndpoint datagram]); test(udpEndpoint.port > 0); + [endpoints removeLastObject]; + test([endpoints count] == 1); + [adapter setPublishedEndpoints:endpoints]; + publishedEndpoints = [adapter getPublishedEndpoints]; + test([endpoints isEqualToArray:publishedEndpoints]); + [adapter destroy]; [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -h * -p 12020"]; @@ -107,11 +138,11 @@ infoAllTests(id<ICECommunicator> communicator) for(id object in endpoints) { endpoint = (id<ICEEndpoint>)object; - ipEndpoint = (ICEIPEndpointInfo<ICEEndpointInfo>*)[endpoint getInfo]; + ipEndpoint = getTCPEndpointInfo([endpoint getInfo]); test(ipEndpoint.port == 12020); } - ipEndpoint = (ICEIPEndpointInfo<ICEEndpointInfo>*)[[publishedEndpoints objectAtIndex:0] getInfo]; + ipEndpoint = getTCPEndpointInfo([[publishedEndpoints objectAtIndex:0] getInfo]); test([ipEndpoint.host isEqualToString:@"127.0.0.1"]); test(ipEndpoint.port == 12020); @@ -124,9 +155,9 @@ infoAllTests(id<ICECommunicator> communicator) tprintf("test connection endpoint information... "); { - ICEEndpointInfo* info = [[[base ice_getConnection] getEndpoint] getInfo]; - ICEIPEndpointInfo* ipinfo = (ICEIPEndpointInfo*)info; - test([ipinfo isKindOfClass:[ICEIPEndpointInfo class]]); + ICEEndpointInfo<ICEEndpointInfo>* info = [[[base ice_getConnection] getEndpoint] getInfo]; + ICETCPEndpointInfo* ipinfo = getTCPEndpointInfo(info); + test([ipinfo isKindOfClass:[ICETCPEndpointInfo class]]); test(ipinfo.port == 12010); test(!ipinfo.compress); test([ipinfo.host isEqualToString:defaultHost]); @@ -149,42 +180,32 @@ infoAllTests(id<ICECommunicator> communicator) id<ICEConnection> connection = [base ice_getConnection]; [connection setBufferSize:1024 sndSize:2048]; - ICEIPConnectionInfo* info = (ICEIPConnectionInfo*)[connection getInfo]; - test([info isKindOfClass:[ICEIPConnectionInfo class]]); - test(!info.incoming); - test([info.adapterName isEqualToString:@""]); - test(info.localPort > 0); - test(info.remotePort == 12010); + ICEConnectionInfo* info = [connection getInfo]; + ICETCPConnectionInfo* ipinfo = getTCPConnectionInfo([connection getInfo]); + test([ipinfo isKindOfClass:[ICETCPConnectionInfo class]]); + test(!ipinfo.incoming); + test([ipinfo.adapterName isEqualToString:@""]); + test(ipinfo.localPort > 0); + test(ipinfo.remotePort == 12010); if([defaultHost isEqualToString:@"127.0.0.1"]) { - test([info.remoteAddress isEqualToString:defaultHost]); - test([info.localAddress isEqualToString:defaultHost]); + test([ipinfo.remoteAddress isEqualToString:defaultHost]); + test([ipinfo.localAddress isEqualToString:defaultHost]); } - test(info.rcvSize >= 1024); - test(info.sndSize >= 2048); + test(ipinfo.rcvSize >= 1024); + test(ipinfo.sndSize >= 2048); ICEContext* ctx = [testIntf getConnectionInfoAsContext]; test([[ctx objectForKey:@"incoming"] isEqualToString:@"true"]); test([[ctx objectForKey:@"adapterName"] isEqualToString:@"TestAdapter"]); - test([[ctx objectForKey:@"remoteAddress"] isEqualToString:info.remoteAddress]); - test([[ctx objectForKey:@"localAddress"] isEqualToString:info.localAddress]); - test([[ctx objectForKey:@"remotePort"] intValue] == info.localPort); - test([[ctx objectForKey:@"localPort"] intValue] == info.remotePort); + test([[ctx objectForKey:@"remoteAddress"] isEqualToString:ipinfo.remoteAddress]); + test([[ctx objectForKey:@"localAddress"] isEqualToString:ipinfo.localAddress]); + test([[ctx objectForKey:@"remotePort"] intValue] == ipinfo.localPort); + test([[ctx objectForKey:@"localPort"] intValue] == ipinfo.remotePort); - if([info isKindOfClass:[ICEWSConnectionInfo class]] || [info isKindOfClass:[ICESSLWSSConnectionInfo class]]) + if([info isKindOfClass:[ICEWSConnectionInfo class]]) { - ICEHeaderDict* headers; - if([info isKindOfClass:[ICEWSConnectionInfo class]]) - { - ICEWSConnectionInfo* wsinfo = (ICEWSConnectionInfo*)info; - headers = wsinfo.headers; - } - - if([info isKindOfClass:[ICESSLWSSConnectionInfo class]]) - { - ICESSLWSSConnectionInfo* wssinfo = (ICESSLWSSConnectionInfo*)info; - headers = wssinfo.headers; - } + ICEHeaderDict* headers = ((ICEWSConnectionInfo*)info).headers; test([[headers objectForKey:@"Upgrade"] isEqualToString:@"websocket"]); test([[headers objectForKey:@"Connection"] isEqualToString:@"Upgrade"]); @@ -201,19 +222,20 @@ infoAllTests(id<ICECommunicator> communicator) connection = [[base ice_datagram] ice_getConnection]; [connection setBufferSize:2048 sndSize:1024]; - info = (ICEIPConnectionInfo*)[connection getInfo]; - test([info isKindOfClass:[ICEIPConnectionInfo class]]); - test(!info.incoming); - test([info.adapterName isEqualToString:@""]); - test(info.localPort > 0); - test(info.remotePort == 12010); + info = [connection getInfo]; + test([info isKindOfClass:[ICEUDPConnectionInfo class]]); + ICEUDPConnectionInfo* udpinfo = (ICEUDPConnectionInfo*)info; + test(!udpinfo.incoming); + test([udpinfo.adapterName isEqualToString:@""]); + test(udpinfo.localPort > 0); + test(udpinfo.remotePort == 12010); if([defaultHost isEqualToString:@"127.0.0.1"]) { - test([info.remoteAddress isEqualToString:defaultHost]); - test([info.localAddress isEqualToString:defaultHost]); + test([udpinfo.remoteAddress isEqualToString:defaultHost]); + test([udpinfo.localAddress isEqualToString:defaultHost]); } - test(info.rcvSize >= 2048); - test(info.sndSize >= 1024); + test(udpinfo.rcvSize >= 2048); + test(udpinfo.sndSize >= 1024); } tprintf("ok\n"); diff --git a/objective-c/test/Ice/info/Client.m b/objective-c/test/Ice/info/Client.m index abef3b7d73f..a2bc84df5b6 100644 --- a/objective-c/test/Ice/info/Client.m +++ b/objective-c/test/Ice/info/Client.m @@ -29,6 +29,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -39,7 +46,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestInfo", @"::Test", nil]; #endif @@ -58,15 +65,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/info/Makefile b/objective-c/test/Ice/info/Makefile deleted file mode 100644 index db2dff3a951..00000000000 --- a/objective-c/test/Ice/info/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = InfoTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(ICESSL_LIBS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(ICESSL_LIBS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/info/Makefile.mk b/objective-c/test/Ice/info/Makefile.mk new file mode 100644 index 00000000000..f50b5b73aa5 --- /dev/null +++ b/objective-c/test/Ice/info/Makefile.mk @@ -0,0 +1,12 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_dependencies = IceSSLObjC IceObjC TestCommonObjC + +tests += $(test) diff --git a/objective-c/test/Ice/info/Server.m b/objective-c/test/Ice/info/Server.m index c577a4c22f1..b5ab40f533b 100644 --- a/objective-c/test/Ice/info/Server.m +++ b/objective-c/test/Ice/info/Server.m @@ -16,7 +16,7 @@ run(id<ICECommunicator> communicator) { [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; - [adapter add:[TestInfoTestIntfI testIntf] identity:[communicator stringToIdentity:@"test"]]; + [adapter add:[TestInfoTestIntfI testIntf] identity:[ICEUtil stringToIdentity:@"test"]]; [adapter activate]; serverReady(communicator); @@ -32,6 +32,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -42,7 +49,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestProxy", @"::Test", nil]; #endif @@ -57,15 +64,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/info/TestI.m b/objective-c/test/Ice/info/TestI.m index 40a58b33948..888ba6af3ba 100644 --- a/objective-c/test/Ice/info/TestI.m +++ b/objective-c/test/Ice/info/TestI.m @@ -12,8 +12,33 @@ #import <info/TestI.h> #import <TestCommon.h> -@implementation TestInfoTestIntfI +static ICEIPEndpointInfo<ICEEndpointInfo>* +getIPEndpointInfo(ICEEndpointInfo<ICEEndpointInfo>* info) +{ + for(; info; info = info.underlying) + { + if([info isKindOfClass:[ICEIPEndpointInfo class]]) + { + return (ICEIPEndpointInfo<ICEEndpointInfo>*)info; + } + } + return nil; +} +static ICEIPConnectionInfo* +getIPConnectionInfo(ICEConnectionInfo* info) +{ + for(; info; info = info.underlying) + { + if([info isKindOfClass:[ICEIPConnectionInfo class]]) + { + return (ICEIPConnectionInfo*)info; + } + } + return nil; +} + +@implementation TestInfoTestIntfI -(void) shutdown:(ICECurrent*)c { @@ -33,7 +58,7 @@ [ctx setObject:[info secure] ? @"true" : @"false" forKey:@"secure"]; [ctx setObject:[NSString stringWithFormat:@"%d", [info type]] forKey:@"type"]; - ICEIPEndpointInfo* ipinfo = (ICEIPEndpointInfo*)info; + ICEIPEndpointInfo* ipinfo = getIPEndpointInfo(info); [ctx setObject:ipinfo.host forKey:@"host"]; [ctx setObject:[NSString stringWithFormat:@"%d", ipinfo.port] forKey:@"port"]; @@ -52,7 +77,7 @@ ICEMutableContext* ctx = [ICEMutableContext dictionaryWithObject:[info adapterName] forKey:@"adapterName"]; [ctx setObject:info.incoming ? @"true" : @"false" forKey:@"incoming"]; - ICEIPConnectionInfo* ipinfo = (ICEIPConnectionInfo*)info; + ICEIPConnectionInfo* ipinfo = getIPConnectionInfo(info); [ctx setObject:ipinfo.localAddress forKey:@"localAddress"]; [ctx setObject:[NSString stringWithFormat:@"%d", ipinfo.localPort] forKey:@"localPort"]; [ctx setObject:ipinfo.remoteAddress forKey:@"remoteAddress"]; @@ -67,14 +92,6 @@ } } - if([info isKindOfClass:[ICESSLWSSConnectionInfo class]]) - { - ICESSLWSSConnectionInfo* wssinfo = (ICESSLWSSConnectionInfo*)info; - for(NSString* key in wssinfo.headers) - { - [ctx setObject:[wssinfo.headers objectForKey:key] forKey:[NSString stringWithFormat:@"ws.%@", key]]; - } - } return ctx; } @end diff --git a/objective-c/test/Ice/info/run.py b/objective-c/test/Ice/info/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/info/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/inheritance/.gitignore b/objective-c/test/Ice/inheritance/.gitignore deleted file mode 100644 index 400a2a0d5c4..00000000000 --- a/objective-c/test/Ice/inheritance/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -InheritanceTest.m -InheritanceTest.h diff --git a/objective-c/test/Ice/inheritance/Client.m b/objective-c/test/Ice/inheritance/Client.m index 5de6232ee85..bdc97fdd1a1 100644 --- a/objective-c/test/Ice/inheritance/Client.m +++ b/objective-c/test/Ice/inheritance/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -37,7 +44,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestInheritance", @"::Test", nil]; #endif @@ -56,15 +63,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/inheritance/Collocated.m b/objective-c/test/Ice/inheritance/Collocated.m index 553f34dfec0..e2805b4168c 100644 --- a/objective-c/test/Ice/inheritance/Collocated.m +++ b/objective-c/test/Ice/inheritance/Collocated.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = ICE_AUTORELEASE([[TestInheritanceInitialI alloc] initWithAdapter:adapter]); - [adapter add:object identity:[communicator stringToIdentity:@"initial"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"initial"]]; id<TestInheritanceInitialPrx> inheritanceAllTests(id<ICECommunicator>); inheritanceAllTests(communicator); @@ -26,12 +26,19 @@ run(id<ICECommunicator> communicator) } #if TARGET_OS_IPHONE -# define main inheritanceServer +# define main inheritanceCollocated #endif int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -42,7 +49,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestInheritance", @"::Test", nil]; #endif @@ -57,15 +64,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/inheritance/InheritanceTest.ice b/objective-c/test/Ice/inheritance/InheritanceTest.ice index e2054e662d4..9d0b5aa2743 100644 --- a/objective-c/test/Ice/inheritance/InheritanceTest.ice +++ b/objective-c/test/Ice/inheritance/InheritanceTest.ice @@ -9,6 +9,8 @@ #pragma once +[["suppress-warning:deprecated"]] // For classes with operations + ["objc:prefix:TestInheritance"] module Test { diff --git a/objective-c/test/Ice/inheritance/Makefile b/objective-c/test/Ice/inheritance/Makefile deleted file mode 100644 index 63d6dc3831c..00000000000 --- a/objective-c/test/Ice/inheritance/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = InheritanceTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/inheritance/Server.m b/objective-c/test/Ice/inheritance/Server.m index 1d58af52d5e..ddbf8e5b00f 100644 --- a/objective-c/test/Ice/inheritance/Server.m +++ b/objective-c/test/Ice/inheritance/Server.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = ICE_AUTORELEASE([[TestInheritanceInitialI alloc] initWithAdapter:adapter]); - [adapter add:object identity:[communicator stringToIdentity:@"initial"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"initial"]]; [adapter activate]; serverReady(communicator); @@ -33,6 +33,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -43,7 +50,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestInheritance", @"::Test", nil]; #endif @@ -58,15 +65,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/inheritance/run.py b/objective-c/test/Ice/inheritance/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/inheritance/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/interceptor/.gitignore b/objective-c/test/Ice/interceptor/.gitignore deleted file mode 100644 index a7aee74ccef..00000000000 --- a/objective-c/test/Ice/interceptor/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -.depend -InterceptorTest.m -InterceptorTest.h diff --git a/objective-c/test/Ice/interceptor/Client.m b/objective-c/test/Ice/interceptor/Client.m index 7d8e4da7be1..7361590fce7 100644 --- a/objective-c/test/Ice/interceptor/Client.m +++ b/objective-c/test/Ice/interceptor/Client.m @@ -110,6 +110,13 @@ interceptorServer(int argc, char* argv[]) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -121,7 +128,7 @@ main(int argc, char* argv[]) initData.properties = defaultClientProperties(&argc, argv); [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestInterceptor", @"::Test", nil]; #endif @@ -140,17 +147,8 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; } - diff --git a/objective-c/test/Ice/interceptor/InterceptorI.m b/objective-c/test/Ice/interceptor/InterceptorI.m index 5403c765a98..5d3940211e5 100644 --- a/objective-c/test/Ice/interceptor/InterceptorI.m +++ b/objective-c/test/Ice/interceptor/InterceptorI.m @@ -33,12 +33,13 @@ } #endif --(BOOL) dispatch:(id<ICERequest>) request +-(void) dispatch:(id<ICERequest>) request { ICECurrent* current = [request getCurrent]; ICE_RELEASE(lastOperation); lastOperation = ICE_RETAIN(current.operation); + lastStatus = NO; if([lastOperation isEqualToString:@"addWithRetry"]) { @@ -66,8 +67,8 @@ [servant ice_dispatch:request]; } - lastStatus = [servant ice_dispatch:request]; - return lastStatus; + [servant ice_dispatch:request]; + lastStatus = YES; } -(BOOL) getLastStatus diff --git a/objective-c/test/Ice/interceptor/Makefile b/objective-c/test/Ice/interceptor/Makefile deleted file mode 100644 index 8bb2459d7eb..00000000000 --- a/objective-c/test/Ice/interceptor/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client - -TARGETS = $(CLIENT) - -SLICE_OBJS = InterceptorTest.o - -COBJS = Client.o \ - InterceptorI.o \ - MyObjectI.o \ - -OBJS = $(COBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/interceptor/Makefile.mk b/objective-c/test/Ice/interceptor/Makefile.mk new file mode 100644 index 00000000000..7e0aafceeeb --- /dev/null +++ b/objective-c/test/Ice/interceptor/Makefile.mk @@ -0,0 +1,12 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_client_sources = InterceptorTest.ice Client.m InterceptorI.m MyObjectI.m + +tests += $(test) diff --git a/objective-c/test/Ice/interceptor/run.py b/objective-c/test/Ice/interceptor/run.py deleted file mode 100755 index 7c2b5c60149..00000000000 --- a/objective-c/test/Ice/interceptor/run.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -client = os.path.join(os.getcwd(), "client") - -TestUtil.simpleTest(client, " --Ice.Warn.Dispatch=0") diff --git a/objective-c/test/Ice/invoke/.gitignore b/objective-c/test/Ice/invoke/.gitignore deleted file mode 100644 index 76608e6287a..00000000000 --- a/objective-c/test/Ice/invoke/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -InvokeTest.m -InvokeTest.h diff --git a/objective-c/test/Ice/invoke/AllTests.m b/objective-c/test/Ice/invoke/AllTests.m index 1522f0bfa1d..7a499176840 100644 --- a/objective-c/test/Ice/invoke/AllTests.m +++ b/objective-c/test/Ice/invoke/AllTests.m @@ -166,10 +166,12 @@ invokeAllTests(id<ICECommunicator> communicator) } } + for(int i = 0; i < 2; ++i) { NSData* inEncaps = [NSData data]; NSMutableData* outEncaps; - if([cl ice_invoke:@"opException" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]) + ICEContext* ctx = i == 0 ? nil : @{ @"raise": @"" }; + if([cl ice_invoke:@"opException" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps context:ctx]) { test(NO); } diff --git a/objective-c/test/Ice/invoke/BlobjectI.m b/objective-c/test/Ice/invoke/BlobjectI.m index dcd02230661..fb9e424c464 100644 --- a/objective-c/test/Ice/invoke/BlobjectI.m +++ b/objective-c/test/Ice/invoke/BlobjectI.m @@ -34,6 +34,10 @@ } else if([current.operation isEqualToString:@"opException"]) { + if([current.ctx objectForKey:@"raise"] != nil) + { + @throw [TestInvokeMyException myException]; + } TestInvokeMyException* ex = [TestInvokeMyException myException]; [outS writeException:ex]; [outS endEncapsulation]; diff --git a/objective-c/test/Ice/invoke/Client.m b/objective-c/test/Ice/invoke/Client.m index 30866b5d999..f676c9e2887 100644 --- a/objective-c/test/Ice/invoke/Client.m +++ b/objective-c/test/Ice/invoke/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -37,7 +44,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestInvoke", @"::Test", nil]; #endif @@ -56,15 +63,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/invoke/InvokeTest.ice b/objective-c/test/Ice/invoke/InvokeTest.ice index 1b4f8100f57..30f8216ef06 100644 --- a/objective-c/test/Ice/invoke/InvokeTest.ice +++ b/objective-c/test/Ice/invoke/InvokeTest.ice @@ -17,7 +17,7 @@ exception MyException { }; -class MyClass +interface MyClass { void opOneway(); diff --git a/objective-c/test/Ice/invoke/Makefile b/objective-c/test/Ice/invoke/Makefile deleted file mode 100644 index e0ac334d3a1..00000000000 --- a/objective-c/test/Ice/invoke/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = InvokeTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = BlobjectI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/invoke/Makefile.mk b/objective-c/test/Ice/invoke/Makefile.mk new file mode 100644 index 00000000000..502474e4345 --- /dev/null +++ b/objective-c/test/Ice/invoke/Makefile.mk @@ -0,0 +1,12 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_server_sources = InvokeTest.ice Server.m BlobjectI.m + +tests += $(test) diff --git a/objective-c/test/Ice/invoke/Server.m b/objective-c/test/Ice/invoke/Server.m index 67cefe71d79..82f4ad67710 100644 --- a/objective-c/test/Ice/invoke/Server.m +++ b/objective-c/test/Ice/invoke/Server.m @@ -32,6 +32,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -41,7 +48,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestInvoke", @"::Test", nil]; #endif @@ -56,15 +63,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/invoke/run.py b/objective-c/test/Ice/invoke/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/invoke/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/location/.gitignore b/objective-c/test/Ice/location/.gitignore deleted file mode 100644 index cd321e6c61d..00000000000 --- a/objective-c/test/Ice/location/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -LocationTest.m -LocationTest.h diff --git a/objective-c/test/Ice/location/AllTests.m b/objective-c/test/Ice/location/AllTests.m index c86a1ee8e36..064f1135a57 100644 --- a/objective-c/test/Ice/location/AllTests.m +++ b/objective-c/test/Ice/location/AllTests.m @@ -463,7 +463,7 @@ locationAllTests(id<ICECommunicator> communicator, NSString* ref) // @try // { // id<TestLocationHelloPrx> helloPrx = [TestLocationHelloPrx checkedCast:[communicator stringToProxy: -// [communicator identityToString:ident]]]; +// [ICEUtil identityToString:ident]]]; // [helloPrx ice_getConnection]; // test(NO); // } diff --git a/objective-c/test/Ice/location/Client.m b/objective-c/test/Ice/location/Client.m index 12ff9c17833..fc3c6d2fbd3 100644 --- a/objective-c/test/Ice/location/Client.m +++ b/objective-c/test/Ice/location/Client.m @@ -26,6 +26,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -37,7 +44,7 @@ main(int argc, char* argv[]) initData.properties = defaultClientProperties(&argc, argv); [initData.properties setProperty:@"Ice.Default.Locator" value:@"locator:default -p 12010"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestLocation", @"::Test", nil]; #endif @@ -57,15 +64,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/location/Makefile b/objective-c/test/Ice/location/Makefile deleted file mode 100644 index f85f0482bf3..00000000000 --- a/objective-c/test/Ice/location/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = LocationTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - ServerLocator.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/location/Makefile.mk b/objective-c/test/Ice/location/Makefile.mk new file mode 100644 index 00000000000..a766e8710c9 --- /dev/null +++ b/objective-c/test/Ice/location/Makefile.mk @@ -0,0 +1,12 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_server_sources = LocationTest.ice ServerLocator.m Server.m TestI.m + +tests += $(test) diff --git a/objective-c/test/Ice/location/Server.m b/objective-c/test/Ice/location/Server.m index 75ac488ac07..c53599a4ee5 100644 --- a/objective-c/test/Ice/location/Server.m +++ b/objective-c/test/Ice/location/Server.m @@ -33,15 +33,15 @@ run(id<ICECommunicator> communicator, ICEInitializationData* initData) ServerLocatorRegistry* registry = ICE_AUTORELEASE([[ServerLocatorRegistry alloc] init]); ServerManagerI* serverManager = ICE_AUTORELEASE([[ServerManagerI alloc] init:registry initData:initData]); - [registry addObject:[adapter createProxy:[communicator stringToIdentity:@"ServerManager"]]]; - [adapter add:serverManager identity:[communicator stringToIdentity:@"ServerManager"]]; + [registry addObject:[adapter createProxy:[ICEUtil stringToIdentity:@"ServerManager"]]]; + [adapter add:serverManager identity:[ICEUtil stringToIdentity:@"ServerManager"]]; id<ICELocatorRegistryPrx> registryPrx = [ICELocatorRegistryPrx uncheckedCast:[adapter add:registry - identity:[communicator stringToIdentity:@"registry"]]]; + identity:[ICEUtil stringToIdentity:@"registry"]]]; ServerLocator* locator = ICE_AUTORELEASE([[ServerLocator alloc] init:registry proxy:registryPrx]); - [adapter add:locator identity:[communicator stringToIdentity:@"locator"]]; + [adapter add:locator identity:[ICEUtil stringToIdentity:@"locator"]]; [adapter activate]; @@ -60,6 +60,13 @@ run(id<ICECommunicator> communicator, ICEInitializationData* initData) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -69,7 +76,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestLocation", @"::Test", nil]; #endif @@ -84,15 +91,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/location/TestI.m b/objective-c/test/Ice/location/TestI.m index 97f35a75805..5318af11eed 100644 --- a/objective-c/test/Ice/location/TestI.m +++ b/objective-c/test/Ice/location/TestI.m @@ -70,9 +70,9 @@ [adapter2 setLocator:[ICELocatorPrx uncheckedCast:locator]]; ICEObject* object = ICE_AUTORELEASE([[TestLocationI alloc] init:adapter adapter2:adapter2 registry:registry_]); - [registry_ addObject:[adapter add:object identity:[serverCommunicator stringToIdentity:@"test"]]]; - [registry_ addObject:[adapter add:object identity:[serverCommunicator stringToIdentity:@"test2"]]]; - [adapter add:object identity:[serverCommunicator stringToIdentity:@"test3"]]; + [registry_ addObject:[adapter add:object identity:[ICEUtil stringToIdentity:@"test"]]]; + [registry_ addObject:[adapter add:object identity:[ICEUtil stringToIdentity:@"test2"]]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"test3"]]; [adapter activate]; [adapter2 activate]; @@ -111,7 +111,7 @@ adapter1_ = ICE_RETAIN(adapter); adapter2_ = ICE_RETAIN(adapter2); registry_ = registry; - [registry_ addObject:[adapter1_ add:[HelloI hello] identity:[[adapter1_ getCommunicator] stringToIdentity:@"hello"]]]; + [registry_ addObject:[adapter1_ add:[HelloI hello] identity:[ICEUtil stringToIdentity:@"hello"]]]; return self; } @@ -131,18 +131,17 @@ -(id<TestLocationHelloPrx>) getHello:(ICECurrent*)current { - return [TestLocationHelloPrx uncheckedCast:[adapter1_ createIndirectProxy:[[adapter1_ getCommunicator] - stringToIdentity:@"hello"]]]; + return [TestLocationHelloPrx uncheckedCast:[adapter1_ createIndirectProxy:[ICEUtil stringToIdentity:@"hello"]]]; } -(id<TestLocationHelloPrx>) getReplicatedHello:(ICECurrent*)current { - return [TestLocationHelloPrx uncheckedCast:[adapter1_ createProxy:[[adapter1_ getCommunicator] stringToIdentity:@"hello"]]]; + return [TestLocationHelloPrx uncheckedCast:[adapter1_ createProxy:[ICEUtil stringToIdentity:@"hello"]]]; } -(void) migrateHello:(ICECurrent*)current { - ICEIdentity* ident = [[adapter1_ getCommunicator] stringToIdentity:@"hello"]; + ICEIdentity* ident = [ICEUtil stringToIdentity:@"hello"]; @try { [registry_ addObject:[adapter2_ add:[adapter1_ remove:ident] identity:ident]]; diff --git a/objective-c/test/Ice/location/run.py b/objective-c/test/Ice/location/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/location/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/metrics/.gitignore b/objective-c/test/Ice/metrics/.gitignore deleted file mode 100644 index 919d41acc0f..00000000000 --- a/objective-c/test/Ice/metrics/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -MetricsTest.m -MetricsTest.h diff --git a/objective-c/test/Ice/metrics/AllTests.m b/objective-c/test/Ice/metrics/AllTests.m index 74e7a7fae98..687918e441c 100644 --- a/objective-c/test/Ice/metrics/AllTests.m +++ b/objective-c/test/Ice/metrics/AllTests.m @@ -2,8 +2,8 @@ // // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. // -// This copy of Ice Touch is licensed to you under the terms described in the -// ICE_TOUCH_LICENSE file included in this distribution. +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. // // ********************************************************************** @@ -44,7 +44,7 @@ NSCondition* cond; { [cond wait]; } - // Ensure that the previous updates were committed, the setProperties call returns before + // Ensure that the previous updates were committed, the setProperties call returns before // notifying the callbacks so to ensure all the update callbacks have be notified we call // a second time, this will block until all the notifications from the first update have // completed. @@ -185,7 +185,7 @@ NSCondition* cond; { if([proxy ice_getCachedConnection]) { - [[proxy ice_getCachedConnection] close:NO]; + [[proxy ice_getCachedConnection] close:ICEConnectionCloseGracefullyWithWait]; } @try { @@ -196,7 +196,7 @@ NSCondition* cond; } if([proxy ice_getCachedConnection]) { - [[proxy ice_getCachedConnection] close:NO]; + [[proxy ice_getCachedConnection] close:ICEConnectionCloseGracefullyWithWait]; } } @end @@ -309,13 +309,13 @@ getServerProps(id<ICEPropertiesAdminPrx> p, ICEMutablePropertyDict* orig, NSStri { map = [map stringByAppendingFormat:@"Map.%@.", m]; } - [props setObject:@"Ice\\.Admin|Controller" + [props setObject:@"Ice\\.Admin|Controller" forKey:[NSString stringWithFormat:@"IceMX.Metrics.View.%@Reject.parent", map]]; - [props setObject:@"12010" + [props setObject:@"12010" forKey:[NSString stringWithFormat:@"IceMX.Metrics.View.%@Accept.endpointPort", map]]; - [props setObject:@".*/admin|controller" + [props setObject:@".*/admin|controller" forKey:[NSString stringWithFormat:@"IceMX.Metrics.View.%@Reject.identity", map]]; return props; } @@ -342,9 +342,9 @@ getServerConnectionMetrics(ICEMXMetricsAdminPrx* metrics, ICELong expected) } void -updateProps(id<ICEPropertiesAdminPrx> cprops, - id<ICEPropertiesAdminPrx> sprops, - UpdateCallbackI* callback, +updateProps(id<ICEPropertiesAdminPrx> cprops, + id<ICEPropertiesAdminPrx> sprops, + UpdateCallbackI* callback, ICEMutablePropertyDict* props, NSString* map) { @@ -354,10 +354,10 @@ updateProps(id<ICEPropertiesAdminPrx> cprops, } void -testAttribute(ICEMXMetricsAdminPrx* metrics, - ICEPropertiesAdminPrx* props, +testAttribute(ICEMXMetricsAdminPrx* metrics, + ICEPropertiesAdminPrx* props, UpdateCallbackI* update, - NSString* map, + NSString* map, NSString* attr, NSString* value, id func) @@ -458,8 +458,14 @@ toMap(ICEMXMetricsMap* mmap) id<TestMetricsMetricsPrx> metricsAllTests(id<ICECommunicator> communicator) { + NSString* host = [[communicator getProperties] getPropertyWithDefault:@"Ice.Default.Host" value:@"127.0.0.1"]; + NSString* port = @"12010"; + NSString* hostAndPort = [NSString stringWithFormat:@"%@:%@", host, port]; + NSString* protocol = [[communicator getProperties] getPropertyWithDefault:@"Ice.Default.Protocol" value:@"default"]; + NSString* endpoint = [NSString stringWithFormat:@"%@ -h %@ -p %@", protocol, host, port]; + id<TestMetricsMetricsPrx> metrics = [TestMetricsMetricsPrx checkedCast: - [communicator stringToProxy:@"metrics:default -p 12010"]]; + [communicator stringToProxy:[NSString stringWithFormat:@"metrics:%@", endpoint]]]; tprintf("testing metrics admin facet checkedCast... "); id<ICEObjectPrx> admin = [communicator getAdmin]; @@ -474,7 +480,7 @@ metricsAllTests(id<ICECommunicator> communicator) test(serverProps && serverMetrics); UpdateCallbackI* update = ICE_AUTORELEASE([[UpdateCallbackI alloc] initWithServerProps:serverProps]); - id<ICENativePropertiesAdmin> nativePropertiesAdmin = + id<ICENativePropertiesAdmin> nativePropertiesAdmin = (id<ICENativePropertiesAdmin>)[communicator findAdminFacet:@"Properties"]; [nativePropertiesAdmin addUpdateCallback:update]; tprintf("ok\n"); @@ -501,6 +507,10 @@ metricsAllTests(id<ICECommunicator> communicator) tprintf("ok\n"); + id<ICEEndpointInfo> endpointInfo = [[[metrics ice_getConnection] getEndpoint] getInfo]; + NSString* type = [NSString stringWithFormat:@"%d", [endpointInfo type]]; + NSString* isSecure = [endpointInfo secure] ? @"true": @"false"; + tprintf("testing connection metrics... "); [props setObject:@"none" forKey:@"IceMX.Metrics.View.Map.Connection.GroupBy"]; @@ -551,7 +561,7 @@ metricsAllTests(id<ICECommunicator> communicator) [bs setLength:456]; [metrics opByteS:bs]; - + cm2 = (ICEMXConnectionMetrics*) [[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"Connection"] objectAtIndex:0]; sm2 = getServerConnectionMetrics(serverMetrics, sm1.sentBytes + replySz); @@ -581,14 +591,14 @@ metricsAllTests(id<ICECommunicator> communicator) [props setObject:@"state" forKey:@"IceMX.Metrics.View.Map.Connection.GroupBy"]; updateProps(clientProps, serverProps, update, props, @"Connection"); - NSMutableDictionary* map = + NSMutableDictionary* map = toMap([[serverMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"Connection"]); test([[map objectForKey:@"active"] current] == 1); - TestMetricsControllerPrx* controller = + TestMetricsControllerPrx* controller = [TestMetricsControllerPrx checkedCast:[communicator stringToProxy:@"controller:default -p 12011"]]; - + [controller hold]; map = toMap([[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"Connection"]); @@ -596,7 +606,7 @@ metricsAllTests(id<ICECommunicator> communicator) map = toMap([[serverMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"Connection"]); test([[map objectForKey:@"holding"] current] == 1); - [[metrics ice_getConnection] close:false]; + [[metrics ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; map = toMap([[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"Connection"]); test([[map objectForKey:@"closing"] current] == 1); @@ -611,7 +621,7 @@ metricsAllTests(id<ICECommunicator> communicator) [props setObject:@"none" forKey:@"IceMX.Metrics.View.Map.Connection.GroupBy"]; updateProps(clientProps, serverProps, update, props, @"Connection"); - [[metrics ice_getConnection] close:false]; + [[metrics ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; [[metrics ice_timeout:500] ice_ping]; [controller hold]; @@ -640,37 +650,37 @@ metricsAllTests(id<ICECommunicator> communicator) test(cm1.failures == 2 && sm1.failures >= 1); - checkFailure(clientMetrics, @"Connection", cm1.id_, @"Ice::TimeoutException", 1); - checkFailure(clientMetrics, @"Connection", cm1.id_, @"Ice::ConnectTimeoutException", 1); - checkFailure(serverMetrics, @"Connection", sm1.id_, @"Ice::ConnectionLostException", 0); + checkFailure(clientMetrics, @"Connection", cm1.id_, @"::Ice::TimeoutException", 1); + checkFailure(clientMetrics, @"Connection", cm1.id_, @"::Ice::ConnectTimeoutException", 1); + checkFailure(serverMetrics, @"Connection", sm1.id_, @"::Ice::ConnectionLostException", 0); ICEMXMetricsPrx* m = [[metrics ice_timeout:500] ice_connectionId:@"Con1"]; [m ice_ping]; testAttribute(clientMetrics, clientProps, update, @"Connection", @"parent", @"Communicator", nil); //testAttribute(clientMetrics, clientProps, update, "Connection", "id", ""); - testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpoint", @"tcp -h 127.0.0.1 -p 12010 -t 500", - nil); + testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpoint", + [NSString stringWithFormat:@"%@ -t 500", endpoint], nil); - testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointType", @"1", nil); + testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointType", type, nil); testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointIsDatagram", @"false", nil); - testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointIsSecure", @"false", nil); + testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointIsSecure", isSecure, nil); testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointTimeout", @"500", nil); testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointCompress", @"false", nil); - testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointHost", @"127.0.0.1", nil); - testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointPort", @"12010", nil); + testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointHost", host, nil); + testAttribute(clientMetrics, clientProps, update, @"Connection", @"endpointPort", port, nil); testAttribute(clientMetrics, clientProps, update, @"Connection", @"incoming", @"false", nil); testAttribute(clientMetrics, clientProps, update, @"Connection", @"adapterName", @"", nil); testAttribute(clientMetrics, clientProps, update, @"Connection", @"connectionId", @"Con1", nil); - testAttribute(clientMetrics, clientProps, update, @"Connection", @"localHost", @"127.0.0.1", nil); + testAttribute(clientMetrics, clientProps, update, @"Connection", @"localHost", host, nil); //testAttribute(clientMetrics, clientProps, update, "Connection", "localPort", ""); - testAttribute(clientMetrics, clientProps, update, @"Connection", @"remoteHost", @"127.0.0.1", nil); - testAttribute(clientMetrics, clientProps, update, @"Connection", @"remotePort", @"12010", nil); + testAttribute(clientMetrics, clientProps, update, @"Connection", @"remoteHost", host, nil); + testAttribute(clientMetrics, clientProps, update, @"Connection", @"remotePort", port, nil); testAttribute(clientMetrics, clientProps, update, @"Connection", @"mcastHost", @"", nil); testAttribute(clientMetrics, clientProps, update, @"Connection", @"mcastPort", @"", nil); - - [[m ice_getConnection] close:false]; + + [[m ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; waitForCurrent(clientMetrics, @"View", @"Connection", 0); waitForCurrent(serverMetrics, @"View", @"Connection", 0); @@ -681,23 +691,23 @@ metricsAllTests(id<ICECommunicator> communicator) [props setObject:@"id" forKey:@"IceMX.Metrics.View.Map.ConnectionEstablishment.GroupBy"]; updateProps(clientProps, serverProps, update, props, @"ConnectionEstablishment"); - test([[[clientMetrics getMetricsView:@"View" timestamp:×tamp] + test([[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"ConnectionEstablishment"] count] == 0); [metrics ice_ping]; - + test([[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"ConnectionEstablishment"] count] == 1); - ICEMXMetrics* m1 = [[[clientMetrics getMetricsView:@"View" timestamp:×tamp] + ICEMXMetrics* m1 = [[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"ConnectionEstablishment"] objectAtIndex:0]; - test(m1.current == 0 && m1.total == 1 && [m1.id_ isEqualToString:@"127.0.0.1:12010"]); + test(m1.current == 0 && m1.total == 1 && [m1.id_ isEqualToString:hostAndPort]); - [[metrics ice_getConnection] close:NO]; + [[metrics ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; [controller hold]; @try { - [[[communicator stringToProxy:@"test:tcp -p 12010 -h 127.0.0.1"] ice_timeout:10] ice_ping]; + [[[communicator stringToProxy:[NSString stringWithFormat:@"test:%@", endpoint]] ice_timeout:10] ice_ping]; test(NO); } @catch(ICEConnectTimeoutException*) @@ -710,51 +720,54 @@ metricsAllTests(id<ICECommunicator> communicator) [controller resume]; test([[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"ConnectionEstablishment"] count] == 1); - m1 = [[[clientMetrics getMetricsView:@"View" timestamp:×tamp] + m1 = [[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"ConnectionEstablishment"] objectAtIndex:0]; - test([m1.id_ isEqualToString:@"127.0.0.1:12010"] && m1.total == 3 && m1.failures == 2); + test([m1.id_ isEqualToString:hostAndPort] && m1.total == 3 && m1.failures == 2); - checkFailure(clientMetrics, @"ConnectionEstablishment", m1.id_, @"Ice::ConnectTimeoutException", 2); + checkFailure(clientMetrics, @"ConnectionEstablishment", m1.id_, @"::Ice::ConnectTimeoutException", 2); Connect* c = [Connect connect:metrics]; testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"parent", @"Communicator", c); - testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"id", @"127.0.0.1:12010", c); - testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpoint", - @"tcp -h 127.0.0.1 -p 12010 -t 60000", c); + testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"id", hostAndPort, c); + testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpoint", + [NSString stringWithFormat:@"%@ -t 60000", endpoint], c); - testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointType", @"1", c); + testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointType", type, c); testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointIsDatagram", @"false", c); - testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointIsSecure", @"false", c); + testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointIsSecure", isSecure, c); testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointTimeout", @"60000", c); testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointCompress", @"false", c); - testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointHost", @"127.0.0.1", c); - testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointPort", @"12010", c); + testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointHost", host, c); + testAttribute(clientMetrics, clientProps, update, @"ConnectionEstablishment", @"endpointPort", port, c); tprintf("ok\n"); - - // - // Ice doesn't do any endpoint lookup with WinRT, the WinRT - // runtime takes care of if. + // // In iOS we use CFStream transports that doesn't do any enpoint // lookup. // -#if !defined(ICE_OS_WINRT) && (!defined(__APPLE__) || (defined(__APPLE__) && !TARGET_OS_IPHONE)) +#if (!defined(__APPLE__) || (defined(__APPLE__) && !TARGET_OS_IPHONE)) tprintf("testing endpoint lookup metrics... "); [props setObject:@"id" forKey:@"IceMX.Metrics.View.Map.EndpointLookup.GroupBy"]; updateProps(clientProps, serverProps, update, props, @"EndpointLookup"); test([[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"EndpointLookup"] count] == 0); - ICEObjectPrx* prx = [communicator stringToProxy:@"metrics:default -p 12010 -h localhost -t infinite"]; - [prx ice_ping]; + ICEObjectPrx* prx = [communicator stringToProxy:@"metrics:default -p 12010 -h localhost -t 500"]; + @try + { + [prx ice_ping]; + [[prx ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; + } + @catch(ICELocalException*) + { + } + test([[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"EndpointLookup"] count] == 1); m1 = [[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"EndpointLookup"] objectAtIndex:0]; - test(m1.current <= 1 && m1.total == 1 && [m1.id_ isEqualToString:@"tcp -h localhost -p 12010 -t infinite"]); - - [[prx ice_getConnection] close:NO]; +// test(m1.current <= 1 && m1.total == 1 && [m1.id_ isEqualToString:@"tcp -h localhost -p 12010 -t infinite"]); BOOL dnsException = NO; @try @@ -772,27 +785,27 @@ metricsAllTests(id<ICECommunicator> communicator) } test([[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"EndpointLookup"] count] == 2); m1 = [[[clientMetrics getMetricsView:@"View" timestamp:×tamp] objectForKey:@"EndpointLookup"] objectAtIndex:1]; - test([m1.id_ isEqualToString:@"tcp -h unknownfoo.zeroc.com -p 12010 -t 500"] && m1.total == 2 && + test([m1.id_ isEqualToString:@"tcp -h unknownfoo.zeroc.com -p 12010 -t 500"] && m1.total == 2 && (!dnsException || m1.failures == 2)); if(dnsException) { - checkFailure(clientMetrics, @"EndpointLookup", m1.id_, @"Ice::DNSException", 2); + checkFailure(clientMetrics, @"EndpointLookup", m1.id_, @"::Ice::DNSException", 2); } c = [Connect connect:prx]; testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"parent", @"Communicator", c); - testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"id", - @"tcp -h localhost -p 12010 -t infinite", c); - testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpoint", - @"tcp -h localhost -p 12010 -t infinite", c); + testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"id", + [[[prx ice_getConnection] getEndpoint] toString], c); + testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpoint", + [[[prx ice_getConnection] getEndpoint] toString], c); - testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointType", @"1", c); + testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointType", type, c); testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointIsDatagram", @"false", c); - testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointIsSecure", @"false", c); - testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointTimeout", @"-1", c); + testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointIsSecure", isSecure, c); + testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointTimeout", @"500", c); testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointCompress", @"false", c); testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointHost", @"localhost", c); - testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointPort", @"12010", c); + testAttribute(clientMetrics, clientProps, update, @"EndpointLookup", @"endpointPort", port, c); tprintf("ok\n"); #endif @@ -858,40 +871,40 @@ metricsAllTests(id<ICECommunicator> communicator) dm1 = (ICEMXDispatchMetrics*)[map objectForKey:@"opWithLocalException"]; test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0); - checkFailure(serverMetrics, @"Dispatch", dm1.id_, @"Ice::SyscallException", 1); + checkFailure(serverMetrics, @"Dispatch", dm1.id_, @"::Ice::SyscallException", 1); test(dm1.size == 39 && dm1.replySize > 7); // Reply contains the exception stack depending on the OS. dm1 = (ICEMXDispatchMetrics*)[map objectForKey:@"opWithRequestFailedException"]; test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0); - checkFailure(serverMetrics, @"Dispatch", dm1.id_, @"Ice::ObjectNotExistException", 1); + checkFailure(serverMetrics, @"Dispatch", dm1.id_, @"::Ice::ObjectNotExistException", 1); test(dm1.size == 47 && dm1.replySize == 40); dm1 = (ICEMXDispatchMetrics*)[map objectForKey:@"opWithUnknownException"]; test(dm1.current <= 1 && dm1.total == 1 && dm1.failures == 1 && dm1.userException == 0); - checkFailure(serverMetrics, @"Dispatch", dm1.id_, @"IceObjC::Exception", 1); + checkFailure(serverMetrics, @"Dispatch", dm1.id_, @"::IceObjC::Exception", 1); test(dm1.size == 41 && dm1.replySize > 7); // Reply contains the exception stack depending on the OS. InvokeOp* op = [InvokeOp invokeOp:metrics]; testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"parent", @"TestAdapter", op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"id", @"metrics [op]", op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpoint", - @"tcp -h 127.0.0.1 -p 12010 -t 60000", op); + [NSString stringWithFormat:@"%@ -t 60000", endpoint], op); //testAttribute(serverMetrics, serverProps, update, "Dispatch", "connection", "", op); - testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointType", @"1", op); + testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointType", type, op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointIsDatagram", @"false", op); - testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointIsSecure", @"false", op); + testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointIsSecure", isSecure, op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointTimeout", @"60000", op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointCompress", @"false", op); - testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointHost", @"127.0.0.1", op); - testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointPort", @"12010", op); + testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointHost", host, op); + testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"endpointPort", port, op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"incoming", @"true", op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"adapterName", @"TestAdapter", op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"connectionId", @"", op); - testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"localHost", @"127.0.0.1", op); - testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"localPort", @"12010", op); - testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"remoteHost", @"127.0.0.1", op); + testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"localHost", host, op); + testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"localPort", port, op); + testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"remoteHost", host, op); //testAttribute(serverMetrics, serverProps, update, "Dispatch", "remotePort", "12010", op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"mcastHost", @"", op); testAttribute(serverMetrics, serverProps, update, @"Dispatch", @"mcastPort", @"", op); @@ -1041,7 +1054,7 @@ metricsAllTests(id<ICECommunicator> communicator) rim1 = (ICEMXRemoteMetrics*)[im1.remotes objectAtIndex:0]; test(rim1.current == 0 && rim1.total == 3 && rim1.failures == 0); test(rim1.size == 63 && rim1.replySize == 21); - + im1 = (ICEMXInvocationMetrics*)[map objectForKey:@"opWithUserException"]; test(im1.current <= 1 && im1.total == 3 && im1.failures == 0 && im1.retry == 0 && [im1.remotes count] == 1); rim1 = (ICEMXRemoteMetrics*)[im1.remotes objectAtIndex:0]; @@ -1054,49 +1067,49 @@ metricsAllTests(id<ICECommunicator> communicator) rim1 = (ICEMXRemoteMetrics*)[im1.remotes objectAtIndex:0]; test(rim1.current == 0 && rim1.total == 3 && rim1.failures == 0); test(rim1.size == 117 && rim1.replySize > 7); - checkFailure(clientMetrics, @"Invocation", im1.id_, @"Ice::UnknownLocalException", 3); + checkFailure(clientMetrics, @"Invocation", im1.id_, @"::Ice::UnknownLocalException", 3); im1 = (ICEMXInvocationMetrics*)[map objectForKey:@"opWithRequestFailedException"]; test(im1.current <= 1 && im1.total == 3 && im1.failures == 3 && im1.retry == 0 && [im1.remotes count] == 1); rim1 = (ICEMXRemoteMetrics*)[im1.remotes objectAtIndex:0]; test(rim1.current == 0 && rim1.total == 3 && rim1.failures == 0); test(rim1.size == 141 && rim1.replySize == 120); - checkFailure(clientMetrics, @"Invocation", im1.id_, @"Ice::ObjectNotExistException", 3); + checkFailure(clientMetrics, @"Invocation", im1.id_, @"::Ice::ObjectNotExistException", 3); im1 = (ICEMXInvocationMetrics*)[map objectForKey:@"opWithUnknownException"]; test(im1.current <= 1 && im1.total == 3 && im1.failures == 3 && im1.retry == 0 && [im1.remotes count] == 1); rim1 = (ICEMXRemoteMetrics*)[im1.remotes objectAtIndex:0]; test(rim1.current == 0 && rim1.total == 3 && rim1.failures == 0); - checkFailure(clientMetrics, @"Invocation", im1.id_, @"Ice::UnknownException", 3); + checkFailure(clientMetrics, @"Invocation", im1.id_, @"::Ice::UnknownException", 3); im1 = (ICEMXInvocationMetrics*)[map objectForKey:@"fail"]; test(im1.current <= 1 && im1.total == 3 && im1.failures == 3 && im1.retry == 3 && [im1.remotes count] == 6); - test(((ICEMXMetrics*)[im1.remotes objectAtIndex:0]).current == 0 && - ((ICEMXMetrics*)[im1.remotes objectAtIndex:0]).total == 1 && + test(((ICEMXMetrics*)[im1.remotes objectAtIndex:0]).current == 0 && + ((ICEMXMetrics*)[im1.remotes objectAtIndex:0]).total == 1 && ((ICEMXMetrics*)[im1.remotes objectAtIndex:0]).failures == 1); test(((ICEMXMetrics*)[im1.remotes objectAtIndex:1]).current == 0 && - ((ICEMXMetrics*)[im1.remotes objectAtIndex:1]).total == 1 && + ((ICEMXMetrics*)[im1.remotes objectAtIndex:1]).total == 1 && ((ICEMXMetrics*)[im1.remotes objectAtIndex:1]).failures == 1); - test(((ICEMXMetrics*)[im1.remotes objectAtIndex:2]).current == 0 && - ((ICEMXMetrics*)[im1.remotes objectAtIndex:2]).total == 1 && + test(((ICEMXMetrics*)[im1.remotes objectAtIndex:2]).current == 0 && + ((ICEMXMetrics*)[im1.remotes objectAtIndex:2]).total == 1 && ((ICEMXMetrics*)[im1.remotes objectAtIndex:2]).failures == 1); test(((ICEMXMetrics*)[im1.remotes objectAtIndex:3]).current == 0 && - ((ICEMXMetrics*)[im1.remotes objectAtIndex:3]).total == 1 && + ((ICEMXMetrics*)[im1.remotes objectAtIndex:3]).total == 1 && ((ICEMXMetrics*)[im1.remotes objectAtIndex:3]).failures == 1); - test(((ICEMXMetrics*)[im1.remotes objectAtIndex:4]).current == 0 && + test(((ICEMXMetrics*)[im1.remotes objectAtIndex:4]).current == 0 && ((ICEMXMetrics*)[im1.remotes objectAtIndex:4]).total == 1 && ((ICEMXMetrics*)[im1.remotes objectAtIndex:4]).failures == 1); - test(((ICEMXMetrics*)[im1.remotes objectAtIndex:5]).current == 0 && + test(((ICEMXMetrics*)[im1.remotes objectAtIndex:5]).current == 0 && ((ICEMXMetrics*)[im1.remotes objectAtIndex:5]).total == 1 && ((ICEMXMetrics*)[im1.remotes objectAtIndex:5]).failures == 1); - checkFailure(clientMetrics, @"Invocation", im1.id_, @"Ice::ConnectionLostException", 3); + checkFailure(clientMetrics, @"Invocation", im1.id_, @"::Ice::ConnectionLostException", 3); testAttribute(clientMetrics, clientProps, update, @"Invocation", @"parent", @"Communicator", op); testAttribute(clientMetrics, clientProps, update, @"Invocation", @"id", @"metrics -t -e 1.1 [op]", op); @@ -1106,8 +1119,8 @@ metricsAllTests(id<ICECommunicator> communicator) testAttribute(clientMetrics, clientProps, update, @"Invocation", @"facet", @"", op); testAttribute(clientMetrics, clientProps, update, @"Invocation", @"encoding", @"1.1", op); testAttribute(clientMetrics, clientProps, update, @"Invocation", @"mode", @"twoway", op); - testAttribute(clientMetrics, clientProps, update, @"Invocation", @"proxy", - @"metrics -t -e 1.1:tcp -h 127.0.0.1 -p 12010 -t 60000", op); + testAttribute(clientMetrics, clientProps, update, @"Invocation", @"proxy", + [NSString stringWithFormat:@"metrics -t -e 1.1:%@ -t 60000", endpoint], op); testAttribute(clientMetrics, clientProps, update, @"Invocation", @"context.entry1", @"test", op); testAttribute(clientMetrics, clientProps, update, @"Invocation", @"context.entry2", @"", op); diff --git a/objective-c/test/Ice/metrics/Client.m b/objective-c/test/Ice/metrics/Client.m index ac02bfbf634..c99aa7a97de 100644 --- a/objective-c/test/Ice/metrics/Client.m +++ b/objective-c/test/Ice/metrics/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -47,7 +54,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"IceMX.Metrics.All.GroupBy" value:@"none"]; [initData.properties setProperty:@"Ice.Default.Host" value:@"127.0.0.1"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestMetrics", @"::Test", @"ICEMX", @"::IceMX", nil]; @@ -67,15 +74,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/metrics/Makefile b/objective-c/test/Ice/metrics/Makefile deleted file mode 100644 index a2d15a9b994..00000000000 --- a/objective-c/test/Ice/metrics/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = MetricsTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/metrics/Server.m b/objective-c/test/Ice/metrics/Server.m index 1730fb0f877..fd80b823655 100644 --- a/objective-c/test/Ice/metrics/Server.m +++ b/objective-c/test/Ice/metrics/Server.m @@ -18,14 +18,14 @@ run(id<ICECommunicator> communicator) id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [MetricsI metrics]; - [adapter add:object identity:[communicator stringToIdentity:@"metrics"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"metrics"]]; [adapter activate]; [[communicator getProperties] setProperty:@"ControllerAdapter.Endpoints" value:@"default -p 12011"]; id<ICEObjectAdapter> controllerAdapter = [communicator createObjectAdapter:@"ControllerAdapter"]; ICEObject* controller = ICE_AUTORELEASE([[ControllerI alloc] init:adapter]); - [controllerAdapter add:controller identity:[communicator stringToIdentity:@"controller"]]; + [controllerAdapter add:controller identity:[ICEUtil stringToIdentity:@"controller"]]; [controllerAdapter activate]; serverReady(communicator); @@ -42,6 +42,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -61,7 +68,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"IceMX.Metrics.All.GroupBy" value:@"none"]; [initData.properties setProperty:@"Ice.Default.Host" value:@"127.0.0.1"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestMetrics", @"::Test", @"ICEMX", @"::IceMX", nil]; @@ -77,15 +84,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/metrics/TestI.h b/objective-c/test/Ice/metrics/TestI.h index 11d518fd0ff..005a3f4faad 100644 --- a/objective-c/test/Ice/metrics/TestI.h +++ b/objective-c/test/Ice/metrics/TestI.h @@ -25,7 +25,7 @@ @interface ControllerI : TestMetricsController<TestMetricsController> { @private - id<ICEObjectAdapter> adapter; + id<ICEObjectAdapter> adapter; } -(id) init:(id<ICEObjectAdapter>)adapter_p; -(void) hold:(ICECurrent*)current; diff --git a/objective-c/test/Ice/metrics/TestI.m b/objective-c/test/Ice/metrics/TestI.m index fa887d8c96a..bf7b0c7cdd1 100644 --- a/objective-c/test/Ice/metrics/TestI.m +++ b/objective-c/test/Ice/metrics/TestI.m @@ -24,7 +24,7 @@ -(void) fail:(ICECurrent*)current { - [current.con close:YES]; + [current.con close:ICEConnectionCloseForcefully]; } -(void) opWithUserException:(ICECurrent*)current diff --git a/objective-c/test/Ice/metrics/run.py b/objective-c/test/Ice/metrics/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/metrics/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Ice/objects/.gitignore b/objective-c/test/Ice/objects/.gitignore deleted file mode 100644 index 77d9ac7c381..00000000000 --- a/objective-c/test/Ice/objects/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -ObjectsTest.m -ObjectsTest.h diff --git a/objective-c/test/Ice/objects/AllTests.m b/objective-c/test/Ice/objects/AllTests.m index e0a12a206eb..ae7ded112a1 100644 --- a/objective-c/test/Ice/objects/AllTests.m +++ b/objective-c/test/Ice/objects/AllTests.m @@ -11,6 +11,11 @@ #import <TestCommon.h> #import <ObjectsTest.h> +#if defined(__clang__) +// For 'Ice::Communicator::findObjectFactory()' deprecation +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif + void breakRetainCycleB(); void breakRetainCycleC(); void breakRetainCycleD(); @@ -46,6 +51,16 @@ void breakRetainCycleD(TestObjectsD* d1) breakRetainCycleB(d1.theB); } +@interface TestObjectsAbstractBaseI : TestObjectsAbstractBase<TestObjectsAbstractBase> +-(void) op:(ICECurrent *)current; +@end + +@implementation TestObjectsAbstractBaseI +-(void) op:(ICECurrent *)current; +{ +} +@end + id<TestObjectsInitialPrx> objectsAllTests(id<ICECommunicator> communicator, BOOL collocated) { @@ -82,6 +97,15 @@ objectsAllTests(id<ICECommunicator> communicator, BOOL collocated) test(ba3.str == ba2.str); ba3.theS = nil; + TestObjectsAbstractBase *abp1 = ICE_AUTORELEASE([[TestObjectsAbstractBaseI alloc] init]); + abp1.theS = s; + abp1.str = @"foo"; + TestObjectsAbstractBase *abp2 = ICE_AUTORELEASE([abp1 copy]); + test(abp1 != abp2); + test(abp1.str == abp2.str); + test(abp1.theS == abp2.theS); + abp2.theS = nil; + #if 0 // Can't override assignment operator in Objective-C. *ba1 = *ba2; @@ -131,11 +155,11 @@ objectsAllTests(id<ICECommunicator> communicator, BOOL collocated) test([((TestObjectsB*)b1.theA).theC isKindOfClass:[TestObjectsC class]]); test(((TestObjectsC*)((TestObjectsB*)b1.theA).theC).theB == b1.theA); test(b1.preMarshalInvoked); - test([(id<TestObjectsB>)b1 postUnmarshalInvoked:nil]); + test(b1.postUnmarshalInvoked); test(b1.theA.preMarshalInvoked); - test([(id<TestObjectsA>)b1.theA postUnmarshalInvoked:nil]); + test(b1.theA.postUnmarshalInvoked); test(((TestObjectsB*)b1.theA).theC.preMarshalInvoked); - test([(id<TestObjectsC>)((TestObjectsB*)b1.theA).theC postUnmarshalInvoked:nil]); + test(((TestObjectsB*)b1.theA).theC.postUnmarshalInvoked); // More tests possible for b2 and d, but I think this is already sufficient. test(b2.theA == b2); @@ -176,13 +200,13 @@ objectsAllTests(id<ICECommunicator> communicator, BOOL collocated) // if(!collocated) // { test(d.preMarshalInvoked); - test([(id<TestObjectsD>)d postUnmarshalInvoked:nil]); + test(d.postUnmarshalInvoked); test(d.theA.preMarshalInvoked); - test([(id<TestObjectsA>)d.theA postUnmarshalInvoked:nil]); + test(d.theA.postUnmarshalInvoked); test(d.theB.preMarshalInvoked); - test([(id<TestObjectsA>)d.theB postUnmarshalInvoked:nil]); + test(d.theB.postUnmarshalInvoked); test(d.theB.theC.preMarshalInvoked); - test([(id<TestObjectsC>)d.theB.theC postUnmarshalInvoked:nil]); + test(d.theB.theC.postUnmarshalInvoked); // } breakRetainCycleB(b1); @@ -194,10 +218,13 @@ objectsAllTests(id<ICECommunicator> communicator, BOOL collocated) tprintf("testing protected members... "); TestObjectsE* e = [initial getE]; - test([(id<TestObjectsE>)e checkValues:nil]); + + test(e.i == 1); + test([e.s isEqualToString:@"hello"]); + TestObjectsF* f = [initial getF]; - test([(id<TestObjectsF>)f checkValues:nil]); - test([(id<TestObjectsE>)f.e2 checkValues:nil]); + test(f.e1 && f.e1 == f.e2); + test(f.e1.i == 1 && [e.s isEqualToString:@"hello"]); tprintf("ok\n"); tprintf("getting I, J and H... "); @@ -235,8 +262,15 @@ objectsAllTests(id<ICECommunicator> communicator, BOOL collocated) } tprintf("ok\n"); -// if(!collocated) -// { + tprintf("testing marshaled results..."); + b1 = [initial getMB]; + test(b1 != nil && b1.theB == b1); + b1.theB = nil; + b1 = [initial end_getAMDMB:[initial begin_getAMDMB]]; + test(b1 != nil && b1.theB == b1); + b1.theB = nil; + tprintf("ok\n"); + tprintf("testing UnexpectedObjectException... "); ref = @"uoet:default -p 12010"; base = [communicator stringToProxy:ref]; @@ -510,5 +544,48 @@ objectsAllTests(id<ICECommunicator> communicator, BOOL collocated) tprintf("ok\n"); } + { + tprintf("testing getting ObjectFactory... "); + test([communicator findObjectFactory:@"TestOF"] != nil); + tprintf("ok\n"); + + tprintf("testing getting ObjectFactory as ValueFactory... "); + test([[communicator getValueFactoryManager] find:@"TestOF"] != nil); + tprintf("ok\n"); + } + + @try + { + NSString* ref = @"test:default -p 12010"; + id<TestObjectsTestIntfPrx> p = [TestObjectsTestIntfPrx checkedCast:[communicator stringToProxy:ref]]; + + { + tprintf("testing getting ObjectFactory registration... "); + TestObjectsBase *base = [p opDerived]; + test(base); + test([[base ice_id] isEqualToString:@"::Test::Derived"]); + tprintf("ok\n"); + } + + { + tprintf("testing getting ExceptionFactory registration... "); + @try + { + [p throwDerived]; + test(NO); + } + @catch(TestObjectsBaseEx* ex) + { + test([[ex ice_id] isEqualToString:@"::Test::DerivedEx"]); + } + tprintf("ok\n"); + } + } + @catch(ICEObjectNotExistException*) + { + // cross-test server does not implement this object + } + + return initial; } diff --git a/objective-c/test/Ice/objects/Client.m b/objective-c/test/Ice/objects/Client.m index 019597b53e5..31d1d81c9a8 100644 --- a/objective-c/test/Ice/objects/Client.m +++ b/objective-c/test/Ice/objects/Client.m @@ -15,52 +15,62 @@ # import <Foundation/NSGarbageCollector.h> #endif -@interface ClientMyObjectFactory : NSObject<ICEObjectFactory> -@end - -@implementation ClientMyObjectFactory +#if defined(__clang__) +// For 'Ice::Communicator::addObjectFactory()' deprecation +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif -// Note that the object factory must not autorelease the +// Note that the factory must not autorelease the // returned objects. --(ICEObject*) create:(NSString*)type +static ICEValueFactory factory = ^ICEObject* (NSString* type) { if([type isEqualToString:@"::Test::B"]) { - return [[TestObjectsBI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsBI alloc] init]); } else if([type isEqualToString:@"::Test::C"]) { - return [[TestObjectsCI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsCI alloc] init]); } else if([type isEqualToString:@"::Test::D"]) { - return [[TestObjectsDI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsDI alloc] init]); } else if([type isEqualToString:@"::Test::E"]) { - return [[TestObjectsEI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsEI alloc] init]); } else if([type isEqualToString:@"::Test::F"]) { - return [[TestObjectsFI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsFI alloc] init]); } else if([type isEqualToString:@"::Test::I"]) { - return [[TestObjectsI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsI alloc] init]); } else if([type isEqualToString:@"::Test::J"]) { - return [[TestObjectsJI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsJI alloc] init]); } else if([type isEqualToString:@"::Test::H"]) { - return [[TestObjectsHI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsHI alloc] init]); } else { test(NO); } return nil; +}; + +@interface ClientMyObjectFactory : NSObject<ICEObjectFactory> +@end + +@implementation ClientMyObjectFactory + +-(ICEObject*) create:(NSString*)type +{ + return nil; } -(void) destroy @@ -72,16 +82,18 @@ static int run(id<ICECommunicator> communicator) { - id<ICEObjectFactory> factory = ICE_AUTORELEASE([[ClientMyObjectFactory alloc] init]); + id<ICEValueFactoryManager> manager = [communicator getValueFactoryManager]; + [manager add:factory sliceId:@"::Test::B"]; + [manager add:factory sliceId:@"::Test::C"]; + [manager add:factory sliceId:@"::Test::D"]; + [manager add:factory sliceId:@"::Test::E"]; + [manager add:factory sliceId:@"::Test::F"]; + [manager add:factory sliceId:@"::Test::I"]; + [manager add:factory sliceId:@"::Test::J"]; + [manager add:factory sliceId:@"::Test::H"]; - [communicator addObjectFactory:factory sliceId:@"::Test::B"]; - [communicator addObjectFactory:factory sliceId:@"::Test::C"]; - [communicator addObjectFactory:factory sliceId:@"::Test::D"]; - [communicator addObjectFactory:factory sliceId:@"::Test::E"]; - [communicator addObjectFactory:factory sliceId:@"::Test::F"]; - [communicator addObjectFactory:factory sliceId:@"::Test::I"]; - [communicator addObjectFactory:factory sliceId:@"::Test::J"]; - [communicator addObjectFactory:factory sliceId:@"::Test::H"]; + id<ICEObjectFactory> objectFactory = ICE_AUTORELEASE([[ClientMyObjectFactory alloc] init]); + [communicator addObjectFactory:objectFactory sliceId:@"TestOF" ]; id<TestObjectsInitialPrx> objectsAllTests(id<ICECommunicator>, bool); id<TestObjectsInitialPrx> initial = objectsAllTests(communicator, NO); @@ -96,6 +108,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -105,7 +124,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestObjects", @"::Test", nil]; #endif @@ -124,15 +143,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/objects/Collocated.m b/objective-c/test/Ice/objects/Collocated.m index 046bd16a769..11c816f415f 100644 --- a/objective-c/test/Ice/objects/Collocated.m +++ b/objective-c/test/Ice/objects/Collocated.m @@ -11,52 +11,62 @@ #import <TestCommon.h> #import <objects/TestI.h> -@interface CollocatedMyObjectFactory : NSObject<ICEObjectFactory> -@end - -@implementation CollocatedMyObjectFactory +#if defined(__clang__) +// For 'Ice::Communicator::addObjectFactory()' deprecation +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif -// Note that the object factory must not autorelease the +// Note that the factory must not autorelease the // returned objects. --(ICEObject*) create:(NSString*)type +ICEValueFactory factory = ^ICEObject* (NSString* type) { if([type isEqualToString:@"::Test::B"]) { - return [[TestObjectsBI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsBI alloc] init]); } else if([type isEqualToString:@"::Test::C"]) { - return [[TestObjectsCI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsCI alloc] init]); } else if([type isEqualToString:@"::Test::D"]) { - return [[TestObjectsDI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsDI alloc] init]); } else if([type isEqualToString:@"::Test::E"]) { - return [[TestObjectsEI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsEI alloc] init]); } else if([type isEqualToString:@"::Test::F"]) { - return [[TestObjectsFI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsFI alloc] init]); } else if([type isEqualToString:@"::Test::I"]) { - return [[TestObjectsI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsI alloc] init]); } else if([type isEqualToString:@"::Test::J"]) { - return [[TestObjectsJI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsJI alloc] init]); } else if([type isEqualToString:@"::Test::H"]) { - return [[TestObjectsHI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsHI alloc] init]); } else { test(NO); } return nil; +}; + +@interface CollocatedMyObjectFactory : NSObject<ICEObjectFactory> +@end + +@implementation CollocatedMyObjectFactory + +-(ICEObject*) create:(NSString*)type +{ + return nil; } -(void) destroy @@ -68,24 +78,29 @@ static int run(id<ICECommunicator> communicator) { - id<ICEObjectFactory> factory = ICE_AUTORELEASE([[CollocatedMyObjectFactory alloc] init]); + id<ICEValueFactoryManager> manager = [communicator getValueFactoryManager]; + [manager add:factory sliceId:@"::Test::B"]; + [manager add:factory sliceId:@"::Test::C"]; + [manager add:factory sliceId:@"::Test::D"]; + [manager add:factory sliceId:@"::Test::E"]; + [manager add:factory sliceId:@"::Test::F"]; + [manager add:factory sliceId:@"::Test::I"]; + [manager add:factory sliceId:@"::Test::J"]; + [manager add:factory sliceId:@"::Test::H"]; - [communicator addObjectFactory:factory sliceId:@"::Test::B"]; - [communicator addObjectFactory:factory sliceId:@"::Test::C"]; - [communicator addObjectFactory:factory sliceId:@"::Test::D"]; - [communicator addObjectFactory:factory sliceId:@"::Test::E"]; - [communicator addObjectFactory:factory sliceId:@"::Test::F"]; - [communicator addObjectFactory:factory sliceId:@"::Test::I"]; - [communicator addObjectFactory:factory sliceId:@"::Test::J"]; - [communicator addObjectFactory:factory sliceId:@"::Test::H"]; + id<ICEObjectFactory> objectFactory = ICE_AUTORELEASE([[CollocatedMyObjectFactory alloc] init]); + [communicator addObjectFactory:objectFactory sliceId:@"TestOF" ]; [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; TestObjectsInitialI* initial = [TestObjectsInitialI initial]; - [adapter add:initial identity:[communicator stringToIdentity:@"initial"]]; + [adapter add:initial identity:[ICEUtil stringToIdentity:@"initial"]]; + + ICEObject* testObj = ICE_AUTORELEASE([[TestObjectsTestIntfI alloc] init]); + [adapter add:testObj identity:[ICEUtil stringToIdentity:@"test"]]; ICEObject* uoet = ICE_AUTORELEASE([[UnexpectedObjectExceptionTestI alloc] init]); - [adapter add:uoet identity:[communicator stringToIdentity:@"uoet"]]; + [adapter add:uoet identity:[ICEUtil stringToIdentity:@"uoet"]]; id<TestObjectsInitialPrx> objectsAllTests(id<ICECommunicator>, bool); objectsAllTests(communicator, NO); @@ -103,6 +118,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -112,7 +134,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestObjects", @"::Test", nil]; #endif @@ -127,15 +149,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/objects/Makefile b/objective-c/test/Ice/objects/Makefile deleted file mode 100644 index 80260c6693d..00000000000 --- a/objective-c/test/Ice/objects/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = ObjectsTest.o - -COBJS = Client.o \ - TestI.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(COLOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/objects/Makefile.mk b/objective-c/test/Ice/objects/Makefile.mk new file mode 100644 index 00000000000..574102927ff --- /dev/null +++ b/objective-c/test/Ice/objects/Makefile.mk @@ -0,0 +1,15 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_sliceflags := -I$(test) +$(test)_client_sources = Client.m ObjectsTest.ice ObjectsDerived.ice ObjectsDerivedEx.ice TestI.m AllTests.m +$(test)_server_sources = Server.m ObjectsTest.ice ObjectsDerived.ice ObjectsDerivedEx.ice TestI.m TestIntfI.m +$(test)_collocated_sources = Collocated.m ObjectsTest.ice ObjectsDerived.ice ObjectsDerivedEx.ice TestI.m TestIntfI.m AllTests.m + +tests += $(test) diff --git a/objective-c/test/Ice/slicing/objects/SlicingObjectsForwardClient.ice b/objective-c/test/Ice/objects/ObjectsDerived.ice index 641e5aeb138..f7cc97939af 100644 --- a/objective-c/test/Ice/slicing/objects/SlicingObjectsForwardClient.ice +++ b/objective-c/test/Ice/objects/ObjectsDerived.ice @@ -1,6 +1,6 @@ // ********************************************************************** // -// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. @@ -9,20 +9,15 @@ #pragma once -["objc:prefix:TestSlicingObjectsClient"] -module Test -{ - -class Forward; +#include <ObjectsTest.ice> -class Hidden +["objc:prefix:TestObjects"] +module Test { - Forward f; -}; -class Forward +class Derived extends Base { - Hidden h; + string b; }; }; diff --git a/objective-c/test/Ice/slicing/objects/SlicingObjectsForwardServer.ice b/objective-c/test/Ice/objects/ObjectsDerivedEx.ice index ec06dfa4c7f..57089f1342f 100644 --- a/objective-c/test/Ice/slicing/objects/SlicingObjectsForwardServer.ice +++ b/objective-c/test/Ice/objects/ObjectsDerivedEx.ice @@ -1,6 +1,6 @@ // ********************************************************************** // -// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. @@ -9,20 +9,14 @@ #pragma once -["objc:prefix:TestSlicingObjectsServer"] -module Test -{ - -class Forward; +#include <ObjectsTest.ice> -class Hidden +["objc:prefix:TestObjects"] +module Test { - Forward f; -}; -class Forward +exception DerivedEx extends BaseEx { - Hidden h; }; }; diff --git a/objective-c/test/Ice/objects/ObjectsTest.ice b/objective-c/test/Ice/objects/ObjectsTest.ice index 324bb2266a9..dc903444902 100644 --- a/objective-c/test/Ice/objects/ObjectsTest.ice +++ b/objective-c/test/Ice/objects/ObjectsTest.ice @@ -9,7 +9,10 @@ #pragma once +[["suppress-warning:deprecated"]] // For classes with operations + ["objc:prefix:TestObjects"] + module Test { @@ -24,6 +27,17 @@ class Base string str; }; +exception BaseEx +{ + string reason; +}; + +class AbstractBase extends Base +{ + void op(); +}; + + class B; class C; @@ -33,7 +47,7 @@ class A C theC; bool preMarshalInvoked; - bool postUnmarshalInvoked(); + bool postUnmarshalInvoked; }; class B extends A @@ -46,7 +60,7 @@ class C B theB; bool preMarshalInvoked; - bool postUnmarshalInvoked(); + bool postUnmarshalInvoked; }; class D @@ -56,23 +70,19 @@ class D C theC; bool preMarshalInvoked; - bool postUnmarshalInvoked(); + bool postUnmarshalInvoked; }; ["protected"] class E { int i; string s; - - bool checkValues(); }; class F { ["protected"] E e1; E e2; - - bool checkValues(); }; interface I @@ -178,6 +188,9 @@ class Initial E getE(); F getF(); + ["marshaled-result"] B getMB(); + ["amd", "marshaled-result"] B getAMDMB(); + void getAll(out B b1, out B b2, out C theC, out D theD); I getI(); @@ -213,6 +226,12 @@ class Initial BasePrxDict getBasePrxDict(BasePrxDict d); }; +interface TestIntf +{ + Base opDerived(); + void throwDerived() throws BaseEx; +}; + class Empty { }; diff --git a/objective-c/test/Ice/objects/Server.m b/objective-c/test/Ice/objects/Server.m index a0e91cca064..4f7dfd61703 100644 --- a/objective-c/test/Ice/objects/Server.m +++ b/objective-c/test/Ice/objects/Server.m @@ -11,55 +11,46 @@ #import <TestCommon.h> #import <objects/TestI.h> -@interface ServerMyObjectFactory : NSObject<ICEObjectFactory> -@end - -@implementation ServerMyObjectFactory -// Note that the object factory must not autorelease the +// Note that the factory must not autorelease the // returned objects. --(ICEObject*) create:(NSString*)type +static ICEValueFactory factory = ^ICEObject* (NSString* type) { if([type isEqualToString:@"::Test::I"]) { - return [[TestObjectsI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsI alloc] init]); } else if([type isEqualToString:@"::Test::J"]) { - return [[TestObjectsJI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsJI alloc] init]); } else if([type isEqualToString:@"::Test::H"]) { - return [[TestObjectsHI alloc] init]; + return ICE_AUTORELEASE([[TestObjectsHI alloc] init]); } else { test(NO); // Should never be reached } return nil; -} - --(void) destroy -{ - // Nothing to do -} -@end +}; static int run(id<ICECommunicator> communicator) { - id<ICEObjectFactory> factory = ICE_AUTORELEASE([[ServerMyObjectFactory alloc] init]); - - [communicator addObjectFactory:factory sliceId:@"::Test::I"]; - [communicator addObjectFactory:factory sliceId:@"::Test::J"]; - [communicator addObjectFactory:factory sliceId:@"::Test::H"]; + [[communicator getValueFactoryManager] add:factory sliceId:@"::Test::I"]; + [[communicator getValueFactoryManager] add:factory sliceId:@"::Test::J"]; + [[communicator getValueFactoryManager] add:factory sliceId:@"::Test::H"]; [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* initial = [TestObjectsInitialI initial]; - [adapter add:initial identity:[communicator stringToIdentity:@"initial"]]; + [adapter add:initial identity:[ICEUtil stringToIdentity:@"initial"]]; + + ICEObject* testObj = ICE_AUTORELEASE([[TestObjectsTestIntfI alloc] init]); + [adapter add:testObj identity:[ICEUtil stringToIdentity:@"test"]]; ICEObject* uoet = ICE_AUTORELEASE([[UnexpectedObjectExceptionTestI alloc] init]); - [adapter add:uoet identity:[communicator stringToIdentity:@"uoet"]]; + [adapter add:uoet identity:[ICEUtil stringToIdentity:@"uoet"]]; [adapter activate]; serverReady(communicator); @@ -75,6 +66,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -84,7 +82,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestObjects", @"::Test", nil]; #endif @@ -99,15 +97,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/objects/TestI.h b/objective-c/test/Ice/objects/TestI.h index 8ccd9e07f6e..fd1b35d0e07 100644 --- a/objective-c/test/Ice/objects/TestI.h +++ b/objective-c/test/Ice/objects/TestI.h @@ -11,19 +11,16 @@ @interface TestObjectsBI : TestObjectsB<TestObjectsB> { - BOOL _postUnmarshalInvoked; } @end @interface TestObjectsCI : TestObjectsC<TestObjectsC> { - BOOL _postUnmarshalInvoked; } @end @interface TestObjectsDI : TestObjectsD<TestObjectsD> { - BOOL _postUnmarshalInvoked; } @end @@ -77,3 +74,8 @@ @interface UnexpectedObjectExceptionTestI : ICEBlobject<ICEBlobject> @end + +@interface TestObjectsTestIntfI : TestObjectsTestIntf<TestObjectsTestIntf> +-(TestObjectsBase*) opDerived:(ICECurrent *)current; +-(void) throwDerived:(ICECurrent *)current; +@end diff --git a/objective-c/test/Ice/objects/TestI.m b/objective-c/test/Ice/objects/TestI.m index eacd92a9a42..cea50b4118c 100644 --- a/objective-c/test/Ice/objects/TestI.m +++ b/objective-c/test/Ice/objects/TestI.m @@ -11,49 +11,37 @@ #import <objects/TestI.h> @implementation TestObjectsBI --(BOOL) postUnmarshalInvoked:(ICECurrent*)current -{ - return _postUnmarshalInvoked; -} -(void) ice_preMarshal { preMarshalInvoked = YES; } -(void) ice_postUnmarshal { - _postUnmarshalInvoked = YES; + postUnmarshalInvoked = YES; } @end @implementation TestObjectsCI --(BOOL) postUnmarshalInvoked:(ICECurrent*)current -{ - return _postUnmarshalInvoked; -} -(void) ice_preMarshal { preMarshalInvoked = YES; } -(void) ice_postUnmarshal { - _postUnmarshalInvoked = YES; + postUnmarshalInvoked = YES; } @end @implementation TestObjectsDI --(BOOL) postUnmarshalInvoked:(ICECurrent*)current -{ - return _postUnmarshalInvoked; -} -(void) ice_preMarshal { preMarshalInvoked = YES; } -(void) ice_postUnmarshal { - _postUnmarshalInvoked = YES; + postUnmarshalInvoked = YES; } @end @@ -62,10 +50,7 @@ { return [super init:1 s:@"hello"]; } --(BOOL) checkValues:(ICECurrent*)current -{ - return i == 1 && [s isEqualToString:@"hello"]; -} + @end @implementation TestObjectsFI @@ -207,6 +192,15 @@ return _f; } +-(TestObjectsB*) getMB:(ICECurrent*)current +{ + return _b1; +} + +-(TestObjectsB*) getAMDMB:(ICECurrent*)current +{ + return _b1; +} -(void) getAll:(TestObjectsB **)b1 b2:(TestObjectsB **)b2 theC:(TestObjectsC **)theC theD:(TestObjectsD **)theD current:(ICECurrent *)current; { @@ -332,8 +326,8 @@ id<ICEOutputStream> o = [ICEUtil createOutputStream:communicator]; [o startEncapsulation]; TestObjectsAlsoEmpty* ae = [TestObjectsAlsoEmpty alsoEmpty]; - [o writeObject:ae]; - [o writePendingObjects]; + [o writeValue:ae]; + [o writePendingValues]; [o endEncapsulation]; *outEncaps = [o finished]; return YES; diff --git a/objective-c/test/Ice/objects/TestIntfI.m b/objective-c/test/Ice/objects/TestIntfI.m new file mode 100644 index 00000000000..f612b24743a --- /dev/null +++ b/objective-c/test/Ice/objects/TestIntfI.m @@ -0,0 +1,29 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <objc/Ice.h> +#import <objects/TestI.h> +#import <ObjectsDerived.h> +#import <ObjectsDerivedEx.h> + +@implementation TestObjectsTestIntfI +-(TestObjectsBase*) opDerived:(ICECurrent *)current +{ + TestObjectsDerived *d = ICE_AUTORELEASE([[TestObjectsDerived alloc] init]); + d.theS.str = @"S.str"; + d.str = @"str"; + d.b = @"b"; + return d; +} + +-(void) throwDerived:(ICECurrent *)current +{ + @throw [TestObjectsDerivedEx derivedEx:@"reason"]; +} +@end diff --git a/objective-c/test/Ice/objects/run.py b/objective-c/test/Ice/objects/run.py deleted file mode 100755 index 97b7a68e535..00000000000 --- a/objective-c/test/Ice/objects/run.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("Running test with compact (default) format.") -TestUtil.clientServerTest() - -print("Running test with sliced format.") -TestUtil.clientServerTest(additionalClientOptions="--Ice.Default.SlicedFormat", - additionalServerOptions="--Ice.Default.SlicedFormat") - -print("Running test with 1.0 encoding.") -TestUtil.clientServerTest(additionalClientOptions="--Ice.Default.EncodingVersion=1.0", - additionalServerOptions="--Ice.Default.EncodingVersion=1.0") - -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/objects/test.log b/objective-c/test/Ice/objects/test.log deleted file mode 100644 index 3150beca6c7..00000000000 --- a/objective-c/test/Ice/objects/test.log +++ /dev/null @@ -1,1399 +0,0 @@ -testing stringToProxy... ok -testing checked cast... ok -testing constructor, copy constructor, and assignment operator... ok -getting B1... starting server... ok -starting client... ok -2008-09-05 18:27:29.095 server[74756:2403] write Test::B -2008-09-05 18:27:29.098 client[74758:10b] read Test::B -2008-09-05 18:27:29.100 client[74758:10b] read Test::A -2008-09-05 18:27:29.101 client[74758:10b] readPendingObject -ok -getting B2... 2008-09-05 18:27:29.096 server[74756:2403] write Test::A -2008-09-05 18:27:29.102 server[74756:2203] write Test::B -2008-09-05 18:27:29.102 server[74756:2203] write Test::A -2008-09-05 18:27:29.103 server[74756:2203] write Test::B -2008-09-05 18:27:29.103 server[74756:2203] write Test::A -2008-09-05 18:27:29.104 server[74756:2203] write Test::B -2008-09-05 18:27:29.104 server[74756:2203] write Test::A -2008-09-05 18:27:29.105 server[74756:2203] write Test::B -2008-09-05 18:27:29.105 server[74756:2203] write Test::A -2008-09-05 18:27:29.105 server[74756:2203] write Test::B -2008-09-05 18:27:29.106 server[74756:2203] write Test::A -2008-09-05 18:27:29.106 server[74756:2203] write Test::B -2008-09-05 18:27:29.106 server[74756:2203] write Test::A -2008-09-05 18:27:29.107 server[74756:2203] write Test::B -2008-09-05 18:27:29.107 server[74756:2203] write Test::A -2008-09-05 18:27:29.108 server[74756:2203] write Test::B -2008-09-05 18:27:29.108 server[74756:2203] write Test::A -2008-09-05 18:27:29.108 server[74756:2203] write Test::B -2008-09-05 18:27:29.109 server[74756:2203] write Test::A -2008-09-05 18:27:29.109 server[74756:2203] write Test::B -2008-09-05 18:27:29.109 server[74756:2203] write Test::A -2008-09-05 18:27:29.110 server[74756:2203] write Test::B -2008-09-05 18:27:29.110 server[74756:2203] write Test::A -2008-09-05 18:27:29.110 server[74756:2203] write Test::B -2008-09-05 18:27:29.111 server[74756:2203] write Test::A -2008-09-05 18:27:29.111 server[74756:2203] write Test::B -2008-09-05 18:27:29.111 server[74756:2203] write Test::A -2008-09-05 18:27:29.112 server[74756:2203] write Test::B -2008-09-05 18:27:29.112 server[74756:2203] write Test::A -2008-09-05 18:27:29.113 server[74756:2203] write Test::B -2008-09-05 18:27:29.113 server[74756:2203] write Test::A -2008-09-05 18:27:29.113 server[74756:2203] write Test::B -2008-09-05 18:27:29.114 server[74756:2203] write Test::A -2008-09-05 18:27:29.114 server[74756:2203] write Test::B -2008-09-05 18:27:29.114 server[74756:2203] write Test::A -2008-09-05 18:27:29.115 server[74756:2203] write Test::B -2008-09-05 18:27:29.115 server[74756:2203] write Test::A -2008-09-05 18:27:29.115 server[74756:2203] write Test::B -2008-09-05 18:27:29.116 server[74756:2203] write Test::A -2008-09-05 18:27:29.116 server[74756:2203] write Test::B -2008-09-05 18:27:29.117 server[74756:2203] write Test::A -2008-09-05 18:27:29.117 server[74756:2203] write Test::B -2008-09-05 18:27:29.117 server[74756:2203] write Test::A -2008-09-05 18:27:29.118 server[74756:2203] write Test::B -2008-09-05 18:27:29.118 server[74756:2203] write Test::A -2008-09-05 18:27:29.118 server[74756:2203] write Test::B -2008-09-05 18:27:29.119 server[74756:2203] write Test::A -2008-09-05 18:27:29.119 server[74756:2203] write Test::B -2008-09-05 18:27:29.119 server[74756:2203] write Test::A -2008-09-05 18:27:29.120 server[74756:2203] write Test::B -2008-09-05 18:27:29.120 server[74756:2203] write Test::A -2008-09-05 18:27:29.120 server[74756:2203] write Test::B -2008-09-05 18:27:29.121 server[74756:2203] write Test::A -2008-09-05 18:27:29.121 server[74756:2203] write Test::B -2008-09-05 18:27:29.122 server[74756:2203] write Test::A -2008-09-05 18:27:29.122 server[74756:2203] write Test::B -2008-09-05 18:27:29.122 server[74756:2203] write Test::A -2008-09-05 18:27:29.123 server[74756:2203] write Test::B -2008-09-05 18:27:29.123 server[74756:2203] write Test::A -2008-09-05 18:27:29.123 server[74756:2203] write Test::B -2008-09-05 18:27:29.124 server[74756:2203] write Test::A -2008-09-05 18:27:29.124 server[74756:2203] write Test::B -2008-09-05 18:27:29.124 server[74756:2203] write Test::A -2008-09-05 18:27:29.125 server[74756:2203] write Test::B -2008-09-05 18:27:29.125 server[74756:2203] write Test::A -2008-09-05 18:27:29.126 server[74756:2203] write Test::B -2008-09-05 18:27:29.126 server[74756:2203] write Test::A -2008-09-05 18:27:29.126 server[74756:2203] write Test::B -2008-09-05 18:27:29.127 server[74756:2203] write Test::A -2008-09-05 18:27:29.127 server[74756:2203] write Test::B -2008-09-05 18:27:29.127 server[74756:2203] write Test::A -2008-09-05 18:27:29.128 server[74756:2203] write Test::B -2008-09-05 18:27:29.128 server[74756:2203] write Test::A -2008-09-05 18:27:29.128 server[74756:2203] write Test::B -2008-09-05 18:27:29.129 server[74756:2203] write Test::A -2008-09-05 18:27:29.129 server[74756:2203] write Test::B -2008-09-05 18:27:29.130 server[74756:2203] write Test::A -2008-09-05 18:27:29.130 server[74756:2203] write Test::B -2008-09-05 18:27:29.130 server[74756:2203] write Test::A -2008-09-05 18:27:29.131 server[74756:2203] write Test::B -2008-09-05 18:27:29.131 server[74756:2203] write Test::A -2008-09-05 18:27:29.131 server[74756:2203] write Test::B -2008-09-05 18:27:29.132 server[74756:2203] write Test::A -2008-09-05 18:27:29.132 server[74756:2203] write Test::B -2008-09-05 18:27:29.133 server[74756:2203] write Test::A -2008-09-05 18:27:29.133 server[74756:2203] write Test::B -2008-09-05 18:27:29.133 server[74756:2203] write Test::A -2008-09-05 18:27:29.134 server[74756:2203] write Test::B -2008-09-05 18:27:29.134 server[74756:2203] write Test::A -2008-09-05 18:27:29.134 server[74756:2203] write Test::B -2008-09-05 18:27:29.135 server[74756:2203] write Test::A -2008-09-05 18:27:29.135 server[74756:2203] write Test::B -2008-09-05 18:27:29.135 server[74756:2203] write Test::A -2008-09-05 18:27:29.136 server[74756:2203] write Test::B -2008-09-05 18:27:29.136 server[74756:2203] write Test::A -2008-09-05 18:27:29.137 server[74756:2203] write Test::B -2008-09-05 18:27:29.137 server[74756:2203] write Test::A -2008-09-05 18:27:29.137 server[74756:2203] write Test::B -2008-09-05 18:27:29.138 server[74756:2203] write Test::A -2008-09-05 18:27:29.138 server[74756:2203] write Test::B -2008-09-05 18:27:29.138 server[74756:2203] write Test::A -2008-09-05 18:27:29.139 server[74756:2203] write Test::B -2008-09-05 18:27:29.139 server[74756:2203] write Test::A -2008-09-05 18:27:29.140 server[74756:2203] write Test::B -2008-09-05 18:27:29.140 server[74756:2203] write Test::A -2008-09-05 18:27:29.140 server[74756:2203] write Test::B -2008-09-05 18:27:29.141 server[74756:2203] write Test::A -2008-09-05 18:27:29.141 server[74756:2203] write Test::B -2008-09-05 18:27:29.142 server[74756:2203] write Test::A -2008-09-05 18:27:29.142 server[74756:2203] write Test::B -2008-09-05 18:27:29.142 server[74756:2203] write Test::A -2008-09-05 18:27:29.143 server[74756:2203] write Test::B -2008-09-05 18:27:29.143 server[74756:2203] write Test::A -2008-09-05 18:27:29.144 server[74756:2203] write Test::B -2008-09-05 18:27:29.144 server[74756:2203] write Test::A -2008-09-05 18:27:29.144 server[74756:2203] write Test::B -2008-09-05 18:27:29.145 server[74756:2203] write Test::A -2008-09-05 18:27:29.145 server[74756:2203] write Test::B -2008-09-05 18:27:29.145 server[74756:2203] write Test::A -2008-09-05 18:27:29.146 server[74756:2203] write Test::B -2008-09-05 18:27:29.146 server[74756:2203] write Test::A -2008-09-05 18:27:29.147 server[74756:2203] write Test::B -2008-09-05 18:27:29.147 server[74756:2203] write Test::A -2008-09-05 18:27:29.147 server[74756:2203] write Test::B -2008-09-05 18:27:29.148 server[74756:2203] write Test::A -2008-09-05 18:27:29.148 server[74756:2203] write Test::B -2008-09-05 18:27:29.148 server[74756:2203] write Test::A -2008-09-05 18:27:29.149 server[74756:2203] write Test::B -2008-09-05 18:27:29.149 server[74756:2203] write Test::A -2008-09-05 18:27:29.150 server[74756:2203] write Test::B -2008-09-05 18:27:29.150 server[74756:2203] write Test::A -2008-09-05 18:27:29.150 server[74756:2203] write Test::B -2008-09-05 18:27:29.151 server[74756:2203] write Test::A -2008-09-05 18:27:29.151 server[74756:2203] write Test::B -2008-09-05 18:27:29.151 server[74756:2203] write Test::A -2008-09-05 18:27:29.152 server[74756:2203] write Test::B -2008-09-05 18:27:29.152 server[74756:2203] write Test::A -2008-09-05 18:27:29.152 server[74756:2203] write Test::B -2008-09-05 18:27:29.153 server[74756:2203] write Test::A -2008-09-05 18:27:29.153 server[74756:2203] write Test::B -2008-09-05 18:27:29.153 server[74756:2203] write Test::A -2008-09-05 18:27:29.154 server[74756:2203] write Test::B -2008-09-05 18:27:29.154 server[74756:2203] write Test::A -2008-09-05 18:27:29.155 server[74756:2203] write Test::B -2008-09-05 18:27:29.155 server[74756:2203] write Test::A -2008-09-05 18:27:29.155 server[74756:2203] write Test::B -2008-09-05 18:27:29.156 server[74756:2203] write Test::A -2008-09-05 18:27:29.156 server[74756:2203] write Test::B -2008-09-05 18:27:29.156 server[74756:2203] write Test::A -2008-09-05 18:27:29.157 server[74756:2203] write Test::B -2008-09-05 18:27:29.157 server[74756:2203] write Test::A -2008-09-05 18:27:29.157 server[74756:2203] write Test::B -2008-09-05 18:27:29.158 server[74756:2203] write Test::A -2008-09-05 18:27:29.158 server[74756:2203] write Test::B -2008-09-05 18:27:29.159 server[74756:2203] write Test::A -2008-09-05 18:27:29.159 server[74756:2203] write Test::B -2008-09-05 18:27:29.159 server[74756:2203] write Test::A -2008-09-05 18:27:29.160 server[74756:2203] write Test::B -2008-09-05 18:27:29.160 server[74756:2203] write Test::A -2008-09-05 18:27:29.160 server[74756:2203] write Test::B -2008-09-05 18:27:29.161 server[74756:2203] write Test::A -2008-09-05 18:27:29.161 server[74756:2203] write Test::B -2008-09-05 18:27:29.162 server[74756:2203] write Test::A -2008-09-05 18:27:29.162 server[74756:2203] write Test::B -2008-09-05 18:27:29.162 server[74756:2203] write Test::A -2008-09-05 18:27:29.163 server[74756:2203] write Test::B -2008-09-05 18:27:29.163 server[74756:2203] write Test::A -2008-09-05 18:27:29.164 server[74756:2203] write Test::B -2008-09-05 18:27:29.165 server[74756:2203] write Test::A -2008-09-05 18:27:29.165 server[74756:2203] write Test::B -2008-09-05 18:27:29.166 server[74756:2203] write Test::A -2008-09-05 18:27:29.166 server[74756:2203] write Test::B -2008-09-05 18:27:29.166 server[74756:2203] write Test::A -2008-09-05 18:27:29.167 server[74756:2203] write Test::B -2008-09-05 18:27:29.167 server[74756:2203] write Test::A -2008-09-05 18:27:29.168 server[74756:2203] write Test::B -2008-09-05 18:27:29.170 server[74756:2203] write Test::A -2008-09-05 18:27:29.170 server[74756:2203] write Test::B -2008-09-05 18:27:29.170 server[74756:2203] write Test::A -2008-09-05 18:27:29.171 server[74756:2203] write Test::B -2008-09-05 18:27:29.171 server[74756:2203] write Test::A -2008-09-05 18:27:29.171 server[74756:2203] write Test::B -2008-09-05 18:27:29.172 server[74756:2203] write Test::A -2008-09-05 18:27:29.172 server[74756:2203] write Test::B -2008-09-05 18:27:29.173 server[74756:2203] write Test::A -2008-09-05 18:27:29.173 server[74756:2203] write Test::B -2008-09-05 18:27:29.173 server[74756:2203] write Test::A -2008-09-05 18:27:29.174 server[74756:2203] write Test::B -2008-09-05 18:27:29.174 server[74756:2203] write Test::A -2008-09-05 18:27:29.174 server[74756:2203] write Test::B -2008-09-05 18:27:29.175 server[74756:2203] write Test::A -2008-09-05 18:27:29.175 server[74756:2203] write Test::B -2008-09-05 18:27:29.176 server[74756:2203] write Test::A -2008-09-05 18:27:29.176 server[74756:2203] write Test::B -2008-09-05 18:27:29.176 server[74756:2203] write Test::A -2008-09-05 18:27:29.177 server[74756:2203] write Test::B -2008-09-05 18:27:29.177 server[74756:2203] write Test::A -2008-09-05 18:27:29.178 server[74756:2203] write Test::B -2008-09-05 18:27:29.178 server[74756:2203] write Test::A -2008-09-05 18:27:29.178 server[74756:2203] write Test::B -2008-09-05 18:27:29.179 server[74756:2203] write Test::A -2008-09-05 18:27:29.179 server[74756:2203] write Test::B -2008-09-05 18:27:29.179 server[74756:2203] write Test::A -2008-09-05 18:27:29.180 server[74756:2203] write Test::B -2008-09-05 18:27:29.180 server[74756:2203] write Test::A -2008-09-05 18:27:29.181 server[74756:2203] write Test::B -2008-09-05 18:27:29.181 server[74756:2203] write Test::A -2008-09-05 18:27:29.181 server[74756:2203] write Test::B -2008-09-05 18:27:29.182 server[74756:2203] write Test::A -2008-09-05 18:27:29.182 server[74756:2203] write Test::B -2008-09-05 18:27:29.182 server[74756:2203] write Test::A -2008-09-05 18:27:29.183 server[74756:2203] write Test::B -2008-09-05 18:27:29.183 server[74756:2203] write Test::A -2008-09-05 18:27:29.184 server[74756:2203] write Test::B -2008-09-05 18:27:29.184 server[74756:2203] write Test::A -2008-09-05 18:27:29.184 server[74756:2203] write Test::B -2008-09-05 18:27:29.185 server[74756:2203] write Test::A -2008-09-05 18:27:29.185 server[74756:2203] write Test::B -2008-09-05 18:27:29.186 server[74756:2203] write Test::A -2008-09-05 18:27:29.186 server[74756:2203] write Test::B -2008-09-05 18:27:29.186 server[74756:2203] write Test::A -2008-09-05 18:27:29.187 server[74756:2203] write Test::B -2008-09-05 18:27:29.187 server[74756:2203] write Test::A -2008-09-05 18:27:29.187 server[74756:2203] write Test::B -2008-09-05 18:27:29.188 server[74756:2203] write Test::A -2008-09-05 18:27:29.188 server[74756:2203] write Test::B -2008-09-05 18:27:29.189 server[74756:2203] write Test::A -2008-09-05 18:27:29.189 server[74756:2203] write Test::B -2008-09-05 18:27:29.189 server[74756:2203] write Test::A -2008-09-05 18:27:29.190 server[74756:2203] write Test::B -2008-09-05 18:27:29.190 server[74756:2203] write Test::A -2008-09-05 18:27:29.191 server[74756:2203] write Test::B -2008-09-05 18:27:29.191 server[74756:2203] write Test::A -2008-09-05 18:27:29.191 server[74756:2203] write Test::B -2008-09-05 18:27:29.192 server[74756:2203] write Test::A -2008-09-05 18:27:29.192 server[74756:2203] write Test::B -2008-09-05 18:27:29.192 server[74756:2203] write Test::A -2008-09-05 18:27:29.193 server[74756:2203] write Test::B -2008-09-05 18:27:29.193 server[74756:2203] write Test::A -2008-09-05 18:27:29.194 server[74756:2203] write Test::B -2008-09-05 18:27:29.194 server[74756:2203] write Test::A -2008-09-05 18:27:29.194 server[74756:2203] write Test::B -2008-09-05 18:27:29.195 server[74756:2203] write Test::A -2008-09-05 18:27:29.196 server[74756:2203] write Test::B -2008-09-05 18:27:29.197 server[74756:2203] write Test::A -2008-09-05 18:27:29.198 server[74756:2203] write Test::B -2008-09-05 18:27:29.198 server[74756:2203] write Test::A -2008-09-05 18:27:29.199 server[74756:2203] write Test::B -2008-09-05 18:27:29.199 server[74756:2203] write Test::A -2008-09-05 18:27:29.199 server[74756:2203] write Test::B -2008-09-05 18:27:29.200 server[74756:2203] write Test::A -2008-09-05 18:27:29.200 server[74756:2203] write Test::B -2008-09-05 18:27:29.200 server[74756:2203] write Test::A -2008-09-05 18:27:29.201 server[74756:2203] write Test::B -2008-09-05 18:27:29.201 server[74756:2203] write Test::A -2008-09-05 18:27:29.202 server[74756:2203] write Test::B -2008-09-05 18:27:29.202 server[74756:2203] write Test::A -2008-09-05 18:27:29.202 server[74756:2203] write Test::B -2008-09-05 18:27:29.203 server[74756:2203] write Test::A -2008-09-05 18:27:29.203 server[74756:2203] write Test::B -2008-09-05 18:27:29.204 server[74756:2203] write Test::A -2008-09-05 18:27:29.204 server[74756:2203] write Test::B -2008-09-05 18:27:29.204 server[74756:2203] write Test::A -2008-09-05 18:27:29.205 server[74756:2203] write Test::B -2008-09-05 18:27:29.205 server[74756:2203] write Test::A -2008-09-05 18:27:29.205 server[74756:2203] write Test::B -2008-09-05 18:27:29.206 server[74756:2203] write Test::A -2008-09-05 18:27:29.206 server[74756:2203] write Test::B -2008-09-05 18:27:29.207 server[74756:2203] write Test::A -2008-09-05 18:27:29.207 server[74756:2203] write Test::B -2008-09-05 18:27:29.207 server[74756:2203] write Test::A -2008-09-05 18:27:29.208 server[74756:2203] write Test::B -2008-09-05 18:27:29.208 server[74756:2203] write Test::A -2008-09-05 18:27:29.209 server[74756:2203] write Test::B -2008-09-05 18:27:29.209 server[74756:2203] write Test::A -2008-09-05 18:27:29.209 server[74756:2203] write Test::B -2008-09-05 18:27:29.210 server[74756:2203] write Test::A -2008-09-05 18:27:29.210 server[74756:2203] write Test::B -2008-09-05 18:27:29.211 server[74756:2203] write Test::A -2008-09-05 18:27:29.211 server[74756:2203] write Test::B -2008-09-05 18:27:29.212 server[74756:2203] write Test::A -2008-09-05 18:27:29.213 server[74756:2203] write Test::B -2008-09-05 18:27:29.213 server[74756:2203] write Test::A -2008-09-05 18:27:29.214 server[74756:2203] write Test::B -2008-09-05 18:27:29.214 server[74756:2203] write Test::A -2008-09-05 18:27:29.215 server[74756:2203] write Test::B -2008-09-05 18:27:29.215 server[74756:2203] write Test::A -2008-09-05 18:27:29.216 server[74756:2203] write Test::B -2008-09-05 18:27:29.216 server[74756:2203] write Test::A -2008-09-05 18:27:29.216 server[74756:2203] write Test::B -2008-09-05 18:27:29.217 server[74756:2203] write Test::A -2008-09-05 18:27:29.217 server[74756:2203] write Test::B -2008-09-05 18:27:29.217 server[74756:2203] write Test::A -2008-09-05 18:27:29.218 server[74756:2203] write Test::B -2008-09-05 18:27:29.218 server[74756:2203] write Test::A -2008-09-05 18:27:29.219 server[74756:2203] write Test::B -2008-09-05 18:27:29.219 server[74756:2203] write Test::A -2008-09-05 18:27:29.219 server[74756:2203] write Test::B -2008-09-05 18:27:29.220 server[74756:2203] write Test::A -2008-09-05 18:27:29.220 server[74756:2203] write Test::B -2008-09-05 18:27:29.221 server[74756:2203] write Test::A -2008-09-05 18:27:29.221 server[74756:2203] write Test::B -2008-09-05 18:27:29.221 server[74756:2203] write Test::A -2008-09-05 18:27:29.222 server[74756:2203] write Test::B -2008-09-05 18:27:29.222 server[74756:2203] write Test::A -2008-09-05 18:27:29.222 server[74756:2203] write Test::B -2008-09-05 18:27:29.223 server[74756:2203] write Test::A -2008-09-05 18:27:29.223 server[74756:2203] write Test::B -2008-09-05 18:27:29.224 server[74756:2203] write Test::A -2008-09-05 18:27:29.224 server[74756:2203] write Test::B -2008-09-05 18:27:29.224 server[74756:2203] write Test::A -2008-09-05 18:27:29.225 server[74756:2203] write Test::B -2008-09-05 18:27:29.225 server[74756:2203] write Test::A -2008-09-05 18:27:29.226 server[74756:2203] write Test::B -2008-09-05 18:27:29.226 server[74756:2203] write Test::A -2008-09-05 18:27:29.226 server[74756:2203] write Test::B -2008-09-05 18:27:29.227 server[74756:2203] write Test::A -2008-09-05 18:27:29.227 server[74756:2203] write Test::B -2008-09-05 18:27:29.228 server[74756:2203] write Test::A -2008-09-05 18:27:29.228 server[74756:2203] write Test::B -2008-09-05 18:27:29.228 server[74756:2203] write Test::A -2008-09-05 18:27:29.229 server[74756:2203] write Test::B -2008-09-05 18:27:29.229 server[74756:2203] write Test::A -2008-09-05 18:27:29.230 server[74756:2203] write Test::B -2008-09-05 18:27:29.230 server[74756:2203] write Test::A -2008-09-05 18:27:29.230 server[74756:2203] write Test::B -2008-09-05 18:27:29.231 server[74756:2203] write Test::A -2008-09-05 18:27:29.233 server[74756:2203] write Test::B -2008-09-05 18:27:29.233 server[74756:2203] write Test::A -2008-09-05 18:27:29.233 server[74756:2203] write Test::B -2008-09-05 18:27:29.234 server[74756:2203] write Test::A -2008-09-05 18:27:29.234 server[74756:2203] write Test::B -2008-09-05 18:27:29.235 server[74756:2203] write Test::A -2008-09-05 18:27:29.235 server[74756:2203] write Test::B -2008-09-05 18:27:29.235 server[74756:2203] write Test::A -2008-09-05 18:27:29.236 server[74756:2203] write Test::B -2008-09-05 18:27:29.236 server[74756:2203] write Test::A -2008-09-05 18:27:29.236 server[74756:2203] write Test::B -2008-09-05 18:27:29.237 server[74756:2203] write Test::A -2008-09-05 18:27:29.237 server[74756:2203] write Test::B -2008-09-05 18:27:29.238 server[74756:2203] write Test::A -2008-09-05 18:27:29.238 server[74756:2203] write Test::B -2008-09-05 18:27:29.238 server[74756:2203] write Test::A -2008-09-05 18:27:29.239 server[74756:2203] write Test::B -2008-09-05 18:27:29.239 server[74756:2203] write Test::A -2008-09-05 18:27:29.239 server[74756:2203] write Test::B -2008-09-05 18:27:29.240 server[74756:2203] write Test::A -2008-09-05 18:27:29.240 server[74756:2203] write Test::B -2008-09-05 18:27:29.240 server[74756:2203] write Test::A -2008-09-05 18:27:29.241 server[74756:2203] write Test::B -2008-09-05 18:27:29.241 server[74756:2203] write Test::A -2008-09-05 18:27:29.241 server[74756:2203] write Test::B -2008-09-05 18:27:29.242 server[74756:2203] write Test::A -2008-09-05 18:27:29.242 server[74756:2203] write Test::B -2008-09-05 18:27:29.242 server[74756:2203] write Test::A -2008-09-05 18:27:29.243 server[74756:2203] write Test::B -2008-09-05 18:27:29.243 server[74756:2203] write Test::A -2008-09-05 18:27:29.244 server[74756:2203] write Test::B -2008-09-05 18:27:29.244 server[74756:2203] write Test::A -2008-09-05 18:27:29.244 server[74756:2203] write Test::B -2008-09-05 18:27:29.245 server[74756:2203] write Test::A -2008-09-05 18:27:29.245 server[74756:2203] write Test::B -2008-09-05 18:27:29.246 server[74756:2203] write Test::A -2008-09-05 18:27:29.246 server[74756:2203] write Test::B -2008-09-05 18:27:29.246 server[74756:2203] write Test::A -2008-09-05 18:27:29.247 server[74756:2203] write Test::B -2008-09-05 18:27:29.247 server[74756:2203] write Test::A -2008-09-05 18:27:29.247 server[74756:2203] write Test::B -2008-09-05 18:27:29.248 server[74756:2203] write Test::A -2008-09-05 18:27:29.248 server[74756:2203] write Test::B -2008-09-05 18:27:29.249 server[74756:2203] write Test::A -2008-09-05 18:27:29.249 server[74756:2203] write Test::B -2008-09-05 18:27:29.249 server[74756:2203] write Test::A -2008-09-05 18:27:29.250 server[74756:2203] write Test::B -2008-09-05 18:27:29.250 server[74756:2203] write Test::A -2008-09-05 18:27:29.250 server[74756:2203] write Test::B -2008-09-05 18:27:29.251 server[74756:2203] write Test::A -2008-09-05 18:27:29.251 server[74756:2203] write Test::B -2008-09-05 18:27:29.252 server[74756:2203] write Test::A -2008-09-05 18:27:29.252 server[74756:2203] write Test::B -2008-09-05 18:27:29.252 server[74756:2203] write Test::A -2008-09-05 18:27:29.253 server[74756:2203] write Test::B -2008-09-05 18:27:29.253 server[74756:2203] write Test::A -2008-09-05 18:27:29.254 server[74756:2203] write Test::B -2008-09-05 18:27:29.255 server[74756:2203] write Test::A -2008-09-05 18:27:29.255 server[74756:2203] write Test::B -2008-09-05 18:27:29.255 server[74756:2203] write Test::A -2008-09-05 18:27:29.256 server[74756:2203] write Test::B -2008-09-05 18:27:29.256 server[74756:2203] write Test::A -2008-09-05 18:27:29.257 server[74756:2203] write Test::B -2008-09-05 18:27:29.257 server[74756:2203] write Test::A -2008-09-05 18:27:29.257 server[74756:2203] write Test::B -2008-09-05 18:27:29.258 server[74756:2203] write Test::A -2008-09-05 18:27:29.258 server[74756:2203] write Test::B -2008-09-05 18:27:29.259 server[74756:2203] write Test::A -2008-09-05 18:27:29.259 server[74756:2203] write Test::B -2008-09-05 18:27:29.259 server[74756:2203] write Test::A -2008-09-05 18:27:29.260 server[74756:2203] write Test::B -2008-09-05 18:27:29.260 server[74756:2203] write Test::A -2008-09-05 18:27:29.261 server[74756:2203] write Test::B -2008-09-05 18:27:29.261 server[74756:2203] write Test::A -2008-09-05 18:27:29.261 server[74756:2203] write Test::B -2008-09-05 18:27:29.262 server[74756:2203] write Test::A -2008-09-05 18:27:29.262 server[74756:2203] write Test::B -2008-09-05 18:27:29.263 server[74756:2203] write Test::A -2008-09-05 18:27:29.263 server[74756:2203] write Test::B -2008-09-05 18:27:29.264 server[74756:2203] write Test::A -2008-09-05 18:27:29.264 server[74756:2203] write Test::B -2008-09-05 18:27:29.265 server[74756:2203] write Test::A -2008-09-05 18:27:29.265 server[74756:2203] write Test::B -2008-09-05 18:27:29.265 server[74756:2203] write Test::A -2008-09-05 18:27:29.266 server[74756:2203] write Test::B -2008-09-05 18:27:29.266 server[74756:2203] write Test::A -2008-09-05 18:27:29.267 server[74756:2203] write Test::B -2008-09-05 18:27:29.267 server[74756:2203] write Test::A -2008-09-05 18:27:29.268 server[74756:2203] write Test::B -2008-09-05 18:27:29.268 server[74756:2203] write Test::A -2008-09-05 18:27:29.268 server[74756:2203] write Test::B -2008-09-05 18:27:29.269 server[74756:2203] write Test::A -2008-09-05 18:27:29.270 server[74756:2203] write Test::B -2008-09-05 18:27:29.270 server[74756:2203] write Test::A -2008-09-05 18:27:29.271 server[74756:2203] write Test::B -2008-09-05 18:27:29.271 server[74756:2203] write Test::A -2008-09-05 18:27:29.271 server[74756:2203] write Test::B -2008-09-05 18:27:29.272 server[74756:2203] write Test::A -2008-09-05 18:27:29.272 server[74756:2203] write Test::B -2008-09-05 18:27:29.273 server[74756:2203] write Test::A -2008-09-05 18:27:29.273 server[74756:2203] write Test::B -2008-09-05 18:27:29.273 server[74756:2203] write Test::A -2008-09-05 18:27:29.274 server[74756:2203] write Test::B -2008-09-05 18:27:29.274 server[74756:2203] write Test::A -2008-09-05 18:27:29.275 server[74756:2203] write Test::B -2008-09-05 18:27:29.275 server[74756:2203] write Test::A -2008-09-05 18:27:29.275 server[74756:2203] write Test::B -2008-09-05 18:27:29.276 server[74756:2203] write Test::A -2008-09-05 18:27:29.276 server[74756:2203] write Test::B -2008-09-05 18:27:29.277 server[74756:2203] write Test::A -2008-09-05 18:27:29.277 server[74756:2203] write Test::B -2008-09-05 18:27:29.278 server[74756:2203] write Test::A -2008-09-05 18:27:29.278 server[74756:2203] write Test::B -2008-09-05 18:27:29.278 server[74756:2203] write Test::A -2008-09-05 18:27:29.279 server[74756:2203] write Test::B -2008-09-05 18:27:29.279 server[74756:2203] write Test::A -2008-09-05 18:27:29.281 server[74756:2203] write Test::B -2008-09-05 18:27:29.282 server[74756:2203] write Test::A -2008-09-05 18:27:29.283 server[74756:2203] write Test::B -2008-09-05 18:27:29.283 server[74756:2203] write Test::A -2008-09-05 18:27:29.283 server[74756:2203] write Test::B -2008-09-05 18:27:29.284 server[74756:2203] write Test::A -2008-09-05 18:27:29.284 server[74756:2203] write Test::B -2008-09-05 18:27:29.285 server[74756:2203] write Test::A -2008-09-05 18:27:29.285 server[74756:2203] write Test::B -2008-09-05 18:27:29.286 server[74756:2203] write Test::A -2008-09-05 18:27:29.286 server[74756:2203] write Test::B -2008-09-05 18:27:29.286 server[74756:2203] write Test::A -2008-09-05 18:27:29.287 server[74756:2203] write Test::B -2008-09-05 18:27:29.287 server[74756:2203] write Test::A -2008-09-05 18:27:29.288 server[74756:2203] write Test::B -2008-09-05 18:27:29.288 server[74756:2203] write Test::A -2008-09-05 18:27:29.288 server[74756:2203] write Test::B -2008-09-05 18:27:29.289 server[74756:2203] write Test::A -2008-09-05 18:27:29.289 server[74756:2203] write Test::B -2008-09-05 18:27:29.290 server[74756:2203] write Test::A -2008-09-05 18:27:29.291 server[74756:2203] write Test::B -2008-09-05 18:27:29.291 server[74756:2203] write Test::A -2008-09-05 18:27:29.291 server[74756:2203] write Test::B -2008-09-05 18:27:29.292 server[74756:2203] write Test::A -2008-09-05 18:27:29.292 server[74756:2203] write Test::B -2008-09-05 18:27:29.293 server[74756:2203] write Test::A -2008-09-05 18:27:29.293 server[74756:2203] write Test::B -2008-09-05 18:27:29.293 server[74756:2203] write Test::A -2008-09-05 18:27:29.295 server[74756:2203] write Test::B -2008-09-05 18:27:29.295 server[74756:2203] write Test::A -2008-09-05 18:27:29.295 server[74756:2203] write Test::B -2008-09-05 18:27:29.296 server[74756:2203] write Test::A -2008-09-05 18:27:29.299 server[74756:2203] write Test::B -2008-09-05 18:27:29.299 server[74756:2203] write Test::A -2008-09-05 18:27:29.300 server[74756:2203] write Test::B -2008-09-05 18:27:29.300 server[74756:2203] write Test::A -2008-09-05 18:27:29.300 server[74756:2203] write Test::B -2008-09-05 18:27:29.301 server[74756:2203] write Test::A -2008-09-05 18:27:29.301 server[74756:2203] write Test::B -2008-09-05 18:27:29.301 server[74756:2203] write Test::A -2008-09-05 18:27:29.302 server[74756:2203] write Test::B -2008-09-05 18:27:29.302 server[74756:2203] write Test::A -2008-09-05 18:27:29.302 server[74756:2203] write Test::B -2008-09-05 18:27:29.303 server[74756:2203] write Test::A -2008-09-05 18:27:29.303 server[74756:2203] write Test::B -2008-09-05 18:27:29.303 server[74756:2203] write Test::A -2008-09-05 18:27:29.304 server[74756:2203] write Test::B -2008-09-05 18:27:29.304 server[74756:2203] write Test::A -2008-09-05 18:27:29.305 server[74756:2203] write Test::B -2008-09-05 18:27:29.305 server[74756:2203] write Test::A -2008-09-05 18:27:29.305 server[74756:2203] write Test::B -2008-09-05 18:27:29.306 server[74756:2203] write Test::A -2008-09-05 18:27:29.306 server[74756:2203] write Test::B -2008-09-05 18:27:29.306 server[74756:2203] write Test::A -2008-09-05 18:27:29.307 server[74756:2203] write Test::B -2008-09-05 18:27:29.307 server[74756:2203] write Test::A -2008-09-05 18:27:29.307 server[74756:2203] write Test::B -2008-09-05 18:27:29.308 server[74756:2203] write Test::A -2008-09-05 18:27:29.308 server[74756:2203] write Test::B -2008-09-05 18:27:29.308 server[74756:2203] write Test::A -2008-09-05 18:27:29.309 server[74756:2203] write Test::B -2008-09-05 18:27:29.309 server[74756:2203] write Test::A -2008-09-05 18:27:29.309 server[74756:2203] write Test::B -2008-09-05 18:27:29.310 server[74756:2203] write Test::A -2008-09-05 18:27:29.311 server[74756:2203] write Test::B -2008-09-05 18:27:29.311 server[74756:2203] write Test::A -2008-09-05 18:27:29.311 server[74756:2203] write Test::B -2008-09-05 18:27:29.312 server[74756:2203] write Test::A -2008-09-05 18:27:29.312 server[74756:2203] write Test::B -2008-09-05 18:27:29.312 server[74756:2203] write Test::A -2008-09-05 18:27:29.313 server[74756:2203] write Test::B -2008-09-05 18:27:29.313 server[74756:2203] write Test::A -2008-09-05 18:27:29.314 server[74756:2203] write Test::B -2008-09-05 18:27:29.314 server[74756:2203] write Test::A -2008-09-05 18:27:29.314 server[74756:2203] write Test::B -2008-09-05 18:27:29.315 server[74756:2203] write Test::A -2008-09-05 18:27:29.315 server[74756:2203] write Test::B -2008-09-05 18:27:29.315 server[74756:2203] write Test::A -2008-09-05 18:27:29.316 server[74756:2203] write Test::B -2008-09-05 18:27:29.316 server[74756:2203] write Test::A -2008-09-05 18:27:29.316 server[74756:2203] write Test::B -2008-09-05 18:27:29.317 server[74756:2203] write Test::A -2008-09-05 18:27:29.317 server[74756:2203] write Test::B -2008-09-05 18:27:29.317 server[74756:2203] write Test::A -2008-09-05 18:27:29.318 server[74756:2203] write Test::B -2008-09-05 18:27:29.318 server[74756:2203] write Test::A -2008-09-05 18:27:29.318 server[74756:2203] write Test::B -2008-09-05 18:27:29.319 server[74756:2203] write Test::A -2008-09-05 18:27:29.319 server[74756:2203] write Test::B -2008-09-05 18:27:29.320 server[74756:2203] write Test::A -2008-09-05 18:27:29.320 server[74756:2203] write Test::B -2008-09-05 18:27:29.320 server[74756:2203] write Test::A -2008-09-05 18:27:29.321 server[74756:2203] write Test::B -2008-09-05 18:27:29.321 server[74756:2203] write Test::A -2008-09-05 18:27:29.321 server[74756:2203] write Test::B -2008-09-05 18:27:29.322 server[74756:2203] write Test::A -2008-09-05 18:27:29.322 server[74756:2203] write Test::B -2008-09-05 18:27:29.322 server[74756:2203] write Test::A -2008-09-05 18:27:29.323 server[74756:2203] write Test::B -2008-09-05 18:27:29.323 server[74756:2203] write Test::A -2008-09-05 18:27:29.323 server[74756:2203] write Test::B -2008-09-05 18:27:29.324 server[74756:2203] write Test::A -2008-09-05 18:27:29.324 server[74756:2203] write Test::B -2008-09-05 18:27:29.324 server[74756:2203] write Test::A -2008-09-05 18:27:29.325 server[74756:2203] write Test::B -2008-09-05 18:27:29.325 server[74756:2203] write Test::A -2008-09-05 18:27:29.326 server[74756:2203] write Test::B -2008-09-05 18:27:29.326 server[74756:2203] write Test::A -2008-09-05 18:27:29.326 server[74756:2203] write Test::B -2008-09-05 18:27:29.327 server[74756:2203] write Test::A -2008-09-05 18:27:29.327 server[74756:2203] write Test::B -2008-09-05 18:27:29.327 server[74756:2203] write Test::A -2008-09-05 18:27:29.328 server[74756:2203] write Test::B -2008-09-05 18:27:29.328 server[74756:2203] write Test::A -2008-09-05 18:27:29.328 server[74756:2203] write Test::B -2008-09-05 18:27:29.329 server[74756:2203] write Test::A -2008-09-05 18:27:29.329 server[74756:2203] write Test::B -2008-09-05 18:27:29.329 server[74756:2203] write Test::A -2008-09-05 18:27:29.330 server[74756:2203] write Test::B -2008-09-05 18:27:29.330 server[74756:2203] write Test::A -2008-09-05 18:27:29.331 server[74756:2203] write Test::B -2008-09-05 18:27:29.331 server[74756:2203] write Test::A -2008-09-05 18:27:29.331 server[74756:2203] write Test::B -2008-09-05 18:27:29.332 server[74756:2203] write Test::A -2008-09-05 18:27:29.332 server[74756:2203] write Test::B -2008-09-05 18:27:29.332 server[74756:2203] write Test::A -2008-09-05 18:27:29.333 server[74756:2203] write Test::B -2008-09-05 18:27:29.333 server[74756:2203] write Test::A -2008-09-05 18:27:29.333 server[74756:2203] write Test::B -2008-09-05 18:27:29.334 server[74756:2203] write Test::A -2008-09-05 18:27:29.334 server[74756:2203] write Test::B -2008-09-05 18:27:29.334 server[74756:2203] write Test::A -2008-09-05 18:27:29.335 server[74756:2203] write Test::B -2008-09-05 18:27:29.335 server[74756:2203] write Test::A -2008-09-05 18:27:29.336 server[74756:2203] write Test::B -2008-09-05 18:27:29.336 server[74756:2203] write Test::A -2008-09-05 18:27:29.336 server[74756:2203] write Test::B -2008-09-05 18:27:29.338 server[74756:2203] write Test::A -2008-09-05 18:27:29.339 server[74756:2203] write Test::B -2008-09-05 18:27:29.339 server[74756:2203] write Test::A -2008-09-05 18:27:29.339 server[74756:2203] write Test::B -2008-09-05 18:27:29.340 server[74756:2203] write Test::A -2008-09-05 18:27:29.340 server[74756:2203] write Test::B -2008-09-05 18:27:29.341 server[74756:2203] write Test::A -2008-09-05 18:27:29.341 server[74756:2203] write Test::B -2008-09-05 18:27:29.341 server[74756:2203] write Test::A -2008-09-05 18:27:29.342 server[74756:2203] write Test::B -2008-09-05 18:27:29.342 server[74756:2203] write Test::A -2008-09-05 18:27:29.343 server[74756:2203] write Test::B -2008-09-05 18:27:29.343 server[74756:2203] write Test::A -2008-09-05 18:27:29.343 server[74756:2203] write Test::B -2008-09-05 18:27:29.344 server[74756:2203] write Test::A -2008-09-05 18:27:29.344 server[74756:2203] write Test::B -2008-09-05 18:27:29.344 server[74756:2203] write Test::A -2008-09-05 18:27:29.345 server[74756:2203] write Test::B -2008-09-05 18:27:29.345 server[74756:2203] write Test::A -2008-09-05 18:27:29.346 server[74756:2203] write Test::B -2008-09-05 18:27:29.346 server[74756:2203] write Test::A -2008-09-05 18:27:29.346 server[74756:2203] write Test::B -2008-09-05 18:27:29.347 server[74756:2203] write Test::A -2008-09-05 18:27:29.347 server[74756:2203] write Test::B -2008-09-05 18:27:29.348 server[74756:2203] write Test::A -2008-09-05 18:27:29.348 server[74756:2203] write Test::B -2008-09-05 18:27:29.348 server[74756:2203] write Test::A -2008-09-05 18:27:29.349 server[74756:2203] write Test::B -2008-09-05 18:27:29.349 server[74756:2203] write Test::A -2008-09-05 18:27:29.350 server[74756:2203] write Test::B -2008-09-05 18:27:29.350 server[74756:2203] write Test::A -2008-09-05 18:27:29.350 server[74756:2203] write Test::B -2008-09-05 18:27:29.351 server[74756:2203] write Test::A -2008-09-05 18:27:29.351 server[74756:2203] write Test::B -2008-09-05 18:27:29.352 server[74756:2203] write Test::A -2008-09-05 18:27:29.352 server[74756:2203] write Test::B -2008-09-05 18:27:29.352 server[74756:2203] write Test::A -2008-09-05 18:27:29.353 server[74756:2203] write Test::B -2008-09-05 18:27:29.353 server[74756:2203] write Test::A -2008-09-05 18:27:29.354 server[74756:2203] write Test::B -2008-09-05 18:27:29.354 server[74756:2203] write Test::A -2008-09-05 18:27:29.354 server[74756:2203] write Test::B -2008-09-05 18:27:29.355 server[74756:2203] write Test::A -2008-09-05 18:27:29.355 server[74756:2203] write Test::B -2008-09-05 18:27:29.355 server[74756:2203] write Test::A -2008-09-05 18:27:29.356 server[74756:2203] write Test::B -2008-09-05 18:27:29.356 server[74756:2203] write Test::A -2008-09-05 18:27:29.357 server[74756:2203] write Test::B -2008-09-05 18:27:29.357 server[74756:2203] write Test::A -2008-09-05 18:27:29.357 server[74756:2203] write Test::B -2008-09-05 18:27:29.358 server[74756:2203] write Test::A -2008-09-05 18:27:29.359 server[74756:2203] write Test::B -2008-09-05 18:27:29.359 server[74756:2203] write Test::A -2008-09-05 18:27:29.359 server[74756:2203] write Test::B -2008-09-05 18:27:29.360 server[74756:2203] write Test::A -2008-09-05 18:27:29.360 server[74756:2203] write Test::B -2008-09-05 18:27:29.361 server[74756:2203] write Test::A -2008-09-05 18:27:29.362 server[74756:2203] write Test::B -2008-09-05 18:27:29.362 server[74756:2203] write Test::A -2008-09-05 18:27:29.362 server[74756:2203] write Test::B -2008-09-05 18:27:29.363 server[74756:2203] write Test::A -2008-09-05 18:27:29.363 server[74756:2203] write Test::B -2008-09-05 18:27:29.364 server[74756:2203] write Test::A -2008-09-05 18:27:29.364 server[74756:2203] write Test::B -2008-09-05 18:27:29.364 server[74756:2203] write Test::A -2008-09-05 18:27:29.366 server[74756:2203] write Test::B -2008-09-05 18:27:29.366 server[74756:2203] write Test::A -2008-09-05 18:27:29.367 server[74756:2203] write Test::B -2008-09-05 18:27:29.367 server[74756:2203] write Test::A -2008-09-05 18:27:29.368 server[74756:2203] write Test::B -2008-09-05 18:27:29.368 server[74756:2203] write Test::A -2008-09-05 18:27:29.368 server[74756:2203] write Test::B -2008-09-05 18:27:29.369 server[74756:2203] write Test::A -2008-09-05 18:27:29.369 server[74756:2203] write Test::B -2008-09-05 18:27:29.370 server[74756:2203] write Test::A -2008-09-05 18:27:29.370 server[74756:2203] write Test::B -2008-09-05 18:27:29.370 server[74756:2203] write Test::A -2008-09-05 18:27:29.371 server[74756:2203] write Test::B -2008-09-05 18:27:29.371 server[74756:2203] write Test::A -2008-09-05 18:27:29.371 server[74756:2203] write Test::B -2008-09-05 18:27:29.372 server[74756:2203] write Test::A -2008-09-05 18:27:29.372 server[74756:2203] write Test::B -2008-09-05 18:27:29.373 server[74756:2203] write Test::A -2008-09-05 18:27:29.373 server[74756:2203] write Test::B -2008-09-05 18:27:29.373 server[74756:2203] write Test::A -2008-09-05 18:27:29.374 server[74756:2203] write Test::B -2008-09-05 18:27:29.374 server[74756:2203] write Test::A -2008-09-05 18:27:29.375 server[74756:2203] write Test::B -2008-09-05 18:27:29.375 server[74756:2203] write Test::A -2008-09-05 18:27:29.375 server[74756:2203] write Test::B -2008-09-05 18:27:29.376 server[74756:2203] write Test::A -2008-09-05 18:27:29.376 server[74756:2203] write Test::B -2008-09-05 18:27:29.377 server[74756:2203] write Test::A -2008-09-05 18:27:29.377 server[74756:2203] write Test::B -2008-09-05 18:27:29.377 server[74756:2203] write Test::A -2008-09-05 18:27:29.378 server[74756:2203] write Test::B -2008-09-05 18:27:29.378 server[74756:2203] write Test::A -2008-09-05 18:27:29.379 server[74756:2203] write Test::B -2008-09-05 18:27:29.379 server[74756:2203] write Test::A -2008-09-05 18:27:29.379 server[74756:2203] write Test::B -2008-09-05 18:27:29.380 server[74756:2203] write Test::A -2008-09-05 18:27:29.380 server[74756:2203] write Test::B -2008-09-05 18:27:29.381 server[74756:2203] write Test::A -2008-09-05 18:27:29.381 server[74756:2203] write Test::B -2008-09-05 18:27:29.381 server[74756:2203] write Test::A -2008-09-05 18:27:29.382 server[74756:2203] write Test::B -2008-09-05 18:27:29.382 server[74756:2203] write Test::A -2008-09-05 18:27:29.382 server[74756:2203] write Test::B -2008-09-05 18:27:29.383 server[74756:2203] write Test::A -2008-09-05 18:27:29.383 server[74756:2203] write Test::B -2008-09-05 18:27:29.384 server[74756:2203] write Test::A -2008-09-05 18:27:29.384 server[74756:2203] write Test::B -2008-09-05 18:27:29.384 server[74756:2203] write Test::A -2008-09-05 18:27:29.385 server[74756:2203] write Test::B -2008-09-05 18:27:29.385 server[74756:2203] write Test::A -2008-09-05 18:27:29.386 server[74756:2203] write Test::B -2008-09-05 18:27:29.386 server[74756:2203] write Test::A -2008-09-05 18:27:29.386 server[74756:2203] write Test::B -2008-09-05 18:27:29.387 server[74756:2203] write Test::A -2008-09-05 18:27:29.388 server[74756:2203] write Test::B -2008-09-05 18:27:29.388 server[74756:2203] write Test::A -2008-09-05 18:27:29.388 server[74756:2203] write Test::B -2008-09-05 18:27:29.389 server[74756:2203] write Test::A -2008-09-05 18:27:29.389 server[74756:2203] write Test::B -2008-09-05 18:27:29.389 server[74756:2203] write Test::A -2008-09-05 18:27:29.390 server[74756:2203] write Test::B -2008-09-05 18:27:29.390 server[74756:2203] write Test::A -2008-09-05 18:27:29.391 server[74756:2203] write Test::B -2008-09-05 18:27:29.391 server[74756:2203] write Test::A -2008-09-05 18:27:29.391 server[74756:2203] write Test::B -2008-09-05 18:27:29.392 server[74756:2203] write Test::A -2008-09-05 18:27:29.392 server[74756:2203] write Test::B -2008-09-05 18:27:29.393 server[74756:2203] write Test::A -2008-09-05 18:27:29.393 server[74756:2203] write Test::B -2008-09-05 18:27:29.393 server[74756:2203] write Test::A -2008-09-05 18:27:29.394 server[74756:2203] write Test::B -2008-09-05 18:27:29.394 server[74756:2203] write Test::A -2008-09-05 18:27:29.395 server[74756:2203] write Test::B -2008-09-05 18:27:29.395 server[74756:2203] write Test::A -2008-09-05 18:27:29.395 server[74756:2203] write Test::B -2008-09-05 18:27:29.396 server[74756:2203] write Test::A -2008-09-05 18:27:29.396 server[74756:2203] write Test::B -2008-09-05 18:27:29.396 server[74756:2203] write Test::A -2008-09-05 18:27:29.397 server[74756:2203] write Test::B -2008-09-05 18:27:29.397 server[74756:2203] write Test::A -2008-09-05 18:27:29.398 server[74756:2203] write Test::B -2008-09-05 18:27:29.398 server[74756:2203] write Test::A -2008-09-05 18:27:29.398 server[74756:2203] write Test::B -2008-09-05 18:27:29.399 server[74756:2203] write Test::A -2008-09-05 18:27:29.399 server[74756:2203] write Test::B -2008-09-05 18:27:29.399 server[74756:2203] write Test::A -2008-09-05 18:27:29.400 server[74756:2203] write Test::B -2008-09-05 18:27:29.400 server[74756:2203] write Test::A -2008-09-05 18:27:29.401 server[74756:2203] write Test::B -2008-09-05 18:27:29.401 server[74756:2203] write Test::A -2008-09-05 18:27:29.401 server[74756:2203] write Test::B -2008-09-05 18:27:29.402 server[74756:2203] write Test::A -2008-09-05 18:27:29.402 server[74756:2203] write Test::B -2008-09-05 18:27:29.402 server[74756:2203] write Test::A -2008-09-05 18:27:29.403 server[74756:2203] write Test::B -2008-09-05 18:27:29.403 server[74756:2203] write Test::A -2008-09-05 18:27:29.403 server[74756:2203] write Test::B -2008-09-05 18:27:29.404 server[74756:2203] write Test::A -2008-09-05 18:27:29.404 server[74756:2203] write Test::B -2008-09-05 18:27:29.405 server[74756:2203] write Test::A -2008-09-05 18:27:29.405 server[74756:2203] write Test::B -2008-09-05 18:27:29.405 server[74756:2203] write Test::A -2008-09-05 18:27:29.406 server[74756:2203] write Test::B -2008-09-05 18:27:29.406 server[74756:2203] write Test::A -2008-09-05 18:27:29.406 server[74756:2203] write Test::B -2008-09-05 18:27:29.407 server[74756:2203] write Test::A -2008-09-05 18:27:29.408 server[74756:2203] write Test::B -2008-09-05 18:27:29.408 server[74756:2203] write Test::A -2008-09-05 18:27:29.409 server[74756:2203] write Test::B -2008-09-05 18:27:29.409 server[74756:2203] write Test::A -2008-09-05 18:27:29.409 server[74756:2203] write Test::B -2008-09-05 18:27:29.410 server[74756:2203] write Test::A -2008-09-05 18:27:29.410 server[74756:2203] write Test::B -2008-09-05 18:27:29.411 server[74756:2203] write Test::A -2008-09-05 18:27:29.411 server[74756:2203] write Test::B -2008-09-05 18:27:29.411 server[74756:2203] write Test::A -2008-09-05 18:27:29.412 server[74756:2203] write Test::B -2008-09-05 18:27:29.412 server[74756:2203] write Test::A -2008-09-05 18:27:29.413 server[74756:2203] write Test::B -2008-09-05 18:27:29.413 server[74756:2203] write Test::A -2008-09-05 18:27:29.413 server[74756:2203] write Test::B -2008-09-05 18:27:29.414 server[74756:2203] write Test::A -2008-09-05 18:27:29.414 server[74756:2203] write Test::B -2008-09-05 18:27:29.415 server[74756:2203] write Test::A -2008-09-05 18:27:29.415 server[74756:2203] write Test::B -2008-09-05 18:27:29.415 server[74756:2203] write Test::A -2008-09-05 18:27:29.416 server[74756:2203] write Test::B -2008-09-05 18:27:29.416 server[74756:2203] write Test::A -2008-09-05 18:27:29.416 server[74756:2203] write Test::B -2008-09-05 18:27:29.417 server[74756:2203] write Test::A -2008-09-05 18:27:29.417 server[74756:2203] write Test::B -2008-09-05 18:27:29.418 server[74756:2203] write Test::A -2008-09-05 18:27:29.418 server[74756:2203] write Test::B -2008-09-05 18:27:29.418 server[74756:2203] write Test::A -2008-09-05 18:27:29.419 server[74756:2203] write Test::B -2008-09-05 18:27:29.419 server[74756:2203] write Test::A -2008-09-05 18:27:29.419 server[74756:2203] write Test::B -2008-09-05 18:27:29.420 server[74756:2203] write Test::A -2008-09-05 18:27:29.420 server[74756:2203] write Test::B -2008-09-05 18:27:29.420 server[74756:2203] write Test::A -2008-09-05 18:27:29.421 server[74756:2203] write Test::B -2008-09-05 18:27:29.421 server[74756:2203] write Test::A -2008-09-05 18:27:29.421 server[74756:2203] write Test::B -2008-09-05 18:27:29.422 server[74756:2203] write Test::A -2008-09-05 18:27:29.422 server[74756:2203] write Test::B -2008-09-05 18:27:29.423 server[74756:2203] write Test::A -2008-09-05 18:27:29.423 server[74756:2203] write Test::B -2008-09-05 18:27:29.423 server[74756:2203] write Test::A -2008-09-05 18:27:29.424 server[74756:2203] write Test::B -2008-09-05 18:27:29.424 server[74756:2203] write Test::A -2008-09-05 18:27:29.424 server[74756:2203] write Test::B -2008-09-05 18:27:29.425 server[74756:2203] write Test::A -2008-09-05 18:27:29.425 server[74756:2203] write Test::B -2008-09-05 18:27:29.425 server[74756:2203] write Test::A -2008-09-05 18:27:29.426 server[74756:2203] write Test::B -2008-09-05 18:27:29.426 server[74756:2203] write Test::A -2008-09-05 18:27:29.427 server[74756:2203] write Test::B -2008-09-05 18:27:29.427 server[74756:2203] write Test::A -2008-09-05 18:27:29.427 server[74756:2203] write Test::B -2008-09-05 18:27:29.428 server[74756:2203] write Test::A -2008-09-05 18:27:29.428 server[74756:2203] write Test::B -2008-09-05 18:27:29.428 server[74756:2203] write Test::A -2008-09-05 18:27:29.429 server[74756:2203] write Test::B -2008-09-05 18:27:29.429 server[74756:2203] write Test::A -2008-09-05 18:27:29.430 server[74756:2203] write Test::B -2008-09-05 18:27:29.430 server[74756:2203] write Test::A -2008-09-05 18:27:29.431 server[74756:2203] write Test::B -2008-09-05 18:27:29.431 server[74756:2203] write Test::A -2008-09-05 18:27:29.431 server[74756:2203] write Test::B -2008-09-05 18:27:29.432 server[74756:2203] write Test::A -2008-09-05 18:27:29.432 server[74756:2203] write Test::B -2008-09-05 18:27:29.432 server[74756:2203] write Test::A -2008-09-05 18:27:29.433 server[74756:2203] write Test::B -2008-09-05 18:27:29.433 server[74756:2203] write Test::A -2008-09-05 18:27:29.433 server[74756:2203] write Test::B -2008-09-05 18:27:29.434 server[74756:2203] write Test::A -2008-09-05 18:27:29.434 server[74756:2203] write Test::B -2008-09-05 18:27:29.434 server[74756:2203] write Test::A -2008-09-05 18:27:29.435 server[74756:2203] write Test::B -2008-09-05 18:27:29.435 server[74756:2203] write Test::A -2008-09-05 18:27:29.436 server[74756:2203] write Test::B -2008-09-05 18:27:29.436 server[74756:2203] write Test::A -2008-09-05 18:27:29.436 server[74756:2203] write Test::B -2008-09-05 18:27:29.437 server[74756:2203] write Test::A -2008-09-05 18:27:29.437 server[74756:2203] write Test::B -2008-09-05 18:27:29.438 server[74756:2203] write Test::A -2008-09-05 18:27:29.438 server[74756:2203] write Test::B -2008-09-05 18:27:29.438 server[74756:2203] write Test::A -2008-09-05 18:27:29.439 server[74756:2203] write Test::B -2008-09-05 18:27:29.439 server[74756:2203] write Test::A -2008-09-05 18:27:29.439 server[74756:2203] write Test::B -2008-09-05 18:27:29.440 server[74756:2203] write Test::A -2008-09-05 18:27:29.440 server[74756:2203] write Test::B -2008-09-05 18:27:29.441 server[74756:2203] write Test::A -2008-09-05 18:27:29.441 server[74756:2203] write Test::B -2008-09-05 18:27:29.441 server[74756:2203] write Test::A -2008-09-05 18:27:29.442 server[74756:2203] write Test::B -2008-09-05 18:27:29.442 server[74756:2203] write Test::A -2008-09-05 18:27:29.442 server[74756:2203] write Test::B -2008-09-05 18:27:29.443 server[74756:2203] write Test::A -2008-09-05 18:27:29.443 server[74756:2203] write Test::B -2008-09-05 18:27:29.443 server[74756:2203] write Test::A -2008-09-05 18:27:29.444 server[74756:2203] write Test::B -2008-09-05 18:27:29.444 server[74756:2203] write Test::A -2008-09-05 18:27:29.445 server[74756:2203] write Test::B -2008-09-05 18:27:29.445 server[74756:2203] write Test::A -2008-09-05 18:27:29.445 server[74756:2203] write Test::B -2008-09-05 18:27:29.446 server[74756:2203] write Test::A -2008-09-05 18:27:29.446 server[74756:2203] write Test::B -2008-09-05 18:27:29.446 server[74756:2203] write Test::A -2008-09-05 18:27:29.447 server[74756:2203] write Test::B -2008-09-05 18:27:29.447 server[74756:2203] write Test::A -2008-09-05 18:27:29.448 server[74756:2203] write Test::B -2008-09-05 18:27:29.448 server[74756:2203] write Test::A -2008-09-05 18:27:29.448 server[74756:2203] write Test::B -2008-09-05 18:27:29.449 server[74756:2203] write Test::A -2008-09-05 18:27:29.449 server[74756:2203] write Test::B -2008-09-05 18:27:29.449 server[74756:2203] write Test::A -2008-09-05 18:27:29.450 server[74756:2203] write Test::B -2008-09-05 18:27:29.450 server[74756:2203] write Test::A -2008-09-05 18:27:29.450 server[74756:2203] write Test::B -2008-09-05 18:27:29.451 server[74756:2203] write Test::A -2008-09-05 18:27:29.451 server[74756:2203] write Test::B -2008-09-05 18:27:29.452 server[74756:2203] write Test::A -2008-09-05 18:27:29.452 server[74756:2203] write Test::B -2008-09-05 18:27:29.452 server[74756:2203] write Test::A -2008-09-05 18:27:29.453 server[74756:2203] write Test::B -2008-09-05 18:27:29.453 server[74756:2203] write Test::A -2008-09-05 18:27:29.453 server[74756:2203] write Test::B -2008-09-05 18:27:29.454 server[74756:2203] write Test::A -2008-09-05 18:27:29.454 server[74756:2203] write Test::B -2008-09-05 18:27:29.454 server[74756:2203] write Test::A -2008-09-05 18:27:29.455 server[74756:2203] write Test::B -2008-09-05 18:27:29.455 server[74756:2203] write Test::A -2008-09-05 18:27:29.456 server[74756:2203] write Test::B -2008-09-05 18:27:29.456 server[74756:2203] write Test::A -2008-09-05 18:27:29.457 server[74756:2203] write Test::B -2008-09-05 18:27:29.457 server[74756:2203] write Test::A -2008-09-05 18:27:29.457 server[74756:2203] write Test::B -2008-09-05 18:27:29.458 server[74756:2203] write Test::A -2008-09-05 18:27:29.458 server[74756:2203] write Test::B -2008-09-05 18:27:29.460 server[74756:2203] write Test::A -2008-09-05 18:27:29.460 server[74756:2203] write Test::B -2008-09-05 18:27:29.461 server[74756:2203] write Test::A -2008-09-05 18:27:29.461 server[74756:2203] write Test::B -2008-09-05 18:27:29.462 server[74756:2203] write Test::A -2008-09-05 18:27:29.462 server[74756:2203] write Test::B -2008-09-05 18:27:29.462 server[74756:2203] write Test::A -2008-09-05 18:27:29.463 server[74756:2203] write Test::B -2008-09-05 18:27:29.463 server[74756:2203] write Test::A -2008-09-05 18:27:29.463 server[74756:2203] write Test::B -2008-09-05 18:27:29.464 server[74756:2203] write Test::A -2008-09-05 18:27:29.464 server[74756:2203] write Test::B -2008-09-05 18:27:29.465 server[74756:2203] write Test::A -2008-09-05 18:27:29.465 server[74756:2203] write Test::B -2008-09-05 18:27:29.465 server[74756:2203] write Test::A -2008-09-05 18:27:29.466 server[74756:2203] write Test::B -2008-09-05 18:27:29.466 server[74756:2203] write Test::A -2008-09-05 18:27:29.467 server[74756:2203] write Test::B -2008-09-05 18:27:29.467 server[74756:2203] write Test::A -2008-09-05 18:27:29.467 server[74756:2203] write Test::B -2008-09-05 18:27:29.468 server[74756:2203] write Test::A -2008-09-05 18:27:29.468 server[74756:2203] write Test::B -2008-09-05 18:27:29.468 server[74756:2203] write Test::A -2008-09-05 18:27:29.469 server[74756:2203] write Test::B -2008-09-05 18:27:29.469 server[74756:2203] write Test::A -2008-09-05 18:27:29.470 server[74756:2203] write Test::B -2008-09-05 18:27:29.470 server[74756:2203] write Test::A -2008-09-05 18:27:29.470 server[74756:2203] write Test::B -2008-09-05 18:27:29.471 server[74756:2203] write Test::A -2008-09-05 18:27:29.471 server[74756:2203] write Test::B -2008-09-05 18:27:29.472 server[74756:2203] write Test::A -2008-09-05 18:27:29.472 server[74756:2203] write Test::B -2008-09-05 18:27:29.472 server[74756:2203] write Test::A -2008-09-05 18:27:29.473 server[74756:2203] write Test::B -2008-09-05 18:27:29.473 server[74756:2203] write Test::A -2008-09-05 18:27:29.473 server[74756:2203] write Test::B -2008-09-05 18:27:29.474 server[74756:2203] write Test::A -2008-09-05 18:27:29.474 server[74756:2203] write Test::B -2008-09-05 18:27:29.475 server[74756:2203] write Test::A -2008-09-05 18:27:29.475 server[74756:2203] write Test::B -2008-09-05 18:27:29.475 server[74756:2203] write Test::A -2008-09-05 18:27:29.476 server[74756:2203] write Test::B -2008-09-05 18:27:29.476 server[74756:2203] write Test::A -2008-09-05 18:27:29.476 server[74756:2203] write Test::B -2008-09-05 18:27:29.477 server[74756:2203] write Test::A -2008-09-05 18:27:29.477 server[74756:2203] write Test::B -2008-09-05 18:27:29.478 server[74756:2203] write Test::A -2008-09-05 18:27:29.478 server[74756:2203] write Test::B -2008-09-05 18:27:29.479 server[74756:2203] write Test::A -2008-09-05 18:27:29.479 server[74756:2203] write Test::B -2008-09-05 18:27:29.479 server[74756:2203] write Test::A -2008-09-05 18:27:29.480 server[74756:2203] write Test::B -2008-09-05 18:27:29.480 server[74756:2203] write Test::A -2008-09-05 18:27:29.480 server[74756:2203] write Test::B -2008-09-05 18:27:29.481 server[74756:2203] write Test::A -2008-09-05 18:27:29.481 server[74756:2203] write Test::B -2008-09-05 18:27:29.482 server[74756:2203] write Test::A -2008-09-05 18:27:29.482 server[74756:2203] write Test::B -2008-09-05 18:27:29.482 server[74756:2203] write Test::A -2008-09-05 18:27:29.483 server[74756:2203] write Test::B -2008-09-05 18:27:29.483 server[74756:2203] write Test::A -2008-09-05 18:27:29.483 server[74756:2203] write Test::B -2008-09-05 18:27:29.484 server[74756:2203] write Test::A -2008-09-05 18:27:29.484 server[74756:2203] write Test::B -2008-09-05 18:27:29.485 server[74756:2203] write Test::A -2008-09-05 18:27:29.485 server[74756:2203] write Test::B -2008-09-05 18:27:29.485 server[74756:2203] write Test::A -2008-09-05 18:27:29.486 server[74756:2203] write Test::B -2008-09-05 18:27:29.486 server[74756:2203] write Test::A -2008-09-05 18:27:29.486 server[74756:2203] write Test::B -2008-09-05 18:27:29.487 server[74756:2203] write Test::A -2008-09-05 18:27:29.487 server[74756:2203] write Test::B -2008-09-05 18:27:29.488 server[74756:2203] write Test::A -2008-09-05 18:27:29.488 server[74756:2203] write Test::B -2008-09-05 18:27:29.488 server[74756:2203] write Test::A -2008-09-05 18:27:29.489 server[74756:2203] write Test::B -2008-09-05 18:27:29.489 server[74756:2203] write Test::A -2008-09-05 18:27:29.490 server[74756:2203] write Test::B -2008-09-05 18:27:29.491 server[74756:2203] write Test::A -2008-09-05 18:27:29.491 server[74756:2203] write Test::B -2008-09-05 18:27:29.491 server[74756:2203] write Test::A -2008-09-05 18:27:29.492 server[74756:2203] write Test::B -2008-09-05 18:27:29.492 server[74756:2203] write Test::A -2008-09-05 18:27:29.492 server[74756:2203] write Test::B -2008-09-05 18:27:29.493 server[74756:2203] write Test::A -2008-09-05 18:27:29.493 server[74756:2203] write Test::B -2008-09-05 18:27:29.494 server[74756:2203] write Test::A -2008-09-05 18:27:29.494 server[74756:2203] write Test::B -2008-09-05 18:27:29.494 server[74756:2203] write Test::A -2008-09-05 18:27:29.495 server[74756:2203] write Test::B -2008-09-05 18:27:29.495 server[74756:2203] write Test::A -2008-09-05 18:27:29.496 server[74756:2203] write Test::B -2008-09-05 18:27:29.496 server[74756:2203] write Test::A -2008-09-05 18:27:29.496 server[74756:2203] write Test::B -2008-09-05 18:27:29.497 server[74756:2203] write Test::A -2008-09-05 18:27:29.497 server[74756:2203] write Test::B -2008-09-05 18:27:29.497 server[74756:2203] write Test::A -2008-09-05 18:27:29.498 server[74756:2203] write Test::B -2008-09-05 18:27:29.498 server[74756:2203] write Test::A -2008-09-05 18:27:29.499 server[74756:2203] write Test::B -2008-09-05 18:27:29.499 server[74756:2203] write Test::A -2008-09-05 18:27:29.499 server[74756:2203] write Test::B -2008-09-05 18:27:29.500 server[74756:2203] write Test::A -2008-09-05 18:27:29.500 server[74756:2203] write Test::B -2008-09-05 18:27:29.501 server[74756:2203] write Test::A -2008-09-05 18:27:29.501 server[74756:2203] write Test::B -2008-09-05 18:27:29.501 server[74756:2203] write Test::A -2008-09-05 18:27:29.502 server[74756:2203] write Test::B -2008-09-05 18:27:29.502 server[74756:2203] write Test::A -2008-09-05 18:27:29.502 server[74756:2203] write Test::B -2008-09-05 18:27:29.503 server[74756:2203] write Test::A -2008-09-05 18:27:29.503 server[74756:2203] write Test::B -2008-09-05 18:27:29.504 server[74756:2203] write Test::A -2008-09-05 18:27:29.504 server[74756:2203] write Test::B -2008-09-05 18:27:29.504 server[74756:2203] write Test::A -2008-09-05 18:27:29.505 server[74756:2203] write Test::B -2008-09-05 18:27:29.505 server[74756:2203] write Test::A -2008-09-05 18:27:29.505 server[74756:2203] write Test::B -2008-09-05 18:27:29.506 server[74756:2203] write Test::A -2008-09-05 18:27:29.506 server[74756:2203] write Test::B -2008-09-05 18:27:29.507 server[74756:2203] write Test::A -2008-09-05 18:27:29.507 server[74756:2203] write Test::B -2008-09-05 18:27:29.507 server[74756:2203] write Test::A -2008-09-05 18:27:29.509 server[74756:2203] write Test::B -2008-09-05 18:27:29.511 server[74756:2203] write Test::A -2008-09-05 18:27:29.512 server[74756:2203] write Test::B -2008-09-05 18:27:29.512 server[74756:2203] write Test::A -2008-09-05 18:27:29.513 server[74756:2203] write Test::B -2008-09-05 18:27:29.513 server[74756:2203] write Test::A -2008-09-05 18:27:29.516 server[74756:2203] write Test::B -2008-09-05 18:27:29.518 server[74756:2203] write Test::A -2008-09-05 18:27:29.520 server[74756:2203] write Test::B -2008-09-05 18:27:29.523 server[74756:2203] write Test::A -2008-09-05 18:27:29.524 server[74756:2203] write Test::B -2008-09-05 18:27:29.526 server[74756:2203] write Test::A -2008-09-05 18:27:29.528 server[74756:2203] write Test::B -2008-09-05 18:27:29.528 server[74756:2203] write Test::A -2008-09-05 18:27:29.530 server[74756:2203] write Test::B -2008-09-05 18:27:29.530 server[74756:2203] write Test::A -2008-09-05 18:27:29.531 server[74756:2203] write Test::B -2008-09-05 18:27:29.531 server[74756:2203] write Test::A -2008-09-05 18:27:29.532 server[74756:2203] write Test::B -2008-09-05 18:27:29.532 server[74756:2203] write Test::A -2008-09-05 18:27:29.533 server[74756:2203] write Test::B -2008-09-05 18:27:29.534 server[74756:2203] write Test::A -2008-09-05 18:27:29.535 server[74756:2203] write Test::B -2008-09-05 18:27:29.538 server[74756:2203] write Test::A -2008-09-05 18:27:29.540 server[74756:2203] write Test::B -2008-09-05 18:27:29.540 server[74756:2203] write Test::A -2008-09-05 18:27:29.540 server[74756:2203] write Test::B -2008-09-05 18:27:29.541 server[74756:2203] write Test::A -2008-09-05 18:27:29.541 server[74756:2203] write Test::B -2008-09-05 18:27:29.541 server[74756:2203] write Test::A -2008-09-05 18:27:29.542 server[74756:2203] write Test::B -2008-09-05 18:27:29.543 server[74756:2203] write Test::A -2008-09-05 18:27:29.544 server[74756:2203] write Test::B -2008-09-05 18:27:29.544 server[74756:2203] write Test::A -2008-09-05 18:27:29.546 server[74756:2203] write Test::B -2008-09-05 18:27:29.546 server[74756:2203] write Test::A -2008-09-05 18:27:29.548 server[74756:2203] write Test::B -2008-09-05 18:27:29.549 server[74756:2203] write Test::A -2008-09-05 18:27:29.549 server[74756:2203] write Test::B -2008-09-05 18:27:29.549 server[74756:2203] write Test::A -2008-09-05 18:27:29.550 server[74756:2203] write Test::B -2008-09-05 18:27:29.550 server[74756:2203] write Test::A -2008-09-05 18:27:29.551 server[74756:2203] write Test::B -2008-09-05 18:27:29.551 server[74756:2203] write Test::A -2008-09-05 18:27:29.552 server[74756:2203] write Test::B -2008-09-05 18:27:29.553 server[74756:2203] write Test::A -2008-09-05 18:27:29.553 server[74756:2203] write Test::B -2008-09-05 18:27:29.554 server[74756:2203] write Test::A -2008-09-05 18:27:29.555 server[74756:2203] write Test::B -2008-09-05 18:27:29.556 server[74756:2203] write Test::A -2008-09-05 18:27:29.558 server[74756:2203] write Test::B -2008-09-05 18:27:29.558 server[74756:2203] write Test::A -2008-09-05 18:27:29.558 server[74756:2203] write Test::B -2008-09-05 18:27:29.559 server[74756:2203] write Test::A -2008-09-05 18:27:29.559 server[74756:2203] write Test::B -2008-09-05 18:27:29.560 server[74756:2203] write Test::A -2008-09-05 18:27:29.562 server[74756:2203] write Test::B -2008-09-05 18:27:29.562 server[74756:2203] write Test::A -2008-09-05 18:27:29.563 server[74756:2203] write Test::B -2008-09-05 18:27:29.563 server[74756:2203] write Test::A -2008-09-05 18:27:29.564 server[74756:2203] write Test::B -2008-09-05 18:27:29.564 server[74756:2203] write Test::A -2008-09-05 18:27:29.565 server[74756:2203] write Test::B -2008-09-05 18:27:29.566 server[74756:2203] write Test::A -2008-09-05 18:27:29.567 server[74756:2203] write Test::B -2008-09-05 18:27:29.567 server[74756:2203] write Test::A -2008-09-05 18:27:29.568 server[74756:2203] write Test::B -2008-09-05 18:27:29.570 server[74756:2203] write Test::A -2008-09-05 18:27:29.570 server[74756:2203] write Test::B -2008-09-05 18:27:29.571 server[74756:2203] write Test::A -2008-09-05 18:27:29.571 server[74756:2203] write Test::B -2008-09-05 18:27:29.571 server[74756:2203] write Test::A -2008-09-05 18:27:29.572 server[74756:2203] write Test::B -2008-09-05 18:27:29.573 server[74756:2203] write Test::A -2008-09-05 18:27:29.573 server[74756:2203] write Test::B -2008-09-05 18:27:29.573 server[74756:2203] write Test::A -2008-09-05 18:27:29.574 server[74756:2203] write Test::B -2008-09-05 18:27:29.574 server[74756:2203] write Test::A -2008-09-05 18:27:29.575 server[74756:2203] write Test::B -2008-09-05 18:27:29.576 server[74756:2203] write Test::A -2008-09-05 18:27:29.576 server[74756:2203] write Test::B -2008-09-05 18:27:29.577 server[74756:2203] write Test::A -2008-09-05 18:27:29.578 server[74756:2203] write Test::B -2008-09-05 18:27:29.578 server[74756:2203] write Test::A -2008-09-05 18:27:29.579 server[74756:2203] write Test::B -2008-09-05 18:27:29.580 server[74756:2203] write Test::A -2008-09-05 18:27:29.581 server[74756:2203] write Test::B -2008-09-05 18:27:29.581 server[74756:2203] write Test::A -2008-09-05 18:27:29.582 server[74756:2203] write Test::B -2008-09-05 18:27:29.582 server[74756:2203] write Test::A -2008-09-05 18:27:29.583 server[74756:2203] write Test::B -2008-09-05 18:27:29.583 server[74756:2203] write Test::A -2008-09-05 18:27:29.584 server[74756:2203] write Test::B -2008-09-05 18:27:29.584 server[74756:2203] write Test::A -2008-09-05 18:27:29.585 server[74756:2203] write Test::B -2008-09-05 18:27:29.585 server[74756:2203] write Test::A -2008-09-05 18:27:29.586 server[74756:2203] write Test::B -2008-09-05 18:27:29.587 server[74756:2203] write Test::A -2008-09-05 18:27:29.587 server[74756:2203] write Test::B -2008-09-05 18:27:29.588 server[74756:2203] write Test::A -2008-09-05 18:27:29.588 server[74756:2203] write Test::B -2008-09-05 18:27:29.589 server[74756:2203] write Test::A -2008-09-05 18:27:29.589 server[74756:2203] write Test::B -2008-09-05 18:27:29.590 server[74756:2203] write Test::A -2008-09-05 18:27:29.590 server[74756:2203] write Test::B -2008-09-05 18:27:29.591 server[74756:2203] write Test::A -2008-09-05 18:27:29.591 server[74756:2203] write Test::B -2008-09-05 18:27:29.592 server[74756:2203] write Test::A -2008-09-05 18:27:29.592 server[74756:2203] write Test::B -2008-09-05 18:27:29.593 server[74756:2203] write Test::A -2008-09-05 18:27:29.593 server[74756:2203] write Test::B -2008-09-05 18:27:29.594 server[74756:2203] write Test::A -2008-09-05 18:27:29.594 server[74756:2203] write Test::B -2008-09-05 18:27:29.595 server[74756:2203] write Test::A -2008-09-05 18:27:29.595 server[74756:2203] write Test::B -2008-09-05 18:27:29.596 server[74756:2203] write Test::A -2008-09-05 18:27:29.596 server[74756:2203] write Test::B -2008-09-05 18:27:29.597 server[74756:2203] write Test::A -2008-09-05 18:27:29.597 server[74756:2203] write Test::B -2008-09-05 18:27:29.598 server[74756:2203] write Test::A -2008-09-05 18:27:29.598 server[74756:2203] write Test::B -2008-09-05 18:27:29.599 server[74756:2203] write Test::A -2008-09-05 18:27:29.599 server[74756:2203] write Test::B -2008-09-05 18:27:29.600 server[74756:2203] write Test::A -2008-09-05 18:27:29.600 server[74756:2203] write Test::B -2008-09-05 18:27:29.601 server[74756:2203] write Test::A -2008-09-05 18:27:29.601 server[74756:2203] write Test::B -2008-09-05 18:27:29.602 server[74756:2203] write Test::A -2008-09-05 18:27:29.602 server[74756:2203] write Test::B -2008-09-05 18:27:29.603 server[74756:2203] write Test::A -2008-09-05 18:27:29.603 server[74756:2203] write Test::B -2008-09-05 18:27:29.604 server[74756:2203] write Test::A -2008-09-05 18:27:29.604 server[74756:2203] write Test::B -2008-09-05 18:27:29.605 server[74756:2203] write Test::A -2008-09-05 18:27:29.605 server[74756:2203] write Test::B -2008-09-05 18:27:29.606 server[74756:2203] write Test::A -2008-09-05 18:27:29.607 server[74756:2203] write Test::B -2008-09-05 18:27:29.607 server[74756:2203] write Test::A -2008-09-05 18:27:29.608 server[74756:2203] write Test::B -2008-09-05 18:27:29.608 server[74756:2203] write Test::A -2008-09-05 18:27:29.609 server[74756:2203] write Test::B -2008-09-05 18:27:29.609 server[74756:2203] write Test::A -2008-09-05 18:27:29.610 server[74756:2203] write Test::B -2008-09-05 18:27:29.611 server[74756:2203] write Test::A -2008-09-05 18:27:29.611 server[74756:2203] write Test::B -2008-09-05 18:27:29.612 server[74756:2203] write Test::A -2008-09-05 18:27:29.612 server[74756:2203] write Test::B -2008-09-05 18:27:29.613 server[74756:2203] write Test::A -2008-09-05 18:27:29.613 server[74756:2203] write Test::B -2008-09-05 18:27:29.614 server[74756:2203] write Test::A -2008-09-05 18:27:29.614 server[74756:2203] write Test::B -2008-09-05 18:27:29.615 server[74756:2203] write Test::A -2008-09-05 18:27:29.615 server[74756:2203] write Test::B -2008-09-05 18:27:29.616 server[74756:2203] write Test::A -2008-09-05 18:27:29.616 server[74756:2203] write Test::B -2008-09-05 18:27:29.617 server[74756:2203] write Test::A -2008-09-05 18:27:29.617 server[74756:2203] write Test::B -2008-09-05 18:27:29.618 server[74756:2203] write Test::A -2008-09-05 18:27:29.618 server[74756:2203] write Test::B -2008-09-05 18:27:29.619 server[74756:2203] write Test::A -2008-09-05 18:27:29.619 server[74756:2203] write Test::B -2008-09-05 18:27:29.620 server[74756:2203] write Test::A -2008-09-05 18:27:29.620 server[74756:2203] write Test::B -2008-09-05 18:27:29.621 server[74756:2203] write Test::A -2008-09-05 18:27:29.621 server[74756:2203] write Test::B -2008-09-05 18:27:29.622 server[74756:2203] write Test::A -2008-09-05 18:27:29.622 server[74756:2203] write Test::B -2008-09-05 18:27:29.623 server[74756:2203] write Test::A -2008-09-05 18:27:29.623 server[74756:2203] write Test::B -2008-09-05 18:27:29.624 server[74756:2203] write Test::A -2008-09-05 18:27:29.624 server[74756:2203] write Test::B -2008-09-05 18:27:29.625 server[74756:2203] write Test::A -2008-09-05 18:27:29.625 server[74756:2203] write Test::B -2008-09-05 18:27:29.626 server[74756:2203] write Test::A -2008-09-05 18:27:29.626 server[74756:2203] write Test::B -2008-09-05 18:27:29.627 server[74756:2203] write Test::A -2008-09-05 18:27:29.627 server[74756:2203] write Test::B -2008-09-05 18:27:29.628 server[74756:2203] write Test::A -2008-09-05 18:27:29.628 server[74756:2203] write Test::B -2008-09-05 18:27:29.629 server[74756:2203] write Test::A -2008-09-05 18:27:29.629 server[74756:2203] write Test::B -2008-09-05 18:27:29.630 server[74756:2203] write Test::A -2008-09-05 18:27:29.630 server[74756:2203] write Test::B -2008-09-05 18:27:29.631 server[74756:2203] write Test::A -2008-09-05 18:27:29.631 server[74756:2203] write Test::B -2008-09-05 18:27:29.632 server[74756:2203] write Test::A -2008-09-05 18:27:29.632 server[74756:2203] write Test::B -2008-09-05 18:27:29.633 server[74756:2203] write Test::A -2008-09-05 18:27:29.633 server[74756:2203] write Test::B -2008-09-05 18:27:29.634 server[74756:2203] write Test::A -2008-09-05 18:27:29.635 server[74756:2203] write Test::B -2008-09-05 18:27:29.635 server[74756:2203] write Test::A -2008-09-05 18:27:29.636 server[74756:2203] write Test::B -2008-09-05 18:27:29.636 server[74756:2203] write Test::A -2008-09-05 18:27:29.637 server[74756:2203] write Test::B -2008-09-05 18:27:29.637 server[74756:2203] write Test::A -2008-09-05 18:27:29.638 server[74756:2203] write Test::B -2008-09-05 18:27:29.638 server[74756:2203] write Test::A -2008-09-05 18:27:29.639 server[74756:2203] write Test::B -2008-09-05 18:27:29.639 server[74756:2203] write Test::A -2008-09-05 18:27:29.640 server[74756:2203] write Test::B -2008-09-05 18:27:29.640 server[74756:2203] write Test::A -2008-09-05 18:27:29.641 server[74756:2203] write Test::B -2008-09-05 18:27:29.641 server[74756:2203] write Test::A -2008-09-05 18:27:29.642 server[74756:2203] write Test::B -2008-09-05 18:27:29.642 server[74756:2203] write Test::A -2008-09-05 18:27:29.642 server[74756:2203] write Test::B -2008-09-05 18:27:29.643 server[74756:2203] write Test::A -2008-09-05 18:27:29.645 server[74756:2203] write Test::B -2008-09-05 18:27:29.645 server[74756:2203] write Test::A -2008-09-05 18:27:29.646 server[74756:2203] write Test::B -2008-09-05 18:27:29.646 server[74756:2203] write Test::A -2008-09-05 18:27:29.647 server[74756:2203] write Test::B -2008-09-05 18:27:29.647 server[74756:2203] write Test::A -2008-09-05 18:27:29.648 server[74756:2203] write Test::B -2008-09-05 18:27:29.648 server[74756:2203] write Test::A -2008-09-05 18:27:29.649 server[74756:2203] write Test::B -2008-09-05 18:27:29.649 server[74756:2203] write Test::A -2008-09-05 18:27:29.650 server[74756:2203] write Test::B -2008-09-05 18:27:29.650 server[74756:2203] write Test::A -2008-09-05 18:27:29.651 server[74756:2203] write Test::B -2008-09-05 18:27:29.651 server[74756:2203] write Test::A -2008-09-05 18:27:29.651 server[74756:2203] write Test::B -2008-09-05 18:27:29.652 server[74756:2203] write Test::A -2008-09-05 18:27:29.652 server[74756:2203] write Test::B -2008-09-05 18:27:29.653 server[74756:2203] write Test::A -2008-09-05 18:27:29.653 server[74756:2203] write Test::B -2008-09-05 18:27:29.654 server[74756:2203] write Test::A -2008-09-05 18:27:29.654 server[74756:2203] write Test::B -2008-09-05 18:27:29.655 server[74756:2203] write Test::A -2008-09-05 18:27:29.655 server[74756:2203] write Test::B -2008-09-05 18:27:29.656 server[74756:2203] write Test::A -2008-09-05 18:27:29.656 server[74756:2203] write Test::B -2008-09-05 18:27:29.657 server[74756:2203] write Test::A -2008-09-05 18:27:29.657 server[74756:2203] write Test::B -2008-09-05 18:27:29.658 server[74756:2203] write Test::A -2008-09-05 18:27:29.658 server[74756:2203] write Test::B -2008-09-05 18:27:29.659 server[74756:2203] write Test::A -2008-09-05 18:27:29.659 server[74756:2203] write Test::B -2008-09-05 18:27:29.660 server[74756:2203] write Test::A -2008-09-05 18:27:29.660 server[74756:2203] write Test::B -2008-09-05 18:27:29.661 server[74756:2203] write Test::A -2008-09-05 18:27:29.661 server[74756:2203] write Test::B -2008-09-05 18:27:29.662 server[74756:2203] write Test::A -2008-09-05 18:27:29.662 server[74756:2203] write Test::B -2008-09-05 18:27:29.663 server[74756:2203] write Test::A -2008-09-05 18:27:29.663 server[74756:2203] write Test::B -2008-09-05 18:27:29.664 server[74756:2203] write Test::A -2008-09-05 18:27:29.664 server[74756:2203] write Test::B -2008-09-05 18:27:29.664 server[74756:2203] write Test::A -2008-09-05 18:27:29.665 server[74756:2203] write Test::B -2008-09-05 18:27:29.665 server[74756:2203] write Test::A -2008-09-05 18:27:29.666 server[74756:2203] write Test::B -2008-09-05 18:27:29.666 server[74756:2203] write Test::A -2008-09-05 18:27:29.667 server[74756:2203] write Test::B -2008-09-05 18:27:29.667 server[74756:2203] write Test::A -2008-09-05 18:27:29.668 server[74756:2203] write Test::B -2008-09-05 18:27:29.668 server[74756:2203] write Test::A -2008-09-05 18:27:29.669 server[74756:2203] write Test::B -2008-09-05 18:27:29.669 server[74756:2203] write Test::A -2008-09-05 18:27:29.670 server[74756:2203] write Test::B -2008-09-05 18:27:29.670 server[74756:2203] write Test::A -2008-09-05 18:27:29.671 server[74756:2203] write Test::B -2008-09-05 18:27:29.671 server[74756:2203] write Test::A -2008-09-05 18:27:29.672 server[74756:2203] write Test::B -2008-09-05 18:27:29.672 server[74756:2203] write Test::A -2008-09-05 18:27:29.673 server[74756:2203] write Test::B -2008-09-05 18:27:29.673 server[74756:2203] write Test::A -2008-09-05 18:27:29.674 server[74756:2203] write Test::B -2008-09-05 18:27:29.674 server[74756:2203] write Test::A -2008-09-05 18:27:29.675 server[74756:2203] write Test::B -2008-09-05 18:27:29.675 server[74756:2203] write Test::A -2008-09-05 18:27:29.675 server[74756:2203] write Test::B -2008-09-05 18:27:29.676 server[74756:2203] write Test::A -2008-09-05 18:27:29.676 server[74756:2203] write Test::B -2008-09-05 18:27:29.677 server[74756:2203] write Test::A -2008-09-05 18:27:29.677 server[74756:2203] write Test::B -2008-09-05 18:27:29.678 server[74756:2203] write Test::A -2008-09-05 18:27:29.678 server[74756:2203] write Test::B -2008-09-05 18:27:29.679 server[74756:2203] write Test::A -2008-09-05 18:27:29.680 server[74756:2203] write Test::B -2008-09-05 18:27:29.680 server[74756:2203] write Test::A -2008-09-05 18:27:29.681 server[74756:2203] write Test::B -2008-09-05 18:27:29.681 server[74756:2203] write Test::A -2008-09-05 18:27:29.682 server[74756:2203] write Test::B -2008-09-05 18:27:29.682 server[74756:2203] write Test::A -2008-09-05 18:27:29.683 server[74756:2203] write Test::B -2008-09-05 18:27:29.683 server[74756:2203] write Test::A -2008-09-05 18:27:29.684 server[74756:2203] write Test::B -2008-09-05 18:27:29.684 server[74756:2203] write Test::A -2008-09-05 18:27:29.685 server[74756:2203] write Test::B -2008-09-05 18:27:29.685 server[74756:2203] write Test::A -2008-09-05 18:27:29.686 server[74756:2203] write Test::B -2008-09-05 18:27:29.686 server[74756:2203] write Test::A -2008-09-05 18:27:29.687 server[74756:2203] write Test::B -2008-09-05 18:27:29.688 server[74756:2203] write Test::A -2008-09-05 18:27:29.688 server[74756:2203] write Test::B -2008-09-05 18:27:29.689 server[74756:2203] write Test::A -2008-09-05 18:27:29.689 server[74756:2203] write Test::B -2008-09-05 18:27:29.690 server[74756:2203] write Test::A -2008-09-05 18:27:29.690 server[74756:2203] write Test::B -2008-09-05 18:27:29.691 server[74756:2203] write Test::A -2008-09-05 18:27:29.691 server[74756:2203] write Test::B -2008-09-05 18:27:29.692 server[74756:2203] write Test::A -2008-09-05 18:27:29.693 server[74756:2203] write Test::B -2008-09-05 18:27:29.693 server[74756:2203] write Test::A -2008-09-05 18:27:29.694 server[74756:2203] write Test::B -2008-09-05 18:27:29.694 server[74756:2203] write Test::A -2008-09-05 18:27:29.695 server[74756:2203] write Test::B -2008-09-05 18:27:29.695 server[74756:2203] write Test::A -2008-09-05 18:27:29.696 server[74756:2203] write Test::B -2008-09-05 18:27:29.696 server[74756:2203] write Test::A -2008-09-05 18:27:29.697 server[74756:2203] write Test::B -2008-09-05 18:27:29.697 server[74756:2203] write Test::A -2008-09-05 18:27:29.698 server[74756:2203] write Test::B -2008-09-05 18:27:29.698 server[74756:2203] write Test::A -2008-09-05 18:27:29.699 server[74756:2203] write Test::B -2008-09-05 18:27:29.699 server[74756:2203] write Test::A -2008-09-05 18:27:29.700 server[74756:2203] write Test::B -2008-09-05 18:27:29.700 server[74756:2203] write Test::A -2008-09-05 18:27:29.701 server[74756:2203] write Test::B -2008-09-05 18:27:29.701 server[74756:2203] write Test::A -2008-09-05 18:27:29.702 server[74756:2203] write Test::B -2008-09-05 18:27:29.702 server[74756:2203] write Test::A -2008-09-05 18:27:29.702 server[74756:2203] write Test::B -2008-09-05 18:27:29.703 server[74756:2203] write Test::A -2008-09-05 18:27:29.703 server[74756:2203] write Test::B -2008-09-05 18:27:29.704 server[74756:2203] write Test::A -2008-09-05 18:27:29.704 server[74756:2203] write Test::B -2008-09-05 18:27:29.705 server[74756:2203] write Test::A -2008-09-05 18:27:29.705 server[74756:2203] write Test::B -2008-09-05 18:27:29.706 server[74756:2203] write Test::A -2008-09-05 18:27:29.706 server[74756:2203] write Test::B -2008-09-05 18:27:29.707 server[74756:2203] write Test::A -2008-09-05 18:27:29.707 server[74756:2203] write Test::B -2008-09-05 18:27:29.708 server[74756:2203] write Test::A -2008-09-05 18:27:29.708 server[74756:2203] write Test::B -2008-09-05 18:27:29.709 server[74756:2203] write Test::A -2008-09-05 18:27:29.709 server[74756:2203] write Test::B -2008-09-05 18:27:29.710 server[74756:2203] write Test::A -2008-09-05 18:27:29.710 server[74756:2203] write Test::B -2008-09-05 18:27:29.711 server[74756:2203] write Test::A -2008-09-05 18:27:29.711 server[74756:2203] write Test::B -2008-09-05 18:27:29.712 server[74756:2203] write Test::A -2008-09-05 18:27:29.712 server[74756:2203] write Test::B -2008-09-05 18:27:29.712 server[74756:2203] write Test::A -2008-09-05 18:27:29.713 server[74756:2203] write Test::B -2008-09-05 18:27:29.713 server[74756:2203] write Test::A -2008-09-05 18:27:29.714 server[74756:2203] write Test::B -2008-09-05 18:27:29.714 server[74756:2203] write Test::A -2008-09-05 18:27:29.715 server[74756:2203] write Test::B -2008-09-05 18:27:29.715 server[74756:2203] write Test::A -2008-09-05 18:27:29.716 server[74756:2203] write Test::B -2008-09-05 18:27:29.716 server[74756:2203] write Test::A -2008-09-05 18:27:29.717 server[74756:2203] write Test::B -2008-09-05 18:27:29.717 server[74756:2203] write Test::A -2008-09-05 18:27:29.718 server[74756:2203] write Test::B -2008-09-05 18:27:29.718 server[74756:2203] write Test::A -2008-09-05 18:27:29.719 server[74756:2203] write Test::B -2008-09-05 18:27:29.719 server[74756:2203] write Test::A -2008-09-05 18:27:29.720 server[74756:2203] write Test::B -2008-09-05 18:27:29.721 server[74756:2203] write Test::A -2008-09-05 18:27:29.721 server[74756:2203] write Test::B -2008-09-05 18:27:29.722 server[74756:2203] write Test::A -Traceback (most recent call last): - File "./run.py", line 26, in <module> - TestUtil.clientServerTest(name) - File "../../../../config/TestUtil.py", line 1067, in clientServerTest - clientServerTestWithOptions(name, "", "") - File "../../../../config/TestUtil.py", line 1063, in clientServerTestWithOptions - getDefaultClientFile()) - File "../../../../config/TestUtil.py", line 1044, in clientServerTestWithOptionsAndNames - printOutputFromPipe(clientPipe) - File "../../../../config/TestUtil.py", line 657, in printOutputFromPipe - c = pipe.read(1) -KeyboardInterrupt -2008-09-05 18:27:29.722 server[74756:2203] write Test::B -2008-09-05 18:27:29.724 server[74756:2203] write Test::A -2008-09-05 18:27:29.725 server[74756:2203] write Test::B -2008-09-05 18:27:29.725 server[74756:2203] write Test::A diff --git a/objective-c/test/Ice/operations/.gitignore b/objective-c/test/Ice/operations/.gitignore deleted file mode 100644 index 0b3e86fe293..00000000000 --- a/objective-c/test/Ice/operations/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -OperationsTest.m -OperationsTest.h diff --git a/objective-c/test/Ice/operations/BatchOneways.m b/objective-c/test/Ice/operations/BatchOneways.m index 40f65ea8d03..781f167fc77 100644 --- a/objective-c/test/Ice/operations/BatchOneways.m +++ b/objective-c/test/Ice/operations/BatchOneways.m @@ -52,7 +52,7 @@ batchOneways(id<TestOperationsMyClassPrx> p) [batch1 ice_ping]; [batch2 ice_ping]; [batch1 ice_flushBatchRequests]; - [[batch1 ice_getConnection] close:NO]; + [[batch1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; [batch1 ice_ping]; [batch2 ice_ping]; @@ -60,7 +60,7 @@ batchOneways(id<TestOperationsMyClassPrx> p) [batch2 ice_getConnection]; [batch1 ice_ping]; - [[batch1 ice_getConnection] close:NO]; + [[batch1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; [batch1 ice_ping]; [batch2 ice_ping]; } diff --git a/objective-c/test/Ice/operations/BatchOnewaysAMI.m b/objective-c/test/Ice/operations/BatchOnewaysAMI.m index 9e0fd7279da..a9002cad0b4 100644 --- a/objective-c/test/Ice/operations/BatchOnewaysAMI.m +++ b/objective-c/test/Ice/operations/BatchOnewaysAMI.m @@ -48,7 +48,7 @@ batchOnewaysAMI(id<TestOperationsMyClassPrx> p) [batch1 end_ice_ping:[batch1 begin_ice_ping]]; [batch2 end_ice_ping:[batch2 begin_ice_ping]]; [batch1 end_ice_flushBatchRequests:[batch1 begin_ice_flushBatchRequests]]; - [[batch1 ice_getConnection] close:NO]; + [[batch1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; [batch1 end_ice_ping:[batch1 begin_ice_ping]]; [batch2 end_ice_ping:[batch2 begin_ice_ping]]; @@ -56,7 +56,7 @@ batchOnewaysAMI(id<TestOperationsMyClassPrx> p) [batch2 ice_getConnection]; [batch1 end_ice_ping:[batch1 begin_ice_ping]]; - [[batch1 ice_getConnection] close:NO]; + [[batch1 ice_getConnection] close:ICEConnectionCloseGracefullyWithWait]; [batch1 end_ice_ping:[batch1 begin_ice_ping]]; [batch2 end_ice_ping:[batch2 begin_ice_ping]]; } diff --git a/objective-c/test/Ice/operations/Client.m b/objective-c/test/Ice/operations/Client.m index 0bb980a59d7..413875f8da8 100644 --- a/objective-c/test/Ice/operations/Client.m +++ b/objective-c/test/Ice/operations/Client.m @@ -38,6 +38,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -64,12 +71,16 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"Ice.MessageSizeMax" value:@"100"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestOperations", @"::Test", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; status = run(communicator); + + // Test multiple communicator destroy calls. + [communicator destroy]; + [communicator destroy]; } @catch(ICEException* ex) { @@ -83,15 +94,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/operations/Collocated.m b/objective-c/test/Ice/operations/Collocated.m index caa982c89db..4ec378f938d 100644 --- a/objective-c/test/Ice/operations/Collocated.m +++ b/objective-c/test/Ice/operations/Collocated.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestOperationsAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestOperationsAdapter"]; id<ICEObjectPrx> prx = [adapter add:[TestOperationsMyDerivedClassI myDerivedClass] - identity:[communicator stringToIdentity:@"test"]]; + identity:[ICEUtil stringToIdentity:@"test"]]; //[adapter activate]; // Don't activate OA to ensure collocation is used. test(![prx ice_getConnection]); @@ -35,6 +35,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -47,7 +54,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"Ice.BatchAutoFlushSize" value:@"100"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestOperations", @"::Test", nil]; #endif @@ -62,15 +69,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } diff --git a/objective-c/test/Ice/operations/Makefile b/objective-c/test/Ice/operations/Makefile deleted file mode 100644 index f6e46b541b6..00000000000 --- a/objective-c/test/Ice/operations/Makefile +++ /dev/null @@ -1,61 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = OperationsTest.o - -COBJS = Client.o \ - AllTests.o \ - Twoways.o \ - TwowaysNewAMI.o \ - Oneways.o \ - OnewaysNewAMI.o \ - BatchOneways.o \ - BatchOnewaysAMI.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o \ - Twoways.o \ - TwowaysNewAMI.o \ - Oneways.o \ - OnewaysNewAMI.o \ - BatchOneways.o \ - BatchOnewaysAMI.o - -OBJS = $(COBJS) \ - $(SOBJS) \ - $(COLOBJS) \ - $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/operations/Makefile.mk b/objective-c/test/Ice/operations/Makefile.mk new file mode 100644 index 00000000000..4819b3721d1 --- /dev/null +++ b/objective-c/test/Ice/operations/Makefile.mk @@ -0,0 +1,18 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_client_sources = $(test-client-sources) \ + Twoways.m \ + TwowaysNewAMI.m \ + Oneways.m \ + OnewaysNewAMI.m \ + BatchOneways.m \ + BatchOnewaysAMI.m + +tests += $(test) diff --git a/objective-c/test/Ice/operations/OperationsTest.ice b/objective-c/test/Ice/operations/OperationsTest.ice index 8f7248ce985..f74374c28b0 100644 --- a/objective-c/test/Ice/operations/OperationsTest.ice +++ b/objective-c/test/Ice/operations/OperationsTest.ice @@ -22,7 +22,7 @@ enum MyEnum enum3 }; -class MyClass; +interface MyClass; struct AnotherStruct { @@ -115,7 +115,7 @@ class A // Used Objective-C test only. sequence<A> AS; // Used by Objective-C test only. -class MyClass +interface MyClass { void shutdown(); @@ -281,6 +281,15 @@ class MyClass StringS opStringLiterals(); StringS opWStringLiterals(); + ["marshaled-result"] Structure opMStruct1(); + ["marshaled-result"] Structure opMStruct2(Structure p1, out Structure p2); + + ["marshaled-result"] StringS opMSeq1(); + ["marshaled-result"] StringS opMSeq2(StringS p1, out StringS p2); + + ["marshaled-result"] StringStringD opMDict1(); + ["marshaled-result"] StringStringD opMDict2(StringStringD p1, out StringStringD p2); + // // Operations below are specific to Objective-C // @@ -310,7 +319,7 @@ class MyClass1 string myClass1; // Same name as the enclosing class }; -class MyDerivedClass extends MyClass +interface MyDerivedClass extends MyClass { void opDerived(); MyClass1 opMyClass1(MyClass1 c); @@ -360,9 +369,9 @@ const string sw10 = "\U00000DA7"; // Sinhala Letter Alpapraa \v vertical tab byte 0x0b in ASCII encoding **/ -const string ss0 = "\'\"\?\\\a\b\f\n\r\t\v"; -const string ss1 = "\u0027\u0022\u003f\u005c\u0007\u0008\u000c\u000a\u000d\u0009\u000b"; -const string ss2 = "\U00000027\U00000022\U0000003f\U0000005c\U00000007\U00000008\U0000000c\U0000000a\U0000000d\U00000009\U0000000b"; +const string ss0 = "\'\"\?\\\a\b\f\n\r\t\v\6"; +const string ss1 = "\u0027\u0022\u003f\u005c\u0007\u0008\u000c\u000a\u000d\u0009\u000b\u0006"; +const string ss2 = "\U00000027\U00000022\U0000003f\U0000005c\U00000007\U00000008\U0000000c\U0000000a\U0000000d\U00000009\U0000000b\U00000006"; const string ss3 = "\\\\U\\u\\"; /* \\U\u\ */ const string ss4 = "\\\u0041\\"; /* \A\ */ diff --git a/objective-c/test/Ice/operations/Server.m b/objective-c/test/Ice/operations/Server.m index 87aee91e47c..b0d35367ea2 100644 --- a/objective-c/test/Ice/operations/Server.m +++ b/objective-c/test/Ice/operations/Server.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestOperationsAdapter.Endpoints" value:@"default -p 12010:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestOperationsAdapter"]; [adapter add:[TestOperationsMyDerivedClassI myDerivedClass] - identity:[communicator stringToIdentity:@"test"]]; + identity:[ICEUtil stringToIdentity:@"test"]]; [adapter activate]; serverReady(communicator); @@ -33,6 +33,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -50,7 +57,7 @@ main(int argc, char* argv[]) // [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestOperations", @"::Test", nil]; #endif @@ -65,15 +72,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } diff --git a/objective-c/test/Ice/operations/TestI.m b/objective-c/test/Ice/operations/TestI.m index 813ac431928..1059d754513 100644 --- a/objective-c/test/Ice/operations/TestI.m +++ b/objective-c/test/Ice/operations/TestI.m @@ -54,8 +54,8 @@ } -(ICELong) opShortIntLong:(ICEShort)p1 p2:(ICEInt)p2 p3:(ICELong)p3 - p4:(ICEShort *)p4 p5:(ICEInt *)p5 p6:(ICELong *)p6 - current:(ICECurrent *)current + p4:(ICEShort *)p4 p5:(ICEInt *)p5 p6:(ICELong *)p6 + current:(ICECurrent *)current { *p4 = p1; *p5 = p2; @@ -64,7 +64,7 @@ } -(ICEDouble) opFloatDouble:(ICEFloat)p1 p2:(ICEDouble)p2 p3:(ICEFloat *)p3 p4:(ICEDouble *)p4 - current:(ICECurrent *)current + current:(ICECurrent *)current { *p3 = p1; *p4 = p2; @@ -97,8 +97,7 @@ { *p2 = p1; *p3 = [TestOperationsMyClassPrx uncheckedCast:[current.adapter - createProxy:[[current.adapter getCommunicator] - stringToIdentity:@"noSuchIdentity"]]]; + createProxy:[ICEUtil stringToIdentity:@"noSuchIdentity"]]]; return [TestOperationsMyClassPrx uncheckedCast:[current.adapter createProxy:[current id_]]]; } @@ -145,7 +144,7 @@ -(TestOperationsLongS *) opShortIntLongS:(TestOperationsMutableShortS *)p1 p2:(TestOperationsMutableIntS *)p2 p3:(TestOperationsMutableLongS *)p3 p4:(TestOperationsShortS **)p4 p5:(TestOperationsIntS **)p5 p6:(TestOperationsLongS **)p6 - current:(ICECurrent *)current + current:(ICECurrent *)current { *p4 = [TestOperationsMutableShortS dataWithData:p1]; *p5 = [TestOperationsMutableIntS dataWithLength:[p2 length]]; @@ -265,7 +264,7 @@ -(TestOperationsLongSS *) opShortIntLongSS:(TestOperationsMutableShortSS *)p1 p2:(TestOperationsMutableIntSS *)p2 p3:(TestOperationsMutableLongSS *)p3 p4:(TestOperationsShortSS **)p4 p5:(TestOperationsIntSS **)p5 p6:(TestOperationsLongSS **)p6 - current:(ICECurrent *)current + current:(ICECurrent *)current { *p4 = [TestOperationsShortSS arrayWithArray:p1]; *p5 = [TestOperationsMutableIntSS array]; @@ -609,7 +608,7 @@ int *target = (int *)[r bytes]; while(count-- > 0) { - *target++ = -*src++; + *target++ = -*src++; } return r; } @@ -649,7 +648,7 @@ int i; for(i = 0; i < [p2 length] / sizeof(ICEDouble); ++i) { - test(p[i] == d); + test(p[i] == d); } } @@ -764,6 +763,41 @@ return [self opStringLiterals:current]; } +-(TestOperationsStructure*) opMStruct1:(ICECurrent *)current +{ + return [TestOperationsStructure structure]; +} +-(TestOperationsStructure*) opMStruct2:(TestOperationsStructure*)p1 p2:(TestOperationsStructure**)p2 + current:(ICECurrent *)current +{ + *p2 = p1; + return p1; +} + +-(TestOperationsStringS*) opMSeq1:(ICECurrent *)current +{ + return [TestOperationsStringS array]; +} + +-(TestOperationsStringS*) opMSeq2:(TestOperationsMutableStringS*)p1 p2:(TestOperationsStringS**)p2 + current:(ICECurrent *)current +{ + *p2 = p1; + return p1; +} + +-(TestOperationsStringStringD*) opMDict1:(ICECurrent *)current +{ + return [TestOperationsStringStringD dictionary]; +} + +-(TestOperationsStringStringD*) opMDict2:(TestOperationsMutableStringStringD*)p1 p2:(TestOperationsStringStringD**)p2 + current:(ICECurrent *)current +{ + *p2 = p1; + return p1; +} + -(TestOperationsMyClass1*) opMyClass1:(TestOperationsMyClass1*)p current:(ICECurrent*)current { return p; diff --git a/objective-c/test/Ice/operations/Twoways.m b/objective-c/test/Ice/operations/Twoways.m index 606a61b4a53..f3d9dcb37d5 100644 --- a/objective-c/test/Ice/operations/Twoways.m +++ b/objective-c/test/Ice/operations/Twoways.m @@ -82,10 +82,10 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) { { TestOperationsStringS *literals = [p opStringLiterals]; - + test([TestOperationss0 isEqualToString:[literals objectAtIndex: 0]]); - - + + test([TestOperationss0 isEqualToString:@"\\"] && [TestOperationss0 isEqualToString:TestOperationssw0] && [TestOperationss0 isEqualToString:[literals objectAtIndex:0]] && @@ -95,7 +95,7 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) [TestOperationss1 isEqualToString:TestOperationssw1] && [TestOperationss1 isEqualToString:[literals objectAtIndex:1]] && [TestOperationss1 isEqualToString:[literals objectAtIndex:12]]); - + test([TestOperationss2 isEqualToString:@"Ice"] && [TestOperationss2 isEqualToString:TestOperationssw2] && [TestOperationss2 isEqualToString:[literals objectAtIndex:2]] && @@ -110,7 +110,7 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) [TestOperationss4 isEqualToString:TestOperationssw4] && [TestOperationss4 isEqualToString:[literals objectAtIndex:4]] && [TestOperationss4 isEqualToString:[literals objectAtIndex:15]]); - + test([TestOperationss5 isEqualToString:@"ÿ"] && [TestOperationss5 isEqualToString:TestOperationssw5] && [TestOperationss5 isEqualToString:[literals objectAtIndex:5]] && @@ -135,13 +135,13 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) [TestOperationss9 isEqualToString:TestOperationssw9] && [TestOperationss9 isEqualToString:[literals objectAtIndex:9]] && [TestOperationss9 isEqualToString:[literals objectAtIndex:20]]); - + test([TestOperationss10 isEqualToString:@"à¶§"] && [TestOperationss10 isEqualToString:TestOperationssw10] && [TestOperationss10 isEqualToString:[literals objectAtIndex:10]] && [TestOperationss10 isEqualToString:[literals objectAtIndex:21]]); - - test([TestOperationsss0 isEqualToString:@"\'\"\?\\\a\b\f\n\r\t\v"] && + + test([TestOperationsss0 isEqualToString:@"\'\"\?\\\a\b\f\n\r\t\v\6"] && [TestOperationsss0 isEqualToString:TestOperationsss1] && [TestOperationsss0 isEqualToString:TestOperationsss2] && [TestOperationsss0 isEqualToString:[literals objectAtIndex:22]] && @@ -188,75 +188,75 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) { ICEShort s; - ICEInt i; - ICELong l; - ICELong r; + ICEInt i; + ICELong l; + ICELong r; - r = [p opShortIntLong:10 p2:11 p3:12 p4:&s p5:&i p6:&l]; - test(s == 10); - test(i == 11); - test(l == 12); - test(r == 12); + r = [p opShortIntLong:10 p2:11 p3:12 p4:&s p5:&i p6:&l]; + test(s == 10); + test(i == 11); + test(l == 12); + test(r == 12); #ifndef SHORT_MIN #define SHORT_MIN (-0x7fff) #endif - r = [p opShortIntLong:SHORT_MIN p2:INT_MIN p3:LONG_MIN p4:&s p5:&i p6:&l]; - test(s == SHORT_MIN); - test(i == INT_MIN); - test(l == LONG_MIN); - test(r == LONG_MIN); + r = [p opShortIntLong:SHORT_MIN p2:INT_MIN p3:LONG_MIN p4:&s p5:&i p6:&l]; + test(s == SHORT_MIN); + test(i == INT_MIN); + test(l == LONG_MIN); + test(r == LONG_MIN); #ifndef SHORT_MAX #define SHORT_MAX 0x7fff #endif - r = [p opShortIntLong:SHORT_MAX p2:INT_MAX p3:LONG_MAX p4:&s p5:&i p6:&l]; - test(s == SHORT_MAX); - test(i == INT_MAX); - test(l == LONG_MAX); - test(r == LONG_MAX); + r = [p opShortIntLong:SHORT_MAX p2:INT_MAX p3:LONG_MAX p4:&s p5:&i p6:&l]; + test(s == SHORT_MAX); + test(i == INT_MAX); + test(l == LONG_MAX); + test(r == LONG_MAX); } { ICEFloat f; - ICEDouble d; - ICEDouble r; - - r = [p opFloatDouble:3.14f p2:1.1E10 p3:&f p4:&d]; - test(f == 3.14f); - test(d == 1.1E10); - test(r == 1.1E10); - - r = [p opFloatDouble:FLT_MIN p2:DBL_MIN p3:&f p4:&d]; - test(f == FLT_MIN); - test(d == DBL_MIN); - test(r == DBL_MIN); - - r = [p opFloatDouble:FLT_MAX p2:DBL_MAX p3:&f p4:&d]; - test(f == FLT_MAX); - test(d == DBL_MAX); - test(r == DBL_MAX); + ICEDouble d; + ICEDouble r; + + r = [p opFloatDouble:3.14f p2:1.1E10 p3:&f p4:&d]; + test(f == 3.14f); + test(d == 1.1E10); + test(r == 1.1E10); + + r = [p opFloatDouble:FLT_MIN p2:DBL_MIN p3:&f p4:&d]; + test(f == FLT_MIN); + test(d == DBL_MIN); + test(r == DBL_MIN); + + r = [p opFloatDouble:FLT_MAX p2:DBL_MAX p3:&f p4:&d]; + test(f == FLT_MAX); + test(d == DBL_MAX); + test(r == DBL_MAX); } { NSMutableString *s = nil; - NSMutableString *r; - - r = [p opString:@"hello" p2:@"world" p3:&s]; - r = [p opString:@"hello" p2:@"world" p3:&s]; - r = [p opString:@"hello" p2:@"world" p3:&s]; - r = [p opString:@"hello" p2:@"world" p3:&s]; - test([s isEqualToString:@"world hello"]); - test([r isEqualToString:@"hello world"]); + NSMutableString *r; + + r = [p opString:@"hello" p2:@"world" p3:&s]; + r = [p opString:@"hello" p2:@"world" p3:&s]; + r = [p opString:@"hello" p2:@"world" p3:&s]; + r = [p opString:@"hello" p2:@"world" p3:&s]; + test([s isEqualToString:@"world hello"]); + test([r isEqualToString:@"hello world"]); } { TestOperationsMyEnum e; - TestOperationsMyEnum r; + TestOperationsMyEnum r; - r = [p opMyEnum:TestOperationsenum2 p2:&e]; - test(e == TestOperationsenum2); - test(r == TestOperationsenum3); + r = [p opMyEnum:TestOperationsenum2 p2:&e]; + test(e == TestOperationsenum2); + test(r == TestOperationsenum3); } { @@ -268,9 +268,9 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) test([c1 compareIdentityAndFacet:p] == NSOrderedSame); test([c2 compareIdentityAndFacet:p] != NSOrderedSame); test([r compareIdentityAndFacet:p] == NSOrderedSame); - test([[c1 ice_getIdentity] isEqual:[communicator stringToIdentity:@"test"]]); - test([[c2 ice_getIdentity]isEqual:[communicator stringToIdentity:@"noSuchIdentity"]]); - test([[r ice_getIdentity] isEqual:[communicator stringToIdentity:@"test"]]); + test([[c1 ice_getIdentity] isEqual:[ICEUtil stringToIdentity:@"test"]]); + test([[c2 ice_getIdentity]isEqual:[ICEUtil stringToIdentity:@"noSuchIdentity"]]); + test([[r ice_getIdentity] isEqual:[ICEUtil stringToIdentity:@"test"]]); [r opVoid]; [c1 opVoid]; @try @@ -327,28 +327,28 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) } { - ICEByte buf1[] = { 0x01, 0x11, 0x12, 0x22 }; - ICEByte buf2[] = { 0xf1, 0xf2, 0xf3, 0xf4 }; + ICEByte buf1[] = { 0x01, 0x11, 0x12, 0x22 }; + ICEByte buf2[] = { 0xf1, 0xf2, 0xf3, 0xf4 }; - TestOperationsMutableByteS *bsi1 = [TestOperationsMutableByteS data]; - TestOperationsMutableByteS *bsi2 = [TestOperationsMutableByteS data]; + TestOperationsMutableByteS *bsi1 = [TestOperationsMutableByteS data]; + TestOperationsMutableByteS *bsi2 = [TestOperationsMutableByteS data]; - [bsi1 appendBytes:buf1 length:sizeof(buf1)]; - [bsi2 appendBytes:buf2 length:sizeof(buf2)]; + [bsi1 appendBytes:buf1 length:sizeof(buf1)]; + [bsi2 appendBytes:buf2 length:sizeof(buf2)]; - TestOperationsMutableByteS *bso; - TestOperationsByteS *rso; + TestOperationsMutableByteS *bso; + TestOperationsByteS *rso; - rso = [p opByteS:bsi1 p2:bsi2 p3:&bso]; + rso = [p opByteS:bsi1 p2:bsi2 p3:&bso]; test([bso length] == 4); - ICEByte *bbso = (ICEByte *)[bso bytes]; + ICEByte *bbso = (ICEByte *)[bso bytes]; test(bbso[0] == 0x22); test(bbso[1] == 0x12); test(bbso[2] == 0x11); test(bbso[3] == 0x01); test([rso length] == 8); - ICEByte *brso = (ICEByte *)[rso bytes]; + ICEByte *brso = (ICEByte *)[rso bytes]; test(brso[0] == 0x01); test(brso[1] == 0x11); test(brso[2] == 0x12); @@ -360,106 +360,106 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) } { - BOOL buf1[] = { YES, YES, NO }; - BOOL buf2[] = { NO }; + BOOL buf1[] = { YES, YES, NO }; + BOOL buf2[] = { NO }; - TestOperationsMutableBoolS *bsi1 = [TestOperationsMutableBoolS data]; - TestOperationsMutableBoolS *bsi2 = [TestOperationsMutableBoolS data]; + TestOperationsMutableBoolS *bsi1 = [TestOperationsMutableBoolS data]; + TestOperationsMutableBoolS *bsi2 = [TestOperationsMutableBoolS data]; - [bsi1 appendBytes:buf1 length:sizeof(buf1)]; - [bsi2 appendBytes:buf2 length:sizeof(buf2)]; + [bsi1 appendBytes:buf1 length:sizeof(buf1)]; + [bsi2 appendBytes:buf2 length:sizeof(buf2)]; - TestOperationsMutableBoolS *bso; - TestOperationsBoolS *rso; + TestOperationsMutableBoolS *bso; + TestOperationsBoolS *rso; - rso = [p opBoolS:bsi1 p2:bsi2 p3:&bso]; + rso = [p opBoolS:bsi1 p2:bsi2 p3:&bso]; test([bso length] == 4 * sizeof(BOOL)); - BOOL *bbso = (BOOL *)[bso bytes]; + BOOL *bbso = (BOOL *)[bso bytes]; test(bbso[0]); test(bbso[1]); test(!bbso[2]); test(!bbso[3]); test([rso length] == 3 * sizeof(BOOL)); - BOOL *brso = (BOOL *)[rso bytes]; + BOOL *brso = (BOOL *)[rso bytes]; test(!brso[0]); test(brso[1]); test(brso[2]); } { - ICEShort buf1[] = { 1, 2, 3 }; - ICEInt buf2[] = { 5, 6, 7, 8 }; - ICELong buf3[] = { 10, 30, 20 }; + ICEShort buf1[] = { 1, 2, 3 }; + ICEInt buf2[] = { 5, 6, 7, 8 }; + ICELong buf3[] = { 10, 30, 20 }; - TestOperationsMutableShortS *ssi = [TestOperationsMutableShortS data]; - TestOperationsMutableIntS *isi = [TestOperationsMutableIntS data]; - TestOperationsMutableLongS *lsi = [TestOperationsMutableLongS data]; + TestOperationsMutableShortS *ssi = [TestOperationsMutableShortS data]; + TestOperationsMutableIntS *isi = [TestOperationsMutableIntS data]; + TestOperationsMutableLongS *lsi = [TestOperationsMutableLongS data]; - [ssi appendBytes:buf1 length:sizeof(buf1)]; - [isi appendBytes:buf2 length:sizeof(buf2)]; - [lsi appendBytes:buf3 length:sizeof(buf3)]; + [ssi appendBytes:buf1 length:sizeof(buf1)]; + [isi appendBytes:buf2 length:sizeof(buf2)]; + [lsi appendBytes:buf3 length:sizeof(buf3)]; - TestOperationsMutableShortS *sso; - TestOperationsMutableIntS *iso; - TestOperationsMutableLongS *lso; - TestOperationsLongS *rso; + TestOperationsMutableShortS *sso; + TestOperationsMutableIntS *iso; + TestOperationsMutableLongS *lso; + TestOperationsLongS *rso; - rso = [p opShortIntLongS:ssi p2:isi p3:lsi p4:&sso p5:&iso p6:&lso]; + rso = [p opShortIntLongS:ssi p2:isi p3:lsi p4:&sso p5:&iso p6:&lso]; test([sso length] == 3 * sizeof(ICEShort)); - ICEShort *bsso = (ICEShort *)[sso bytes]; - test(bsso[0] == 1); - test(bsso[1] == 2); - test(bsso[2] == 3); + ICEShort *bsso = (ICEShort *)[sso bytes]; + test(bsso[0] == 1); + test(bsso[1] == 2); + test(bsso[2] == 3); test([iso length] == 4 * sizeof(ICEInt)); - ICEInt *biso = (ICEInt *)[iso bytes]; - test(biso[0] == 8); - test(biso[1] == 7); - test(biso[2] == 6); - test(biso[3] == 5); + ICEInt *biso = (ICEInt *)[iso bytes]; + test(biso[0] == 8); + test(biso[1] == 7); + test(biso[2] == 6); + test(biso[3] == 5); test([lso length] == 6 * sizeof(ICELong)); - ICELong *blso = (ICELong *)[lso bytes]; - test(blso[0] == 10); - test(blso[1] == 30); - test(blso[2] == 20); - test(blso[3] == 10); - test(blso[4] == 30); - test(blso[5] == 20); + ICELong *blso = (ICELong *)[lso bytes]; + test(blso[0] == 10); + test(blso[1] == 30); + test(blso[2] == 20); + test(blso[3] == 10); + test(blso[4] == 30); + test(blso[5] == 20); test([rso length] == 3 * sizeof(ICELong)); - ICELong *brso = (ICELong *)[rso bytes]; - test(brso[0] == 10); - test(brso[1] == 30); - test(brso[2] == 20); + ICELong *brso = (ICELong *)[rso bytes]; + test(brso[0] == 10); + test(brso[1] == 30); + test(brso[2] == 20); } { - ICEFloat buf1[] = { 3.14f, 1.11f }; - ICEDouble buf2[] = { 1.1E10, 1.2E10, 1.3E10 }; + ICEFloat buf1[] = { 3.14f, 1.11f }; + ICEDouble buf2[] = { 1.1E10, 1.2E10, 1.3E10 }; - TestOperationsMutableFloatS *fsi = [TestOperationsMutableFloatS data]; - TestOperationsMutableDoubleS *dsi = [TestOperationsMutableDoubleS data]; + TestOperationsMutableFloatS *fsi = [TestOperationsMutableFloatS data]; + TestOperationsMutableDoubleS *dsi = [TestOperationsMutableDoubleS data]; - [fsi appendBytes:buf1 length:sizeof(buf1)]; - [dsi appendBytes:buf2 length:sizeof(buf2)]; + [fsi appendBytes:buf1 length:sizeof(buf1)]; + [dsi appendBytes:buf2 length:sizeof(buf2)]; - TestOperationsMutableFloatS *fso; - TestOperationsMutableDoubleS *dso; - TestOperationsDoubleS *rso; + TestOperationsMutableFloatS *fso; + TestOperationsMutableDoubleS *dso; + TestOperationsDoubleS *rso; - rso = [p opFloatDoubleS:fsi p2:dsi p3:&fso p4:&dso]; + rso = [p opFloatDoubleS:fsi p2:dsi p3:&fso p4:&dso]; test([fso length] == 2 * sizeof(ICEFloat)); - ICEFloat *bfso = (ICEFloat *)[fso bytes]; + ICEFloat *bfso = (ICEFloat *)[fso bytes]; test(bfso[0] == 3.14f); test(bfso[1] == 1.11f); test([dso length] == 3 * sizeof(ICEDouble)); - ICEDouble *bdso = (ICEDouble *)[dso bytes]; + ICEDouble *bdso = (ICEDouble *)[dso bytes]; test(bdso[0] == 1.3E10); test(bdso[1] == 1.2E10); test(bdso[2] == 1.1E10); test([rso length] == 5 * sizeof(ICEDouble)); - ICEDouble *brso = (ICEDouble *)[rso bytes]; + ICEDouble *brso = (ICEDouble *)[rso bytes]; test(brso[0] == 1.1E10); test(brso[1] == 1.2E10); test(brso[2] == 1.3E10); @@ -471,26 +471,26 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) TestOperationsMutableStringS *ssi1 = [TestOperationsMutableStringS arrayWithCapacity:3]; TestOperationsMutableStringS *ssi2 = [TestOperationsMutableStringS arrayWithCapacity:1]; - [ssi1 addObject:@"abc"]; - [ssi1 addObject:@"de"]; - [ssi1 addObject:@"fghi"]; + [ssi1 addObject:@"abc"]; + [ssi1 addObject:@"de"]; + [ssi1 addObject:@"fghi"]; - [ssi2 addObject:@"xyz"]; + [ssi2 addObject:@"xyz"]; - TestOperationsMutableStringS *sso; - TestOperationsStringS *rso; + TestOperationsMutableStringS *sso; + TestOperationsStringS *rso; - rso = [p opStringS:ssi1 p2:ssi2 p3:&sso]; + rso = [p opStringS:ssi1 p2:ssi2 p3:&sso]; - test([sso count] == 4); - test([[sso objectAtIndex:0] isEqualToString:@"abc"]); - test([[sso objectAtIndex:1] isEqualToString:@"de"]); - test([[sso objectAtIndex:2] isEqualToString:@"fghi"]); - test([[sso objectAtIndex:3] isEqualToString:@"xyz"]); + test([sso count] == 4); + test([[sso objectAtIndex:0] isEqualToString:@"abc"]); + test([[sso objectAtIndex:1] isEqualToString:@"de"]); + test([[sso objectAtIndex:2] isEqualToString:@"fghi"]); + test([[sso objectAtIndex:3] isEqualToString:@"xyz"]); test([rso count] == 3); - test([[rso objectAtIndex:0] isEqualToString:@"fghi"]); - test([[rso objectAtIndex:1] isEqualToString:@"de"]); - test([[rso objectAtIndex:2] isEqualToString:@"abc"]); + test([[rso objectAtIndex:0] isEqualToString:@"fghi"]); + test([[rso objectAtIndex:1] isEqualToString:@"de"]); + test([[rso objectAtIndex:2] isEqualToString:@"abc"]); } @try @@ -503,26 +503,26 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) ICEIdentity *i3 = [ICEIdentity identity:@"fhgi" category:@""]; ICEIdentity *i4 = [ICEIdentity identity:@"xyz" category:@""]; - [ssi1 addObject:[p ice_identity:i1]]; - [ssi1 addObject:[p ice_identity:i2]]; - [ssi1 addObject:[p ice_identity:i3]]; + [ssi1 addObject:[p ice_identity:i1]]; + [ssi1 addObject:[p ice_identity:i2]]; + [ssi1 addObject:[p ice_identity:i3]]; - [ssi2 addObject:[p ice_identity:i4]]; + [ssi2 addObject:[p ice_identity:i4]]; - TestOperationsMutableMyClassS *sso; - TestOperationsMyClassS *rso; + TestOperationsMutableMyClassS *sso; + TestOperationsMyClassS *rso; - rso = [p opMyClassS:ssi1 p2:ssi2 p3:&sso]; + rso = [p opMyClassS:ssi1 p2:ssi2 p3:&sso]; - test([sso count] == 4); - test([[[sso objectAtIndex:0] ice_getIdentity] isEqual:i1]); - test([[[sso objectAtIndex:1] ice_getIdentity] isEqual:i2]); - test([[[sso objectAtIndex:2] ice_getIdentity] isEqual:i3]); - test([[[sso objectAtIndex:3] ice_getIdentity] isEqual:i4]); + test([sso count] == 4); + test([[[sso objectAtIndex:0] ice_getIdentity] isEqual:i1]); + test([[[sso objectAtIndex:1] ice_getIdentity] isEqual:i2]); + test([[[sso objectAtIndex:2] ice_getIdentity] isEqual:i3]); + test([[[sso objectAtIndex:3] ice_getIdentity] isEqual:i4]); test([rso count] == 3); - test([[[rso objectAtIndex:0] ice_getIdentity] isEqual:i3]); - test([[[rso objectAtIndex:1] ice_getIdentity] isEqual:i2]); - test([[[rso objectAtIndex:2] ice_getIdentity] isEqual:i1]); + test([[[rso objectAtIndex:0] ice_getIdentity] isEqual:i3]); + test([[[rso objectAtIndex:1] ice_getIdentity] isEqual:i2]); + test([[[rso objectAtIndex:2] ice_getIdentity] isEqual:i1]); } @catch(ICEOperationNotExistException*) { @@ -531,27 +531,27 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) @try { - TestOperationsMyEnum buf1[] = { TestOperationsenum2, TestOperationsenum3, TestOperationsenum3 }; - TestOperationsMyEnum buf2[] = { TestOperationsenum1 }; + TestOperationsMyEnum buf1[] = { TestOperationsenum2, TestOperationsenum3, TestOperationsenum3 }; + TestOperationsMyEnum buf2[] = { TestOperationsenum1 }; TestOperationsMutableMyEnumS *esi1 = [TestOperationsMutableMyEnumS data]; TestOperationsMutableMyEnumS *esi2 = [TestOperationsMutableMyEnumS data]; - [esi1 appendBytes:buf1 length:sizeof(buf1)]; - [esi2 appendBytes:buf2 length:sizeof(buf2)]; + [esi1 appendBytes:buf1 length:sizeof(buf1)]; + [esi2 appendBytes:buf2 length:sizeof(buf2)]; - TestOperationsMutableMyEnumS *eso; - TestOperationsMyEnumS *rso; + TestOperationsMutableMyEnumS *eso; + TestOperationsMyEnumS *rso; - rso = [p opMyEnumS:esi1 p2:esi2 p3:&eso]; + rso = [p opMyEnumS:esi1 p2:esi2 p3:&eso]; test([eso length] / sizeof(TestOperationsMyEnum) == 3); - const TestOperationsMyEnum *beso = (const TestOperationsMyEnum *)[eso bytes]; + const TestOperationsMyEnum *beso = (const TestOperationsMyEnum *)[eso bytes]; test(beso[0] == TestOperationsenum3); test(beso[1] == TestOperationsenum3); test(beso[2] == TestOperationsenum2); test([rso length] / sizeof(TestOperationsMyEnum) == 4); - const TestOperationsMyEnum *brso = (const TestOperationsMyEnum *)[rso bytes]; + const TestOperationsMyEnum *brso = (const TestOperationsMyEnum *)[rso bytes]; test(brso[0] == TestOperationsenum2); test(brso[1] == TestOperationsenum3); test(brso[2] == TestOperationsenum3); @@ -566,368 +566,368 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) TestOperationsMutableByteSS *bsi1 = [TestOperationsMutableByteSS array]; TestOperationsMutableByteSS *bsi2 = [TestOperationsMutableByteSS array]; - ICEByte b; - TestOperationsMutableByteS *tmp = [TestOperationsMutableByteS data]; + ICEByte b; + TestOperationsMutableByteS *tmp = [TestOperationsMutableByteS data]; - b = 0x01; - [tmp appendBytes:&b length:sizeof(b)]; - b = 0x11; - [tmp appendBytes:&b length:sizeof(b)]; - b = 0x12; - [tmp appendBytes:&b length:sizeof(b)]; - [bsi1 addObject:tmp]; + b = 0x01; + [tmp appendBytes:&b length:sizeof(b)]; + b = 0x11; + [tmp appendBytes:&b length:sizeof(b)]; + b = 0x12; + [tmp appendBytes:&b length:sizeof(b)]; + [bsi1 addObject:tmp]; tmp = [TestOperationsMutableByteS data]; - b = 0xff; - [tmp appendBytes:&b length:sizeof(b)]; - [bsi1 addObject:tmp]; + b = 0xff; + [tmp appendBytes:&b length:sizeof(b)]; + [bsi1 addObject:tmp]; tmp = [TestOperationsMutableByteS data]; - b = 0x0e; - [tmp appendBytes:&b length:sizeof(b)]; - [bsi2 addObject:tmp]; + b = 0x0e; + [tmp appendBytes:&b length:sizeof(b)]; + [bsi2 addObject:tmp]; tmp = [TestOperationsMutableByteS data]; - b = 0xf2; - [tmp appendBytes:&b length:sizeof(b)]; - b = 0xf1; - [tmp appendBytes:&b length:sizeof(b)]; - [bsi2 addObject:tmp]; - - TestOperationsMutableByteSS *bso; - TestOperationsByteSS *rso; - - rso = [p opByteSS:bsi1 p2:bsi2 p3:&bso]; - - const ICEByte *p; - test([bso count] == 2); - test([[bso objectAtIndex:0] length] / sizeof(ICEByte) == 1); - p = [[bso objectAtIndex:0] bytes]; - test(p[0] == (ICEByte)0x0ff); - test([[bso objectAtIndex:1] length] / sizeof(ICEByte) == 3); - p = [[bso objectAtIndex:1] bytes]; - test(p[0] == (ICEByte)0x01); - test(p[1] == (ICEByte)0x11); - test(p[2] == (ICEByte)0x12); - test([rso count] == 4); - test([[rso objectAtIndex:0] length] / sizeof(ICEByte) == 3); - p = [[rso objectAtIndex:0] bytes]; - test(p[0] == (ICEByte)0x01); - test(p[1] == (ICEByte)0x11); - test(p[2] == (ICEByte)0x12); - test([[rso objectAtIndex:1] length] / sizeof(ICEByte) == 1); - p = [[rso objectAtIndex:1] bytes]; - test(p[0] == (ICEByte)0xff); - test([[rso objectAtIndex:2] length] / sizeof(ICEByte) == 1); - p = [[rso objectAtIndex:2] bytes]; - test(p[0] == (ICEByte)0x0e); - test([[rso objectAtIndex:3] length] / sizeof(ICEByte) == 2); - p = [[rso objectAtIndex:3] bytes]; - test(p[0] == (ICEByte)0xf2); - test(p[1] == (ICEByte)0xf1); + b = 0xf2; + [tmp appendBytes:&b length:sizeof(b)]; + b = 0xf1; + [tmp appendBytes:&b length:sizeof(b)]; + [bsi2 addObject:tmp]; + + TestOperationsMutableByteSS *bso; + TestOperationsByteSS *rso; + + rso = [p opByteSS:bsi1 p2:bsi2 p3:&bso]; + + const ICEByte *p; + test([bso count] == 2); + test([[bso objectAtIndex:0] length] / sizeof(ICEByte) == 1); + p = [[bso objectAtIndex:0] bytes]; + test(p[0] == (ICEByte)0x0ff); + test([[bso objectAtIndex:1] length] / sizeof(ICEByte) == 3); + p = [[bso objectAtIndex:1] bytes]; + test(p[0] == (ICEByte)0x01); + test(p[1] == (ICEByte)0x11); + test(p[2] == (ICEByte)0x12); + test([rso count] == 4); + test([[rso objectAtIndex:0] length] / sizeof(ICEByte) == 3); + p = [[rso objectAtIndex:0] bytes]; + test(p[0] == (ICEByte)0x01); + test(p[1] == (ICEByte)0x11); + test(p[2] == (ICEByte)0x12); + test([[rso objectAtIndex:1] length] / sizeof(ICEByte) == 1); + p = [[rso objectAtIndex:1] bytes]; + test(p[0] == (ICEByte)0xff); + test([[rso objectAtIndex:2] length] / sizeof(ICEByte) == 1); + p = [[rso objectAtIndex:2] bytes]; + test(p[0] == (ICEByte)0x0e); + test([[rso objectAtIndex:3] length] / sizeof(ICEByte) == 2); + p = [[rso objectAtIndex:3] bytes]; + test(p[0] == (ICEByte)0xf2); + test(p[1] == (ICEByte)0xf1); } { TestOperationsMutableFloatSS *fsi = [TestOperationsMutableFloatSS array]; TestOperationsMutableDoubleSS *dsi = [TestOperationsMutableDoubleSS array]; - ICEFloat f; - TestOperationsMutableFloatS *ftmp; - - ftmp = [TestOperationsMutableFloatS data]; - f = 3.14f; - [ftmp appendBytes:&f length:sizeof(f)]; - [fsi addObject:ftmp]; - ftmp = [TestOperationsMutableFloatS data]; - f = 1.11f; - [ftmp appendBytes:&f length:sizeof(f)]; - [fsi addObject:ftmp]; - ftmp = [TestOperationsMutableFloatS data]; - [fsi addObject:ftmp]; - - ICEDouble d; - TestOperationsMutableDoubleS *dtmp; + ICEFloat f; + TestOperationsMutableFloatS *ftmp; + + ftmp = [TestOperationsMutableFloatS data]; + f = 3.14f; + [ftmp appendBytes:&f length:sizeof(f)]; + [fsi addObject:ftmp]; + ftmp = [TestOperationsMutableFloatS data]; + f = 1.11f; + [ftmp appendBytes:&f length:sizeof(f)]; + [fsi addObject:ftmp]; + ftmp = [TestOperationsMutableFloatS data]; + [fsi addObject:ftmp]; + + ICEDouble d; + TestOperationsMutableDoubleS *dtmp; dtmp = [TestOperationsMutableDoubleS data]; - d = 1.1E10; - [dtmp appendBytes:&d length:sizeof(d)]; - d = 1.2E10; - [dtmp appendBytes:&d length:sizeof(d)]; - d = 1.3E10; - [dtmp appendBytes:&d length:sizeof(d)]; - [dsi addObject:dtmp]; - - TestOperationsMutableFloatSS *fso; - TestOperationsMutableDoubleSS *dso; - TestOperationsDoubleSS *rso; - - rso = [p opFloatDoubleSS:fsi p2:dsi p3:&fso p4:&dso]; - - const ICEFloat *fp; - const ICEDouble *dp; - - test([fso count] == 3); - test([[fso objectAtIndex:0] length] / sizeof(ICEFloat) == 1); - fp = [[fso objectAtIndex:0] bytes]; - test(fp[0] == 3.14f); - test([[fso objectAtIndex:1] length] / sizeof(ICEFloat) == 1); - fp = [[fso objectAtIndex:1] bytes]; - test(fp[0] == 1.11f); - test([[fso objectAtIndex:2] length] / sizeof(ICEFloat) == 0); - test([dso count] == 1); - test([[dso objectAtIndex:0] length] / sizeof(ICEDouble) == 3); - dp = [[dso objectAtIndex:0] bytes]; - test(dp[0] == 1.1E10); - test(dp[1] == 1.2E10); - test(dp[2] == 1.3E10); - test([rso count] == 2); - test([[rso objectAtIndex:0] length] / sizeof(ICEDouble) == 3); - dp = [[rso objectAtIndex:0] bytes]; - test(dp[0] == 1.1E10); - test(dp[1] == 1.2E10); - test(dp[2] == 1.3E10); - test([[rso objectAtIndex:1] length] / sizeof(ICEDouble) == 3); - dp = [[rso objectAtIndex:1] bytes]; - test(dp[0] == 1.1E10); - test(dp[1] == 1.2E10); - test(dp[2] == 1.3E10); + d = 1.1E10; + [dtmp appendBytes:&d length:sizeof(d)]; + d = 1.2E10; + [dtmp appendBytes:&d length:sizeof(d)]; + d = 1.3E10; + [dtmp appendBytes:&d length:sizeof(d)]; + [dsi addObject:dtmp]; + + TestOperationsMutableFloatSS *fso; + TestOperationsMutableDoubleSS *dso; + TestOperationsDoubleSS *rso; + + rso = [p opFloatDoubleSS:fsi p2:dsi p3:&fso p4:&dso]; + + const ICEFloat *fp; + const ICEDouble *dp; + + test([fso count] == 3); + test([[fso objectAtIndex:0] length] / sizeof(ICEFloat) == 1); + fp = [[fso objectAtIndex:0] bytes]; + test(fp[0] == 3.14f); + test([[fso objectAtIndex:1] length] / sizeof(ICEFloat) == 1); + fp = [[fso objectAtIndex:1] bytes]; + test(fp[0] == 1.11f); + test([[fso objectAtIndex:2] length] / sizeof(ICEFloat) == 0); + test([dso count] == 1); + test([[dso objectAtIndex:0] length] / sizeof(ICEDouble) == 3); + dp = [[dso objectAtIndex:0] bytes]; + test(dp[0] == 1.1E10); + test(dp[1] == 1.2E10); + test(dp[2] == 1.3E10); + test([rso count] == 2); + test([[rso objectAtIndex:0] length] / sizeof(ICEDouble) == 3); + dp = [[rso objectAtIndex:0] bytes]; + test(dp[0] == 1.1E10); + test(dp[1] == 1.2E10); + test(dp[2] == 1.3E10); + test([[rso objectAtIndex:1] length] / sizeof(ICEDouble) == 3); + dp = [[rso objectAtIndex:1] bytes]; + test(dp[0] == 1.1E10); + test(dp[1] == 1.2E10); + test(dp[2] == 1.3E10); } { TestOperationsMutableStringSS * ssi1 = [TestOperationsMutableStringSS array]; TestOperationsMutableStringSS * ssi2 = [TestOperationsMutableStringSS array]; - TestOperationsMutableStringS *tmp; - - tmp = [TestOperationsMutableStringS array]; - [tmp addObject:@"abc"]; - [ssi1 addObject:tmp]; - tmp = [TestOperationsMutableStringS array]; - [tmp addObject:@"de"]; - [tmp addObject:@"fghi"]; - [ssi1 addObject:tmp]; - - [ssi2 addObject:[TestOperationsStringS array]]; - [ssi2 addObject:[TestOperationsStringS array]]; - tmp = [TestOperationsMutableStringS array]; - [tmp addObject:@"xyz"]; - [ssi2 addObject:tmp]; - - TestOperationsMutableStringSS *sso; - TestOperationsStringSS *rso; - - rso = [p opStringSS:ssi1 p2:ssi2 p3:&sso]; - - test([sso count] == 5); - test([[sso objectAtIndex:0] count] == 1); - test([[[sso objectAtIndex:0] objectAtIndex:0] isEqualToString:@"abc"]); - test([[sso objectAtIndex:1] count] == 2); - test([[[sso objectAtIndex:1] objectAtIndex:0] isEqualToString:@"de"]); - test([[[sso objectAtIndex:1] objectAtIndex:1] isEqualToString:@"fghi"]); - test([[sso objectAtIndex:2] count] == 0); - test([[sso objectAtIndex:3] count] == 0); - test([[sso objectAtIndex:4] count] == 1); - test([[[sso objectAtIndex:4] objectAtIndex:0] isEqualToString:@"xyz"]); - test([rso count] == 3); - test([[rso objectAtIndex:0] count] == 1); - test([[[rso objectAtIndex:0] objectAtIndex:0] isEqualToString:@"xyz"]); - test([[rso objectAtIndex:1] count] == 0); - test([[rso objectAtIndex:2] count] == 0); + TestOperationsMutableStringS *tmp; + + tmp = [TestOperationsMutableStringS array]; + [tmp addObject:@"abc"]; + [ssi1 addObject:tmp]; + tmp = [TestOperationsMutableStringS array]; + [tmp addObject:@"de"]; + [tmp addObject:@"fghi"]; + [ssi1 addObject:tmp]; + + [ssi2 addObject:[TestOperationsStringS array]]; + [ssi2 addObject:[TestOperationsStringS array]]; + tmp = [TestOperationsMutableStringS array]; + [tmp addObject:@"xyz"]; + [ssi2 addObject:tmp]; + + TestOperationsMutableStringSS *sso; + TestOperationsStringSS *rso; + + rso = [p opStringSS:ssi1 p2:ssi2 p3:&sso]; + + test([sso count] == 5); + test([[sso objectAtIndex:0] count] == 1); + test([[[sso objectAtIndex:0] objectAtIndex:0] isEqualToString:@"abc"]); + test([[sso objectAtIndex:1] count] == 2); + test([[[sso objectAtIndex:1] objectAtIndex:0] isEqualToString:@"de"]); + test([[[sso objectAtIndex:1] objectAtIndex:1] isEqualToString:@"fghi"]); + test([[sso objectAtIndex:2] count] == 0); + test([[sso objectAtIndex:3] count] == 0); + test([[sso objectAtIndex:4] count] == 1); + test([[[sso objectAtIndex:4] objectAtIndex:0] isEqualToString:@"xyz"]); + test([rso count] == 3); + test([[rso objectAtIndex:0] count] == 1); + test([[[rso objectAtIndex:0] objectAtIndex:0] isEqualToString:@"xyz"]); + test([[rso objectAtIndex:1] count] == 0); + test([[rso objectAtIndex:2] count] == 0); } { TestOperationsMutableStringSSS *sssi1 = [TestOperationsMutableStringSSS array]; TestOperationsMutableStringSSS *sssi2 = [TestOperationsMutableStringSSS array]; - TestOperationsMutableStringSS *tmpss; - TestOperationsMutableStringS *tmps; + TestOperationsMutableStringSS *tmpss; + TestOperationsMutableStringS *tmps; - tmps = [TestOperationsMutableStringS array]; + tmps = [TestOperationsMutableStringS array]; [tmps addObject:@"abc"]; [tmps addObject:@"de"]; - tmpss = [TestOperationsMutableStringSS array]; - [tmpss addObject:tmps]; - tmps = [TestOperationsMutableStringS array]; + tmpss = [TestOperationsMutableStringSS array]; + [tmpss addObject:tmps]; + tmps = [TestOperationsMutableStringS array]; [tmps addObject:@"xyz"]; - [tmpss addObject:tmps]; - [sssi1 addObject:tmpss]; - tmps = [TestOperationsMutableStringS array]; + [tmpss addObject:tmps]; + [sssi1 addObject:tmpss]; + tmps = [TestOperationsMutableStringS array]; [tmps addObject:@"hello"]; - tmpss = [TestOperationsMutableStringSS array]; - [tmpss addObject:tmps]; - [sssi1 addObject:tmpss]; + tmpss = [TestOperationsMutableStringSS array]; + [tmpss addObject:tmps]; + [sssi1 addObject:tmpss]; - tmps = [TestOperationsMutableStringS array]; + tmps = [TestOperationsMutableStringS array]; [tmps addObject:@""]; [tmps addObject:@""]; - tmpss = [TestOperationsMutableStringSS array]; - [tmpss addObject:tmps]; - tmps = [TestOperationsMutableStringS array]; + tmpss = [TestOperationsMutableStringSS array]; + [tmpss addObject:tmps]; + tmps = [TestOperationsMutableStringS array]; [tmps addObject:@"abcd"]; - [tmpss addObject:tmps]; - [sssi2 addObject:tmpss]; - tmps = [TestOperationsMutableStringS array]; + [tmpss addObject:tmps]; + [sssi2 addObject:tmpss]; + tmps = [TestOperationsMutableStringS array]; [tmps addObject:@""]; - tmpss = [TestOperationsMutableStringSS array]; - [tmpss addObject:tmps]; - [sssi2 addObject:tmpss]; - tmpss = [TestOperationsMutableStringSS array]; - [sssi2 addObject:tmpss]; - - TestOperationsMutableStringSSS *ssso; - TestOperationsStringSSS *rsso; - - rsso = [p opStringSSS:sssi1 p2:sssi2 p3:&ssso]; - - test([ssso count] == 5); - test([[ssso objectAtIndex:0] count] == 2); - test([[[ssso objectAtIndex:0] objectAtIndex:0] count] == 2); - test([[[ssso objectAtIndex:0] objectAtIndex:1] count] == 1); - test([[ssso objectAtIndex:1] count] == 1); - test([[[ssso objectAtIndex:1] objectAtIndex:0] count] == 1); - test([[ssso objectAtIndex:2] count] == 2); - test([[[ssso objectAtIndex:2] objectAtIndex:0] count] == 2); - test([[[ssso objectAtIndex:2] objectAtIndex:1] count] == 1); - test([[ssso objectAtIndex:3] count] == 1); - test([[[ssso objectAtIndex:3] objectAtIndex:0] count] == 1); - test([[ssso objectAtIndex:4] count] == 0); - test([[[[ssso objectAtIndex:0] objectAtIndex:0] objectAtIndex:0] isEqualToString:@"abc"]); - test([[[[ssso objectAtIndex:0] objectAtIndex:0] objectAtIndex:1] isEqualToString:@"de"]); - test([[[[ssso objectAtIndex:0] objectAtIndex:1] objectAtIndex:0] isEqualToString:@"xyz"]); - test([[[[ssso objectAtIndex:1] objectAtIndex:0] objectAtIndex:0] isEqualToString:@"hello"]); - test([[[[ssso objectAtIndex:2] objectAtIndex:0] objectAtIndex:0] isEqualToString:@""]); - test([[[[ssso objectAtIndex:2] objectAtIndex:0] objectAtIndex:1] isEqualToString:@""]); - test([[[[ssso objectAtIndex:2] objectAtIndex:1] objectAtIndex:0] isEqualToString:@"abcd"]); - test([[[[ssso objectAtIndex:3] objectAtIndex:0] objectAtIndex:0] isEqualToString:@""]); - - test([rsso count] == 3); - test([[rsso objectAtIndex:0] count] == 0); - test([[rsso objectAtIndex:1] count] == 1); - test([[[rsso objectAtIndex:1] objectAtIndex:0] count] == 1); - test([[rsso objectAtIndex:2] count] == 2); - test([[[rsso objectAtIndex:2] objectAtIndex:0] count] == 2); - test([[[rsso objectAtIndex:2] objectAtIndex:1] count] == 1); - test([[[[rsso objectAtIndex:1] objectAtIndex:0] objectAtIndex:0] isEqualToString:@""]); - test([[[[rsso objectAtIndex:2] objectAtIndex:0] objectAtIndex:0] isEqualToString:@""]); - test([[[[rsso objectAtIndex:2] objectAtIndex:0] objectAtIndex:1] isEqualToString:@""]); - test([[[[rsso objectAtIndex:2] objectAtIndex:1] objectAtIndex:0] isEqualToString:@"abcd"]); + tmpss = [TestOperationsMutableStringSS array]; + [tmpss addObject:tmps]; + [sssi2 addObject:tmpss]; + tmpss = [TestOperationsMutableStringSS array]; + [sssi2 addObject:tmpss]; + + TestOperationsMutableStringSSS *ssso; + TestOperationsStringSSS *rsso; + + rsso = [p opStringSSS:sssi1 p2:sssi2 p3:&ssso]; + + test([ssso count] == 5); + test([[ssso objectAtIndex:0] count] == 2); + test([[[ssso objectAtIndex:0] objectAtIndex:0] count] == 2); + test([[[ssso objectAtIndex:0] objectAtIndex:1] count] == 1); + test([[ssso objectAtIndex:1] count] == 1); + test([[[ssso objectAtIndex:1] objectAtIndex:0] count] == 1); + test([[ssso objectAtIndex:2] count] == 2); + test([[[ssso objectAtIndex:2] objectAtIndex:0] count] == 2); + test([[[ssso objectAtIndex:2] objectAtIndex:1] count] == 1); + test([[ssso objectAtIndex:3] count] == 1); + test([[[ssso objectAtIndex:3] objectAtIndex:0] count] == 1); + test([[ssso objectAtIndex:4] count] == 0); + test([[[[ssso objectAtIndex:0] objectAtIndex:0] objectAtIndex:0] isEqualToString:@"abc"]); + test([[[[ssso objectAtIndex:0] objectAtIndex:0] objectAtIndex:1] isEqualToString:@"de"]); + test([[[[ssso objectAtIndex:0] objectAtIndex:1] objectAtIndex:0] isEqualToString:@"xyz"]); + test([[[[ssso objectAtIndex:1] objectAtIndex:0] objectAtIndex:0] isEqualToString:@"hello"]); + test([[[[ssso objectAtIndex:2] objectAtIndex:0] objectAtIndex:0] isEqualToString:@""]); + test([[[[ssso objectAtIndex:2] objectAtIndex:0] objectAtIndex:1] isEqualToString:@""]); + test([[[[ssso objectAtIndex:2] objectAtIndex:1] objectAtIndex:0] isEqualToString:@"abcd"]); + test([[[[ssso objectAtIndex:3] objectAtIndex:0] objectAtIndex:0] isEqualToString:@""]); + + test([rsso count] == 3); + test([[rsso objectAtIndex:0] count] == 0); + test([[rsso objectAtIndex:1] count] == 1); + test([[[rsso objectAtIndex:1] objectAtIndex:0] count] == 1); + test([[rsso objectAtIndex:2] count] == 2); + test([[[rsso objectAtIndex:2] objectAtIndex:0] count] == 2); + test([[[rsso objectAtIndex:2] objectAtIndex:1] count] == 1); + test([[[[rsso objectAtIndex:1] objectAtIndex:0] objectAtIndex:0] isEqualToString:@""]); + test([[[[rsso objectAtIndex:2] objectAtIndex:0] objectAtIndex:0] isEqualToString:@""]); + test([[[[rsso objectAtIndex:2] objectAtIndex:0] objectAtIndex:1] isEqualToString:@""]); + test([[[[rsso objectAtIndex:2] objectAtIndex:1] objectAtIndex:0] isEqualToString:@"abcd"]); } { TestOperationsMutableByteBoolD *di1 = [TestOperationsMutableByteBoolD dictionary]; - [di1 setObject:[NSNumber numberWithBool:YES] forKey:[NSNumber numberWithUnsignedChar:10]]; - [di1 setObject:[NSNumber numberWithBool:NO] forKey:[NSNumber numberWithUnsignedChar:100]]; + [di1 setObject:[NSNumber numberWithBool:YES] forKey:[NSNumber numberWithUnsignedChar:10]]; + [di1 setObject:[NSNumber numberWithBool:NO] forKey:[NSNumber numberWithUnsignedChar:100]]; TestOperationsMutableByteBoolD *di2 = [TestOperationsMutableByteBoolD dictionary]; - [di2 setObject:[NSNumber numberWithBool:YES] forKey:[NSNumber numberWithUnsignedChar:10]]; - [di2 setObject:[NSNumber numberWithBool:NO] forKey:[NSNumber numberWithUnsignedChar:11]]; - [di2 setObject:[NSNumber numberWithBool:TRUE] forKey:[NSNumber numberWithUnsignedChar:101]]; + [di2 setObject:[NSNumber numberWithBool:YES] forKey:[NSNumber numberWithUnsignedChar:10]]; + [di2 setObject:[NSNumber numberWithBool:NO] forKey:[NSNumber numberWithUnsignedChar:11]]; + [di2 setObject:[NSNumber numberWithBool:TRUE] forKey:[NSNumber numberWithUnsignedChar:101]]; TestOperationsMutableByteBoolD *_do; TestOperationsMutableByteBoolD *ro = [p opByteBoolD:di1 p2:di2 p3:&_do]; - test([_do isEqualToDictionary:di1]); - test([ro count] == 4); - test([[ro objectForKey:[NSNumber numberWithUnsignedChar:10]] boolValue] == YES); - test([[ro objectForKey:[NSNumber numberWithUnsignedChar:11]] boolValue] == NO); - test([[ro objectForKey:[NSNumber numberWithUnsignedChar:100]] boolValue] == NO); - test([[ro objectForKey:[NSNumber numberWithUnsignedChar:101]] boolValue] == YES); + test([_do isEqualToDictionary:di1]); + test([ro count] == 4); + test([[ro objectForKey:[NSNumber numberWithUnsignedChar:10]] boolValue] == YES); + test([[ro objectForKey:[NSNumber numberWithUnsignedChar:11]] boolValue] == NO); + test([[ro objectForKey:[NSNumber numberWithUnsignedChar:100]] boolValue] == NO); + test([[ro objectForKey:[NSNumber numberWithUnsignedChar:101]] boolValue] == YES); } { TestOperationsMutableShortIntD *di1 = [TestOperationsMutableShortIntD dictionary]; - [di1 setObject:[NSNumber numberWithInt:-1] forKey:[NSNumber numberWithShort:110]]; - [di1 setObject:[NSNumber numberWithInt:123123] forKey:[NSNumber numberWithShort:1100]]; + [di1 setObject:[NSNumber numberWithInt:-1] forKey:[NSNumber numberWithShort:110]]; + [di1 setObject:[NSNumber numberWithInt:123123] forKey:[NSNumber numberWithShort:1100]]; TestOperationsMutableShortIntD *di2 = [TestOperationsMutableShortIntD dictionary]; - [di2 setObject:[NSNumber numberWithInt:-1] forKey:[NSNumber numberWithShort:110]]; - [di2 setObject:[NSNumber numberWithInt:-100] forKey:[NSNumber numberWithShort:111]]; - [di2 setObject:[NSNumber numberWithInt:0] forKey:[NSNumber numberWithShort:1101]]; + [di2 setObject:[NSNumber numberWithInt:-1] forKey:[NSNumber numberWithShort:110]]; + [di2 setObject:[NSNumber numberWithInt:-100] forKey:[NSNumber numberWithShort:111]]; + [di2 setObject:[NSNumber numberWithInt:0] forKey:[NSNumber numberWithShort:1101]]; TestOperationsMutableShortIntD *_do; TestOperationsMutableShortIntD *ro = [p opShortIntD:di1 p2:di2 p3:&_do]; - test([_do isEqualToDictionary:di1]); - test([ro count] == 4); - test([[ro objectForKey:[NSNumber numberWithShort:110]] intValue] == -1); - test([[ro objectForKey:[NSNumber numberWithShort:111]] intValue] == -100); - test([[ro objectForKey:[NSNumber numberWithShort:1100]] intValue] == 123123); - test([[ro objectForKey:[NSNumber numberWithShort:1101]] intValue] == 0); + test([_do isEqualToDictionary:di1]); + test([ro count] == 4); + test([[ro objectForKey:[NSNumber numberWithShort:110]] intValue] == -1); + test([[ro objectForKey:[NSNumber numberWithShort:111]] intValue] == -100); + test([[ro objectForKey:[NSNumber numberWithShort:1100]] intValue] == 123123); + test([[ro objectForKey:[NSNumber numberWithShort:1101]] intValue] == 0); } { TestOperationsMutableLongFloatD *di1 = [TestOperationsMutableLongFloatD dictionary]; - [di1 setObject:[NSNumber numberWithFloat:-1.1f] forKey:[NSNumber numberWithLong:999999110]]; - [di1 setObject:[NSNumber numberWithFloat:123123.2f] forKey:[NSNumber numberWithLong:999999111]]; + [di1 setObject:[NSNumber numberWithFloat:-1.1f] forKey:[NSNumber numberWithLong:999999110]]; + [di1 setObject:[NSNumber numberWithFloat:123123.2f] forKey:[NSNumber numberWithLong:999999111]]; TestOperationsMutableLongFloatD *di2 = [TestOperationsMutableLongFloatD dictionary]; - [di2 setObject:[NSNumber numberWithFloat:-1.1f] forKey:[NSNumber numberWithLong:999999110]]; - [di2 setObject:[NSNumber numberWithFloat:-100.4f] forKey:[NSNumber numberWithLong:999999120]]; - [di2 setObject:[NSNumber numberWithFloat:0.5f] forKey:[NSNumber numberWithLong:999999130]]; + [di2 setObject:[NSNumber numberWithFloat:-1.1f] forKey:[NSNumber numberWithLong:999999110]]; + [di2 setObject:[NSNumber numberWithFloat:-100.4f] forKey:[NSNumber numberWithLong:999999120]]; + [di2 setObject:[NSNumber numberWithFloat:0.5f] forKey:[NSNumber numberWithLong:999999130]]; TestOperationsMutableLongFloatD *_do; TestOperationsMutableLongFloatD *ro = [p opLongFloatD:di1 p2:di2 p3:&_do]; - test([_do isEqualToDictionary:di1]); - test([ro count] == 4); - test((ICEFloat)[[ro objectForKey:[NSNumber numberWithLong:999999110]] floatValue] == -1.1f); - test((ICEFloat)[[ro objectForKey:[NSNumber numberWithLong:999999120]] floatValue] == -100.4f); - test((ICEFloat)[[ro objectForKey:[NSNumber numberWithLong:999999111]] floatValue] == 123123.2f); - test((ICEFloat)[[ro objectForKey:[NSNumber numberWithLong:999999130]] floatValue] == 0.5f); + test([_do isEqualToDictionary:di1]); + test([ro count] == 4); + test((ICEFloat)[[ro objectForKey:[NSNumber numberWithLong:999999110]] floatValue] == -1.1f); + test((ICEFloat)[[ro objectForKey:[NSNumber numberWithLong:999999120]] floatValue] == -100.4f); + test((ICEFloat)[[ro objectForKey:[NSNumber numberWithLong:999999111]] floatValue] == 123123.2f); + test((ICEFloat)[[ro objectForKey:[NSNumber numberWithLong:999999130]] floatValue] == 0.5f); } { TestOperationsMutableStringStringD *di1 = [TestOperationsMutableStringStringD dictionary]; - [di1 setObject:@"abc -1.1" forKey:@"foo"]; - [di1 setObject:@"abc 123123.2" forKey:@"bar"]; + [di1 setObject:@"abc -1.1" forKey:@"foo"]; + [di1 setObject:@"abc 123123.2" forKey:@"bar"]; TestOperationsMutableStringStringD *di2 = [TestOperationsMutableStringStringD dictionary]; - [di2 setObject:@"abc -1.1" forKey:@"foo"]; - [di2 setObject:@"abc -100.4" forKey:@"FOO"]; - [di2 setObject:@"abc 0.5" forKey:@"BAR"]; + [di2 setObject:@"abc -1.1" forKey:@"foo"]; + [di2 setObject:@"abc -100.4" forKey:@"FOO"]; + [di2 setObject:@"abc 0.5" forKey:@"BAR"]; TestOperationsMutableStringStringD *_do; TestOperationsMutableStringStringD *ro = [p opStringStringD:di1 p2:di2 p3:&_do]; - test([_do isEqualToDictionary:di1]); - test([ro count] == 4); - test([[ro objectForKey:@"foo"] isEqualToString:@"abc -1.1"]); - test([[ro objectForKey:@"FOO"] isEqualToString:@"abc -100.4"]); - test([[ro objectForKey:@"bar"] isEqualToString:@"abc 123123.2"]); - test([[ro objectForKey:@"BAR"] isEqualToString:@"abc 0.5"]); + test([_do isEqualToDictionary:di1]); + test([ro count] == 4); + test([[ro objectForKey:@"foo"] isEqualToString:@"abc -1.1"]); + test([[ro objectForKey:@"FOO"] isEqualToString:@"abc -100.4"]); + test([[ro objectForKey:@"bar"] isEqualToString:@"abc 123123.2"]); + test([[ro objectForKey:@"BAR"] isEqualToString:@"abc 0.5"]); } { TestOperationsMutableStringMyEnumD *di1 = [TestOperationsMutableStringMyEnumD dictionary]; - [di1 setObject:[NSNumber numberWithInt:TestOperationsenum1] forKey:@"abc"]; - [di1 setObject:[NSNumber numberWithInt:TestOperationsenum2] forKey:@""]; + [di1 setObject:[NSNumber numberWithInt:TestOperationsenum1] forKey:@"abc"]; + [di1 setObject:[NSNumber numberWithInt:TestOperationsenum2] forKey:@""]; TestOperationsMutableStringMyEnumD *di2 = [TestOperationsMutableStringMyEnumD dictionary]; - [di2 setObject:[NSNumber numberWithInt:TestOperationsenum1] forKey:@"abc"]; - [di2 setObject:[NSNumber numberWithInt:TestOperationsenum3] forKey:@"querty"]; - [di2 setObject:[NSNumber numberWithInt:TestOperationsenum2] forKey:@"Hello!!"]; + [di2 setObject:[NSNumber numberWithInt:TestOperationsenum1] forKey:@"abc"]; + [di2 setObject:[NSNumber numberWithInt:TestOperationsenum3] forKey:@"querty"]; + [di2 setObject:[NSNumber numberWithInt:TestOperationsenum2] forKey:@"Hello!!"]; TestOperationsMutableStringMyEnumD *_do; TestOperationsMutableStringMyEnumD *ro = [p opStringMyEnumD:di1 p2:di2 p3:&_do]; - test([_do isEqualToDictionary:di1]); - test([ro count] == 4); - test([[ro objectForKey:@"abc"] intValue] == TestOperationsenum1); - test([[ro objectForKey:@"querty"] intValue] == TestOperationsenum3); - test([[ro objectForKey:@""] intValue] == TestOperationsenum2); - test([[ro objectForKey:@"Hello!!"] intValue] == TestOperationsenum2); + test([_do isEqualToDictionary:di1]); + test([ro count] == 4); + test([[ro objectForKey:@"abc"] intValue] == TestOperationsenum1); + test([[ro objectForKey:@"querty"] intValue] == TestOperationsenum3); + test([[ro objectForKey:@""] intValue] == TestOperationsenum2); + test([[ro objectForKey:@"Hello!!"] intValue] == TestOperationsenum2); } { TestOperationsMutableMyEnumStringD *di1 = [TestOperationsMutableMyEnumStringD dictionary]; - [di1 setObject:@"abc" forKey:@(TestOperationsenum1)]; + [di1 setObject:@"abc" forKey:@(TestOperationsenum1)]; TestOperationsMutableMyEnumStringD *di2 = [TestOperationsMutableMyEnumStringD dictionary]; - [di2 setObject:@"Hello!!" forKey:@(TestOperationsenum2)]; - [di2 setObject:@"querty" forKey:@(TestOperationsenum3)]; + [di2 setObject:@"Hello!!" forKey:@(TestOperationsenum2)]; + [di2 setObject:@"querty" forKey:@(TestOperationsenum3)]; TestOperationsMutableMyEnumStringD *_do; TestOperationsMutableMyEnumStringD *ro = [p opMyEnumStringD:di1 p2:di2 p3:&_do]; - test([_do isEqualToDictionary:di1]); - test([ro count] == 3); - test([[ro objectForKey:@(TestOperationsenum1)] isEqualToString:@"abc"]); - test([[ro objectForKey:@(TestOperationsenum3)] isEqualToString:@"querty"]); - test([[ro objectForKey:@(TestOperationsenum2)] isEqualToString:@"Hello!!"]); + test([_do isEqualToDictionary:di1]); + test([ro count] == 3); + test([[ro objectForKey:@(TestOperationsenum1)] isEqualToString:@"abc"]); + test([[ro objectForKey:@(TestOperationsenum3)] isEqualToString:@"querty"]); + test([[ro objectForKey:@(TestOperationsenum2)] isEqualToString:@"Hello!!"]); } { @@ -1638,12 +1638,12 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) { const int lengths[] = { 0, 1, 2, 126, 127, 128, 129, 253, 254, 255, 256, 257, 1000 }; - int l; + int l; for(l = 0; l != sizeof(lengths) / sizeof(*lengths); ++l) { TestOperationsMutableIntS *s = [TestOperationsMutableIntS dataWithLength:(lengths[l] * sizeof(ICEInt))]; - ICEInt *ip = (ICEInt *)[s bytes]; - int i; + ICEInt *ip = (ICEInt *)[s bytes]; + int i; for(i = 0; i < lengths[l]; ++i) { *ip++ = i; @@ -1651,7 +1651,7 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) TestOperationsIntS *r = [p opIntS:s]; test([r length] == lengths[l] * sizeof(ICEInt)); const ICEInt *rp = [r bytes]; - int j; + int j; for(j = 0; j < [r length] / sizeof(ICEInt); ++j) { test(rp[j] == -j); @@ -1790,97 +1790,125 @@ twoways(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) [p opStringS1:[TestOperationsStringS array]]; [p opByteBoolD1:[TestOperationsByteBoolD dictionary]]; + { + TestOperationsStructure* p1 = [p opMStruct1]; + p1.e = TestOperationsenum3; + TestOperationsStructure* p2,* p3; + p3 = [p opMStruct2:p1 p2:&p2]; + test([p2 isEqual:p1] && [p3 isEqual:p1]); + } + + { + [p opMSeq1]; + + TestOperationsMutableStringS* p1 = [TestOperationsMutableStringS arrayWithCapacity:1]; + [p1 addObject:@"test"]; + TestOperationsMutableStringS* p2,* p3; + p3 = [p opMSeq2:p1 p2:&p2]; + test([[p2 objectAtIndex:0] isEqualToString:@"test"] && [[p3 objectAtIndex:0] isEqualToString:@"test"]); + } + + { + [p opMDict1]; + + TestOperationsMutableStringStringD* p1 = [TestOperationsMutableStringStringD dictionary]; + [p1 setObject:@"test" forKey:@"test"]; + TestOperationsMutableStringStringD* p2,* p3; + p3 = [p opMDict2:p1 p2:&p2]; + test([[p2 objectForKey:@"test"] isEqualToString:@"test"] && [[p3 objectForKey:@"test"] isEqualToString:@"test"]); + } + // // TestOperationss below are for Objective-C only. They test that we do the right thing if NSNull // is passed as part of the sequence or dictionary. // @try { - { - TestOperationsStringS *s = [p getNSNullStringSeq]; - test([s count] == 2); - test([[s objectAtIndex:0] isEqualToString:@"first"]); - test([[s objectAtIndex:1] isEqualToString:@""]); - } - - { - TestOperationsAS *s = [p getNSNullASeq]; - test([s count] == 2); - test(((TestOperationsA *)[s objectAtIndex:0]).i == 99); - test([s objectAtIndex:1] == [NSNull null]); - } - - { - TestOperationsStructS *seq = [p getNSNullStructSeq]; - test([seq count] == 2); - TestOperationsStructure *s = [seq objectAtIndex:0]; - test(s.p == nil); - test(s.e == TestOperationsenum2); - test([s.s.s isEqualToString:@"Hello"]); - s = [seq objectAtIndex:1]; - test(s.p == nil); - test(s.e == TestOperationsenum1); - test([s.s.s isEqualToString:@""]); - } - - { - TestOperationsStringSS *seq = [p getNSNullStringSeqSeq]; - test([seq count] == 2); - TestOperationsStringS *s = [seq objectAtIndex:0]; - test([s count] == 1); - test([(NSString *)[s objectAtIndex:0] isEqualToString:@"first"]); - s = [seq objectAtIndex:1]; - test([s count] == 0); - } - - { - TestOperationsStringStringD *d = [p getNSNullStringStringDict]; - test([d count] == 2); - test([(NSString *)[d objectForKey:@"one"] isEqualToString:@"ONE"]); - test([(NSString *)[d objectForKey:@"two"] isEqualToString:@""]); - } - - { - @try - { - TestOperationsMutableStringStringD *d = [TestOperationsMutableStringStringD dictionary]; - [d setObject:@"bad key" forKey:[NSNull null]]; - [p putNSNullStringStringDict:d]; - test(NO); - } - @catch(ICEMarshalException *) - { - // Expected - } - } - - { - @try - { - TestOperationsMutableShortIntD *d = [TestOperationsMutableShortIntD dictionary]; - [d setObject:[NSNull null] forKey:[NSNumber numberWithInt:1]]; - [p putNSNullShortIntDict:d]; - test(NO); - } - @catch(ICEMarshalException *) - { - // Expected - } - } - - { - @try - { - TestOperationsMutableStringMyEnumD *d = [TestOperationsMutableStringMyEnumD dictionary]; - [d setObject:[NSNull null] forKey:@"key"]; - [p putNSNullStringMyEnumDict:d]; - test(NO); - } - @catch(ICEMarshalException *) - { - // Expected - } - } + { + TestOperationsStringS *s = [p getNSNullStringSeq]; + test([s count] == 2); + test([[s objectAtIndex:0] isEqualToString:@"first"]); + test([[s objectAtIndex:1] isEqualToString:@""]); + } + + { + TestOperationsAS *s = [p getNSNullASeq]; + test([s count] == 2); + test(((TestOperationsA *)[s objectAtIndex:0]).i == 99); + test([s objectAtIndex:1] == [NSNull null]); + } + + { + TestOperationsStructS *seq = [p getNSNullStructSeq]; + test([seq count] == 2); + TestOperationsStructure *s = [seq objectAtIndex:0]; + test(s.p == nil); + test(s.e == TestOperationsenum2); + test([s.s.s isEqualToString:@"Hello"]); + s = [seq objectAtIndex:1]; + test(s.p == nil); + test(s.e == TestOperationsenum1); + test([s.s.s isEqualToString:@""]); + } + + { + TestOperationsStringSS *seq = [p getNSNullStringSeqSeq]; + test([seq count] == 2); + TestOperationsStringS *s = [seq objectAtIndex:0]; + test([s count] == 1); + test([(NSString *)[s objectAtIndex:0] isEqualToString:@"first"]); + s = [seq objectAtIndex:1]; + test([s count] == 0); + } + + { + TestOperationsStringStringD *d = [p getNSNullStringStringDict]; + test([d count] == 2); + test([(NSString *)[d objectForKey:@"one"] isEqualToString:@"ONE"]); + test([(NSString *)[d objectForKey:@"two"] isEqualToString:@""]); + } + + { + @try + { + TestOperationsMutableStringStringD *d = [TestOperationsMutableStringStringD dictionary]; + [d setObject:@"bad key" forKey:[NSNull null]]; + [p putNSNullStringStringDict:d]; + test(NO); + } + @catch(ICEMarshalException *) + { + // Expected + } + } + + { + @try + { + TestOperationsMutableShortIntD *d = [TestOperationsMutableShortIntD dictionary]; + [d setObject:[NSNull null] forKey:[NSNumber numberWithInt:1]]; + [p putNSNullShortIntDict:d]; + test(NO); + } + @catch(ICEMarshalException *) + { + // Expected + } + } + + { + @try + { + TestOperationsMutableStringMyEnumD *d = [TestOperationsMutableStringMyEnumD dictionary]; + [d setObject:[NSNull null] forKey:@"key"]; + [p putNSNullStringMyEnumDict:d]; + test(NO); + } + @catch(ICEMarshalException *) + { + // Expected + } + } } @catch(ICEOperationNotExistException *) { diff --git a/objective-c/test/Ice/operations/TwowaysNewAMI.m b/objective-c/test/Ice/operations/TwowaysNewAMI.m index 461954fe7e6..5b930f7a64a 100644 --- a/objective-c/test/Ice/operations/TwowaysNewAMI.m +++ b/objective-c/test/Ice/operations/TwowaysNewAMI.m @@ -163,9 +163,9 @@ -(void) opMyClassResponse:(id<TestOperationsMyClassPrx>)r p2:(id<TestOperationsMyClassPrx>)c1 p3:(id<TestOperationsMyClassPrx>)c2 { - test([[c1 ice_getIdentity] isEqual:[[c1 ice_getCommunicator] stringToIdentity:@"test"]]); - test([[c2 ice_getIdentity] isEqual:[[c1 ice_getCommunicator] stringToIdentity:@"noSuchIdentity"]]); - test([[r ice_getIdentity] isEqual:[[c1 ice_getCommunicator] stringToIdentity:@"test"]]); + test([[c1 ice_getIdentity] isEqual:[ICEUtil stringToIdentity:@"test"]]); + test([[c2 ice_getIdentity] isEqual:[ICEUtil stringToIdentity:@"noSuchIdentity"]]); + test([[r ice_getIdentity] isEqual:[ICEUtil stringToIdentity:@"test"]]); // We can't do the callbacks below in connection serialization mode. if([[[c1 ice_getCommunicator] getProperties] getPropertyAsInt:@"Ice.ThreadPool.Client.Serialize"]) { @@ -1420,10 +1420,10 @@ twowaysNewAMI(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) { TestOperationsMutableMyEnumStringD *di1 = [TestOperationsMutableMyEnumStringD dictionary]; - [di1 setObject:@"abc" forKey:@(TestOperationsenum1)]; + [di1 setObject:@"abc" forKey:@(TestOperationsenum1)]; TestOperationsMutableMyEnumStringD *di2 = [TestOperationsMutableMyEnumStringD dictionary]; - [di2 setObject:@"Hello!!" forKey:@(TestOperationsenum2)]; - [di2 setObject:@"querty" forKey:@(TestOperationsenum3)]; + [di2 setObject:@"Hello!!" forKey:@(TestOperationsenum2)]; + [di2 setObject:@"querty" forKey:@(TestOperationsenum3)]; TestNewAMIOperationsCallback* cb = [TestNewAMIOperationsCallback create]; [p begin_opMyEnumStringD:di1 @@ -1982,7 +1982,7 @@ twowaysNewAMI(id<ICECommunicator> communicator, id<TestOperationsMyClassPrx> p) cb = [TestNewAMIOperationsCallback create]; [p2 begin_opContext:ctx response:^(ICEMutableContext* ctx) { [cb opNonEmptyContextResponse:ctx]; } exception:^(ICEException* ex) { [cb opContextException:ex]; }]; test([cb check]); - } + } } if([p ice_getConnection]) diff --git a/objective-c/test/Ice/operations/run.py b/objective-c/test/Ice/operations/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/operations/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/optional/.gitignore b/objective-c/test/Ice/optional/.gitignore deleted file mode 100644 index 7096f056538..00000000000 --- a/objective-c/test/Ice/optional/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -OptionalTest.m -OptionalTest.h diff --git a/objective-c/test/Ice/optional/AllTests.m b/objective-c/test/Ice/optional/AllTests.m index 7ef51284f3c..11c5ead1aba 100644 --- a/objective-c/test/Ice/optional/AllTests.m +++ b/objective-c/test/Ice/optional/AllTests.m @@ -19,12 +19,12 @@ @end @implementation TestObjectReader --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { - [is startObject]; + [is startValue]; [is startSlice]; [is endSlice]; - [is endObject:NO]; + [is endValue:NO]; } @end @@ -34,9 +34,9 @@ @end @implementation BObjectReader --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { - [is startObject]; + [is startValue]; // ::Test::B [is startSlice]; [is readInt]; @@ -45,7 +45,7 @@ [is startSlice]; [is readInt]; [is endSlice]; - [is endObject:NO]; + [is endValue:NO]; }; @end @@ -55,9 +55,9 @@ @end @implementation CObjectReader --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { - [is startObject]; + [is startValue]; // ::Test::C [is startSlice]; [is skipSlice]; @@ -69,7 +69,7 @@ [is startSlice]; [is readInt]; [is endSlice]; - [is endObject:NO]; + [is endValue:NO]; }; @end @@ -79,9 +79,9 @@ @end @implementation DObjectWriter --(void) write__:(id<ICEOutputStream>)os +-(void) iceWrite:(id<ICEOutputStream>)os { - [os startObject:0]; + [os startValue:0]; // ::Test::D [os startSlice:@"::Test::D" compactId:-1 lastSlice:NO]; [os writeString:@"test"]; @@ -98,7 +98,7 @@ { TestOptionalA* a = [TestOptionalA a]; a.mc = 18; - [os writeObject:a]; + [os writeValue:a]; } [os endSlice]; // ::Test::B @@ -109,7 +109,7 @@ [os startSlice:@"::Test::A" compactId:-1 lastSlice:YES]; [os writeInt:14]; [os endSlice]; - [os endObject]; + [os endValue]; } @end @@ -127,9 +127,9 @@ [super dealloc]; } #endif --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { - [is startObject]; + [is startValue]; // ::Test::D [is startSlice]; NSString* s = [is readString]; @@ -142,7 +142,7 @@ [[o objectAtIndex:2] isEqualToString:@"test3"] && [[o objectAtIndex:3] isEqualToString:@"test4"]); test([is readOptional:1000 format:ICEOptionalFormatClass]); - [is newObject:(ICEObject**)&a_ expectedType:[TestOptionalA class]]; + [is newValue:(ICEObject**)&a_ expectedType:[TestOptionalA class]]; [is endSlice]; // ::Test::B @@ -153,7 +153,7 @@ [is startSlice]; [is readInt]; [is endSlice]; - [is endObject:NO]; + [is endValue:NO]; } -(void) check { @@ -178,23 +178,23 @@ return self; } --(void) read__:(id<ICEInputStream>)is +-(void) iceRead:(id<ICEInputStream>)is { if(f_ != nil) { ICE_RELEASE(f_); } f_ = [TestOptionalF new]; - [is startObject]; + [is startValue]; [is startSlice]; // Don't read optional af on purpose - //[is_ readObject:(ICEObject**)&self->af expectedType:[TestOptionalA class]]; + //[is_ readValue:(ICEObject**)&self->af expectedType:[TestOptionalA class]]; [is endSlice]; [is startSlice]; TestOptionalA* ICE_AUTORELEASING_QUALIFIER ae; - [is readObject:(ICEObject**)&ae expectedType:[TestOptionalA class]]; + [is readValue:(ICEObject**)&ae expectedType:[TestOptionalA class]]; [is endSlice]; - [is endObject:NO]; + [is endValue:NO]; f_.ae = ae; } @@ -212,7 +212,7 @@ } @end -@interface FactoryI : NSObject<ICEObjectFactory> +@interface FactoryI : ICEObject { BOOL enabled_; } @@ -267,9 +267,6 @@ return nil; } --(void) destroy -{ -} -(void) setEnabled:(BOOL)enabled { self->enabled_ = enabled; @@ -280,7 +277,7 @@ id<TestOptionalInitialPrx> optionalAllTests(id<ICECommunicator> communicator) { FactoryI* factory = [FactoryI factoryI]; - [communicator addObjectFactory:factory sliceId:@""]; + [[communicator getValueFactoryManager] add:^(id s) { return [factory create:s]; } sliceId:@""]; tprintf("testing stringToProxy... "); NSString* sref = @"initial:default -p 12010"; @@ -588,7 +585,7 @@ optionalAllTests(id<ICECommunicator> communicator) [factory setEnabled:YES]; id<ICEOutputStream> os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [os writeObject:oo1]; + [os writeValue:oo1]; [os endEncapsulation]; ICEByteSeq* inEncaps = [os finished]; ICEMutableByteSeq* outEncaps; @@ -596,19 +593,19 @@ optionalAllTests(id<ICECommunicator> communicator) id<ICEInputStream> is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; ICEObject* obj; - [is readObject:&obj]; + [is readValue:&obj]; [is endEncapsulation]; test(obj != nil && [obj isKindOfClass:[TestObjectReader class]]); os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [os writeObject:mo1]; + [os writeValue:mo1]; [os endEncapsulation]; inEncaps = [os finished]; test([initial ice_invoke:@"pingPong" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]); is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - [is readObject:&obj]; + [is readValue:&obj]; [is endEncapsulation]; test(obj != nil && [obj isKindOfClass:[TestObjectReader class]]); [factory setEnabled:false]; @@ -639,8 +636,8 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEIntHelper writeOpt:@15 stream:os tag:1]; - [ICEStringHelper writeOpt:@"test" stream:os tag:2]; + [ICEIntHelper writeOptional:@15 stream:os tag:1]; + [ICEStringHelper writeOptional:@"test" stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; test([initial ice_invoke:@"opVoid" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]); @@ -673,14 +670,14 @@ optionalAllTests(id<ICECommunicator> communicator) [factory setEnabled:YES]; os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [os writeObject:mc]; + [os writeValue:mc]; [os endEncapsulation]; inEncaps = [os finished]; test([initial ice_invoke:@"pingPong" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]); is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - [is readObject:&obj]; + [is readValue:&obj]; [is endEncapsulation]; test(obj != nil && [obj isKindOfClass:[TestObjectReader class]]); [factory setEnabled:NO]; @@ -708,13 +705,13 @@ optionalAllTests(id<ICECommunicator> communicator) [factory setEnabled:YES]; os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [os writeObject:b]; + [os writeValue:b]; [os endEncapsulation]; inEncaps = [os finished]; test([initial ice_invoke:@"pingPong" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]); is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - [is readObject:&obj]; + [is readValue:&obj]; [is endEncapsulation]; test(obj != nil); [factory setEnabled:NO]; @@ -734,12 +731,12 @@ optionalAllTests(id<ICECommunicator> communicator) [factory setEnabled:YES]; os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [os writeObject:f]; + [os writeValue:f]; [os endEncapsulation]; inEncaps = [os finished]; is = [ICEUtil createInputStream:communicator data:inEncaps]; [is startEncapsulation]; - [is readObject:&obj]; + [is readValue:&obj]; [is endEncapsulation]; [factory setEnabled:NO]; @@ -769,14 +766,14 @@ optionalAllTests(id<ICECommunicator> communicator) c.ms = @"testms"; os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [os writeObject:c]; + [os writeValue:c]; [os endEncapsulation]; inEncaps = [os finished]; [factory setEnabled:YES]; test([initial ice_invoke:@"pingPong" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]); is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - [is readObject:&obj]; + [is readValue:&obj]; [is endEncapsulation]; test(obj != nil && [obj isKindOfClass:[CObjectReader class]]); [factory setEnabled:NO]; @@ -785,14 +782,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; ICEObject* d = [DObjectWriter new]; - [os writeObject:d]; + [os writeValue:d]; ICE_RELEASE(d); [os endEncapsulation]; inEncaps = [os finished]; test([initial ice_invoke:@"pingPong" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]); is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - [is readObject:&obj]; + [is readValue:&obj]; [is endEncapsulation]; test(obj != nil && [obj isKindOfClass:[DObjectReader class]]); [(DObjectReader*)obj check]; @@ -806,9 +803,9 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [os writeObject:a]; + [os writeValue:a]; DObjectWriter* writer = [DObjectWriter new]; - [ICEObjectHelper writeOpt:writer stream:os tag:1]; + [ICEObjectHelper writeOptional:writer stream:os tag:1]; ICE_RELEASE(writer); [os endEncapsulation]; inEncaps = [os finished]; @@ -834,17 +831,17 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEByteHelper writeOpt:p1 stream:os tag:2]; + [ICEByteHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opByte" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [ICEByteHelper readOpt:is tag:1]; - p3 = [ICEByteHelper readOpt:is tag:3]; + p2 = [ICEByteHelper readOptional:is tag:1]; + p3 = [ICEByteHelper readOptional:is tag:3]; id p4 = @0x08; - p4 = [ICEByteHelper readOpt:is tag:89]; + p4 = [ICEByteHelper readOptional:is tag:89]; [is endEncapsulation]; test([p2 isEqual:@0x56] && [p3 isEqual:@0x56] && [p4 isEqual:ICENone]); @@ -866,14 +863,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEBoolHelper writeOpt:p1 stream:os tag:2]; + [ICEBoolHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opBool" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [ICEBoolHelper readOpt:is tag:1]; - p3 = [ICEBoolHelper readOpt:is tag:3]; + p2 = [ICEBoolHelper readOptional:is tag:1]; + p3 = [ICEBoolHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:@YES] && [p3 isEqual:@YES]); @@ -894,14 +891,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEShortHelper writeOpt:p1 stream:os tag:2]; + [ICEShortHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opShort" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [ICEShortHelper readOpt:is tag:1]; - p3 = [ICEShortHelper readOpt:is tag:3]; + p2 = [ICEShortHelper readOptional:is tag:1]; + p3 = [ICEShortHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:@56] && [p3 isEqual:@56]); @@ -922,14 +919,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEIntHelper writeOpt:p1 stream:os tag:2]; + [ICEIntHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opInt" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [ICEIntHelper readOpt:is tag:1]; - p3 = [ICEIntHelper readOpt:is tag:3]; + p2 = [ICEIntHelper readOptional:is tag:1]; + p3 = [ICEIntHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:@56] && [p3 isEqual:@56]); @@ -950,14 +947,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICELongHelper writeOpt:p1 stream:os tag:1]; + [ICELongHelper writeOptional:p1 stream:os tag:1]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opLong" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p3 = [ICELongHelper readOpt:is tag:2]; - p2 = [ICELongHelper readOpt:is tag:3]; + p3 = [ICELongHelper readOptional:is tag:2]; + p2 = [ICELongHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:@56] && [p3 isEqual:@56]); @@ -978,14 +975,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEFloatHelper writeOpt:p1 stream:os tag:2]; + [ICEFloatHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opFloat" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p3 = [ICEFloatHelper readOpt:is tag:1]; - p2 = [ICEFloatHelper readOpt:is tag:3]; + p3 = [ICEFloatHelper readOptional:is tag:1]; + p2 = [ICEFloatHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:@1.0f] && [p3 isEqual:@1.0f]); @@ -1006,14 +1003,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEDoubleHelper writeOpt:p1 stream:os tag:2]; + [ICEDoubleHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opDouble" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p3 = [ICEDoubleHelper readOpt:is tag:1]; - p2 = [ICEDoubleHelper readOpt:is tag:3]; + p3 = [ICEDoubleHelper readOptional:is tag:1]; + p2 = [ICEDoubleHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:@1.0] && [p3 isEqual:@1.0]); @@ -1034,14 +1031,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEStringHelper writeOpt:p1 stream:os tag:2]; + [ICEStringHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opString" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [ICEStringHelper readOpt:is tag:1]; - p3 = [ICEStringHelper readOpt:is tag:3]; + p2 = [ICEStringHelper readOptional:is tag:1]; + p3 = [ICEStringHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqualToString:@"test"] && [p3 isEqualToString:@"test"]); @@ -1062,14 +1059,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalMyEnumHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalMyEnumHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opMyEnum" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalMyEnumHelper readOpt:is tag:1]; - p3 = [TestOptionalMyEnumHelper readOpt:is tag:3]; + p2 = [TestOptionalMyEnumHelper readOptional:is tag:1]; + p3 = [TestOptionalMyEnumHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:@(TestOptionalMyEnumMember)] && [p3 isEqual:@(TestOptionalMyEnumMember)]); @@ -1090,14 +1087,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalSmallStructHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalSmallStructHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opSmallStruct" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalSmallStructHelper readOpt:is tag:1]; - p3 = [TestOptionalSmallStructHelper readOpt:is tag:3]; + p2 = [TestOptionalSmallStructHelper readOptional:is tag:1]; + p3 = [TestOptionalSmallStructHelper readOptional:is tag:3]; [is endEncapsulation]; test(((TestOptionalSmallStruct*)p2).m == 56 && ((TestOptionalSmallStruct*)p3).m== 56); @@ -1118,14 +1115,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalFixedStructHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalFixedStructHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opFixedStruct" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalFixedStructHelper readOpt:is tag:1]; - p3 = [TestOptionalFixedStructHelper readOpt:is tag:3]; + p2 = [TestOptionalFixedStructHelper readOptional:is tag:1]; + p3 = [TestOptionalFixedStructHelper readOptional:is tag:3]; [is endEncapsulation]; test(((TestOptionalFixedStruct*)p2).m == 56 && ((TestOptionalFixedStruct*)p3).m== 56); @@ -1146,14 +1143,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalVarStructHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalVarStructHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opVarStruct" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalVarStructHelper readOpt:is tag:1]; - p3 = [TestOptionalVarStructHelper readOpt:is tag:3]; + p2 = [TestOptionalVarStructHelper readOptional:is tag:1]; + p3 = [TestOptionalVarStructHelper readOptional:is tag:3]; [is endEncapsulation]; test([((TestOptionalVarStruct*)p2).m isEqual:@"test"] && [((TestOptionalVarStruct*)p3).m isEqual:@"test"]); @@ -1175,14 +1172,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEObjectHelper writeOpt:p1 stream:os tag:2]; + [ICEObjectHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opOneOptional" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - [ICEObjectHelper readOpt:&p2 stream:is tag:1]; - [ICEObjectHelper readOpt:&p3 stream:is tag:3]; + [ICEObjectHelper readOptional:&p2 stream:is tag:1]; + [ICEObjectHelper readOptional:&p3 stream:is tag:3]; [is endEncapsulation]; test([p2 isKindOfClass:[TestOptionalOneOptional class]] && [p3 isKindOfClass:[TestOptionalOneOptional class]]); test(((TestOptionalOneOptional*)p2).a == 58 && ((TestOptionalOneOptional*)p3).a == 58); @@ -1206,14 +1203,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [ICEProxyHelper writeOpt:p1 stream:os tag:2]; + [ICEProxyHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opOneOptionalProxy" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalOneOptionalPrxHelper readOpt:is tag:1]; - p3 = [TestOptionalOneOptionalPrxHelper readOpt:is tag:3]; + p2 = [TestOptionalOneOptionalPrxHelper readOptional:is tag:1]; + p3 = [TestOptionalOneOptionalPrxHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isKindOfClass:[TestOptionalOneOptionalPrx class]] && [p3 isKindOfClass:[TestOptionalOneOptionalPrx class]]); @@ -1232,15 +1229,15 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalFHelper writeOpt:f stream:os tag:1]; - [TestOptionalFHelper writeOpt:f.ae stream:os tag:2]; + [TestOptionalFHelper writeOptional:f stream:os tag:1]; + [TestOptionalFHelper writeOptional:f.ae stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; is = [ICEUtil createInputStream:communicator data:inEncaps]; [is startEncapsulation]; id a; - [TestOptionalAHelper readOpt:&a stream:is tag:2]; + [TestOptionalAHelper readOptional:&a stream:is tag:2]; [is endEncapsulation]; test(a != nil && [a isKindOfClass:[TestOptionalA class]] && ((TestOptionalA*)a).requiredA == 56); } @@ -1260,14 +1257,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalByteSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalByteSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opByteSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalByteSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalByteSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalByteSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalByteSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:bs] && [p3 isEqual:bs]); @@ -1289,14 +1286,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalBoolSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalBoolSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opBoolSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalBoolSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalBoolSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalBoolSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalBoolSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:bs] && [p3 isEqual:bs]); @@ -1318,14 +1315,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalShortSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalShortSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opShortSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalShortSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalShortSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalShortSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalShortSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:bs] && [p3 isEqual:bs]); @@ -1347,14 +1344,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalIntSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalIntSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opIntSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalIntSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalIntSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalIntSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalIntSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:bs] && [p3 isEqual:bs]); @@ -1376,14 +1373,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalLongSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalLongSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opLongSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalLongSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalLongSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalLongSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalLongSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:bs] && [p3 isEqual:bs]); @@ -1405,14 +1402,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalFloatSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalFloatSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opFloatSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalFloatSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalFloatSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalFloatSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalFloatSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:bs] && [p3 isEqual:bs]); @@ -1434,14 +1431,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalDoubleSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalDoubleSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opDoubleSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalDoubleSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalDoubleSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalDoubleSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalDoubleSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:bs] && [p3 isEqual:bs]); @@ -1464,14 +1461,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalStringSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalStringSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opStringSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalStringSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalStringSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalStringSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalStringSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test([p2 isEqual:ss] && [p3 isEqual:ss]); @@ -1507,14 +1504,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalFixedStructSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalFixedStructSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opFixedStructSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalFixedStructSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalFixedStructSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalFixedStructSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalFixedStructSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test(p2 != nil && p3 != nil); test([p2 isEqual:fss] && [p3 isEqual:fss]); @@ -1551,14 +1548,14 @@ optionalAllTests(id<ICECommunicator> communicator) os = [ICEUtil createOutputStream:communicator]; [os startEncapsulation]; - [TestOptionalVarStructSeqHelper writeOpt:p1 stream:os tag:2]; + [TestOptionalVarStructSeqHelper writeOptional:p1 stream:os tag:2]; [os endEncapsulation]; inEncaps = [os finished]; [initial ice_invoke:@"opVarStructSeq" mode:ICENormal inEncaps:inEncaps outEncaps:&outEncaps]; is = [ICEUtil createInputStream:communicator data:outEncaps]; [is startEncapsulation]; - p2 = [TestOptionalVarStructSeqHelper readOpt:is tag:1]; - p3 = [TestOptionalVarStructSeqHelper readOpt:is tag:3]; + p2 = [TestOptionalVarStructSeqHelper readOptional:is tag:1]; + p3 = [TestOptionalVarStructSeqHelper readOptional:is tag:3]; [is endEncapsulation]; test(p2 != nil && p3 != nil); test([p2 isEqual:fss] && [p3 isEqual:fss]); @@ -1567,7 +1564,57 @@ optionalAllTests(id<ICECommunicator> communicator) [is startEncapsulation]; [is endEncapsulation]; } + tprintf("ok\n"); + + tprintf("testing optional parameters and dictionaries... "); + { + id p1 = ICENone; + id p3 = ICENone; + id p2 = [initial opIntIntDict:p1 p3:&p3]; + test(p2 == ICENone && p3 == ICENone); + + p2 = [initial opIntIntDict:[TestOptionalIntIntDict dictionary] p3:&p3]; + test(p2 != nil && p3 != nil && [p2 count] == 0 && [p3 count] == 0); + + TestOptionalMutableIntIntDict* iid = [TestOptionalMutableIntIntDict dictionary]; + [iid setObject:@45 forKey:@1]; + p1 = iid; + p2 = [initial opIntIntDict:p1 p3:&p3]; + test(p2 != nil && p3 != nil); + test([p2 isEqual:iid] && [p3 isEqual:iid]); + + p1 = ICENone; + p3 = ICENone; + p2 = [initial opStringIntDict:p1 p3:&p3]; + test(p2 == ICENone && p3 == ICENone); + + p2 = [initial opIntIntDict:[TestOptionalStringIntDict dictionary] p3:&p3]; + test(p2 != nil && p3 != nil && [p2 count] == 0 && [p3 count] == 0); + + TestOptionalMutableStringIntDict* sid = [TestOptionalMutableStringIntDict dictionary]; + [sid setObject:@45 forKey:@"1"]; + p1 = sid; + p2 = [initial opStringIntDict:p1 p3:&p3]; + test(p2 != nil && p3 != nil); + test([p2 isEqual:sid] && [p3 isEqual:sid]); + + p1 = ICENone; + p3 = ICENone; + p2 = [initial opIntOneOptionalDict:p1 p3:&p3]; + test(p2 == ICENone && p3 == ICENone); + p2 = [initial opIntOneOptionalDict:[TestOptionalStringIntDict dictionary] p3:&p3]; + test(p2 != nil && p3 != nil && [p2 count] == 0 && [p3 count] == 0); + + TestOptionalMutableIntOneOptionalDict* iod = [TestOptionalMutableIntOneOptionalDict dictionary]; + TestOptionalOneOptional* oneOpt = [TestOptionalOneOptional oneOptional:@58]; + [iod setObject:oneOpt forKey:@1]; + p1 = iod; + p2 = [initial opIntOneOptionalDict:p1 p3:&p3]; + test(p2 != nil && p3 != nil); + test(((TestOptionalOneOptional*)[p2 objectForKey:@1]).a == 58 && + ((TestOptionalOneOptional*)[p3 objectForKey:@1]).a == 58); + } tprintf("ok\n"); tprintf("testing exception optionals... "); @@ -1697,5 +1744,52 @@ optionalAllTests(id<ICECommunicator> communicator) } tprintf("ok\n"); + tprintf("testing optionals with marshaled results... "); + { + test([initial opMStruct1]); + test([initial opMDict1]); + test([initial opMSeq1]); + test([initial opMG1]); + + { + id p1, p2, p3; + p3 = [initial opMStruct2:ICENone p2:&p2]; + test(p2 == ICENone && p3 == ICENone); + + p1 = [TestOptionalSmallStruct smallStruct]; + p3 = [initial opMStruct2:p1 p2:&p2]; + test([p2 isEqual:p1] && [p3 isEqual:p1]); + } + { + id p1, p2, p3; + p3 = [initial opMSeq2:ICENone p2:&p2]; + test(p2 == ICENone && p3 == ICENone); + + p1 = [TestOptionalStringSeq arrayWithObject:@"hello"]; + p3 = [initial opMSeq2:p1 p2:&p2]; + test([[p2 objectAtIndex:0] isEqualToString:@"hello"] && + [[p3 objectAtIndex:0] isEqualToString:@"hello"]); + } + { + id p1, p2, p3; + p3 = [initial opMDict2:ICENone p2:&p2]; + test(p2 == ICENone && p3 == ICENone); + + p1 = [TestOptionalStringIntDict dictionaryWithObjectsAndKeys:@54, @"test", nil]; + p3 = [initial opMDict2:p1 p2:&p2]; + test([[p2 objectForKey:@"test"] isEqual:@54] && [[p3 objectForKey:@"test"] isEqual:@54]); + } + { + id p1, p2, p3; + p3 = [initial opMG2:ICENone p2:&p2]; + test(p2 == ICENone && p3 == ICENone); + + p1 = [TestOptionalG g]; + p3 = [initial opMG2:p1 p2:&p2]; + test(p2 != ICENone && p3 != ICENone && p3 == p2); + } + } + tprintf("ok\n"); + return initial; } diff --git a/objective-c/test/Ice/optional/Client.m b/objective-c/test/Ice/optional/Client.m index 94a1da52626..d0a90b66eb7 100644 --- a/objective-c/test/Ice/optional/Client.m +++ b/objective-c/test/Ice/optional/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -36,7 +43,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestOptional", @"::Test", nil]; #endif @@ -55,15 +62,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/optional/Makefile b/objective-c/test/Ice/optional/Makefile deleted file mode 100644 index 61acad3a903..00000000000 --- a/objective-c/test/Ice/optional/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = OptionalTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/optional/OptionalTest.ice b/objective-c/test/Ice/optional/OptionalTest.ice index 8de77ef42da..caa6ba56cd0 100644 --- a/objective-c/test/Ice/optional/OptionalTest.ice +++ b/objective-c/test/Ice/optional/OptionalTest.ice @@ -195,11 +195,12 @@ class G class Recursive; sequence<Recursive> RecursiveSeq; -class Recursive { +class Recursive +{ optional(0) RecursiveSeq value; }; -class Initial +interface Initial { void shutdown(); @@ -288,6 +289,8 @@ class Initial optional(1) StringIntDict opStringIntDict(optional(2) StringIntDict p1, out optional(3) StringIntDict p3); + optional(1) IntOneOptionalDict opIntOneOptionalDict(optional(2) IntOneOptionalDict p1, out optional(3) IntOneOptionalDict p3); + void opClassAndUnknownOptional(A p); void sendOptionalClass(bool req, optional(1) OneOptional o); @@ -298,6 +301,21 @@ class Initial void opVoid(); + ["marshaled-result"] optional(1) SmallStruct opMStruct1(); + ["marshaled-result"] optional(1) SmallStruct opMStruct2(optional(2) SmallStruct p1, + out optional(3)SmallStruct p2); + + ["marshaled-result"] optional(1) StringSeq opMSeq1(); + ["marshaled-result"] optional(1) StringSeq opMSeq2(optional(2) StringSeq p1, + out optional(3) StringSeq p2); + + ["marshaled-result"] optional(1) StringIntDict opMDict1(); + ["marshaled-result"] optional(1) StringIntDict opMDict2(optional(2) StringIntDict p1, + out optional(3) StringIntDict p2); + + ["marshaled-result"] optional(1) G opMG1(); + ["marshaled-result"] optional(1) G opMG2(optional(2) G p1, out optional(3) G p2); + bool supportsRequiredParams(); bool supportsJavaSerializable(); @@ -305,6 +323,8 @@ class Initial bool supportsCsharpSerializable(); bool supportsCppStringView(); + + bool supportsNullOptional(); }; }; diff --git a/objective-c/test/Ice/optional/Server.m b/objective-c/test/Ice/optional/Server.m index da802df2eb9..ebda1e4220c 100644 --- a/objective-c/test/Ice/optional/Server.m +++ b/objective-c/test/Ice/optional/Server.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [InitialI initial]; - [adapter add:object identity:[communicator stringToIdentity:@"initial"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"initial"]]; [adapter activate]; serverReady(communicator); @@ -33,6 +33,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -42,7 +49,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestOptional", @"::Test", nil]; #endif @@ -57,15 +64,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/optional/TestI.h b/objective-c/test/Ice/optional/TestI.h index fafade77d77..9dc2dce0c0e 100644 --- a/objective-c/test/Ice/optional/TestI.h +++ b/objective-c/test/Ice/optional/TestI.h @@ -15,4 +15,5 @@ -(BOOL) supportsRequiredParams:(ICECurrent*)current; -(BOOL) supportsJavaSerializable:(ICECurrent*)current; -(BOOL) supportsCsharpSerializable:(ICECurrent*)current; +-(BOOL) supportsNullOptional:(ICECurrent*)current; @end diff --git a/objective-c/test/Ice/optional/TestI.m b/objective-c/test/Ice/optional/TestI.m index c7a362094be..09586fb2736 100644 --- a/objective-c/test/Ice/optional/TestI.m +++ b/objective-c/test/Ice/optional/TestI.m @@ -213,6 +213,11 @@ *p3 = p1; return p1; } +-(id) opIntOneOptionalDict:(id)p1 p3:(id *)p3 current:(ICECurrent *)current +{ + *p3 = p1; + return p1; +} -(void) opClassAndUnknownOptional:(TestOptionalA *)p current:(ICECurrent *)current { } @@ -230,7 +235,42 @@ -(void) opVoid:(ICECurrent*)current { } - +-(id) opMStruct1:(ICECurrent *)current +{ + return [TestOptionalSmallStruct smallStruct]; +} +-(id) opMStruct2:(id)p1 p2:(id*)p2 current:(ICECurrent *)current +{ + *p2 = p1; + return p1; +} +-(id) opMSeq1:(ICECurrent *)current +{ + return [TestOptionalStringSeq array]; +} +-(id) opMSeq2:(id)p1 p2:(id*)p2 current:(ICECurrent *)current +{ + *p2 = p1; + return p1; +} +-(id) opMDict1:(ICECurrent *)current +{ + return [TestOptionalStringIntDict dictionary]; +} +-(id) opMDict2:(id)p1 p2:(id*)p2 current:(ICECurrent *)current +{ + *p2 = p1; + return p1; +} +-(id) opMG1:(ICECurrent *)current +{ + return [TestOptionalG g]; +} +-(id) opMG2:(id)p1 p2:(id*)p2 current:(ICECurrent *)current +{ + *p2 = p1; + return p1; +} -(BOOL) supportsRequiredParams:(ICECurrent*)current { return NO; @@ -247,5 +287,9 @@ { return NO; } +-(BOOL) supportsNullOptional:(ICECurrent*)current +{ + return YES; +} @end diff --git a/objective-c/test/Ice/optional/run.py b/objective-c/test/Ice/optional/run.py deleted file mode 100755 index 50fc969174b..00000000000 --- a/objective-c/test/Ice/optional/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("Running test with compact (default) format.") -TestUtil.clientServerTest() -print("Running test with sliced format.") -TestUtil.clientServerTest(additionalClientOptions="--Ice.Default.SlicedFormat", additionalServerOptions="--Ice.Default.SlicedFormat") diff --git a/objective-c/test/Ice/proxy/.gitignore b/objective-c/test/Ice/proxy/.gitignore deleted file mode 100644 index ced1dc09cab..00000000000 --- a/objective-c/test/Ice/proxy/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -ProxyTest.m -ProxyTest.h diff --git a/objective-c/test/Ice/proxy/AllTests.m b/objective-c/test/Ice/proxy/AllTests.m index d5b4c3b8aeb..8bc18b11860 100644 --- a/objective-c/test/Ice/proxy/AllTests.m +++ b/objective-c/test/Ice/proxy/AllTests.m @@ -11,7 +11,6 @@ #import <TestCommon.h> #import <ProxyTest.h> - TestProxyMyClassPrx* proxyAllTests(id<ICECommunicator> communicator) { @@ -411,8 +410,33 @@ proxyAllTests(id<ICECommunicator> communicator) tprintf("ok\n"); tprintf("testing proxy methods... "); - test([[communicator identityToString:[[base ice_identity:[communicator stringToIdentity:@"other"]] ice_getIdentity]] + test([[communicator identityToString:[[base ice_identity:[ICEUtil stringToIdentity:@"other"]] ice_getIdentity]] isEqualToString:@"other"]); + + // + // Verify that ToStringMode is passed correctly + // + ICEIdentity *ident = [ICEIdentity identity:@"test" category:@"\x7F\xE2\x82\xAC"]; + + NSString *idStr = [ICEUtil identityToString:ident toStringMode:ICEUnicode]; + test([idStr isEqualToString:@"\\u007f\xE2\x82\xAC/test"]); + ICEIdentity *id2 = [ICEUtil stringToIdentity:idStr]; + test([ident isEqual:id2]); + test([[ICEUtil identityToString:ident] isEqualToString:idStr]); + + idStr = [ICEUtil identityToString:ident toStringMode:ICEASCII]; + test([idStr isEqualToString:@"\\u007f\\u20ac/test"]); + id2 = [ICEUtil stringToIdentity:idStr]; + test([ident isEqual:id2]); + + idStr = [ICEUtil identityToString:ident toStringMode:ICECompat]; + test([idStr isEqualToString:@"\\177\\342\\202\\254/test"]); + id2 = [ICEUtil stringToIdentity:idStr]; + test([ident isEqual:id2]); + + id2 = [ICEUtil stringToIdentity:[communicator identityToString:ident]]; + test([ident isEqual:id2]); + test([[[base ice_facet:@"facet"] ice_getFacet] isEqualToString:@"facet"]); test([[[base ice_adapterId:@"id"] ice_getAdapterId] isEqualToString:@"id"]); test([[base ice_twoway] ice_isTwoway]); @@ -889,11 +913,7 @@ proxyAllTests(id<ICECommunicator> communicator) { // Working? //BOOL ssl = [[[communicator getProperties] getProperty:@"Ice.Default.Protocol"] isEqualToString:@"ssl"]; - BOOL tcp = [[[communicator getProperties] getProperty:@"Ice.Default.Protocol"] isEqualToString:@"tcp"]; - if(tcp) - { - [[p1 ice_encodingVersion:ICEEncoding_1_0] ice_ping]; - } + //BOOL tcp = [[[communicator getProperties] getProperty:@"Ice.Default.Protocol"] isEqualToString:@"tcp"]; // Two legal TCP endpoints expressed as opaque endpoints p1 = [communicator stringToProxy:@"test -e 1.0:opaque -t 1 -v CTEyNy4wLjAuMeouAAAQJwAAAA==:opaque -e 1.0 -t 1 -v CTEyNy4wLjAuMusuAAAQJwAAAA=="]; diff --git a/objective-c/test/Ice/proxy/Client.m b/objective-c/test/Ice/proxy/Client.m index ae0d5fb56c6..05253f0600d 100644 --- a/objective-c/test/Ice/proxy/Client.m +++ b/objective-c/test/Ice/proxy/Client.m @@ -29,6 +29,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -39,7 +46,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestProxy", @"::Test", nil]; #endif @@ -58,15 +65,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/proxy/Collocated.m b/objective-c/test/Ice/proxy/Collocated.m index 9480f17b6e9..aaec643f134 100644 --- a/objective-c/test/Ice/proxy/Collocated.m +++ b/objective-c/test/Ice/proxy/Collocated.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; [adapter add:[TestProxyMyDerivedClassI myDerivedClass] - identity:[communicator stringToIdentity:@"test"]]; + identity:[ICEUtil stringToIdentity:@"test"]]; //[adapter activate]; //adapter->activate(); // Don't activate OA to ensure collocation is used. TestProxyMyClassPrx* proxyAllTests(id<ICECommunicator>); @@ -33,6 +33,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -44,7 +51,7 @@ main(int argc, char* argv[]) initData.properties = defaultServerProperties(&argc, argv); [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestProxy", @"::Test", nil]; #endif @@ -59,15 +66,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/proxy/Makefile b/objective-c/test/Ice/proxy/Makefile deleted file mode 100644 index 90b68cf9a12..00000000000 --- a/objective-c/test/Ice/proxy/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = ProxyTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(COLOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/proxy/ProxyTest.ice b/objective-c/test/Ice/proxy/ProxyTest.ice index 85acddebdfb..b8de17198f8 100644 --- a/objective-c/test/Ice/proxy/ProxyTest.ice +++ b/objective-c/test/Ice/proxy/ProxyTest.ice @@ -15,14 +15,14 @@ module Test { -class MyClass +interface MyClass { void shutdown(); Ice::Context getContext(); }; -class MyDerivedClass extends MyClass +interface MyDerivedClass extends MyClass { Object* echo(Object* obj); }; diff --git a/objective-c/test/Ice/proxy/Server.m b/objective-c/test/Ice/proxy/Server.m index 5a897cc7c47..afbaafccc63 100644 --- a/objective-c/test/Ice/proxy/Server.m +++ b/objective-c/test/Ice/proxy/Server.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; [adapter add:[TestProxyMyDerivedClassI myDerivedClass] - identity:[communicator stringToIdentity:@"test"]]; + identity:[ICEUtil stringToIdentity:@"test"]]; [adapter activate]; serverReady(communicator); @@ -33,6 +33,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -44,7 +51,7 @@ main(int argc, char* argv[]) initData.properties = defaultServerProperties(&argc, argv); [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestProxy", @"::Test", nil]; #endif @@ -59,15 +66,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/proxy/run.py b/objective-c/test/Ice/proxy/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/proxy/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/retry/.gitignore b/objective-c/test/Ice/retry/.gitignore deleted file mode 100644 index 5559f16dfd5..00000000000 --- a/objective-c/test/Ice/retry/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -RetryTest.m -RetryTest.h diff --git a/objective-c/test/Ice/retry/Client.m b/objective-c/test/Ice/retry/Client.m index d7c25eb5455..7c2e89261c8 100644 --- a/objective-c/test/Ice/retry/Client.m +++ b/objective-c/test/Ice/retry/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -45,7 +52,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"Ice.RetryIntervals" value:@"0 1 10 1"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestRetry", @"::Test", nil]; #endif @@ -65,15 +72,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/retry/Collocated.m b/objective-c/test/Ice/retry/Collocated.m index ece8e009349..564b1acad00 100644 --- a/objective-c/test/Ice/retry/Collocated.m +++ b/objective-c/test/Ice/retry/Collocated.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [TestRetryRetryI retry]; - [adapter add:object identity:[communicator stringToIdentity:@"retry"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"retry"]]; //[adapter activate]; // Don't activate OA to ensure collocation is used. TestRetryRetryPrx* retryAllTests(id<ICECommunicator>); @@ -34,6 +34,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -43,10 +50,10 @@ main(int argc, char* argv[]) { ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); - [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; + [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; [initData.properties setProperty:@"Ice.RetryIntervals" value:@"0 1 10 1"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestRetry", @"::Test", nil]; #endif @@ -61,15 +68,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/retry/Makefile b/objective-c/test/Ice/retry/Makefile deleted file mode 100644 index e5b1536d9b7..00000000000 --- a/objective-c/test/Ice/retry/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = RetryTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -COLOBJS = Collocated.o \ - TestI.o \ - AllTests.o - -OBJS = $(COBJS) $(SOBJS) $(COLOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/retry/Server.m b/objective-c/test/Ice/retry/Server.m index abfa3e5d511..e6edf5c4947 100644 --- a/objective-c/test/Ice/retry/Server.m +++ b/objective-c/test/Ice/retry/Server.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [TestRetryRetryI retry]; - [adapter add:object identity:[communicator stringToIdentity:@"retry"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"retry"]]; [adapter activate]; serverReady(communicator); @@ -33,6 +33,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -42,9 +49,9 @@ main(int argc, char* argv[]) { ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); - [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; + [initData.properties setProperty:@"Ice.Warn.Dispatch" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestRetry", @"::Test", nil]; #endif @@ -59,15 +66,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/retry/TestI.m b/objective-c/test/Ice/retry/TestI.m index b4aaff5aa56..241371bb8aa 100644 --- a/objective-c/test/Ice/retry/TestI.m +++ b/objective-c/test/Ice/retry/TestI.m @@ -28,7 +28,7 @@ { if([current con]) { - [[current con] close:YES]; + [[current con] close:ICEConnectionCloseForcefully]; } else { diff --git a/objective-c/test/Ice/retry/run.py b/objective-c/test/Ice/retry/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/retry/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/servantLocator/.gitignore b/objective-c/test/Ice/servantLocator/.gitignore deleted file mode 100644 index e092f9d23a4..00000000000 --- a/objective-c/test/Ice/servantLocator/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -collocated -.depend -ServantLocatorTest.m -ServantLocatorTest.h diff --git a/objective-c/test/Ice/servantLocator/AllTests.m b/objective-c/test/Ice/servantLocator/AllTests.m index 8a71dd5430f..a9e5a557877 100644 --- a/objective-c/test/Ice/servantLocator/AllTests.m +++ b/objective-c/test/Ice/servantLocator/AllTests.m @@ -79,7 +79,7 @@ testExceptions(id<TestServantLocatorTestIntfPrx> obj) } @catch(ICEUnknownUserException* ex) { - test([ex.unknown isEqual:@"Test::TestIntfUserException"]); + test([ex.unknown isEqual:@"::Test::TestIntfUserException"]); } @catch(ICEOperationNotExistException*) { @@ -198,7 +198,7 @@ servantLocatorAllTests(id<ICECommunicator> communicator) } @catch(ICEUnknownUserException* ex) { - test([ex.unknown isEqual:@"Test::TestIntfUserException"]); + test([ex.unknown isEqual:@"::Test::TestIntfUserException"]); } @catch(id) { @@ -213,7 +213,7 @@ servantLocatorAllTests(id<ICECommunicator> communicator) } @catch(ICEUnknownUserException* ex) { - test([ex.unknown isEqual:@"Test::TestIntfUserException"]); + test([ex.unknown isEqual:@"::Test::TestIntfUserException"]); } @catch(id) { diff --git a/objective-c/test/Ice/servantLocator/Client.m b/objective-c/test/Ice/servantLocator/Client.m index e0f9cb9a942..c2aa07d8d4f 100644 --- a/objective-c/test/Ice/servantLocator/Client.m +++ b/objective-c/test/Ice/servantLocator/Client.m @@ -21,12 +21,19 @@ run(id<ICECommunicator> communicator) } #if TARGET_OS_IPHONE -# define main adminClient +# define main servantLocatorClient #endif int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -36,7 +43,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestServantLocator", @"::Test", nil]; #endif @@ -55,15 +62,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/servantLocator/Collocated.m b/objective-c/test/Ice/servantLocator/Collocated.m index d48e7074413..600149678fc 100644 --- a/objective-c/test/Ice/servantLocator/Collocated.m +++ b/objective-c/test/Ice/servantLocator/Collocated.m @@ -12,10 +12,10 @@ #import <servantLocator/ServantLocatorI.h> #import <TestCommon.h> -@interface ServantLocatorI : TestServantLocatorI +@interface SLServantLocatorI : TestServantLocatorI @end -@implementation ServantLocatorI +@implementation SLServantLocatorI -(ICEObject*) newServantAndCookie:(id*)cookie { *cookie = ICE_AUTORELEASE([[TestServantLocatorCookieI alloc] init]); @@ -34,16 +34,16 @@ } @end -@interface TestActivationI : TestServantLocatorTestActivation<TestServantLocatorTestActivation> +@interface SLTestActivationI : TestServantLocatorTestActivation<TestServantLocatorTestActivation> @end -@implementation TestActivationI +@implementation SLTestActivationI -(void) activateServantLocator:(BOOL)activate current:(ICECurrent *)current { if(activate) { - [current.adapter addServantLocator:ICE_AUTORELEASE([[ServantLocatorI alloc] init:@""]) category:@""]; - [current.adapter addServantLocator:ICE_AUTORELEASE([[ServantLocatorI alloc] init:@"category"]) + [current.adapter addServantLocator:ICE_AUTORELEASE([[SLServantLocatorI alloc] init:@""]) category:@""]; + [current.adapter addServantLocator:ICE_AUTORELEASE([[SLServantLocatorI alloc] init:@"category"]) category:@"category"]; } else @@ -64,10 +64,10 @@ run(id<ICECommunicator> communicator) id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; - [adapter addServantLocator:ICE_AUTORELEASE([[ServantLocatorI alloc] init:@""]) category:@""]; - [adapter addServantLocator:ICE_AUTORELEASE([[ServantLocatorI alloc] init:@"category"]) category:@"category"]; - [adapter add:[TestServantLocatorTestIntfI testIntf] identity:[communicator stringToIdentity:@"asm"]]; - [adapter add:[TestActivationI testActivation] identity:[communicator stringToIdentity:@"test/activation"]]; + [adapter addServantLocator:ICE_AUTORELEASE([[SLServantLocatorI alloc] init:@""]) category:@""]; + [adapter addServantLocator:ICE_AUTORELEASE([[SLServantLocatorI alloc] init:@"category"]) category:@"category"]; + [adapter add:[TestServantLocatorTestIntfI testIntf] identity:[ICEUtil stringToIdentity:@"asm"]]; + [adapter add:[SLTestActivationI testActivation] identity:[ICEUtil stringToIdentity:@"test/activation"]]; TestServantLocatorTestIntfPrx* servantLocatorAllTests(id<ICECommunicator>); servantLocatorAllTests(communicator); @@ -82,6 +82,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + @autoreleasepool { int status; @@ -92,7 +99,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestServantLocator", @"::Test", nil]; #endif @@ -107,15 +114,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } return status; } diff --git a/objective-c/test/Ice/servantLocator/Makefile b/objective-c/test/Ice/servantLocator/Makefile deleted file mode 100644 index 33e9c80fd3e..00000000000 --- a/objective-c/test/Ice/servantLocator/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server -COLLOCATED = collocated - -TARGETS = $(CLIENT) $(SERVER) $(COLLOCATED) - -SLICE_OBJS = ServantLocatorTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - ServantLocatorI.o \ - Server.o - -COLOBJS = TestI.o \ - ServantLocatorI.o \ - AllTests.o \ - Collocated.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(COLLOCATED): $(COLOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/servantLocator/Makefile.mk b/objective-c/test/Ice/servantLocator/Makefile.mk new file mode 100644 index 00000000000..92a41a1ffce --- /dev/null +++ b/objective-c/test/Ice/servantLocator/Makefile.mk @@ -0,0 +1,12 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_server_sources = $(test-server-sources) ServantLocatorI.m + +tests += $(test) diff --git a/objective-c/test/Ice/servantLocator/Server.m b/objective-c/test/Ice/servantLocator/Server.m index ba9ff1aa696..b5642e169e2 100644 --- a/objective-c/test/Ice/servantLocator/Server.m +++ b/objective-c/test/Ice/servantLocator/Server.m @@ -66,8 +66,8 @@ run(id<ICECommunicator> communicator) [adapter addServantLocator:ICE_AUTORELEASE([[ServantLocatorI alloc] init:@""]) category:@""]; [adapter addServantLocator:ICE_AUTORELEASE([[ServantLocatorI alloc] init:@"category"]) category:@"category"]; - [adapter add:[TestServantLocatorTestIntfI testIntf] identity:[communicator stringToIdentity:@"asm"]]; - [adapter add:[TestActivationI testActivation] identity:[communicator stringToIdentity:@"test/activation"]]; + [adapter add:[TestServantLocatorTestIntfI testIntf] identity:[ICEUtil stringToIdentity:@"asm"]]; + [adapter add:[TestActivationI testActivation] identity:[ICEUtil stringToIdentity:@"test/activation"]]; [adapter activate]; serverReady(communicator); @@ -83,6 +83,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + @autoreleasepool { int status; @@ -93,7 +100,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestServantLocator", @"::Test", nil]; #endif @@ -108,15 +115,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } return status; } diff --git a/objective-c/test/Ice/servantLocator/run.py b/objective-c/test/Ice/servantLocator/run.py deleted file mode 100755 index 18531550e4b..00000000000 --- a/objective-c/test/Ice/servantLocator/run.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("tests with regular server.") -TestUtil.clientServerTest() -print("tests with collocated server.") -TestUtil.collocatedTest() diff --git a/objective-c/test/Ice/services/.gitignore b/objective-c/test/Ice/services/.gitignore deleted file mode 100644 index 67ac8b78837..00000000000 --- a/objective-c/test/Ice/services/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -.depend -ServicesTest.m -ServicesTest.h diff --git a/objective-c/test/Ice/services/Client.m b/objective-c/test/Ice/services/Client.m index d3b93314eb6..61113310731 100644 --- a/objective-c/test/Ice/services/Client.m +++ b/objective-c/test/Ice/services/Client.m @@ -26,6 +26,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -36,7 +43,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestServices", @"::Test", nil]; #endif @@ -55,15 +62,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/services/Makefile b/objective-c/test/Ice/services/Makefile deleted file mode 100644 index 24cebc1e43b..00000000000 --- a/objective-c/test/Ice/services/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client - -TARGETS = $(CLIENT) - -SLICE_OBJS = ServicesTest.o - -COBJS = Client.o \ - AllTests.o - -OBJS = $(COBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I../../include $(CPPFLAGS) -LIBS := -lGlacier2ObjC$(libsuffix) -lIceStormObjC$(libsuffix) -lIceGridObjC$(libsuffix) $(TEST_LIBS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/services/Makefile.mk b/objective-c/test/Ice/services/Makefile.mk new file mode 100644 index 00000000000..677bea12938 --- /dev/null +++ b/objective-c/test/Ice/services/Makefile.mk @@ -0,0 +1,12 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_dependencies = IceObjC IceGridObjC Glacier2ObjC IceStormObjC TestCommonObjC + +tests += $(test) diff --git a/objective-c/test/Ice/services/run.py b/objective-c/test/Ice/services/run.py deleted file mode 100755 index a1a3e8f199a..00000000000 --- a/objective-c/test/Ice/services/run.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -client = os.path.join(os.getcwd(), "client") -TestUtil.simpleTest(client) diff --git a/objective-c/test/Ice/slicing/Makefile b/objective-c/test/Ice/slicing/Makefile deleted file mode 100644 index efb0ce5b990..00000000000 --- a/objective-c/test/Ice/slicing/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -include $(top_srcdir)/config/Make.rules - -SUBDIRS = exceptions objects - -$(EVERYTHING):: - @for subdir in $(SUBDIRS); \ - do \ - echo "making $@ in $$subdir"; \ - ( cd $$subdir && $(MAKE) $@ ) || exit 1; \ - done diff --git a/objective-c/test/Ice/slicing/exceptions/.gitignore b/objective-c/test/Ice/slicing/exceptions/.gitignore deleted file mode 100644 index 0962671d892..00000000000 --- a/objective-c/test/Ice/slicing/exceptions/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -SlicingExceptionsTestClient.m -SlicingExceptionsTestServer.m -SlicingExceptionsTestClient.h -SlicingExceptionsTestServer.h diff --git a/objective-c/test/Ice/slicing/exceptions/AllTests.m b/objective-c/test/Ice/slicing/exceptions/AllTests.m index ec30f514fe7..719a2d0b12d 100644 --- a/objective-c/test/Ice/slicing/exceptions/AllTests.m +++ b/objective-c/test/Ice/slicing/exceptions/AllTests.m @@ -118,16 +118,16 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientBase* b) { - test([b.b isEqualToString:@"Base.b"]); - test([[b ice_name] isEqualToString:@"Test::Base"]); + test([b.b isEqualToString:@"Base.b"]); + test([[b ice_id] isEqualToString:@"::Test::Base"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -136,16 +136,16 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientBase* b) { - test([b.b isEqualToString:@"UnknownDerived.b"]); - test([[b ice_name] isEqualToString:@"Test::Base"]); + test([b.b isEqualToString:@"UnknownDerived.b"]); + test([[b ice_id] isEqualToString:@"::Test::Base"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -154,17 +154,17 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientKnownDerived* k) { - test([k.b isEqualToString:@"KnownDerived.b"]); - test([k.kd isEqualToString:@"KnownDerived.kd"]); - test([[k ice_name] isEqualToString:@"Test::KnownDerived"]); + test([k.b isEqualToString:@"KnownDerived.b"]); + test([k.kd isEqualToString:@"KnownDerived.kd"]); + test([[k ice_id] isEqualToString:@"::Test::KnownDerived"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -173,16 +173,16 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientBase* b) { - test([b.b isEqualToString:@"UnknownIntermediate.b"]); - test([[b ice_name] isEqualToString:@"Test::Base"]); + test([b.b isEqualToString:@"UnknownIntermediate.b"]); + test([[b ice_id] isEqualToString:@"::Test::Base"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -191,17 +191,17 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientKnownIntermediate* ki) { - test([ki.b isEqualToString:@"KnownIntermediate.b"]); - test([ki.ki isEqualToString:@"KnownIntermediate.ki"]); - test([[ki ice_name] isEqualToString:@"Test::KnownIntermediate"]); + test([ki.b isEqualToString:@"KnownIntermediate.b"]); + test([ki.ki isEqualToString:@"KnownIntermediate.ki"]); + test([[ki ice_id] isEqualToString:@"::Test::KnownIntermediate"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -210,18 +210,18 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientKnownMostDerived* kmd) { - test([kmd.b isEqualToString:@"KnownMostDerived.b"]); - test([kmd.ki isEqualToString:@"KnownMostDerived.ki"]); - test([kmd.kmd isEqualToString:@"KnownMostDerived.kmd"]); - test([[kmd ice_name] isEqualToString:@"Test::KnownMostDerived"]); + test([kmd.b isEqualToString:@"KnownMostDerived.b"]); + test([kmd.ki isEqualToString:@"KnownMostDerived.ki"]); + test([kmd.kmd isEqualToString:@"KnownMostDerived.kmd"]); + test([[kmd ice_id] isEqualToString:@"::Test::KnownMostDerived"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -230,17 +230,17 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientKnownIntermediate* ki) { - test([ki.b isEqualToString:@"KnownIntermediate.b"]); - test([ki.ki isEqualToString:@"KnownIntermediate.ki"]); - test([[ki ice_name] isEqualToString:@"Test::KnownIntermediate"]); + test([ki.b isEqualToString:@"KnownIntermediate.b"]); + test([ki.ki isEqualToString:@"KnownIntermediate.ki"]); + test([[ki ice_id] isEqualToString:@"::Test::KnownIntermediate"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -249,17 +249,17 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientKnownIntermediate* ki) { - test([ki.b isEqualToString:@"UnknownMostDerived1.b"]); - test([ki.ki isEqualToString:@"UnknownMostDerived1.ki"]); - test([[ki ice_name] isEqualToString:@"Test::KnownIntermediate"]); + test([ki.b isEqualToString:@"UnknownMostDerived1.b"]); + test([ki.ki isEqualToString:@"UnknownMostDerived1.ki"]); + test([[ki ice_id] isEqualToString:@"::Test::KnownIntermediate"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -268,16 +268,16 @@ { @try { - @throw exc; + @throw exc; } @catch(TestSlicingExceptionsClientBase* b) { - test([b.b isEqualToString:@"UnknownMostDerived2.b"]); - test([[b ice_name] isEqualToString:@"Test::Base"]); + test([b.b isEqualToString:@"UnknownMostDerived2.b"]); + test([[b ice_id] isEqualToString:@"::Test::Base"]); } @catch(...) { - test(NO); + test(NO); } [self called]; } @@ -298,7 +298,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) @catch(TestSlicingExceptionsClientBase* b) { test([b.b isEqual:@"Base.b"]); - test([[b ice_name] isEqualToString:@"Test::Base"]); + test([[b ice_id] isEqualToString:@"::Test::Base"]); } @catch(...) { @@ -325,7 +325,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) @catch(TestSlicingExceptionsClientBase* b) { test([b.b isEqualToString:@"UnknownDerived.b"]); - test([[b ice_name] isEqualToString:@"Test::Base"]); + test([[b ice_id] isEqualToString:@"::Test::Base"]); } @catch(...) { @@ -353,7 +353,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) { test([k.b isEqualToString:@"KnownDerived.b"]); test([k.kd isEqualToString:@"KnownDerived.kd"]); - test([[k ice_name] isEqualToString:@"Test::KnownDerived"]); + test([[k ice_id] isEqualToString:@"::Test::KnownDerived"]); } @catch(...) { @@ -381,7 +381,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) { test([k.b isEqualToString:@"KnownDerived.b"]); test([k.kd isEqualToString:@"KnownDerived.kd"]); - test([[k ice_name] isEqualToString:@"Test::KnownDerived"]); + test([[k ice_id] isEqualToString:@"::Test::KnownDerived"]); } @catch(...) { @@ -408,7 +408,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) @catch(TestSlicingExceptionsClientBase* b) { test([b.b isEqualToString:@"UnknownIntermediate.b"]); - test([[b ice_name] isEqualToString:@"Test::Base"]); + test([[b ice_id] isEqualToString:@"::Test::Base"]); } @catch(...) { @@ -436,7 +436,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) { test([ki.b isEqualToString:@"KnownIntermediate.b"]); test([ki.ki isEqualToString:@"KnownIntermediate.ki"]); - test([[ki ice_name] isEqualToString:@"Test::KnownIntermediate"]); + test([[ki ice_id] isEqualToString:@"::Test::KnownIntermediate"]); } @catch(...) { @@ -465,7 +465,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) test([kmd.b isEqualToString:@"KnownMostDerived.b"]); test([kmd.ki isEqualToString:@"KnownMostDerived.ki"]); test([kmd.kmd isEqualToString:@"KnownMostDerived.kmd"]); - test([[kmd ice_name] isEqualToString:@"Test::KnownMostDerived"]); + test([[kmd ice_id] isEqualToString:@"::Test::KnownMostDerived"]); } @catch(...) { @@ -493,7 +493,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) { test([ki.b isEqualToString:@"KnownIntermediate.b"]); test([ki.ki isEqualToString:@"KnownIntermediate.ki"]); - test([[ki ice_name] isEqualToString:@"Test::KnownIntermediate"]); + test([[ki ice_id] isEqualToString:@"::Test::KnownIntermediate"]); } @catch(...) { @@ -522,7 +522,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) test([kmd.b isEqualToString:@"KnownMostDerived.b"]); test([kmd.ki isEqualToString:@"KnownMostDerived.ki"]); test([kmd.kmd isEqualToString:@"KnownMostDerived.kmd"]); - test([[kmd ice_name] isEqualToString:@"Test::KnownMostDerived"]); + test([[kmd ice_id] isEqualToString:@"::Test::KnownMostDerived"]); } @catch(...) { @@ -551,7 +551,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) test([kmd.b isEqualToString:@"KnownMostDerived.b"]); test([kmd.ki isEqualToString:@"KnownMostDerived.ki"]); test([kmd.kmd isEqualToString:@"KnownMostDerived.kmd"]); - test([[kmd ice_name] isEqualToString:@"Test::KnownMostDerived"]); + test([[kmd ice_id] isEqualToString:@"::Test::KnownMostDerived"]); } @catch(...) { @@ -579,7 +579,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) { test([ki.b isEqualToString:@"UnknownMostDerived1.b"]); test([ki.ki isEqualToString:@"UnknownMostDerived1.ki"]); - test([[ki ice_name] isEqualToString:@"Test::KnownIntermediate"]); + test([[ki ice_id] isEqualToString:@"::Test::KnownIntermediate"]); } @catch(...) { @@ -607,7 +607,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) { test([ki.b isEqualToString:@"UnknownMostDerived1.b"]); test([ki.ki isEqualToString:@"UnknownMostDerived1.ki"]); - test([[ki ice_name] isEqualToString:@"Test::KnownIntermediate"]); + test([[ki ice_id] isEqualToString:@"::Test::KnownIntermediate"]); } @catch(...) { @@ -634,7 +634,7 @@ slicingExceptionsAllTests(id<ICECommunicator> communicator) @catch(TestSlicingExceptionsClientBase* b) { test([b.b isEqualToString:@"UnknownMostDerived2.b"]); - test([[b ice_name] isEqualToString:@"Test::Base"]); + test([[b ice_id] isEqualToString:@"::Test::Base"]); } @catch(...) { diff --git a/objective-c/test/Ice/slicing/exceptions/Client.m b/objective-c/test/Ice/slicing/exceptions/Client.m index c93fa2b8108..4580adb8a7c 100644 --- a/objective-c/test/Ice/slicing/exceptions/Client.m +++ b/objective-c/test/Ice/slicing/exceptions/Client.m @@ -27,8 +27,15 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { - int status; - @autoreleasepool +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + + int status; + @autoreleasepool { id<ICECommunicator> communicator = nil; @try @@ -36,7 +43,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestSlicingExceptionsClient", @"::Test", nil]; #endif @@ -55,15 +62,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/slicing/exceptions/Makefile b/objective-c/test/Ice/slicing/exceptions/Makefile deleted file mode 100644 index 3b84bf00ad5..00000000000 --- a/objective-c/test/Ice/slicing/exceptions/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = SlicingExceptionsTestClient.o \ - SlicingExceptionsTestServer.o - -COBJS = Client.o \ - AllTests.o \ - SlicingExceptionsTestClient.o - -SOBJS = TestI.o \ - Server.o \ - SlicingExceptionsTestServer.o - -OBJS = $(COBJS) $(SOBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I../.. -I../../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/slicing/exceptions/Makefile.mk b/objective-c/test/Ice/slicing/exceptions/Makefile.mk new file mode 100644 index 00000000000..40dff01640a --- /dev/null +++ b/objective-c/test/Ice/slicing/exceptions/Makefile.mk @@ -0,0 +1,13 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_client_sources = Client.m AllTests.m SlicingExceptionsTestClient.ice +$(test)_server_sources = Server.m TestI.m SlicingExceptionsTestServer.ice + +tests += $(test) diff --git a/objective-c/test/Ice/slicing/exceptions/Server.m b/objective-c/test/Ice/slicing/exceptions/Server.m index 8bb9ef289ab..df5503f27bb 100644 --- a/objective-c/test/Ice/slicing/exceptions/Server.m +++ b/objective-c/test/Ice/slicing/exceptions/Server.m @@ -18,7 +18,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [TestSlicingExceptionsServerI testIntf]; - [adapter add:object identity:[communicator stringToIdentity:@"Test"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"Test"]]; [adapter activate]; serverReady(communicator); @@ -34,6 +34,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -44,7 +51,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestSlicingExceptionsServer", @"::Test", nil]; #endif @@ -59,15 +66,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/slicing/exceptions/run.py b/objective-c/test/Ice/slicing/exceptions/run.py deleted file mode 100755 index 238c18568bc..00000000000 --- a/objective-c/test/Ice/slicing/exceptions/run.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../..", "../../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("Running test with sliced format.") -TestUtil.clientServerTest() - -print("Running test with 1.0 encoding.") -TestUtil.clientServerTest(additionalClientOptions="--Ice.Default.EncodingVersion=1.0", - additionalServerOptions="--Ice.Default.EncodingVersion=1.0") diff --git a/objective-c/test/Ice/slicing/objects/.gitignore b/objective-c/test/Ice/slicing/objects/.gitignore deleted file mode 100644 index a2c2a1c0974..00000000000 --- a/objective-c/test/Ice/slicing/objects/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -SlicingObjectsTestClient.m -SlicingObjectsForwardClient.m -SlicingObjectsTestServer.m -SlicingObjectsForwardServer.m -SlicingObjectsTestClient.h -SlicingObjectsForwardClient.h -SlicingObjectsTestServer.h -SlicingObjectsForwardServer.h diff --git a/objective-c/test/Ice/slicing/objects/AllTests.m b/objective-c/test/Ice/slicing/objects/AllTests.m index 5d8b9158c8e..fdf74e321b5 100644 --- a/objective-c/test/Ice/slicing/objects/AllTests.m +++ b/objective-c/test/Ice/slicing/objects/AllTests.m @@ -10,7 +10,6 @@ #import <objc/Ice.h> #import <TestCommon.h> #import <SlicingObjectsTestClient.h> -#import <SlicingObjectsForwardClient.h> #import <Foundation/Foundation.h> @@ -139,7 +138,7 @@ -(void) SBSUnknownDerivedAsSBaseCompactException:(ICEException*)exc { - test([[exc ice_name] isEqualToString:@"Ice::NoObjectFactoryException"]); + test([[exc ice_id] isEqualToString:@"::Ice::NoValueFactoryException"]); [self called]; } @@ -150,7 +149,7 @@ -(void) SUnknownAsObjectException10:(ICEException*)exc { - test([[exc ice_name] isEqualToString:@"Ice::NoObjectFactoryException"]); + test([[exc ice_id] isEqualToString:@"::Ice::NoValueFactoryException"]); [self called]; } @@ -399,7 +398,7 @@ -(void) throwBaseAsBaseException:(ICEException*)ex { - test([[ex ice_name] isEqualToString:@"Test::BaseException"]); + test([[ex ice_id] isEqualToString:@"::Test::BaseException"]); TestSlicingObjectsClientBaseException* e = (TestSlicingObjectsClientBaseException*)ex; test([e.sbe isEqualToString:@"sbe"]); test(e.pb); @@ -415,7 +414,7 @@ -(void) throwDerivedAsBaseException:(ICEException*)ex { - test([[ex ice_name] isEqualToString:@"Test::DerivedException"]); + test([[ex ice_id] isEqualToString:@"::Test::DerivedException"]); TestSlicingObjectsClientDerivedException* e = (TestSlicingObjectsClientDerivedException*)ex; test([e.sbe isEqualToString:@"sbe"]); test(e.pb); @@ -437,7 +436,7 @@ -(void) throwDerivedAsDerivedException:(ICEException*)ex { - test([[ex ice_name] isEqualToString:@"Test::DerivedException"]); + test([[ex ice_id] isEqualToString:@"::Test::DerivedException"]); TestSlicingObjectsClientDerivedException* e = (TestSlicingObjectsClientDerivedException*)ex; test([e.sbe isEqualToString:@"sbe"]); test(e.pb); @@ -459,7 +458,7 @@ -(void) throwUnknownDerivedAsBaseException:(ICEException*)ex { - test([[ex ice_name] isEqualToString:@"Test::BaseException"]); + test([[ex ice_id] isEqualToString:@"::Test::BaseException"]); TestSlicingObjectsClientBaseException* e = (TestSlicingObjectsClientBaseException*)ex; test([e.sbe isEqualToString:@"sbe"]); test(e.pb); @@ -648,7 +647,7 @@ slicingObjectsAllTests(id<ICECommunicator> communicator) { test(0); } - test([sb isKindOfClass:[TestSlicingObjectsClientSBSKnownDerived class]]); + test([sb isKindOfClass:[TestSlicingObjectsClientSBSKnownDerived class]]); test([((TestSlicingObjectsClientSBSKnownDerived*)sb).sbskd isEqualToString:@"SBSKnownDerived.sbskd"]); } tprintf("ok\n"); @@ -728,7 +727,7 @@ slicingObjectsAllTests(id<ICECommunicator> communicator) @catch(const ICEOperationNotExistException*) { } - @catch(const ICENoObjectFactoryException*) + @catch(const ICENoValueFactoryException*) { // Expected. } @@ -774,11 +773,11 @@ slicingObjectsAllTests(id<ICECommunicator> communicator) { o = [test SUnknownAsObject]; test(![[test ice_getEncodingVersion] isEqual:ICEEncoding_1_0]); - test([o isKindOfClass:[ICEUnknownSlicedObject class]]); - test([[((ICEUnknownSlicedObject*)o) getUnknownTypeId] isEqualToString:@"::Test::SUnknown"]); + test([o isKindOfClass:[ICEUnknownSlicedValue class]]); + test([[((ICEUnknownSlicedValue*)o) getUnknownTypeId] isEqualToString:@"::Test::SUnknown"]); [test checkSUnknown:o]; } - @catch(ICENoObjectFactoryException*) + @catch(ICENoValueFactoryException*) { test([[test ice_getEncodingVersion] isEqual:ICEEncoding_1_0]); } @@ -1783,7 +1782,7 @@ slicingObjectsAllTests(id<ICECommunicator> communicator) } @catch(TestSlicingObjectsClientBaseException* e) { - test([[e ice_name] isEqualToString: @"Test::BaseException"]); + test([[e ice_id] isEqualToString: @"::Test::BaseException"]); test([e.sbe isEqualToString:@"sbe"]); test(e.pb); test([e.pb.sb isEqualToString:@"sb"]); @@ -1813,7 +1812,7 @@ slicingObjectsAllTests(id<ICECommunicator> communicator) } @catch(TestSlicingObjectsClientDerivedException* e) { - test([[e ice_name] isEqualToString:@"Test::DerivedException"]); + test([[e ice_id] isEqualToString:@"::Test::DerivedException"]); test([e.sbe isEqualToString:@"sbe"]); test(e.pb); test([e.pb.sb isEqualToString:@"sb1"]); @@ -1849,7 +1848,7 @@ slicingObjectsAllTests(id<ICECommunicator> communicator) } @catch(TestSlicingObjectsClientDerivedException* e) { - test([[e ice_name] isEqualToString:@"Test::DerivedException"]); + test([[e ice_id] isEqualToString:@"::Test::DerivedException"]); test([e.sbe isEqualToString:@"sbe"]); test(e.pb); test([e.pb.sb isEqualToString:@"sb1"]); @@ -1885,7 +1884,7 @@ slicingObjectsAllTests(id<ICECommunicator> communicator) } @catch(TestSlicingObjectsClientBaseException* e) { - test([[e ice_name] isEqualToString:@"Test::BaseException"]); + test([[e ice_id] isEqualToString:@"::Test::BaseException"]); test([e.sbe isEqualToString:@"sbe"]); test(e.pb); test([e.pb.sb isEqualToString:@"sb d2"]); diff --git a/objective-c/test/Ice/slicing/objects/Client.m b/objective-c/test/Ice/slicing/objects/Client.m index 9d064065d6f..6ad9a914ac1 100644 --- a/objective-c/test/Ice/slicing/objects/Client.m +++ b/objective-c/test/Ice/slicing/objects/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -36,7 +43,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestSlicingObjectsClient", @"::Test", @"TestSlicingObjectsShared", @"::TestShared", nil]; @@ -56,15 +63,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/slicing/objects/Makefile b/objective-c/test/Ice/slicing/objects/Makefile deleted file mode 100644 index 1794685bb85..00000000000 --- a/objective-c/test/Ice/slicing/objects/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = SlicingObjectsTestClient.o \ - SlicingObjectsForwardClient.o \ - SlicingObjectsTestServer.o \ - SlicingObjectsForwardServer.o - -COBJS = SlicingObjectsTestClient.o \ - SlicingObjectsForwardClient.o \ - Client.o \ - AllTests.o - -SOBJS = SlicingObjectsTestServer.o \ - SlicingObjectsForwardServer.o \ - TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I../.. -I../../../include $(CPPFLAGS) -SLICE2OBJCFLAGS := -I. $(SLICE2OBJCFLAGS) - -$(CLIENT): $(COBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/slicing/objects/Makefile.mk b/objective-c/test/Ice/slicing/objects/Makefile.mk new file mode 100644 index 00000000000..3b7e58c3c69 --- /dev/null +++ b/objective-c/test/Ice/slicing/objects/Makefile.mk @@ -0,0 +1,13 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(test)_client_sources = Client.m AllTests.m SlicingObjectsTestClient.ice SlicingObjectsForwardClient.ice +$(test)_server_sources = Server.m TestI.m SlicingObjectsTestServer.ice SlicingObjectsForwardServer.ice + +tests += $(test) diff --git a/objective-c/test/Ice/slicing/objects/Server.m b/objective-c/test/Ice/slicing/objects/Server.m index 79b1955ce03..96044c69053 100644 --- a/objective-c/test/Ice/slicing/objects/Server.m +++ b/objective-c/test/Ice/slicing/objects/Server.m @@ -19,7 +19,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [TestSlicingObjectsServerI testIntf]; - [adapter add:object identity:[communicator stringToIdentity:@"Test"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"Test"]]; [adapter activate]; serverReady(communicator); @@ -35,6 +35,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -45,7 +52,7 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultServerProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestSlicingObjectsServer", @"::Test", @"TestSlicingObjectsShared", @"::TestShared", nil]; @@ -61,15 +68,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/slicing/objects/SlicingObjectsTestClient.ice b/objective-c/test/Ice/slicing/objects/SlicingObjectsTestClient.ice index 6fad5bf14cb..d5f1f748757 100644 --- a/objective-c/test/Ice/slicing/objects/SlicingObjectsTestClient.ice +++ b/objective-c/test/Ice/slicing/objects/SlicingObjectsTestClient.ice @@ -67,7 +67,7 @@ exception DerivedException extends BaseException D1 pd1; }; -class Forward; /* Forward-declared class defined in another compilation unit */ +class Forward; class PBase { @@ -185,6 +185,16 @@ class CompactPCDerived(57) extends CompactPDerived void shutdown(); }; +class Hidden +{ + Forward f; +}; + +class Forward +{ + Hidden h; +}; + // Things private to the client. class D3 extends B diff --git a/objective-c/test/Ice/slicing/objects/SlicingObjectsTestServer.ice b/objective-c/test/Ice/slicing/objects/SlicingObjectsTestServer.ice index 97496f306d3..1684651a0c7 100644 --- a/objective-c/test/Ice/slicing/objects/SlicingObjectsTestServer.ice +++ b/objective-c/test/Ice/slicing/objects/SlicingObjectsTestServer.ice @@ -67,7 +67,7 @@ exception DerivedException extends BaseException D1 pd1; }; -class Forward; /* Forward-declared class defined in another compilation unit */ +class Forward; class PBase { @@ -181,6 +181,15 @@ exception PSUnknownException extends PreservedException void shutdown(); }; +class Hidden +{ + Forward f; +}; + +class Forward +{ + Hidden h; +}; // Things private to the server. diff --git a/objective-c/test/Ice/slicing/objects/TestI.h b/objective-c/test/Ice/slicing/objects/TestI.h index 3d0136e0738..2dd44b877ab 100644 --- a/objective-c/test/Ice/slicing/objects/TestI.h +++ b/objective-c/test/Ice/slicing/objects/TestI.h @@ -8,7 +8,6 @@ // ********************************************************************** #import <SlicingObjectsTestServer.h> -#import <SlicingObjectsForwardServer.h> @interface TestSlicingObjectsServerI : TestSlicingObjectsServerTestIntf<TestSlicingObjectsServerTestIntf> { diff --git a/objective-c/test/Ice/slicing/objects/run.py b/objective-c/test/Ice/slicing/objects/run.py deleted file mode 100755 index 660e9dcea60..00000000000 --- a/objective-c/test/Ice/slicing/objects/run.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../..", "../../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -print("Running test with sliced format.") -TestUtil.clientServerTest() - -print("Running test with 1.0 encoding.") -TestUtil.clientServerTest(additionalClientOptions="--Ice.Default.EncodingVersion=1.0", - additionalServerOptions="--Ice.Default.EncodingVersion=1.0") diff --git a/objective-c/test/Ice/stream/.gitignore b/objective-c/test/Ice/stream/.gitignore deleted file mode 100644 index deeebc026e0..00000000000 --- a/objective-c/test/Ice/stream/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -.depend -StreamTest.m -StreamTest.h diff --git a/objective-c/test/Ice/stream/Client.m b/objective-c/test/Ice/stream/Client.m index 51282fff4dc..3ac8ce8ee8d 100644 --- a/objective-c/test/Ice/stream/Client.m +++ b/objective-c/test/Ice/stream/Client.m @@ -22,7 +22,7 @@ run(id<ICECommunicator> communicator) // Test the stream api. // tprintf("testing primitive types... "); - + { NSData* byte = [NSData data]; in = [ICEUtil createInputStream:communicator data:byte]; @@ -44,12 +44,6 @@ run(id<ICECommunicator> communicator) v = [in readBool]; test(v); [in endEncapsulation]; - - in = [ICEUtil wrapInputStream:communicator data:data]; - [in startEncapsulation]; - v = [in readBool]; - test(v); - [in endEncapsulation]; } { @@ -144,9 +138,9 @@ run(id<ICECommunicator> communicator) } tprintf("ok\n"); - + tprintf("testing constructed types... "); - + { out = [ICEUtil createOutputStream:communicator]; [TestStreamMyEnumHelper write:@(TestStreamenum3) stream:out]; @@ -195,12 +189,12 @@ run(id<ICECommunicator> communicator) o.sh = 4; o.i = 3; [TestStreamOptionalClassHelper write:o stream:out]; - [out writePendingObjects]; + [out writePendingValues]; data = [out finished]; in = [ICEUtil createInputStream:communicator data:data]; TestStreamOptionalClass* ICE_AUTORELEASING_QUALIFIER o2; [TestStreamOptionalClassHelper read:&o2 stream:in]; - [in readPendingObjects]; + [in readPendingValues]; test(o2.bo == o.bo); test(o2.by == o.by); if([in getEncoding] == ICEEncoding_1_0) @@ -223,12 +217,12 @@ run(id<ICECommunicator> communicator) o.sh = 4; o.i = 3; [TestStreamOptionalClassHelper write:o stream:out]; - [out writePendingObjects]; + [out writePendingValues]; data = [out finished]; in = [ICEUtil createInputStream:communicator data:data encoding:ICEEncoding_1_0]; TestStreamOptionalClass* ICE_AUTORELEASING_QUALIFIER o2; [TestStreamOptionalClassHelper read:&o2 stream:in]; - [in readPendingObjects]; + [in readPendingValues]; test(o2.bo == o.bo); test(o2.by == o.by); test(![o2 hasSh]); @@ -236,7 +230,7 @@ run(id<ICECommunicator> communicator) } { - BOOL buf[] = { YES, YES, NO, YES }; + BOOL buf[] = { YES, YES, NO, YES }; ICEBoolSeq* arr = [ICEBoolSeq dataWithBytes:buf length:sizeof(buf)]; out = [ICEUtil createOutputStream:communicator]; @@ -482,11 +476,11 @@ run(id<ICECommunicator> communicator) } out = [ICEUtil createOutputStream:communicator]; [TestStreamSmallStructSHelper write:arr stream:out]; - [out writePendingObjects]; + [out writePendingValues]; data = [out finished]; in = [ICEUtil createInputStream:communicator data:data]; TestStreamSmallStructS* arr2 = [TestStreamSmallStructSHelper read:in]; - [in readPendingObjects]; + [in readPendingValues]; test([arr2 count] == [arr count]); for(int j = 0; j < [arr2 count]; ++j) { @@ -537,7 +531,7 @@ run(id<ICECommunicator> communicator) ICEDouble doubleS[] = { 1, 2, 3, 4 }; c.seq7 = [NSMutableData dataWithBytes:doubleS length:sizeof(doubleS)]; - + c.seq8 = [ICEMutableStringSeq array]; [(ICEMutableStringSeq*)c.seq8 addObject:@"string1"]; [(ICEMutableStringSeq*)c.seq8 addObject:@"string2"]; @@ -546,17 +540,17 @@ run(id<ICECommunicator> communicator) TestStreamMyEnum enumS[] = { TestStreamenum3, TestStreamenum2, TestStreamenum1 }; c.seq9 = [NSMutableData dataWithBytes:enumS length:sizeof(enumS)]; - + c.d = [NSDictionary dictionaryWithObject:[TestStreamMyClass myClass] forKey:@"hi"]; [arr addObject:c]; } out = [ICEUtil createOutputStream:communicator]; [TestStreamMyClassSHelper write:arr stream:out]; - [out writePendingObjects]; + [out writePendingValues]; data = [out finished]; in = [ICEUtil createInputStream:communicator data:data]; TestStreamMyClassS* arr2 = [TestStreamMyClassSHelper read:in]; - [in readPendingObjects]; + [in readPendingValues]; test([arr2 count] > 0); test([arr2 count] == [arr count]); for(int j = 0; j < [arr2 count]; ++j) @@ -583,7 +577,7 @@ run(id<ICECommunicator> communicator) f.c = nil; f.o = nil; } - + TestStreamMutableMyClassSS* arrS = [TestStreamMutableMyClassSS array]; [arrS addObject:arr]; [arrS addObject:[TestStreamMyClassS array]]; @@ -602,12 +596,12 @@ run(id<ICECommunicator> communicator) TestStreamMyInterface ICE_AUTORELEASING_QUALIFIER * i = [TestStreamMyInterface new]; out = [ICEUtil createOutputStream:communicator]; [TestStreamMyInterfaceHelper write:i stream:out]; - [out writePendingObjects]; + [out writePendingValues]; data = [out finished]; in = [ICEUtil createInputStream:communicator data:data]; i = nil; [TestStreamMyInterfaceHelper read:&i stream:in]; - [in readPendingObjects]; + [in readPendingValues]; test(i != nil); } @@ -620,7 +614,7 @@ run(id<ICECommunicator> communicator) // obj.s.e = TestStreamenum2; // TestObjectWriterPtr writer = new TestObjectWriter:obj]; // [out writeObject:writer]; - // [out writePendingObjects]; + // [out writePendingValues]; // data = [out finished]; // test([writer called); // } @@ -631,14 +625,14 @@ run(id<ICECommunicator> communicator) // obj->s.e = TestStreamenum2; // TestObjectWriterPtr writer = new TestObjectWriter:obj]; // [out writeObject:writer]; - // [out writePendingObjects]; + // [out writePendingValues]; // data = [out finished]; // test([writer called]); // [factoryWrapper setFactory:new TestObjectFactory]; // in = [ICEUtil createInputStream:communicator data:data]; // TestReadObjectCallbackPtr cb = new TestReadObjectCallback; // [in readObject:cb]; - // [in readPendingObjects]; + // [in readPendingValues]; // test([cb obj]); // TestObjectReaderPtr reader = TestObjectReaderPtr::dynamicCast(cb->obj); // test(reader); @@ -677,7 +671,7 @@ run(id<ICECommunicator> communicator) ICEDouble doubleS[] = { 1, 2, 3, 4 }; c.seq7 = [NSMutableData dataWithBytes:doubleS length:sizeof(doubleS)]; - + c.seq8 = [ICEMutableStringSeq array]; [(ICEMutableStringSeq*)c.seq8 addObject:@"string1"]; [(ICEMutableStringSeq*)c.seq8 addObject:@"string2"]; @@ -686,7 +680,7 @@ run(id<ICECommunicator> communicator) TestStreamMyEnum enumS[] = { TestStreamenum3, TestStreamenum2, TestStreamenum1 }; c.seq9 = [NSMutableData dataWithBytes:enumS length:sizeof(enumS)]; - + c.d = [NSDictionary dictionaryWithObject:[TestStreamMyClass myClass] forKey:@"hi"]; ex.c = c; @@ -784,17 +778,17 @@ run(id<ICECommunicator> communicator) [dict setObject:c forKey:@"key2"]; out = [ICEUtil createOutputStream:communicator]; [TestStreamStringMyClassDHelper write:dict stream:out]; - [out writePendingObjects]; + [out writePendingValues]; data = [out finished]; in = [ICEUtil createInputStream:communicator data:data]; TestStreamStringMyClassD* dict2 = [TestStreamStringMyClassDHelper read:in]; - [in readPendingObjects]; + [in readPendingValues]; test([dict2 count] == [dict count]); - test([dict2 objectForKey:@"key1"] != nil && + test([dict2 objectForKey:@"key1"] != nil && ((TestStreamMyClass*)[dict2 objectForKey:@"key1"]).s.e == TestStreamenum2); - test([dict2 objectForKey:@"key2"] != nil && + test([dict2 objectForKey:@"key2"] != nil && ((TestStreamMyClass*)[dict2 objectForKey:@"key2"]).s.e == TestStreamenum3); - + } { @@ -926,6 +920,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -936,11 +937,11 @@ main(int argc, char* argv[]) ICEInitializationData* initData = [ICEInitializationData initializationData]; initData.properties = defaultClientProperties(&argc, argv); #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: - @"TestStream", @"::Test", - @"TestStreamSub", @"::Test::Sub", - @"TestStream2", @"::Test2", - @"TestStream2Sub2", @"::Test2::Sub2", + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: + @"TestStream", @"::Test", + @"TestStreamSub", @"::Test::Sub", + @"TestStream2", @"::Test2", + @"TestStream2Sub2", @"::Test2::Sub2", nil]; #endif communicator = [ICEUtil createCommunicator:&argc argv:argv initData:initData]; @@ -958,15 +959,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/stream/Makefile b/objective-c/test/Ice/stream/Makefile deleted file mode 100644 index c0c72aab2fb..00000000000 --- a/objective-c/test/Ice/stream/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client - -TARGETS = $(CLIENT) - -SLICE_OBJS = StreamTest.o - -COBJS = Client.o - -OBJS = $(COBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/stream/run.py b/objective-c/test/Ice/stream/run.py deleted file mode 100755 index 6c2278408bc..00000000000 --- a/objective-c/test/Ice/stream/run.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -client = os.path.join(os.getcwd(), "client") - -print("Running test with default encoding...") -TestUtil.simpleTest(client) - -print("Running test with 1.0 encoding...") -TestUtil.simpleTest(client, "--Ice.Default.EncodingVersion=1.0") diff --git a/objective-c/test/Ice/timeout/.gitignore b/objective-c/test/Ice/timeout/.gitignore deleted file mode 100644 index 1c18b9822c2..00000000000 --- a/objective-c/test/Ice/timeout/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -server -.depend -TimeoutTest.m -TimeoutTest.h diff --git a/objective-c/test/Ice/timeout/AllTests.m b/objective-c/test/Ice/timeout/AllTests.m index 993a3becc53..b1d47a02038 100644 --- a/objective-c/test/Ice/timeout/AllTests.m +++ b/objective-c/test/Ice/timeout/AllTests.m @@ -95,7 +95,7 @@ timeoutAllTests(id<ICECommunicator> communicator) // id<TestTimeoutTimeoutPrx> to = [TestTimeoutTimeoutPrx uncheckedCast:[obj ice_timeout:500]]; [to holdAdapter:1000]; - [[to ice_getConnection] close:YES]; // Force a reconnect. + [[to ice_getConnection] close:ICEConnectionCloseForcefully]; // Force a reconnect. @try { [to op]; @@ -113,7 +113,7 @@ timeoutAllTests(id<ICECommunicator> communicator) [timeout op]; // Ensure adapter is active. id<TestTimeoutTimeoutPrx> to = [TestTimeoutTimeoutPrx uncheckedCast:[obj ice_timeout:1000]]; [to holdAdapter:500]; - [[to ice_getConnection] close:YES]; // Force a reconnect. + [[to ice_getConnection] close:ICEConnectionCloseForcefully]; // Force a reconnect. @try { [to op]; diff --git a/objective-c/test/Ice/timeout/Client.m b/objective-c/test/Ice/timeout/Client.m index cb74d234f96..9daf988d8cc 100644 --- a/objective-c/test/Ice/timeout/Client.m +++ b/objective-c/test/Ice/timeout/Client.m @@ -27,6 +27,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -58,7 +65,7 @@ main(int argc, char* argv[]) // [initData.properties setProperty:@"Ice.Warn.Connections" value:@"0"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestTimeout", @"::Test", nil]; #endif @@ -78,15 +85,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/timeout/Makefile b/objective-c/test/Ice/timeout/Makefile deleted file mode 100644 index 0f0f293b381..00000000000 --- a/objective-c/test/Ice/timeout/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client -SERVER = server - -TARGETS = $(CLIENT) $(SERVER) - -SLICE_OBJS = TimeoutTest.o - -COBJS = Client.o \ - AllTests.o - -SOBJS = TestI.o \ - Server.o - -OBJS = $(COBJS) $(SOBJS) $(SLICE_OBJS) - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(COBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) $(SLICE_OBJS) $(TEST_LIBS) - -$(SERVER): $(SOBJS) $(SLICE_OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(SLICE_OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Ice/timeout/Server.m b/objective-c/test/Ice/timeout/Server.m index 1400e6e94ab..e56f10fea41 100644 --- a/objective-c/test/Ice/timeout/Server.m +++ b/objective-c/test/Ice/timeout/Server.m @@ -17,7 +17,7 @@ run(id<ICECommunicator> communicator) [[communicator getProperties] setProperty:@"TestAdapter.Endpoints" value:@"default -p 12010:udp"]; id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"TestAdapter"]; ICEObject* object = [TimeoutI timeout]; - [adapter add:object identity:[communicator stringToIdentity:@"timeout"]]; + [adapter add:object identity:[ICEUtil stringToIdentity:@"timeout"]]; [adapter activate]; serverReady(communicator); @@ -33,6 +33,13 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + ICEregisterIceIAP(YES); +#endif +#endif + int status; @autoreleasepool { @@ -60,7 +67,7 @@ main(int argc, char* argv[]) [initData.properties setProperty:@"Ice.TCP.RcvSize" value:@"50000"]; #if TARGET_OS_IPHONE - initData.prefixTable__ = [NSDictionary dictionaryWithObjectsAndKeys: + initData.prefixTable_ = [NSDictionary dictionaryWithObjectsAndKeys: @"TestTimeout", @"::Test", nil]; #endif @@ -76,15 +83,7 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; diff --git a/objective-c/test/Ice/timeout/run.py b/objective-c/test/Ice/timeout/run.py deleted file mode 100755 index 54ddf16b213..00000000000 --- a/objective-c/test/Ice/timeout/run.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../..", "../../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -TestUtil.clientServerTest() diff --git a/objective-c/test/Makefile b/objective-c/test/Makefile deleted file mode 100644 index 4ccfe820cbb..00000000000 --- a/objective-c/test/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = .. - -include $(top_srcdir)/config/Make.rules - -SUBDIRS = Common Slice Ice - -$(EVERYTHING):: - @for subdir in $(SUBDIRS); \ - do \ - echo "making $@ in $$subdir"; \ - ( cd $$subdir && $(MAKE) $@ ) || exit 1; \ - done diff --git a/objective-c/test/Slice/Makefile b/objective-c/test/Slice/Makefile deleted file mode 100644 index 487b3eccfdb..00000000000 --- a/objective-c/test/Slice/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../.. - -include $(top_srcdir)/config/Make.rules - -SUBDIRS = keyword - -$(EVERYTHING):: - @for subdir in $(SUBDIRS); \ - do \ - echo "making $@ in $$subdir"; \ - ( cd $$subdir && $(MAKE) $@ ) || exit 1; \ - done diff --git a/objective-c/test/Slice/escape/Clash.ice b/objective-c/test/Slice/escape/Clash.ice new file mode 100644 index 00000000000..db54207a42f --- /dev/null +++ b/objective-c/test/Slice/escape/Clash.ice @@ -0,0 +1,72 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +[["underscore"]] + +module Clash +{ + +interface Intf +{ + void context(); + void current(); + void response(); + void upCast(); + void typeId(); + void del(); + void cookie(); + void sync(); + void inS(); + void istr(); + void ok(); + void target(); + + void op(string context, string current, string response, string ex, string sent, string cookie, + string sync, string result, string istr, string ostr, string target, optional(1) string proxy, optional(2) string ok); + void opOut(out string context, out string current, out string response, out string ex, + out string sent, out string cookie, out string sync, out string result, out string istr, + out string ostr, out string target, out optional(1) string proxy, out optional(2) string ok); +}; + +class Cls +{ + Intf* s; + string context; + int current; + short response; + string upCast; + int typeId; + short del; + optional(1) short cookie; + string ex; + int result; + string istr; + string ostr; + string inS; + string in; + string proxy; + optional(2) int stream; + string target; +}; + +struct St +{ + string v; + short istr; + int ostr; + int rhs; +}; + +exception Ex +{ + short istr; + int ostr; +}; + +}; diff --git a/objective-c/test/Slice/keyword/Client.m b/objective-c/test/Slice/escape/Client.m index b982e205dfc..b856fae8937 100644 --- a/objective-c/test/Slice/keyword/Client.m +++ b/objective-c/test/Slice/escape/Client.m @@ -1,6 +1,6 @@ // ********************************************************************** // -// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. @@ -11,6 +11,7 @@ #import <TestCommon.h> #import <Key.h> #import <Inherit.h> +#import <Clash.h> // Verify that the expected symbols are present @interface andbreakI : andbreak<andbreak> @@ -65,7 +66,6 @@ testSymbols() test(cl2 == 0); andswitch* cl3 = 0; - test(cl3.if_ == 0); test(cl3 == 0); anddo* cl4 = 0; @@ -176,6 +176,10 @@ run(id<ICECommunicator> communicator) int main(int argc, char* argv[]) { +#ifdef ICE_STATIC_LIBS + ICEregisterIceSSL(YES); +#endif + int status; @autoreleasepool { @@ -200,17 +204,8 @@ main(int argc, char* argv[]) if(communicator) { - @try - { - [communicator destroy]; - } - @catch(ICEException* ex) - { - tprintf("%@\n", ex); - status = EXIT_FAILURE; - } + [communicator destroy]; } } return status; } - diff --git a/objective-c/test/Slice/keyword/Inherit.ice b/objective-c/test/Slice/escape/Inherit.ice index 7b72480a21f..27e1797cf74 100644 --- a/objective-c/test/Slice/keyword/Inherit.ice +++ b/objective-c/test/Slice/escape/Inherit.ice @@ -1,13 +1,13 @@ // ********************************************************************** // -// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** -// Test overridding interherited names +// Test overridding inherited names module Test { diff --git a/objective-c/test/Slice/keyword/Key.ice b/objective-c/test/Slice/escape/Key.ice index 41a604d47f7..06e2fa733a2 100644 --- a/objective-c/test/Slice/keyword/Key.ice +++ b/objective-c/test/Slice/escape/Key.ice @@ -1,6 +1,6 @@ // ********************************************************************** // -// Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. @@ -35,16 +35,16 @@ interface char void explicit(); }; -class switch +interface switch { - int if; void foo(char* export, out int volatile); void foo2(char* export, ["objc:param:y"] int YES, out ["objc:param:nil2"] int nil); void foo3(char* export, out int nil); }; -class do extends switch implements char, break +class do implements char, break, switch { + int if; }; sequence<auto> extern; diff --git a/objective-c/include/Makefile b/objective-c/test/Slice/escape/Makefile.mk index 4666b6e5308..8243bfdd692 100644 --- a/objective-c/include/Makefile +++ b/objective-c/test/Slice/escape/Makefile.mk @@ -1,21 +1,12 @@ # ********************************************************************** # -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. # # This copy of Ice is licensed to you under the terms described in the # ICE_LICENSE file included in this distribution. # # ********************************************************************** -top_srcdir = .. +$(test)_client_sources = Client.m Clash.ice Key.ice Inherit.ice -include $(top_srcdir)/config/Make.rules - -SUBDIRS = objc - -$(EVERYTHING):: - @for subdir in $(SUBDIRS); \ - do \ - echo "making $@ in $$subdir"; \ - ( cd $$subdir && $(MAKE) $@ ) || exit 1; \ - done +tests += $(test) diff --git a/objective-c/test/Slice/keyword/.gitignore b/objective-c/test/Slice/keyword/.gitignore deleted file mode 100644 index f5c78eb09c4..00000000000 --- a/objective-c/test/Slice/keyword/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -// Generated by makegitignore.py - -// IMPORTANT: Do not edit this file -- any edits made here will be lost! -client -.depend -Key.m -Inherit.m -Key.h -Inherit.h diff --git a/objective-c/test/Slice/keyword/Makefile b/objective-c/test/Slice/keyword/Makefile deleted file mode 100644 index 9a4caa9e814..00000000000 --- a/objective-c/test/Slice/keyword/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -top_srcdir = ../../.. - -CLIENT = client - -TARGETS = $(CLIENT) - -SLICE_OBJS = Key.o Inherit.o - -OBJS = $(SLICE_OBJS) \ - Client.o - -include $(top_srcdir)/config/Make.rules - -CPPFLAGS := -I. -I.. -I../../include $(CPPFLAGS) - -$(CLIENT): $(OBJS) - rm -f $@ - $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(OBJS) $(TEST_LIBS) diff --git a/objective-c/test/Slice/keyword/run.py b/objective-c/test/Slice/keyword/run.py deleted file mode 100755 index 2cf746942f4..00000000000 --- a/objective-c/test/Slice/keyword/run.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env python -# ********************************************************************** -# -# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. -# -# This copy of Ice is licensed to you under the terms described in the -# ICE_LICENSE file included in this distribution. -# -# ********************************************************************** - -import os, sys - -path = [ ".", "..", "../..", "../../..", "../../../.." ] -head = os.path.dirname(sys.argv[0]) -if len(head) > 0: - path = [os.path.join(head, p) for p in path] -path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] -if len(path) == 0: - raise RuntimeError("can't find toplevel directory!") -sys.path.append(os.path.join(path[0], "scripts")) -import TestUtil - -client = os.path.join(os.getcwd(), "client") - -TestUtil.simpleTest(client) diff --git a/objective-c/test/include/TestCommon.h b/objective-c/test/include/TestCommon.h index 85becdcfc37..7fcdfa44440 100644 --- a/objective-c/test/include/TestCommon.h +++ b/objective-c/test/include/TestCommon.h @@ -12,11 +12,13 @@ #import <objc/Ice/Config.h> #ifndef TEST_API -# ifdef TEST_API_EXPORTS +# if defined(ICE_STATIC_LIBS) +# define TEST_API /**/ +# elif defined(TEST_API_EXPORTS) # define TEST_API ICE_DECLSPEC_EXPORT -# else +# else # define TEST_API ICE_DECLSPEC_IMPORT -# endif +# endif #endif TEST_API @interface TestFailedException : NSException diff --git a/objective-c/test/ios/controller/Classes/AppDelegate.h b/objective-c/test/ios/controller/Classes/AppDelegate.h new file mode 100644 index 00000000000..d5adf138722 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/AppDelegate.h @@ -0,0 +1,18 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <UIKit/UIKit.h> + +@interface AppDelegate : UIResponder <UIApplicationDelegate> + +@property (strong, nonatomic) UIWindow *window; + + +@end + diff --git a/objective-c/test/ios/controller/Classes/AppDelegate.m b/objective-c/test/ios/controller/Classes/AppDelegate.m new file mode 100644 index 00000000000..6e3bd3ce574 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/AppDelegate.m @@ -0,0 +1,52 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import "AppDelegate.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + return YES; +} + + +- (void)applicationWillResignActive:(UIApplication *)application { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. +} + + +- (void)applicationDidEnterBackground:(UIApplication *)application { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + + +- (void)applicationWillEnterForeground:(UIApplication *)application { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. +} + + +- (void)applicationDidBecomeActive:(UIApplication *)application { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + + +- (void)applicationWillTerminate:(UIApplication *)application { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + + +@end diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/Contents.json b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000000..ef0fccfaf08 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,110 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "test_suite-Small-20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "test_suite-Small-20@3x-1.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "test_suite-Small@2x-1.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "test_suite-Small@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "test_suite-Small-40@2x-1.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "test_suite-Small-40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "test_suite-Small-40@3x-1.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "test_suite-Small-60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "test_suite-Small-20.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "test_suite-Small-41.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "test_suite-Small.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "test_suite-Small@2x-2.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "test_suite-Small-40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "test_suite-Small-40@2x-2.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "test_suite-76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "test_suite-76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "test_suite-Small-83,5@2x-1.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-76.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-76.png Binary files differnew file mode 100644 index 00000000000..2855a8b674b --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-76.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-76@2x.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-76@2x.png Binary files differnew file mode 100644 index 00000000000..29047dc5a52 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-76@2x.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20.png Binary files differnew file mode 100644 index 00000000000..caacf7e7f46 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20@2x.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20@2x.png Binary files differnew file mode 100644 index 00000000000..e76086fb3d6 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20@2x.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20@3x-1.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20@3x-1.png Binary files differnew file mode 100644 index 00000000000..7018d04d7a9 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-20@3x-1.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40.png Binary files differnew file mode 100644 index 00000000000..e76086fb3d6 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-1.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-1.png Binary files differnew file mode 100644 index 00000000000..7615d3255bc --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-1.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-2.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-2.png Binary files differnew file mode 100644 index 00000000000..7615d3255bc --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-2.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@3x-1.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@3x-1.png Binary files differnew file mode 100644 index 00000000000..f04f442176a --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@3x-1.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@3x.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@3x.png Binary files differnew file mode 100644 index 00000000000..f04f442176a --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-40@3x.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-41.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-41.png Binary files differnew file mode 100644 index 00000000000..e76086fb3d6 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-41.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-60@3x.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-60@3x.png Binary files differnew file mode 100644 index 00000000000..a37f851e642 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-60@3x.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-83,5@2x-1.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-83,5@2x-1.png Binary files differnew file mode 100644 index 00000000000..70fa6059084 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small-83,5@2x-1.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small.png Binary files differnew file mode 100644 index 00000000000..d57695edc28 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@2x-1.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@2x-1.png Binary files differnew file mode 100644 index 00000000000..79edc547e2c --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@2x-1.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@2x-2.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@2x-2.png Binary files differnew file mode 100644 index 00000000000..79edc547e2c --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@2x-2.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@3x.png b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@3x.png Binary files differnew file mode 100644 index 00000000000..49cdc033096 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/AppIcon.appiconset/test_suite-Small@3x.png diff --git a/objective-c/test/ios/controller/Classes/Assets.xcassets/Contents.json b/objective-c/test/ios/controller/Classes/Assets.xcassets/Contents.json new file mode 100644 index 00000000000..da4a164c918 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/objective-c/test/ios/controller/Classes/Base.lproj/LaunchScreen.storyboard b/objective-c/test/ios/controller/Classes/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000000..fdf3f97d1b6 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11134" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> + <dependencies> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11106"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <scenes> + <!--View Controller--> + <scene sceneID="EHf-IW-A2E"> + <objects> + <viewController id="01J-lp-oVM" sceneMemberID="viewController"> + <layoutGuides> + <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/> + <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/> + </layoutGuides> + <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </view> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="53" y="375"/> + </scene> + </scenes> +</document> diff --git a/objective-c/test/ios/controller/Classes/Base.lproj/Main.storyboard b/objective-c/test/ios/controller/Classes/Base.lproj/Main.storyboard new file mode 100644 index 00000000000..7bd9da90e09 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Base.lproj/Main.storyboard @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16B2555" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r"> + <device id="retina4_7" orientation="portrait"> + <adaptation id="fullscreen"/> + </device> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <scenes> + <!--View Controller--> + <scene sceneID="tne-QT-ifu"> + <objects> + <viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController"> + <layoutGuides> + <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> + <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> + </layoutGuides> + <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <pickerView contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xR3-DO-y6j" userLabel="InterfaceIPv6"> + <rect key="frame" x="40" y="49" width="296" height="75"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> + <connections> + <outlet property="dataSource" destination="BYZ-38-t0r" id="qqe-Ub-kJJ"/> + <outlet property="delegate" destination="BYZ-38-t0r" id="F6m-Y2-o1H"/> + </connections> + </pickerView> + <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" fixedFrame="YES" editable="NO" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="nZ9-dY-qBC" userLabel="Output"> + <rect key="frame" x="40" y="258" width="296" height="389"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <fontDescription key="fontDescription" type="system" pointSize="14"/> + <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/> + </textView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="IPv4" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="StB-MO-pSa" userLabel="LabelInterfaceIPv4"> + <rect key="frame" x="40" y="28" width="34" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <pickerView contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BKi-XY-5kF" userLabel="InterfaceIPv6"> + <rect key="frame" x="40" y="161" width="296" height="75"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> + <connections> + <outlet property="dataSource" destination="BYZ-38-t0r" id="Ksd-8b-gVb"/> + <outlet property="delegate" destination="BYZ-38-t0r" id="NT1-QV-RAh"/> + </connections> + </pickerView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="IPv6" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PhT-kW-Fyr" userLabel="LabelInterfaceIPv6"> + <rect key="frame" x="40" y="140" width="34" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> + </view> + <connections> + <outlet property="interfaceIPv4" destination="xR3-DO-y6j" id="UZt-T6-HRh"/> + <outlet property="interfaceIPv6" destination="BKi-XY-5kF" id="1bQ-Zn-Pd2"/> + <outlet property="output" destination="nZ9-dY-qBC" id="drk-4a-vAK"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="133.59999999999999" y="136.28185907046478"/> + </scene> + </scenes> +</document> diff --git a/objective-c/test/ios/controller/Classes/Info.plist b/objective-c/test/ios/controller/Classes/Info.plist new file mode 100644 index 00000000000..d0524738680 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/Info.plist @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>$(EXECUTABLE_NAME)</string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>$(PRODUCT_NAME)</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleVersion</key> + <string>1</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UILaunchStoryboardName</key> + <string>LaunchScreen</string> + <key>UIMainStoryboardFile</key> + <string>Main</string> + <key>UIRequiredDeviceCapabilities</key> + <array> + <string>armv7</string> + </array> + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UISupportedInterfaceOrientations~ipad</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> +</dict> +</plist> diff --git a/objective-c/test/ios/controller/Classes/ViewController.h b/objective-c/test/ios/controller/Classes/ViewController.h new file mode 100644 index 00000000000..921af01c10c --- /dev/null +++ b/objective-c/test/ios/controller/Classes/ViewController.h @@ -0,0 +1,29 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <UIKit/UIKit.h> +#import <objc/Ice/Ice.h> + +@protocol ViewController<NSObject> +-(void) print:(NSString*)msg; +-(void) println:(NSString*)msg; +@end + +@interface ViewController : UIViewController<ViewController, UIPickerViewDataSource, UIPickerViewDelegate> +{ +@private + IBOutlet UIPickerView* interfaceIPv4; + IBOutlet UIPickerView* interfaceIPv6; + IBOutlet UITextView* output; + NSMutableArray* interfacesIPv4; + NSMutableArray* interfacesIPv6; + id<ICECommunicator> communicator; +} +@end + diff --git a/objective-c/test/ios/controller/Classes/ViewController.m b/objective-c/test/ios/controller/Classes/ViewController.m new file mode 100644 index 00000000000..6773a7f986e --- /dev/null +++ b/objective-c/test/ios/controller/Classes/ViewController.m @@ -0,0 +1,466 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import "ViewController.h" +#import <Controller.h> +#import <TestCommon.h> + +#include <ifaddrs.h> +#include <arpa/inet.h> +#include <net/if.h> +#include <dlfcn.h> + +@interface MainHelper : NSThread +{ + id<ViewController> _controller; + void* _func; + NSArray* _args; + BOOL _ready; + BOOL _completed; + int _status; + NSMutableString* _out; + NSCondition* _cond; +} +-(void) serverReady; +-(void) shutdown; +-(void) print:(NSString*)str; +-(void) completed:(int)status; +-(void) waitReady:(int)timeout; +-(int) waitSuccess:(int)timeout; +-(NSString*)getOutput; +@end + +@interface ProcessI : TestCommonProcess<TestCommonProcess> +{ + id<ViewController> _controller; + MainHelper* _helper; +} +-(void) waitReady:(int)timeout current:(ICECurrent*)current; +-(int) waitSuccess:(int)timeout current:(ICECurrent*)current; +-(NSString*) terminate:(ICECurrent*)current; +@end + +@interface ProcessControllerI : TestCommonProcessController<TestCommonProcessController> +{ + id<ViewController> _controller; + NSString* _ipv4; + NSString* _ipv6; +} +-(id) init:(id<ViewController>) controller ipv4:(NSString*)ipv4 ipv6:(NSString*)ipv6; +-(id<TestCommonProcessPrx>) start:(NSString*)testsuite exe:(NSString*)exe args:(NSArray*)args current:(ICECurrent*)current; +-(NSString*) getHost:(NSString*)protocol ipv6:(BOOL)ipv6 current:(ICECurrent*)current; +@end + +@implementation MainHelper +-(id) init:(id<ViewController>)controller func:(void*)func args:(NSArray*)args +{ + self = [super init]; + if(self == nil) + { + return nil; + } + _controller = ICE_RETAIN(controller); + _func = func; + _args = ICE_RETAIN(args); + _ready = FALSE; + _completed = FALSE; + _status = 0; + _out = ICE_RETAIN([NSMutableString string]); + _cond = [NSCondition new]; + return self; +} +#if defined(__clang__) && !__has_feature(objc_arc) +-(void) dealloc +{ + [_controller release]; + [_args release]; + [_cond release]; + [_out release]; + [super dealloc]; +} +#endif +-(void) serverReady +{ + [_cond lock]; + @try + { + _ready = YES; + [_cond signal]; + } + @finally + { + [_cond unlock]; + } +} +-(void) shutdown +{ + [_cond lock]; + @try + { + if(_completed) + { + return; + } + serverStop(); + } + @finally + { + [_cond unlock]; + } +} +-(void) print:(NSString*)msg +{ + [_out appendString:msg]; +} +-(void) main +{ + int (*mainEntryPoint)(int, char**) = (int (*)(int, char**))_func; + char** argv = malloc(sizeof(char*) * (_args.count + 1)); + int i = 0; + for(NSString* arg in _args) + { + argv[i++] = (char*)[arg UTF8String]; + } + argv[_args.count] = 0; + @try + { + [self completed:mainEntryPoint((int)_args.count, argv)]; + } + @catch(NSException* ex) + { + [self print:[NSString stringWithFormat:@"unexpected exception while running `%s':%@\n", argv[0], ex]]; + [self completed:EXIT_FAILURE]; + } + free(argv); +} +-(void) completed:(int)status +{ + [_cond lock]; + @try + { + _completed = YES; + _status = status; + [_cond signal]; + } + @finally + { + [_cond unlock]; + } +} +-(void) waitReady:(int)timeout +{ + [_cond lock]; + @try + { + while(!_ready && !_completed) + { + if(![_cond waitUntilDate:[NSDate dateWithTimeIntervalSinceNow:timeout]]) + { + @throw [TestCommonProcessFailedException + processFailedException:@"timed out waiting for the process to be ready"]; + } + } + if(_completed && _status == EXIT_FAILURE) + { + @throw [TestCommonProcessFailedException processFailedException:_out]; + } + } + @finally + { + [_cond unlock]; + } +} +-(int) waitSuccess:(int)timeout +{ + [_cond lock]; + @try + { + while(!_completed) + { + if(timeout >= 0) + { + if(![_cond waitUntilDate:[NSDate dateWithTimeIntervalSinceNow:timeout]]) + { + @throw [TestCommonProcessFailedException + processFailedException:@"timed out waiting for the process to succeed"]; + } + } + else + { + [_cond wait]; + } + } + } + @finally + { + [_cond unlock]; + } + return _status; +} +-(NSString*) getOutput +{ + return _out; +} +@end + +@implementation ProcessI +-(id) init:(id<ViewController>)controller helper:(MainHelper*)helper +{ + self = [super init]; + if(self == nil) + { + return nil; + } + _controller = ICE_RETAIN(controller); + _helper = ICE_RETAIN(helper); + return self; +} +#if defined(__clang__) && !__has_feature(objc_arc) +-(void) dealloc +{ + [_controller release]; + [_helper release]; + [super dealloc]; +} +#endif +-(void) waitReady:(int)timeout current:(ICECurrent*)current +{ + [_helper waitReady:timeout]; +} +-(int) waitSuccess:(int)timeout current:(ICECurrent*)current +{ + return [_helper waitSuccess:timeout]; +} +-(NSString*) terminate:(ICECurrent*)current +{ + [_helper shutdown]; + [current.adapter remove:current.id_]; + [_helper waitSuccess:-1]; + return [_helper getOutput]; +} +@end + +@implementation ProcessControllerI +-(id) init:(id<ViewController>)controller ipv4:(NSString*)ipv4 ipv6:(NSString*)ipv6 +{ + self = [super init]; + if(self == nil) + { + return nil; + } + _controller = ICE_RETAIN(controller); + _ipv4 = ICE_RETAIN(ipv4); + _ipv6 = ICE_RETAIN(ipv6); + return self; +} +#if defined(__clang__) && !__has_feature(objc_arc) +-(void) dealloc +{ + [_controller release]; + [_ipv4 release]; + [_ipv6 release]; + [super dealloc]; +} +#endif +-(id<TestCommonProcessPrx>) start:(NSString*)testSuite exe:(NSString*)exe args:(NSArray*)args current:(ICECurrent*)c +{ + [_controller println:[NSString stringWithFormat:@"starting %@ %@... ", testSuite, exe]]; + + NSArray<NSString*>* components = [testSuite componentsSeparatedByString:@"/"]; + components = [components arrayByAddingObject:exe]; + NSMutableString* func = [NSMutableString string]; + [func appendString:[components objectAtIndex:1]]; + for(int i = 2; i < components.count; ++i) + { + NSString* comp = [components objectAtIndex:i]; + [func appendString:[[comp substringToIndex:1] capitalizedString]]; + [func appendString:[comp substringFromIndex:1]]; + } + + void* sym = dlsym(RTLD_SELF, [func UTF8String]); + if(!sym) + { + @throw [TestCommonProcessFailedException processFailedException: + [NSString stringWithFormat:@"couldn't find %@", func]]; + } + MainHelper* helper = ICE_AUTORELEASE([[MainHelper alloc] init:_controller func:sym args:args]); + if([exe isEqualToString:@"client"] || [exe isEqualToString:@"collocated"]) + { + TestCommonInit(helper, @selector(print:)); + } + else + { + TestCommonInit(helper, @selector(print:)); + TestCommonTestInit(helper, @selector(serverReady), @"", NO, NO); + } + [helper start]; + id<ICEObjectPrx> prx = [c.adapter addWithUUID:ICE_AUTORELEASE([[ProcessI alloc] init:_controller helper:helper])]; + return [TestCommonProcessPrx uncheckedCast:prx]; +} +-(NSString*) getHost:(NSString*)protocol ipv6:(BOOL)ipv6 current:(ICECurrent*)c +{ + return ICE_AUTORELEASE(ICE_RETAIN(ipv6 ? _ipv6 : _ipv4)); +} +@end + +@implementation ViewController +- (void) startController +{ + NSString* ipv4 = [interfacesIPv4 objectAtIndex:[interfaceIPv4 selectedRowInComponent:0]]; + NSString* ipv6 = [interfacesIPv6 objectAtIndex:[interfaceIPv6 selectedRowInComponent:0]]; + + ICEInitializationData* initData = [ICEInitializationData initializationData]; + initData.properties = [ICEUtil createProperties]; + [initData.properties setProperty:@"Ice.ThreadPool.Server.SizeMax" value:@"10"]; + [initData.properties setProperty:@"Ice.Plugin.IceDiscovery" value:@"1"]; + [initData.properties setProperty:@"IceDiscovery.DomainId" value:@"TestController"]; + [initData.properties setProperty:@"IceDiscovery.Interface" value:ipv4]; + [initData.properties setProperty:@"Ice.Default.Host" value:ipv4]; + [initData.properties setProperty:@"ControllerAdapter.Endpoints" value:@"tcp"]; + //[initData.properties setProperty:@"Ice.Trace.Network", @"2"); + //[initData.properties setProperty:@"Ice.Trace.Protocol", @"2"); + [initData.properties setProperty:@"ControllerAdapter.AdapterId" value:[ICEUtil generateUUID]]; + + communicator = ICE_RETAIN([ICEUtil createCommunicator:initData]); + + id<ICEObjectAdapter> adapter = [communicator createObjectAdapter:@"ControllerAdapter"]; + ICEIdentity* ident = [ICEIdentity identity]; +#if TARGET_IPHONE_SIMULATOR != 0 + ident.category = @"iPhoneSimulator"; +#else + ident.category = @"iPhoneOS"; +#endif + ident.name = [[NSBundle mainBundle] bundleIdentifier]; + [adapter add:[[ProcessControllerI alloc] init:self ipv4:ipv4 ipv6:ipv6] identity:ident]; + [adapter activate]; +} +- (void) stopController +{ + [communicator destroy]; + ICE_RELEASE(communicator); + communicator = nil; +} +- (void)viewDidLoad +{ + [super viewDidLoad]; + ICEregisterIceDiscovery(NO); + + // + // Search for local network interfaces + // + interfacesIPv4 = ICE_RETAIN([NSMutableArray array]); + [interfacesIPv4 addObject:@"127.0.0.1"]; + interfacesIPv6 = ICE_RETAIN([NSMutableArray array]); + [interfacesIPv6 addObject:@"::1"]; + struct ifaddrs* ifap; + if(getifaddrs(&ifap) == 0) + { + struct ifaddrs* curr = ifap; + while(curr != 0) + { + if(curr->ifa_addr && curr->ifa_flags & IFF_UP && !(curr->ifa_flags & IFF_LOOPBACK)) + { + if(curr->ifa_addr->sa_family == AF_INET) + { + char buf[INET_ADDRSTRLEN]; + const struct sockaddr_in *addr = (const struct sockaddr_in*)curr->ifa_addr; + if(inet_ntop(AF_INET, &addr->sin_addr, buf, INET_ADDRSTRLEN)) + { + [interfacesIPv4 addObject:[NSString stringWithUTF8String:buf]]; + } + } + else if(curr->ifa_addr->sa_family == AF_INET6) + { + char buf[INET6_ADDRSTRLEN]; + const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6*)curr->ifa_addr; + if(inet_ntop(AF_INET6, &addr6->sin6_addr, buf, INET6_ADDRSTRLEN)) + { + [interfacesIPv6 addObject:[NSString stringWithUTF8String:buf]]; + } + } + } + curr = curr->ifa_next; + } + freeifaddrs(ifap); + } + + // By default, use the loopback + [interfaceIPv4 selectRow:0 inComponent:0 animated:NO]; + [interfaceIPv6 selectRow:0 inComponent:0 animated:NO]; + [self startController]; +} + +- (void) dealloc +{ + [self stopController]; +#if defined(__clang__) && !__has_feature(objc_arc) + [interfacesIPv4 release]; + [interfacesIPv6 release]; + [super dealloc]; +#endif +} + +-(void) write:(NSString*)msg +{ + [output insertText:msg]; + [output layoutIfNeeded]; + [output scrollRangeToVisible:NSMakeRange([output.text length] - 1, 1)]; +} + +#pragma mark ViewController + +-(void) print:(NSString*)msg +{ + [self performSelectorOnMainThread:@selector(write:) withObject:msg waitUntilDone:NO]; +} +-(void) println:(NSString*)msg +{ + [self print:[msg stringByAppendingString:@"\n"]]; +} + +#pragma mark UIPickerViewDelegate + +- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component +{ + if(pickerView == interfaceIPv4) + { + return [interfacesIPv4 objectAtIndex:row]; + } + else + { + return [interfacesIPv6 objectAtIndex:row]; + } +} + +- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component +{ + [self stopController]; + [self startController]; +} + +#pragma mark UIPickerViewDataSource + +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView +{ + return 1; +} + +- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component +{ + if(pickerView == interfaceIPv4) + { + return interfacesIPv4.count; + } + else + { + return interfacesIPv6.count; + } +} + +@end diff --git a/objective-c/test/ios/controller/Classes/main.m b/objective-c/test/ios/controller/Classes/main.m new file mode 100644 index 00000000000..bd3a0a0c555 --- /dev/null +++ b/objective-c/test/ios/controller/Classes/main.m @@ -0,0 +1,16 @@ +// +// main.m +// C++ Test Controller +// +// Created by Benoit Foucher on 08/12/2016. +// Copyright © 2016 ZeroC, Inc. All rights reserved. +// + +#import <UIKit/UIKit.h> +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/objective-c/test/ios/controller/Makefile.mk b/objective-c/test/ios/controller/Makefile.mk new file mode 100644 index 00000000000..48fe725ae6d --- /dev/null +++ b/objective-c/test/ios/controller/Makefile.mk @@ -0,0 +1,18 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +$(project)_type = xcode +$(project)_platforms = iphonesimulator iphoneos +$(project)_configs = xcodesdk arc-xcodesdk +$(project)_dependencies = IceObjC IceSSLObjC IceGridObjC Glacier2ObjC IceStormObjC +$(project)_project = Objective-C Test Controller.xcodeproj +$(project)_scheme = $(if $(filter arc-xcodesdk,$2),Objective-C ARC Test Controller,Objective-C Test Controller) +$(project)_configuration = $(if $(filter $(OPTIMIZE),yes),Release,Debug) + +projects += $(project) diff --git a/objective-c/test/ios/controller/Objective-C Test Controller.entitlements b/objective-c/test/ios/controller/Objective-C Test Controller.entitlements new file mode 100644 index 00000000000..0c67376ebac --- /dev/null +++ b/objective-c/test/ios/controller/Objective-C Test Controller.entitlements @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict/> +</plist> diff --git a/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/project.pbxproj b/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/project.pbxproj new file mode 100644 index 00000000000..63c80d73819 --- /dev/null +++ b/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/project.pbxproj @@ -0,0 +1,1914 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 48; + objects = { + +/* Begin PBXBuildFile section */ + 140C3C6E1E02FCE000142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B811E02FCE000142503 /* AllTests.m */; }; + 140C3C701E02FCE000142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B821E02FCE000142503 /* Client.m */; }; + 140C3C741E02FCE000142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B841E02FCE000142503 /* Server.m */; }; + 140C3C761E02FCE000142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B861E02FCE000142503 /* TestI.m */; }; + 140C3C781E02FCE000142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B881E02FCE000142503 /* AllTests.m */; }; + 140C3C7A1E02FCE000142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B891E02FCE000142503 /* Client.m */; }; + 140C3C821E02FCE000142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B8D1E02FCE000142503 /* Server.m */; }; + 140C3C841E02FCE000142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B8F1E02FCE000142503 /* TestI.m */; }; + 140C3C861E02FCE000142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B911E02FCE000142503 /* AllTests.m */; }; + 140C3C881E02FCE000142503 /* BatchOneways.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B921E02FCE000142503 /* BatchOneways.m */; }; + 140C3C8A1E02FCE000142503 /* BatchOnewaysAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B931E02FCE000142503 /* BatchOnewaysAMI.m */; }; + 140C3C8C1E02FCE000142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B941E02FCE000142503 /* Client.m */; }; + 140C3C921E02FCE000142503 /* Oneways.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B971E02FCE000142503 /* Oneways.m */; }; + 140C3C941E02FCE000142503 /* OnewaysNewAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B981E02FCE000142503 /* OnewaysNewAMI.m */; }; + 140C3C981E02FCE000142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B9A1E02FCE000142503 /* Server.m */; }; + 140C3C9A1E02FCE000142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B9C1E02FCE000142503 /* TestI.m */; }; + 140C3C9C1E02FCE000142503 /* Twoways.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B9D1E02FCE000142503 /* Twoways.m */; }; + 140C3C9E1E02FCE000142503 /* TwowaysNewAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B9E1E02FCE000142503 /* TwowaysNewAMI.m */; }; + 140C3CA01E02FCE000142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA01E02FCE000142503 /* AllTests.m */; }; + 140C3CA21E02FCE000142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA11E02FCE000142503 /* Client.m */; }; + 140C3CA61E02FCE000142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA31E02FCE000142503 /* Server.m */; }; + 140C3CA81E02FCE000142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA51E02FCE000142503 /* TestI.m */; }; + 140C3CAA1E02FCE000142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA71E02FCE000142503 /* AllTests.m */; }; + 140C3CAC1E02FCE000142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA81E02FCE000142503 /* Client.m */; }; + 140C3CB21E02FCE000142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BAB1E02FCE000142503 /* Server.m */; }; + 140C3CB41E02FCE000142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BAD1E02FCE000142503 /* TestI.m */; }; + 140C3CB61E02FCE000142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BAF1E02FCE000142503 /* AllTests.m */; }; + 140C3CB81E02FCE000142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB01E02FCE000142503 /* Client.m */; }; + 140C3CBE1E02FCE000142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB31E02FCE000142503 /* Server.m */; }; + 140C3CC01E02FCE000142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB51E02FCE000142503 /* TestI.m */; }; + 140C3CC21E02FCE000142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB71E02FCE000142503 /* AllTests.m */; }; + 140C3CC41E02FCE000142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB81E02FCE000142503 /* Client.m */; }; + 140C3CCA1E02FCE000142503 /* ServantLocatorI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BBC1E02FCE000142503 /* ServantLocatorI.m */; }; + 140C3CCE1E02FCE000142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BBE1E02FCE000142503 /* Server.m */; }; + 140C3CD01E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC01E02FCE000142503 /* TestI.m */; }; + 140C3CD21E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC21E02FCE000142503 /* AllTests.m */; }; + 140C3CD41E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC31E02FCE000142503 /* Client.m */; }; + 140C3CDA1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC71E02FCE000142503 /* Client.m */; }; + 140C3CDE1E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCA1E02FCE000142503 /* AllTests.m */; }; + 140C3CE01E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCB1E02FCE000142503 /* Client.m */; }; + 140C3CE21E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCC1E02FCE000142503 /* Server.m */; }; + 140C3CE41E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCE1E02FCE000142503 /* TestI.m */; }; + 140C3CEA1E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD21E02FCE000142503 /* AllTests.m */; }; + 140C3CEC1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD31E02FCE000142503 /* Client.m */; }; + 140C3CEE1E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD41E02FCE000142503 /* Server.m */; }; + 140C3CF01E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD61E02FCE000142503 /* TestI.m */; }; + 140C3CF41E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD91E02FCE000142503 /* AllTests.m */; }; + 140C3CF61E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BDA1E02FCE000142503 /* Client.m */; }; + 140C3CFA1E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BDC1E02FCE000142503 /* Server.m */; }; + 140C3CFC1E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BDE1E02FCE000142503 /* TestI.m */; }; + 140C3D001E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE11E02FCE000142503 /* AllTests.m */; }; + 140C3D021E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE21E02FCE000142503 /* Client.m */; }; + 140C3D061E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE41E02FCE000142503 /* Server.m */; }; + 140C3D081E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE61E02FCE000142503 /* TestI.m */; }; + 140C3D0A1E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE81E02FCE000142503 /* AllTests.m */; }; + 140C3D0E1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BEA1E02FCE000142503 /* Client.m */; }; + 140C3D121E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BEC1E02FCE000142503 /* Server.m */; }; + 140C3D141E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BEE1E02FCE000142503 /* TestI.m */; }; + 140C3D161E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF01E02FCE000142503 /* AllTests.m */; }; + 140C3D1A1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF21E02FCE000142503 /* Client.m */; }; + 140C3D1C1E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF31E02FCE000142503 /* Server.m */; }; + 140C3D1E1E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF51E02FCE000142503 /* TestI.m */; }; + 140C3D201E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF71E02FCE000142503 /* Client.m */; }; + 140C3D261E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BFB1E02FCE000142503 /* TestI.m */; }; + 140C3D281E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BFD1E02FCE000142503 /* AllTests.m */; }; + 140C3D2A1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BFE1E02FCE000142503 /* Client.m */; }; + 140C3D2E1E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C011E02FCE000142503 /* AllTests.m */; }; + 140C3D301E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C021E02FCE000142503 /* Client.m */; }; + 140C3D361E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C051E02FCE000142503 /* Server.m */; }; + 140C3D381E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C071E02FCE000142503 /* TestI.m */; }; + 140C3D3A1E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C091E02FCE000142503 /* AllTests.m */; }; + 140C3D3C1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C0A1E02FCE000142503 /* Client.m */; }; + 140C3D401E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C0C1E02FCE000142503 /* Server.m */; }; + 140C3D421E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C0E1E02FCE000142503 /* TestI.m */; }; + 140C3D441E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C101E02FCE000142503 /* AllTests.m */; }; + 140C3D461E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C111E02FCE000142503 /* Client.m */; }; + 140C3D4C1E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C141E02FCE000142503 /* Server.m */; }; + 140C3D4E1E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C161E02FCE000142503 /* TestI.m */; }; + 140C3D501E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C181E02FCE000142503 /* AllTests.m */; }; + 140C3D521E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C191E02FCE000142503 /* Client.m */; }; + 140C3D581E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C1C1E02FCE000142503 /* Server.m */; }; + 140C3D5A1E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C1E1E02FCE000142503 /* TestI.m */; }; + 140C3D661E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C271E02FCE000142503 /* AllTests.m */; }; + 140C3D681E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C281E02FCE000142503 /* Client.m */; }; + 140C3D6C1E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C2B1E02FCE000142503 /* AllTests.m */; }; + 140C3D6E1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C2C1E02FCE000142503 /* Client.m */; }; + 140C3D721E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C2E1E02FCE000142503 /* Server.m */; }; + 140C3D741E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C301E02FCE000142503 /* TestI.m */; }; + 140C3D761E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C321E02FCE000142503 /* AllTests.m */; }; + 140C3D781E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C331E02FCE000142503 /* Client.m */; }; + 140C3D7E1E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C361E02FCE000142503 /* Server.m */; }; + 140C3D801E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C381E02FCE000142503 /* TestI.m */; }; + 140C3D821E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C3A1E02FCE000142503 /* AllTests.m */; }; + 140C3D841E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C3B1E02FCE000142503 /* Client.m */; }; + 140C3D8A1E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C3E1E02FCE000142503 /* Server.m */; }; + 140C3D8C1E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C401E02FCE000142503 /* TestI.m */; }; + 140C3D8E1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C421E02FCE000142503 /* Client.m */; }; + 140C3D901E02FCE100142503 /* InterceptorI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C441E02FCE000142503 /* InterceptorI.m */; }; + 140C3D961E02FCE100142503 /* MyObjectI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C481E02FCE000142503 /* MyObjectI.m */; }; + 140C3D981E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C4A1E02FCE000142503 /* AllTests.m */; }; + 140C3D9A1E02FCE100142503 /* BlobjectI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C4C1E02FCE000142503 /* BlobjectI.m */; }; + 140C3D9C1E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C4D1E02FCE000142503 /* Client.m */; }; + 140C3DA21E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C501E02FCE000142503 /* Server.m */; }; + 140C3DA41E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C521E02FCE000142503 /* AllTests.m */; }; + 140C3DA61E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C531E02FCE000142503 /* Client.m */; }; + 140C3DAC1E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C561E02FCE000142503 /* Server.m */; }; + 140C3DAE1E02FCE100142503 /* ServerLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C581E02FCE000142503 /* ServerLocator.m */; }; + 140C3DB01E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C5A1E02FCE000142503 /* TestI.m */; }; + 140C3DB21E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C5D1E02FCE000142503 /* AllTests.m */; }; + 140C3DB41E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C5E1E02FCE000142503 /* Client.m */; }; + 140C3DB81E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C601E02FCE000142503 /* Server.m */; }; + 140C3DBE1E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C641E02FCE000142503 /* TestI.m */; }; + 140C3DC01E02FCE100142503 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C661E02FCE000142503 /* AllTests.m */; }; + 140C3DC21E02FCE100142503 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C671E02FCE000142503 /* Client.m */; }; + 140C3DC61E02FCE100142503 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C691E02FCE000142503 /* Server.m */; }; + 140C3DCC1E02FCE100142503 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C6D1E02FCE000142503 /* TestI.m */; }; + 140C3DED1E02FF0900142503 /* MetricsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B831E02FCE000142503 /* MetricsTest.ice */; }; + 140C3DEE1E02FF0900142503 /* ObjectsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B8C1E02FCE000142503 /* ObjectsTest.ice */; }; + 140C3DEF1E02FF0900142503 /* OperationsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B991E02FCE000142503 /* OperationsTest.ice */; }; + 140C3DF01E02FF0900142503 /* OptionalTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA21E02FCE000142503 /* OptionalTest.ice */; }; + 140C3DF11E02FF0900142503 /* ProxyTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BAA1E02FCE000142503 /* ProxyTest.ice */; }; + 140C3DF21E02FF0900142503 /* RetryTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB21E02FCE000142503 /* RetryTest.ice */; }; + 140C3DF31E02FF0900142503 /* ServantLocatorTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BBD1E02FCE000142503 /* ServantLocatorTest.ice */; }; + 140C3DF41E02FF0900142503 /* ServicesTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC51E02FCE000142503 /* ServicesTest.ice */; }; + 140C3DF51E02FF0900142503 /* StreamTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC81E02FCE000142503 /* StreamTest.ice */; }; + 140C3DF61E02FF0900142503 /* TimeoutTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCF1E02FCE000142503 /* TimeoutTest.ice */; }; + 140C3DF71E02FF0900142503 /* ACMTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD11E02FCE000142503 /* ACMTest.ice */; }; + 140C3DF81E02FF0900142503 /* AdapterDeactivationTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD81E02FCE000142503 /* AdapterDeactivationTest.ice */; }; + 140C3DF91E02FF0900142503 /* AdminTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE01E02FCE000142503 /* AdminTest.ice */; }; + 140C3DFA1E02FF0900142503 /* AMITest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE91E02FCE000142503 /* AMITest.ice */; }; + 140C3DFB1E02FF0900142503 /* BindingTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF11E02FCE000142503 /* BindingTest.ice */; }; + 140C3DFC1E02FF0900142503 /* DefaultServantTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF81E02FCE000142503 /* DefaultServantTest.ice */; }; + 140C3DFD1E02FF0900142503 /* DefaultValueTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BFF1E02FCE000142503 /* DefaultValueTest.ice */; }; + 140C3DFE1E02FF0900142503 /* DispatcherTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C041E02FCE000142503 /* DispatcherTest.ice */; }; + 140C3DFF1E02FF0900142503 /* EnumTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C0B1E02FCE000142503 /* EnumTest.ice */; }; + 140C3E001E02FF0900142503 /* ExceptionsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C131E02FCE000142503 /* ExceptionsTest.ice */; }; + 140C3E011E02FF0900142503 /* FacetsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C1B1E02FCE000142503 /* FacetsTest.ice */; }; + 140C3E031E02FF0900142503 /* HashTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C291E02FCE000142503 /* HashTest.ice */; }; + 140C3E041E02FF0900142503 /* HoldTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C2D1E02FCE000142503 /* HoldTest.ice */; }; + 140C3E051E02FF0900142503 /* InfoTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C341E02FCE000142503 /* InfoTest.ice */; }; + 140C3E061E02FF0900142503 /* InvokeTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C4E1E02FCE000142503 /* InvokeTest.ice */; }; + 140C3E071E02FF0900142503 /* LocationTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C541E02FCE000142503 /* LocationTest.ice */; }; + 140C3E081E02FF0900142503 /* SlicingExceptionsTestClient.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C611E02FCE000142503 /* SlicingExceptionsTestClient.ice */; }; + 140C3E091E02FF0900142503 /* SlicingExceptionsTestServer.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C621E02FCE000142503 /* SlicingExceptionsTestServer.ice */; }; + 140C3E0A1E02FF0900142503 /* SlicingObjectsTestClient.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C6A1E02FCE000142503 /* SlicingObjectsTestClient.ice */; }; + 140C3E0B1E02FF0900142503 /* SlicingObjectsTestServer.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C6B1E02FCE000142503 /* SlicingObjectsTestServer.ice */; }; + 140C3E0F1E03005200142503 /* InheritanceTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E0C1E03004300142503 /* InheritanceTest.ice */; }; + 140C3E131E03007D00142503 /* InterceptorTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E101E03007900142503 /* InterceptorTest.ice */; }; + 140C3E151E03019000142503 /* TestCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E141E03019000142503 /* TestCommon.m */; }; + 140C3E181E03E87D00142503 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E171E03E87D00142503 /* Collocated.m */; }; + 140C3E1A1E03EAAA00142503 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E191E03EAAA00142503 /* Collocated.m */; }; + 140C3E1C1E03EABE00142503 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E1B1E03EABE00142503 /* Collocated.m */; }; + 140C3E1E1E03EAD000142503 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E1D1E03EAD000142503 /* Collocated.m */; }; + 140C3E201E03EAF300142503 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E1F1E03EAF300142503 /* Collocated.m */; }; + 140C3E221E03EBE000142503 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E211E03EBE000142503 /* Collocated.m */; }; + 145C4BE61E36061900A855C7 /* TestIntfI.m in Sources */ = {isa = PBXBuildFile; fileRef = 145C4BE31E36061900A855C7 /* TestIntfI.m */; }; + 145C4BE71E36061900A855C7 /* ObjectsDerived.ice in Resources */ = {isa = PBXBuildFile; fileRef = 145C4BE41E36061900A855C7 /* ObjectsDerived.ice */; }; + 145C4BE81E36061900A855C7 /* ObjectsDerivedEx.ice in Resources */ = {isa = PBXBuildFile; fileRef = 145C4BE51E36061900A855C7 /* ObjectsDerivedEx.ice */; }; + 145C4BE91E36064B00A855C7 /* ObjectsDerived.ice in Sources */ = {isa = PBXBuildFile; fileRef = 145C4BE41E36061900A855C7 /* ObjectsDerived.ice */; }; + 145C4BEA1E36064B00A855C7 /* ObjectsDerivedEx.ice in Sources */ = {isa = PBXBuildFile; fileRef = 145C4BE51E36061900A855C7 /* ObjectsDerivedEx.ice */; }; + 145C4BEB1E36069B00A855C7 /* ObjectsDerived.ice in Sources */ = {isa = PBXBuildFile; fileRef = 145C4BE41E36061900A855C7 /* ObjectsDerived.ice */; }; + 145C4BEC1E36069B00A855C7 /* ObjectsDerivedEx.ice in Sources */ = {isa = PBXBuildFile; fileRef = 145C4BE51E36061900A855C7 /* ObjectsDerivedEx.ice */; }; + 145C4BED1E3606FF00A855C7 /* TestIntfI.m in Sources */ = {isa = PBXBuildFile; fileRef = 145C4BE31E36061900A855C7 /* TestIntfI.m */; }; + 148ABA191DFB12C800594F70 /* cacert.der in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA161DFB12C800594F70 /* cacert.der */; }; + 148ABA1A1DFB12C800594F70 /* client.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA171DFB12C800594F70 /* client.p12 */; }; + 148ABA1B1DFB12C800594F70 /* server.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA181DFB12C800594F70 /* server.p12 */; }; + 14905C561DF98FD8002AE61B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C551DF98FD8002AE61B /* main.m */; }; + 14905C591DF98FD8002AE61B /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C581DF98FD8002AE61B /* AppDelegate.m */; }; + 14905C5C1DF98FD8002AE61B /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C5B1DF98FD8002AE61B /* ViewController.m */; }; + 14905C5F1DF98FD8002AE61B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14905C5D1DF98FD8002AE61B /* Main.storyboard */; }; + 14905C611DF98FD8002AE61B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 14905C601DF98FD8002AE61B /* Assets.xcassets */; }; + 14905C641DF98FD8002AE61B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14905C621DF98FD8002AE61B /* LaunchScreen.storyboard */; }; + 14905C711DF9923D002AE61B /* Controller.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14905C6D1DF991F2002AE61B /* Controller.ice */; }; + 14B7DEA21E04103F001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA11E04103F001D0109 /* Collocated.m */; }; + 14B7DEA41E04113A001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA31E04113A001D0109 /* Collocated.m */; }; + 14B7DEA61E041157001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA51E041157001D0109 /* Collocated.m */; }; + 14B7DEA81E041173001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA71E041173001D0109 /* Collocated.m */; }; + 14B7DEAA1E04119D001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA91E04119D001D0109 /* Collocated.m */; }; + 14B7DEAD1E043085001D0109 /* InheritanceTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E0C1E03004300142503 /* InheritanceTest.ice */; }; + 14B7DEAE1E043085001D0109 /* MetricsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B831E02FCE000142503 /* MetricsTest.ice */; }; + 14B7DEAF1E043085001D0109 /* ObjectsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B8C1E02FCE000142503 /* ObjectsTest.ice */; }; + 14B7DEB01E043085001D0109 /* OperationsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B991E02FCE000142503 /* OperationsTest.ice */; }; + 14B7DEB11E043085001D0109 /* InterceptorTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E101E03007900142503 /* InterceptorTest.ice */; }; + 14B7DEB21E043085001D0109 /* OptionalTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA21E02FCE000142503 /* OptionalTest.ice */; }; + 14B7DEB31E043085001D0109 /* ProxyTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BAA1E02FCE000142503 /* ProxyTest.ice */; }; + 14B7DEB41E043085001D0109 /* RetryTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB21E02FCE000142503 /* RetryTest.ice */; }; + 14B7DEB51E043085001D0109 /* ServantLocatorTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BBD1E02FCE000142503 /* ServantLocatorTest.ice */; }; + 14B7DEB61E043085001D0109 /* ServicesTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC51E02FCE000142503 /* ServicesTest.ice */; }; + 14B7DEB71E043085001D0109 /* StreamTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC81E02FCE000142503 /* StreamTest.ice */; }; + 14B7DEB81E043085001D0109 /* TimeoutTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCF1E02FCE000142503 /* TimeoutTest.ice */; }; + 14B7DEB91E043085001D0109 /* ACMTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD11E02FCE000142503 /* ACMTest.ice */; }; + 14B7DEBA1E043085001D0109 /* AdapterDeactivationTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD81E02FCE000142503 /* AdapterDeactivationTest.ice */; }; + 14B7DEBB1E043085001D0109 /* AdminTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE01E02FCE000142503 /* AdminTest.ice */; }; + 14B7DEBC1E043085001D0109 /* AMITest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE91E02FCE000142503 /* AMITest.ice */; }; + 14B7DEBD1E043085001D0109 /* BindingTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF11E02FCE000142503 /* BindingTest.ice */; }; + 14B7DEBE1E043085001D0109 /* DefaultServantTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF81E02FCE000142503 /* DefaultServantTest.ice */; }; + 14B7DEBF1E043085001D0109 /* DefaultValueTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BFF1E02FCE000142503 /* DefaultValueTest.ice */; }; + 14B7DEC01E043085001D0109 /* DispatcherTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C041E02FCE000142503 /* DispatcherTest.ice */; }; + 14B7DEC11E043085001D0109 /* EnumTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C0B1E02FCE000142503 /* EnumTest.ice */; }; + 14B7DEC21E043085001D0109 /* ExceptionsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C131E02FCE000142503 /* ExceptionsTest.ice */; }; + 14B7DEC31E043085001D0109 /* FacetsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C1B1E02FCE000142503 /* FacetsTest.ice */; }; + 14B7DEC41E043085001D0109 /* HashTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C291E02FCE000142503 /* HashTest.ice */; }; + 14B7DEC51E043085001D0109 /* HoldTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C2D1E02FCE000142503 /* HoldTest.ice */; }; + 14B7DEC61E043085001D0109 /* InfoTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C341E02FCE000142503 /* InfoTest.ice */; }; + 14B7DEC71E043085001D0109 /* InvokeTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C4E1E02FCE000142503 /* InvokeTest.ice */; }; + 14B7DEC81E043085001D0109 /* LocationTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C541E02FCE000142503 /* LocationTest.ice */; }; + 14B7DEC91E043085001D0109 /* SlicingExceptionsTestClient.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C611E02FCE000142503 /* SlicingExceptionsTestClient.ice */; }; + 14B7DECA1E043085001D0109 /* SlicingExceptionsTestServer.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C621E02FCE000142503 /* SlicingExceptionsTestServer.ice */; }; + 14B7DECB1E043085001D0109 /* SlicingObjectsTestClient.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C6A1E02FCE000142503 /* SlicingObjectsTestClient.ice */; }; + 14B7DECC1E043085001D0109 /* SlicingObjectsTestServer.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C6B1E02FCE000142503 /* SlicingObjectsTestServer.ice */; }; + 14B7DECD1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BEE1E02FCE000142503 /* TestI.m */; }; + 14B7DECE1E043085001D0109 /* ServantLocatorI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BBC1E02FCE000142503 /* ServantLocatorI.m */; }; + 14B7DECF1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C531E02FCE000142503 /* Client.m */; }; + 14B7DED01E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C191E02FCE000142503 /* Client.m */; }; + 14B7DED11E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD91E02FCE000142503 /* AllTests.m */; }; + 14B7DED21E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE21E02FCE000142503 /* Client.m */; }; + 14B7DED31E043085001D0109 /* Controller.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14905C6D1DF991F2002AE61B /* Controller.ice */; }; + 14B7DED41E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C501E02FCE000142503 /* Server.m */; }; + 14B7DED51E043085001D0109 /* TwowaysNewAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B9E1E02FCE000142503 /* TwowaysNewAMI.m */; }; + 14B7DED61E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BFB1E02FCE000142503 /* TestI.m */; }; + 14B7DED71E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C4D1E02FCE000142503 /* Client.m */; }; + 14B7DED81E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC71E02FCE000142503 /* Client.m */; }; + 14B7DED91E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C1C1E02FCE000142503 /* Server.m */; }; + 14B7DEDA1E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C601E02FCE000142503 /* Server.m */; }; + 14B7DEDB1E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BEC1E02FCE000142503 /* Server.m */; }; + 14B7DEDC1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B911E02FCE000142503 /* AllTests.m */; }; + 14B7DEDD1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C091E02FCE000142503 /* AllTests.m */; }; + 14B7DEDE1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C3A1E02FCE000142503 /* AllTests.m */; }; + 14B7DEDF1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C4A1E02FCE000142503 /* AllTests.m */; }; + 14B7DEE01E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C561E02FCE000142503 /* Server.m */; }; + 14B7DEE11E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BBE1E02FCE000142503 /* Server.m */; }; + 14B7DEE21E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCB1E02FCE000142503 /* Client.m */; }; + 14B7DEE31E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C021E02FCE000142503 /* Client.m */; }; + 14B7DEE41E043085001D0109 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C5B1DF98FD8002AE61B /* ViewController.m */; }; + 14B7DEE51E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B821E02FCE000142503 /* Client.m */; }; + 14B7DEE61E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C421E02FCE000142503 /* Client.m */; }; + 14B7DEE71E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C321E02FCE000142503 /* AllTests.m */; }; + 14B7DEE81E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C051E02FCE000142503 /* Server.m */; }; + 14B7DEE91E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE61E02FCE000142503 /* TestI.m */; }; + 14B7DEEA1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C2B1E02FCE000142503 /* AllTests.m */; }; + 14B7DEEB1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF51E02FCE000142503 /* TestI.m */; }; + 14B7DEEC1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B861E02FCE000142503 /* TestI.m */; }; + 14B7DEED1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C521E02FCE000142503 /* AllTests.m */; }; + 14B7DEEE1E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C3E1E02FCE000142503 /* Server.m */; }; + 14B7DEEF1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BDA1E02FCE000142503 /* Client.m */; }; + 14B7DEF01E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C281E02FCE000142503 /* Client.m */; }; + 14B7DEF11E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA71E02FCE000142503 /* AllTests.m */; }; + 14B7DEF21E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BFE1E02FCE000142503 /* Client.m */; }; + 14B7DEF31E043085001D0109 /* Oneways.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B971E02FCE000142503 /* Oneways.m */; }; + 14B7DEF41E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C271E02FCE000142503 /* AllTests.m */; }; + 14B7DEF51E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C3B1E02FCE000142503 /* Client.m */; }; + 14B7DEF61E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BFD1E02FCE000142503 /* AllTests.m */; }; + 14B7DEF71E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B8F1E02FCE000142503 /* TestI.m */; }; + 14B7DEF81E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C2E1E02FCE000142503 /* Server.m */; }; + 14B7DEF91E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B891E02FCE000142503 /* Client.m */; }; + 14B7DEFA1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C181E02FCE000142503 /* AllTests.m */; }; + 14B7DEFB1E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BDC1E02FCE000142503 /* Server.m */; }; + 14B7DEFC1E043085001D0109 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C581DF98FD8002AE61B /* AppDelegate.m */; }; + 14B7DEFD1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C381E02FCE000142503 /* TestI.m */; }; + 14B7DEFE1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BEA1E02FCE000142503 /* Client.m */; }; + 14B7DEFF1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C401E02FCE000142503 /* TestI.m */; }; + 14B7DF001E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCE1E02FCE000142503 /* TestI.m */; }; + 14B7DF011E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD41E02FCE000142503 /* Server.m */; }; + 14B7DF021E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C2C1E02FCE000142503 /* Client.m */; }; + 14B7DF031E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C141E02FCE000142503 /* Server.m */; }; + 14B7DF041E043085001D0109 /* Twoways.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B9D1E02FCE000142503 /* Twoways.m */; }; + 14B7DF051E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C101E02FCE000142503 /* AllTests.m */; }; + 14B7DF061E043085001D0109 /* OnewaysNewAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B981E02FCE000142503 /* OnewaysNewAMI.m */; }; + 14B7DF071E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCA1E02FCE000142503 /* AllTests.m */; }; + 14B7DF081E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE11E02FCE000142503 /* AllTests.m */; }; + 14B7DF091E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC31E02FCE000142503 /* Client.m */; }; + 14B7DF0A1E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C361E02FCE000142503 /* Server.m */; }; + 14B7DF0B1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C161E02FCE000142503 /* TestI.m */; }; + 14B7DF0C1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF21E02FCE000142503 /* Client.m */; }; + 14B7DF0D1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C111E02FCE000142503 /* Client.m */; }; + 14B7DF0E1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C5A1E02FCE000142503 /* TestI.m */; }; + 14B7DF0F1E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF31E02FCE000142503 /* Server.m */; }; + 14B7DF101E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C0E1E02FCE000142503 /* TestI.m */; }; + 14B7DF111E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BAF1E02FCE000142503 /* AllTests.m */; }; + 14B7DF121E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC01E02FCE000142503 /* TestI.m */; }; + 14B7DF131E043085001D0109 /* ServerLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C581E02FCE000142503 /* ServerLocator.m */; }; + 14B7DF141E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA81E02FCE000142503 /* Client.m */; }; + 14B7DF151E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE81E02FCE000142503 /* AllTests.m */; }; + 14B7DF161E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C5D1E02FCE000142503 /* AllTests.m */; }; + 14B7DF171E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B941E02FCE000142503 /* Client.m */; }; + 14B7DF181E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C071E02FCE000142503 /* TestI.m */; }; + 14B7DF191E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BE41E02FCE000142503 /* Server.m */; }; + 14B7DF1A1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BC21E02FCE000142503 /* AllTests.m */; }; + 14B7DF1B1E043085001D0109 /* BatchOneways.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B921E02FCE000142503 /* BatchOneways.m */; }; + 14B7DF1C1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF01E02FCE000142503 /* AllTests.m */; }; + 14B7DF1D1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB71E02FCE000142503 /* AllTests.m */; }; + 14B7DF1E1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA51E02FCE000142503 /* TestI.m */; }; + 14B7DF1F1E043085001D0109 /* TestCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E141E03019000142503 /* TestCommon.m */; }; + 14B7DF201E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B9A1E02FCE000142503 /* Server.m */; }; + 14B7DF211E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD21E02FCE000142503 /* AllTests.m */; }; + 14B7DF221E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA31E02FCE000142503 /* Server.m */; }; + 14B7DF231E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA11E02FCE000142503 /* Client.m */; }; + 14B7DF241E043085001D0109 /* MyObjectI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C481E02FCE000142503 /* MyObjectI.m */; }; + 14B7DF251E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B881E02FCE000142503 /* AllTests.m */; }; + 14B7DF261E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C0A1E02FCE000142503 /* Client.m */; }; + 14B7DF271E043085001D0109 /* BatchOnewaysAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B931E02FCE000142503 /* BatchOnewaysAMI.m */; }; + 14B7DF281E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C301E02FCE000142503 /* TestI.m */; }; + 14B7DF291E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C661E02FCE000142503 /* AllTests.m */; }; + 14B7DF2A1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B811E02FCE000142503 /* AllTests.m */; }; + 14B7DF2B1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C011E02FCE000142503 /* AllTests.m */; }; + 14B7DF2C1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C1E1E02FCE000142503 /* TestI.m */; }; + 14B7DF2D1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C331E02FCE000142503 /* Client.m */; }; + 14B7DF2E1E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E1F1E03EAF300142503 /* Collocated.m */; }; + 14B7DF2F1E043085001D0109 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C551DF98FD8002AE61B /* main.m */; }; + 14B7DF301E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD61E02FCE000142503 /* TestI.m */; }; + 14B7DF311E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E1D1E03EAD000142503 /* Collocated.m */; }; + 14B7DF321E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C691E02FCE000142503 /* Server.m */; }; + 14B7DF331E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB31E02FCE000142503 /* Server.m */; }; + 14B7DF341E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C641E02FCE000142503 /* TestI.m */; }; + 14B7DF351E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA71E041173001D0109 /* Collocated.m */; }; + 14B7DF361E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E171E03E87D00142503 /* Collocated.m */; }; + 14B7DF371E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E191E03EAAA00142503 /* Collocated.m */; }; + 14B7DF381E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E211E03EBE000142503 /* Collocated.m */; }; + 14B7DF391E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA91E04119D001D0109 /* Collocated.m */; }; + 14B7DF3A1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C6D1E02FCE000142503 /* TestI.m */; }; + 14B7DF3B1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C5E1E02FCE000142503 /* Client.m */; }; + 14B7DF3C1E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BAB1E02FCE000142503 /* Server.m */; }; + 14B7DF3D1E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA51E041157001D0109 /* Collocated.m */; }; + 14B7DF3E1E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B8D1E02FCE000142503 /* Server.m */; }; + 14B7DF3F1E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA11E04103F001D0109 /* Collocated.m */; }; + 14B7DF401E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B7DEA31E04113A001D0109 /* Collocated.m */; }; + 14B7DF411E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B9C1E02FCE000142503 /* TestI.m */; }; + 14B7DF421E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3B841E02FCE000142503 /* Server.m */; }; + 14B7DF431E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C0C1E02FCE000142503 /* Server.m */; }; + 14B7DF441E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BDE1E02FCE000142503 /* TestI.m */; }; + 14B7DF451E043085001D0109 /* BlobjectI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C4C1E02FCE000142503 /* BlobjectI.m */; }; + 14B7DF461E043085001D0109 /* InterceptorI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C441E02FCE000142503 /* InterceptorI.m */; }; + 14B7DF471E043085001D0109 /* Collocated.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3E1B1E03EABE00142503 /* Collocated.m */; }; + 14B7DF481E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB81E02FCE000142503 /* Client.m */; }; + 14B7DF491E043085001D0109 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BCC1E02FCE000142503 /* Server.m */; }; + 14B7DF4A1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB51E02FCE000142503 /* TestI.m */; }; + 14B7DF4B1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3C671E02FCE000142503 /* Client.m */; }; + 14B7DF4C1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BF71E02FCE000142503 /* Client.m */; }; + 14B7DF4D1E043085001D0109 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BAD1E02FCE000142503 /* TestI.m */; }; + 14B7DF4E1E043085001D0109 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BA01E02FCE000142503 /* AllTests.m */; }; + 14B7DF4F1E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BD31E02FCE000142503 /* Client.m */; }; + 14B7DF501E043085001D0109 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140C3BB01E02FCE000142503 /* Client.m */; }; + 14B7DF561E043085001D0109 /* client.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA171DFB12C800594F70 /* client.p12 */; }; + 14B7DF5F1E043085001D0109 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14905C621DF98FD8002AE61B /* LaunchScreen.storyboard */; }; + 14B7DF641E043085001D0109 /* server.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA181DFB12C800594F70 /* server.p12 */; }; + 14B7DF681E043085001D0109 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 14905C601DF98FD8002AE61B /* Assets.xcassets */; }; + 14B7DF721E043085001D0109 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14905C5D1DF98FD8002AE61B /* Main.storyboard */; }; + 14B7DF771E043085001D0109 /* cacert.der in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA161DFB12C800594F70 /* cacert.der */; }; + 14FFBAA01E29361A00EA55AF /* ExternalAccessory.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14FFBA9F1E29361A00EA55AF /* ExternalAccessory.framework */; }; + 14FFBAA11E29362900EA55AF /* ExternalAccessory.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14FFBA9F1E29361A00EA55AF /* ExternalAccessory.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXBuildRule section */ + 14905C701DF991FB002AE61B /* PBXBuildRule */ = { + isa = PBXBuildRule; + compilerSpec = com.apple.compilers.proxy.script; + filePatterns = "*.ice"; + fileType = pattern.proxy; + isEditable = 1; + outputFiles = ( + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).m", + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).h", + ); + script = /usr/local/bin/icebuilder; + }; + 14B7DF791E043085001D0109 /* PBXBuildRule */ = { + isa = PBXBuildRule; + compilerSpec = com.apple.compilers.proxy.script; + filePatterns = "*.ice"; + fileType = pattern.proxy; + isEditable = 1; + outputFiles = ( + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).m", + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).h", + ); + script = /usr/local/bin/icebuilder; + }; +/* End PBXBuildRule section */ + +/* Begin PBXFileReference section */ + 140C3B811E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3B821E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3B831E02FCE000142503 /* MetricsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MetricsTest.ice; sourceTree = "<group>"; }; + 140C3B841E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3B851E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3B861E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3B881E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3B891E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3B8C1E02FCE000142503 /* ObjectsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ObjectsTest.ice; sourceTree = "<group>"; }; + 140C3B8D1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3B8E1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3B8F1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3B911E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3B921E02FCE000142503 /* BatchOneways.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BatchOneways.m; sourceTree = "<group>"; }; + 140C3B931E02FCE000142503 /* BatchOnewaysAMI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BatchOnewaysAMI.m; sourceTree = "<group>"; }; + 140C3B941E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3B971E02FCE000142503 /* Oneways.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Oneways.m; sourceTree = "<group>"; }; + 140C3B981E02FCE000142503 /* OnewaysNewAMI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OnewaysNewAMI.m; sourceTree = "<group>"; }; + 140C3B991E02FCE000142503 /* OperationsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = OperationsTest.ice; sourceTree = "<group>"; }; + 140C3B9A1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3B9B1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3B9C1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3B9D1E02FCE000142503 /* Twoways.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Twoways.m; sourceTree = "<group>"; }; + 140C3B9E1E02FCE000142503 /* TwowaysNewAMI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TwowaysNewAMI.m; sourceTree = "<group>"; }; + 140C3BA01E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BA11E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BA21E02FCE000142503 /* OptionalTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = OptionalTest.ice; sourceTree = "<group>"; }; + 140C3BA31E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BA41E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BA51E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BA71E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BA81E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BAA1E02FCE000142503 /* ProxyTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ProxyTest.ice; sourceTree = "<group>"; }; + 140C3BAB1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BAC1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BAD1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BAF1E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BB01E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BB21E02FCE000142503 /* RetryTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RetryTest.ice; sourceTree = "<group>"; }; + 140C3BB31E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BB41E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BB51E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BB71E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BB81E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BBB1E02FCE000142503 /* ServantLocatorI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServantLocatorI.h; sourceTree = "<group>"; }; + 140C3BBC1E02FCE000142503 /* ServantLocatorI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServantLocatorI.m; sourceTree = "<group>"; }; + 140C3BBD1E02FCE000142503 /* ServantLocatorTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ServantLocatorTest.ice; sourceTree = "<group>"; }; + 140C3BBE1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BBF1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BC01E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BC21E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BC31E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BC51E02FCE000142503 /* ServicesTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ServicesTest.ice; sourceTree = "<group>"; }; + 140C3BC71E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BC81E02FCE000142503 /* StreamTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = StreamTest.ice; sourceTree = "<group>"; }; + 140C3BCA1E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BCB1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BCC1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BCD1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BCE1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BCF1E02FCE000142503 /* TimeoutTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TimeoutTest.ice; sourceTree = "<group>"; }; + 140C3BD11E02FCE000142503 /* ACMTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ACMTest.ice; sourceTree = "<group>"; }; + 140C3BD21E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BD31E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BD41E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BD51E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BD61E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BD81E02FCE000142503 /* AdapterDeactivationTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AdapterDeactivationTest.ice; sourceTree = "<group>"; }; + 140C3BD91E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BDA1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BDC1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BDD1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BDE1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BE01E02FCE000142503 /* AdminTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AdminTest.ice; sourceTree = "<group>"; }; + 140C3BE11E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BE21E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BE41E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BE51E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BE61E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BE81E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BE91E02FCE000142503 /* AMITest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AMITest.ice; sourceTree = "<group>"; }; + 140C3BEA1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BEC1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BED1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BEE1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BF01E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BF11E02FCE000142503 /* BindingTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BindingTest.ice; sourceTree = "<group>"; }; + 140C3BF21E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BF31E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3BF41E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BF51E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BF71E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BF81E02FCE000142503 /* DefaultServantTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DefaultServantTest.ice; sourceTree = "<group>"; }; + 140C3BFA1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3BFB1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3BFD1E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3BFE1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3BFF1E02FCE000142503 /* DefaultValueTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DefaultValueTest.ice; sourceTree = "<group>"; }; + 140C3C011E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C021E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C041E02FCE000142503 /* DispatcherTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DispatcherTest.ice; sourceTree = "<group>"; }; + 140C3C051E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C061E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C071E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C091E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C0A1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C0B1E02FCE000142503 /* EnumTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = EnumTest.ice; sourceTree = "<group>"; }; + 140C3C0C1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C0D1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C0E1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C101E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C111E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C131E02FCE000142503 /* ExceptionsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ExceptionsTest.ice; sourceTree = "<group>"; }; + 140C3C141E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C151E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C161E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C181E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C191E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C1B1E02FCE000142503 /* FacetsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = FacetsTest.ice; sourceTree = "<group>"; }; + 140C3C1C1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C1D1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C1E1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C271E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C281E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C291E02FCE000142503 /* HashTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HashTest.ice; sourceTree = "<group>"; }; + 140C3C2B1E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C2C1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C2D1E02FCE000142503 /* HoldTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HoldTest.ice; sourceTree = "<group>"; }; + 140C3C2E1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C2F1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C301E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C321E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C331E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C341E02FCE000142503 /* InfoTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InfoTest.ice; sourceTree = "<group>"; }; + 140C3C361E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C371E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C381E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C3A1E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C3B1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C3E1E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C3F1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C401E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C421E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C431E02FCE000142503 /* InterceptorI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InterceptorI.h; sourceTree = "<group>"; }; + 140C3C441E02FCE000142503 /* InterceptorI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InterceptorI.m; sourceTree = "<group>"; }; + 140C3C471E02FCE000142503 /* MyObjectI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyObjectI.h; sourceTree = "<group>"; }; + 140C3C481E02FCE000142503 /* MyObjectI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyObjectI.m; sourceTree = "<group>"; }; + 140C3C4A1E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C4B1E02FCE000142503 /* BlobjectI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlobjectI.h; sourceTree = "<group>"; }; + 140C3C4C1E02FCE000142503 /* BlobjectI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BlobjectI.m; sourceTree = "<group>"; }; + 140C3C4D1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C4E1E02FCE000142503 /* InvokeTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InvokeTest.ice; sourceTree = "<group>"; }; + 140C3C501E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C521E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C531E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C541E02FCE000142503 /* LocationTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LocationTest.ice; sourceTree = "<group>"; }; + 140C3C561E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C571E02FCE000142503 /* ServerLocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerLocator.h; sourceTree = "<group>"; }; + 140C3C581E02FCE000142503 /* ServerLocator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerLocator.m; sourceTree = "<group>"; }; + 140C3C591E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C5A1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C5D1E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C5E1E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C601E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C611E02FCE000142503 /* SlicingExceptionsTestClient.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SlicingExceptionsTestClient.ice; sourceTree = "<group>"; }; + 140C3C621E02FCE000142503 /* SlicingExceptionsTestServer.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SlicingExceptionsTestServer.ice; sourceTree = "<group>"; }; + 140C3C631E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C641E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3C661E02FCE000142503 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 140C3C671E02FCE000142503 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 140C3C691E02FCE000142503 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 140C3C6A1E02FCE000142503 /* SlicingObjectsTestClient.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SlicingObjectsTestClient.ice; sourceTree = "<group>"; }; + 140C3C6B1E02FCE000142503 /* SlicingObjectsTestServer.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SlicingObjectsTestServer.ice; sourceTree = "<group>"; }; + 140C3C6C1E02FCE000142503 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 140C3C6D1E02FCE000142503 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 140C3E0C1E03004300142503 /* InheritanceTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InheritanceTest.ice; sourceTree = "<group>"; }; + 140C3E101E03007900142503 /* InterceptorTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InterceptorTest.ice; sourceTree = "<group>"; }; + 140C3E141E03019000142503 /* TestCommon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestCommon.m; path = ../../../Common/TestCommon.m; sourceTree = "<group>"; }; + 140C3E171E03E87D00142503 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 140C3E191E03EAAA00142503 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 140C3E1B1E03EABE00142503 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 140C3E1D1E03EAD000142503 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 140C3E1F1E03EAF300142503 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 140C3E211E03EBE000142503 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 145C4BE31E36061900A855C7 /* TestIntfI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestIntfI.m; sourceTree = "<group>"; }; + 145C4BE41E36061900A855C7 /* ObjectsDerived.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ObjectsDerived.ice; sourceTree = "<group>"; }; + 145C4BE51E36061900A855C7 /* ObjectsDerivedEx.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ObjectsDerivedEx.ice; sourceTree = "<group>"; }; + 148ABA161DFB12C800594F70 /* cacert.der */ = {isa = PBXFileReference; lastKnownFileType = file; name = cacert.der; path = ../../../../certs/cacert.der; sourceTree = "<group>"; }; + 148ABA171DFB12C800594F70 /* client.p12 */ = {isa = PBXFileReference; lastKnownFileType = file; name = client.p12; path = ../../../../certs/client.p12; sourceTree = "<group>"; }; + 148ABA181DFB12C800594F70 /* server.p12 */ = {isa = PBXFileReference; lastKnownFileType = file; name = server.p12; path = ../../../../certs/server.p12; sourceTree = "<group>"; }; + 148ABA1E1DFB18A300594F70 /* Objective-C Test Controller.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Objective-C Test Controller.entitlements"; sourceTree = "<group>"; }; + 14905C511DF98FD8002AE61B /* Objective-C Test Controller.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Objective-C Test Controller.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 14905C551DF98FD8002AE61B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; + 14905C571DF98FD8002AE61B /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; + 14905C581DF98FD8002AE61B /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; + 14905C5A1DF98FD8002AE61B /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; + 14905C5B1DF98FD8002AE61B /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; }; + 14905C5E1DF98FD8002AE61B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; + 14905C601DF98FD8002AE61B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; + 14905C631DF98FD8002AE61B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; + 14905C651DF98FD8002AE61B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; + 14905C6D1DF991F2002AE61B /* Controller.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Controller.ice; path = ../../../../../scripts/Controller.ice; sourceTree = "<group>"; }; + 14B7DEA11E04103F001D0109 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 14B7DEA31E04113A001D0109 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 14B7DEA51E041157001D0109 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 14B7DEA71E041173001D0109 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 14B7DEA91E04119D001D0109 /* Collocated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Collocated.m; sourceTree = "<group>"; }; + 14B7DF7D1E043085001D0109 /* Objective-C ARC Test Controller.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Objective-C ARC Test Controller.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 14FFBA9F1E29361A00EA55AF /* ExternalAccessory.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ExternalAccessory.framework; path = System/Library/Frameworks/ExternalAccessory.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 14905C4E1DF98FD8002AE61B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 14FFBAA01E29361A00EA55AF /* ExternalAccessory.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 14B7DF511E043085001D0109 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 14FFBAA11E29362900EA55AF /* ExternalAccessory.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 140C31281E02F7FF00142503 /* Tests */ = { + isa = PBXGroup; + children = ( + 140C3B801E02FCE000142503 /* metrics */, + 140C3B871E02FCE000142503 /* objects */, + 140C3B901E02FCE000142503 /* operations */, + 140C3B9F1E02FCE000142503 /* optional */, + 140C3BA61E02FCE000142503 /* proxy */, + 140C3BAE1E02FCE000142503 /* retry */, + 140C3BB61E02FCE000142503 /* servantLocator */, + 140C3BC11E02FCE000142503 /* services */, + 140C3BC61E02FCE000142503 /* stream */, + 140C3BC91E02FCE000142503 /* timeout */, + 140C3BD01E02FCE000142503 /* acm */, + 140C3BD71E02FCE000142503 /* adapterDeactivation */, + 140C3BDF1E02FCE000142503 /* admin */, + 140C3BE71E02FCE000142503 /* ami */, + 140C3BEF1E02FCE000142503 /* binding */, + 140C3BF61E02FCE000142503 /* defaultServant */, + 140C3BFC1E02FCE000142503 /* defaultValue */, + 140C3C001E02FCE000142503 /* dispatcher */, + 140C3C081E02FCE000142503 /* enums */, + 140C3C0F1E02FCE000142503 /* exceptions */, + 140C3C171E02FCE000142503 /* facets */, + 140C3C261E02FCE000142503 /* hash */, + 140C3C2A1E02FCE000142503 /* hold */, + 140C3C311E02FCE000142503 /* info */, + 140C3C391E02FCE000142503 /* inheritance */, + 140C3C411E02FCE000142503 /* interceptor */, + 140C3C491E02FCE000142503 /* invoke */, + 140C3C511E02FCE000142503 /* location */, + 140C3C5B1E02FCE000142503 /* slicing */, + ); + name = Tests; + sourceTree = "<group>"; + }; + 140C3B801E02FCE000142503 /* metrics */ = { + isa = PBXGroup; + children = ( + 140C3B811E02FCE000142503 /* AllTests.m */, + 140C3B821E02FCE000142503 /* Client.m */, + 140C3B831E02FCE000142503 /* MetricsTest.ice */, + 140C3B841E02FCE000142503 /* Server.m */, + 140C3B851E02FCE000142503 /* TestI.h */, + 140C3B861E02FCE000142503 /* TestI.m */, + ); + name = metrics; + path = ../../Ice/metrics; + sourceTree = "<group>"; + }; + 140C3B871E02FCE000142503 /* objects */ = { + isa = PBXGroup; + children = ( + 145C4BE31E36061900A855C7 /* TestIntfI.m */, + 145C4BE41E36061900A855C7 /* ObjectsDerived.ice */, + 145C4BE51E36061900A855C7 /* ObjectsDerivedEx.ice */, + 140C3E1D1E03EAD000142503 /* Collocated.m */, + 140C3B881E02FCE000142503 /* AllTests.m */, + 140C3B891E02FCE000142503 /* Client.m */, + 140C3B8C1E02FCE000142503 /* ObjectsTest.ice */, + 140C3B8D1E02FCE000142503 /* Server.m */, + 140C3B8E1E02FCE000142503 /* TestI.h */, + 140C3B8F1E02FCE000142503 /* TestI.m */, + ); + name = objects; + path = ../../Ice/objects; + sourceTree = "<group>"; + }; + 140C3B901E02FCE000142503 /* operations */ = { + isa = PBXGroup; + children = ( + 140C3E171E03E87D00142503 /* Collocated.m */, + 140C3B911E02FCE000142503 /* AllTests.m */, + 140C3B921E02FCE000142503 /* BatchOneways.m */, + 140C3B931E02FCE000142503 /* BatchOnewaysAMI.m */, + 140C3B941E02FCE000142503 /* Client.m */, + 140C3B971E02FCE000142503 /* Oneways.m */, + 140C3B981E02FCE000142503 /* OnewaysNewAMI.m */, + 140C3B991E02FCE000142503 /* OperationsTest.ice */, + 140C3B9A1E02FCE000142503 /* Server.m */, + 140C3B9B1E02FCE000142503 /* TestI.h */, + 140C3B9C1E02FCE000142503 /* TestI.m */, + 140C3B9D1E02FCE000142503 /* Twoways.m */, + 140C3B9E1E02FCE000142503 /* TwowaysNewAMI.m */, + ); + name = operations; + path = ../../Ice/operations; + sourceTree = "<group>"; + }; + 140C3B9F1E02FCE000142503 /* optional */ = { + isa = PBXGroup; + children = ( + 140C3BA01E02FCE000142503 /* AllTests.m */, + 140C3BA11E02FCE000142503 /* Client.m */, + 140C3BA21E02FCE000142503 /* OptionalTest.ice */, + 140C3BA31E02FCE000142503 /* Server.m */, + 140C3BA41E02FCE000142503 /* TestI.h */, + 140C3BA51E02FCE000142503 /* TestI.m */, + ); + name = optional; + path = ../../Ice/optional; + sourceTree = "<group>"; + }; + 140C3BA61E02FCE000142503 /* proxy */ = { + isa = PBXGroup; + children = ( + 140C3E191E03EAAA00142503 /* Collocated.m */, + 140C3BA71E02FCE000142503 /* AllTests.m */, + 140C3BA81E02FCE000142503 /* Client.m */, + 140C3BAA1E02FCE000142503 /* ProxyTest.ice */, + 140C3BAB1E02FCE000142503 /* Server.m */, + 140C3BAC1E02FCE000142503 /* TestI.h */, + 140C3BAD1E02FCE000142503 /* TestI.m */, + ); + name = proxy; + path = ../../Ice/proxy; + sourceTree = "<group>"; + }; + 140C3BAE1E02FCE000142503 /* retry */ = { + isa = PBXGroup; + children = ( + 14B7DEA71E041173001D0109 /* Collocated.m */, + 140C3BAF1E02FCE000142503 /* AllTests.m */, + 140C3BB01E02FCE000142503 /* Client.m */, + 140C3BB21E02FCE000142503 /* RetryTest.ice */, + 140C3BB31E02FCE000142503 /* Server.m */, + 140C3BB41E02FCE000142503 /* TestI.h */, + 140C3BB51E02FCE000142503 /* TestI.m */, + ); + name = retry; + path = ../../Ice/retry; + sourceTree = "<group>"; + }; + 140C3BB61E02FCE000142503 /* servantLocator */ = { + isa = PBXGroup; + children = ( + 14B7DEA91E04119D001D0109 /* Collocated.m */, + 140C3BB71E02FCE000142503 /* AllTests.m */, + 140C3BB81E02FCE000142503 /* Client.m */, + 140C3BBB1E02FCE000142503 /* ServantLocatorI.h */, + 140C3BBC1E02FCE000142503 /* ServantLocatorI.m */, + 140C3BBD1E02FCE000142503 /* ServantLocatorTest.ice */, + 140C3BBE1E02FCE000142503 /* Server.m */, + 140C3BBF1E02FCE000142503 /* TestI.h */, + 140C3BC01E02FCE000142503 /* TestI.m */, + ); + name = servantLocator; + path = ../../Ice/servantLocator; + sourceTree = "<group>"; + }; + 140C3BC11E02FCE000142503 /* services */ = { + isa = PBXGroup; + children = ( + 140C3BC21E02FCE000142503 /* AllTests.m */, + 140C3BC31E02FCE000142503 /* Client.m */, + 140C3BC51E02FCE000142503 /* ServicesTest.ice */, + ); + name = services; + path = ../../Ice/services; + sourceTree = "<group>"; + }; + 140C3BC61E02FCE000142503 /* stream */ = { + isa = PBXGroup; + children = ( + 140C3BC71E02FCE000142503 /* Client.m */, + 140C3BC81E02FCE000142503 /* StreamTest.ice */, + ); + name = stream; + path = ../../Ice/stream; + sourceTree = "<group>"; + }; + 140C3BC91E02FCE000142503 /* timeout */ = { + isa = PBXGroup; + children = ( + 140C3BCA1E02FCE000142503 /* AllTests.m */, + 140C3BCB1E02FCE000142503 /* Client.m */, + 140C3BCC1E02FCE000142503 /* Server.m */, + 140C3BCD1E02FCE000142503 /* TestI.h */, + 140C3BCE1E02FCE000142503 /* TestI.m */, + 140C3BCF1E02FCE000142503 /* TimeoutTest.ice */, + ); + name = timeout; + path = ../../Ice/timeout; + sourceTree = "<group>"; + }; + 140C3BD01E02FCE000142503 /* acm */ = { + isa = PBXGroup; + children = ( + 140C3BD11E02FCE000142503 /* ACMTest.ice */, + 140C3BD21E02FCE000142503 /* AllTests.m */, + 140C3BD31E02FCE000142503 /* Client.m */, + 140C3BD41E02FCE000142503 /* Server.m */, + 140C3BD51E02FCE000142503 /* TestI.h */, + 140C3BD61E02FCE000142503 /* TestI.m */, + ); + name = acm; + path = ../../Ice/acm; + sourceTree = "<group>"; + }; + 140C3BD71E02FCE000142503 /* adapterDeactivation */ = { + isa = PBXGroup; + children = ( + 140C3E211E03EBE000142503 /* Collocated.m */, + 140C3BD81E02FCE000142503 /* AdapterDeactivationTest.ice */, + 140C3BD91E02FCE000142503 /* AllTests.m */, + 140C3BDA1E02FCE000142503 /* Client.m */, + 140C3BDC1E02FCE000142503 /* Server.m */, + 140C3BDD1E02FCE000142503 /* TestI.h */, + 140C3BDE1E02FCE000142503 /* TestI.m */, + ); + name = adapterDeactivation; + path = ../../Ice/adapterDeactivation; + sourceTree = "<group>"; + }; + 140C3BDF1E02FCE000142503 /* admin */ = { + isa = PBXGroup; + children = ( + 140C3BE01E02FCE000142503 /* AdminTest.ice */, + 140C3BE11E02FCE000142503 /* AllTests.m */, + 140C3BE21E02FCE000142503 /* Client.m */, + 140C3BE41E02FCE000142503 /* Server.m */, + 140C3BE51E02FCE000142503 /* TestI.h */, + 140C3BE61E02FCE000142503 /* TestI.m */, + ); + name = admin; + path = ../../Ice/admin; + sourceTree = "<group>"; + }; + 140C3BE71E02FCE000142503 /* ami */ = { + isa = PBXGroup; + children = ( + 140C3E1B1E03EABE00142503 /* Collocated.m */, + 140C3BE81E02FCE000142503 /* AllTests.m */, + 140C3BE91E02FCE000142503 /* AMITest.ice */, + 140C3BEA1E02FCE000142503 /* Client.m */, + 140C3BEC1E02FCE000142503 /* Server.m */, + 140C3BED1E02FCE000142503 /* TestI.h */, + 140C3BEE1E02FCE000142503 /* TestI.m */, + ); + name = ami; + path = ../../Ice/ami; + sourceTree = "<group>"; + }; + 140C3BEF1E02FCE000142503 /* binding */ = { + isa = PBXGroup; + children = ( + 140C3BF01E02FCE000142503 /* AllTests.m */, + 140C3BF11E02FCE000142503 /* BindingTest.ice */, + 140C3BF21E02FCE000142503 /* Client.m */, + 140C3BF31E02FCE000142503 /* Server.m */, + 140C3BF41E02FCE000142503 /* TestI.h */, + 140C3BF51E02FCE000142503 /* TestI.m */, + ); + name = binding; + path = ../../Ice/binding; + sourceTree = "<group>"; + }; + 140C3BF61E02FCE000142503 /* defaultServant */ = { + isa = PBXGroup; + children = ( + 140C3BF71E02FCE000142503 /* Client.m */, + 140C3BF81E02FCE000142503 /* DefaultServantTest.ice */, + 140C3BFA1E02FCE000142503 /* TestI.h */, + 140C3BFB1E02FCE000142503 /* TestI.m */, + ); + name = defaultServant; + path = ../../Ice/defaultServant; + sourceTree = "<group>"; + }; + 140C3BFC1E02FCE000142503 /* defaultValue */ = { + isa = PBXGroup; + children = ( + 140C3BFD1E02FCE000142503 /* AllTests.m */, + 140C3BFE1E02FCE000142503 /* Client.m */, + 140C3BFF1E02FCE000142503 /* DefaultValueTest.ice */, + ); + name = defaultValue; + path = ../../Ice/defaultValue; + sourceTree = "<group>"; + }; + 140C3C001E02FCE000142503 /* dispatcher */ = { + isa = PBXGroup; + children = ( + 14B7DEA11E04103F001D0109 /* Collocated.m */, + 140C3C011E02FCE000142503 /* AllTests.m */, + 140C3C021E02FCE000142503 /* Client.m */, + 140C3C041E02FCE000142503 /* DispatcherTest.ice */, + 140C3C051E02FCE000142503 /* Server.m */, + 140C3C061E02FCE000142503 /* TestI.h */, + 140C3C071E02FCE000142503 /* TestI.m */, + ); + name = dispatcher; + path = ../../Ice/dispatcher; + sourceTree = "<group>"; + }; + 140C3C081E02FCE000142503 /* enums */ = { + isa = PBXGroup; + children = ( + 140C3C091E02FCE000142503 /* AllTests.m */, + 140C3C0A1E02FCE000142503 /* Client.m */, + 140C3C0B1E02FCE000142503 /* EnumTest.ice */, + 140C3C0C1E02FCE000142503 /* Server.m */, + 140C3C0D1E02FCE000142503 /* TestI.h */, + 140C3C0E1E02FCE000142503 /* TestI.m */, + ); + name = enums; + path = ../../Ice/enums; + sourceTree = "<group>"; + }; + 140C3C0F1E02FCE000142503 /* exceptions */ = { + isa = PBXGroup; + children = ( + 140C3E1F1E03EAF300142503 /* Collocated.m */, + 140C3C101E02FCE000142503 /* AllTests.m */, + 140C3C111E02FCE000142503 /* Client.m */, + 140C3C131E02FCE000142503 /* ExceptionsTest.ice */, + 140C3C141E02FCE000142503 /* Server.m */, + 140C3C151E02FCE000142503 /* TestI.h */, + 140C3C161E02FCE000142503 /* TestI.m */, + ); + name = exceptions; + path = ../../Ice/exceptions; + sourceTree = "<group>"; + }; + 140C3C171E02FCE000142503 /* facets */ = { + isa = PBXGroup; + children = ( + 14B7DEA51E041157001D0109 /* Collocated.m */, + 140C3C181E02FCE000142503 /* AllTests.m */, + 140C3C191E02FCE000142503 /* Client.m */, + 140C3C1B1E02FCE000142503 /* FacetsTest.ice */, + 140C3C1C1E02FCE000142503 /* Server.m */, + 140C3C1D1E02FCE000142503 /* TestI.h */, + 140C3C1E1E02FCE000142503 /* TestI.m */, + ); + name = facets; + path = ../../Ice/facets; + sourceTree = "<group>"; + }; + 140C3C261E02FCE000142503 /* hash */ = { + isa = PBXGroup; + children = ( + 140C3C271E02FCE000142503 /* AllTests.m */, + 140C3C281E02FCE000142503 /* Client.m */, + 140C3C291E02FCE000142503 /* HashTest.ice */, + ); + name = hash; + path = ../../Ice/hash; + sourceTree = "<group>"; + }; + 140C3C2A1E02FCE000142503 /* hold */ = { + isa = PBXGroup; + children = ( + 140C3C2B1E02FCE000142503 /* AllTests.m */, + 140C3C2C1E02FCE000142503 /* Client.m */, + 140C3C2D1E02FCE000142503 /* HoldTest.ice */, + 140C3C2E1E02FCE000142503 /* Server.m */, + 140C3C2F1E02FCE000142503 /* TestI.h */, + 140C3C301E02FCE000142503 /* TestI.m */, + ); + name = hold; + path = ../../Ice/hold; + sourceTree = "<group>"; + }; + 140C3C311E02FCE000142503 /* info */ = { + isa = PBXGroup; + children = ( + 140C3C321E02FCE000142503 /* AllTests.m */, + 140C3C331E02FCE000142503 /* Client.m */, + 140C3C341E02FCE000142503 /* InfoTest.ice */, + 140C3C361E02FCE000142503 /* Server.m */, + 140C3C371E02FCE000142503 /* TestI.h */, + 140C3C381E02FCE000142503 /* TestI.m */, + ); + name = info; + path = ../../Ice/info; + sourceTree = "<group>"; + }; + 140C3C391E02FCE000142503 /* inheritance */ = { + isa = PBXGroup; + children = ( + 14B7DEA31E04113A001D0109 /* Collocated.m */, + 140C3E0C1E03004300142503 /* InheritanceTest.ice */, + 140C3C3A1E02FCE000142503 /* AllTests.m */, + 140C3C3B1E02FCE000142503 /* Client.m */, + 140C3C3E1E02FCE000142503 /* Server.m */, + 140C3C3F1E02FCE000142503 /* TestI.h */, + 140C3C401E02FCE000142503 /* TestI.m */, + ); + name = inheritance; + path = ../../Ice/inheritance; + sourceTree = "<group>"; + }; + 140C3C411E02FCE000142503 /* interceptor */ = { + isa = PBXGroup; + children = ( + 140C3E101E03007900142503 /* InterceptorTest.ice */, + 140C3C421E02FCE000142503 /* Client.m */, + 140C3C431E02FCE000142503 /* InterceptorI.h */, + 140C3C441E02FCE000142503 /* InterceptorI.m */, + 140C3C471E02FCE000142503 /* MyObjectI.h */, + 140C3C481E02FCE000142503 /* MyObjectI.m */, + ); + name = interceptor; + path = ../../Ice/interceptor; + sourceTree = "<group>"; + }; + 140C3C491E02FCE000142503 /* invoke */ = { + isa = PBXGroup; + children = ( + 140C3C4A1E02FCE000142503 /* AllTests.m */, + 140C3C4B1E02FCE000142503 /* BlobjectI.h */, + 140C3C4C1E02FCE000142503 /* BlobjectI.m */, + 140C3C4D1E02FCE000142503 /* Client.m */, + 140C3C4E1E02FCE000142503 /* InvokeTest.ice */, + 140C3C501E02FCE000142503 /* Server.m */, + ); + name = invoke; + path = ../../Ice/invoke; + sourceTree = "<group>"; + }; + 140C3C511E02FCE000142503 /* location */ = { + isa = PBXGroup; + children = ( + 140C3C521E02FCE000142503 /* AllTests.m */, + 140C3C531E02FCE000142503 /* Client.m */, + 140C3C541E02FCE000142503 /* LocationTest.ice */, + 140C3C561E02FCE000142503 /* Server.m */, + 140C3C571E02FCE000142503 /* ServerLocator.h */, + 140C3C581E02FCE000142503 /* ServerLocator.m */, + 140C3C591E02FCE000142503 /* TestI.h */, + 140C3C5A1E02FCE000142503 /* TestI.m */, + ); + name = location; + path = ../../Ice/location; + sourceTree = "<group>"; + }; + 140C3C5B1E02FCE000142503 /* slicing */ = { + isa = PBXGroup; + children = ( + 140C3C5C1E02FCE000142503 /* exceptions */, + 140C3C651E02FCE000142503 /* objects */, + ); + name = slicing; + path = ../../Ice/slicing; + sourceTree = "<group>"; + }; + 140C3C5C1E02FCE000142503 /* exceptions */ = { + isa = PBXGroup; + children = ( + 140C3C5D1E02FCE000142503 /* AllTests.m */, + 140C3C5E1E02FCE000142503 /* Client.m */, + 140C3C601E02FCE000142503 /* Server.m */, + 140C3C611E02FCE000142503 /* SlicingExceptionsTestClient.ice */, + 140C3C621E02FCE000142503 /* SlicingExceptionsTestServer.ice */, + 140C3C631E02FCE000142503 /* TestI.h */, + 140C3C641E02FCE000142503 /* TestI.m */, + ); + path = exceptions; + sourceTree = "<group>"; + }; + 140C3C651E02FCE000142503 /* objects */ = { + isa = PBXGroup; + children = ( + 140C3C661E02FCE000142503 /* AllTests.m */, + 140C3C671E02FCE000142503 /* Client.m */, + 140C3C691E02FCE000142503 /* Server.m */, + 140C3C6A1E02FCE000142503 /* SlicingObjectsTestClient.ice */, + 140C3C6B1E02FCE000142503 /* SlicingObjectsTestServer.ice */, + 140C3C6C1E02FCE000142503 /* TestI.h */, + 140C3C6D1E02FCE000142503 /* TestI.m */, + ); + path = objects; + sourceTree = "<group>"; + }; + 148ABA151DFB12A500594F70 /* Resources */ = { + isa = PBXGroup; + children = ( + 148ABA161DFB12C800594F70 /* cacert.der */, + 148ABA171DFB12C800594F70 /* client.p12 */, + 148ABA181DFB12C800594F70 /* server.p12 */, + ); + name = Resources; + sourceTree = "<group>"; + }; + 14905C481DF98FD8002AE61B = { + isa = PBXGroup; + children = ( + 140C31281E02F7FF00142503 /* Tests */, + 148ABA1E1DFB18A300594F70 /* Objective-C Test Controller.entitlements */, + 148ABA151DFB12A500594F70 /* Resources */, + 14905C531DF98FD8002AE61B /* Classes */, + 14905C521DF98FD8002AE61B /* Products */, + 14FFBA9E1E29361A00EA55AF /* Frameworks */, + ); + sourceTree = "<group>"; + }; + 14905C521DF98FD8002AE61B /* Products */ = { + isa = PBXGroup; + children = ( + 14905C511DF98FD8002AE61B /* Objective-C Test Controller.app */, + 14B7DF7D1E043085001D0109 /* Objective-C ARC Test Controller.app */, + ); + name = Products; + sourceTree = "<group>"; + }; + 14905C531DF98FD8002AE61B /* Classes */ = { + isa = PBXGroup; + children = ( + 140C3E141E03019000142503 /* TestCommon.m */, + 14905C6D1DF991F2002AE61B /* Controller.ice */, + 14905C571DF98FD8002AE61B /* AppDelegate.h */, + 14905C581DF98FD8002AE61B /* AppDelegate.m */, + 14905C5A1DF98FD8002AE61B /* ViewController.h */, + 14905C5B1DF98FD8002AE61B /* ViewController.m */, + 14905C5D1DF98FD8002AE61B /* Main.storyboard */, + 14905C601DF98FD8002AE61B /* Assets.xcassets */, + 14905C621DF98FD8002AE61B /* LaunchScreen.storyboard */, + 14905C651DF98FD8002AE61B /* Info.plist */, + 14905C541DF98FD8002AE61B /* Supporting Files */, + ); + path = Classes; + sourceTree = "<group>"; + }; + 14905C541DF98FD8002AE61B /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 14905C551DF98FD8002AE61B /* main.m */, + ); + name = "Supporting Files"; + sourceTree = "<group>"; + }; + 14FFBA9E1E29361A00EA55AF /* Frameworks */ = { + isa = PBXGroup; + children = ( + 14FFBA9F1E29361A00EA55AF /* ExternalAccessory.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 14905C501DF98FD8002AE61B /* Objective-C Test Controller */ = { + isa = PBXNativeTarget; + buildConfigurationList = 14905C681DF98FD8002AE61B /* Build configuration list for PBXNativeTarget "Objective-C Test Controller" */; + buildPhases = ( + 14905C4D1DF98FD8002AE61B /* Sources */, + 14905C4E1DF98FD8002AE61B /* Frameworks */, + 14905C4F1DF98FD8002AE61B /* Resources */, + ); + buildRules = ( + 14905C701DF991FB002AE61B /* PBXBuildRule */, + ); + dependencies = ( + ); + name = "Objective-C Test Controller"; + productName = "C++ Test Controller"; + productReference = 14905C511DF98FD8002AE61B /* Objective-C Test Controller.app */; + productType = "com.apple.product-type.application"; + }; + 14B7DEAB1E043085001D0109 /* Objective-C ARC Test Controller */ = { + isa = PBXNativeTarget; + buildConfigurationList = 14B7DF7A1E043085001D0109 /* Build configuration list for PBXNativeTarget "Objective-C ARC Test Controller" */; + buildPhases = ( + 14B7DEAC1E043085001D0109 /* Sources */, + 14B7DF511E043085001D0109 /* Frameworks */, + 14B7DF521E043085001D0109 /* Resources */, + ); + buildRules = ( + 14B7DF791E043085001D0109 /* PBXBuildRule */, + ); + dependencies = ( + ); + name = "Objective-C ARC Test Controller"; + productName = "C++ Test Controller"; + productReference = 14B7DF7D1E043085001D0109 /* Objective-C ARC Test Controller.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 14905C491DF98FD8002AE61B /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = "ZeroC, Inc."; + TargetAttributes = { + 14905C501DF98FD8002AE61B = { + CreatedOnToolsVersion = 8.1; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Push = { + enabled = 0; + }; + }; + }; + 14B7DEAB1E043085001D0109 = { + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Push = { + enabled = 0; + }; + }; + }; + }; + }; + buildConfigurationList = 14905C4C1DF98FD8002AE61B /* Build configuration list for PBXProject "Objective-C Test Controller" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 14905C481DF98FD8002AE61B; + productRefGroup = 14905C521DF98FD8002AE61B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 14905C501DF98FD8002AE61B /* Objective-C Test Controller */, + 14B7DEAB1E043085001D0109 /* Objective-C ARC Test Controller */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 14905C4F1DF98FD8002AE61B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 148ABA1A1DFB12C800594F70 /* client.p12 in Resources */, + 14905C641DF98FD8002AE61B /* LaunchScreen.storyboard in Resources */, + 148ABA1B1DFB12C800594F70 /* server.p12 in Resources */, + 14905C611DF98FD8002AE61B /* Assets.xcassets in Resources */, + 14905C5F1DF98FD8002AE61B /* Main.storyboard in Resources */, + 145C4BE81E36061900A855C7 /* ObjectsDerivedEx.ice in Resources */, + 145C4BE71E36061900A855C7 /* ObjectsDerived.ice in Resources */, + 148ABA191DFB12C800594F70 /* cacert.der in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 14B7DF521E043085001D0109 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14B7DF561E043085001D0109 /* client.p12 in Resources */, + 14B7DF5F1E043085001D0109 /* LaunchScreen.storyboard in Resources */, + 14B7DF641E043085001D0109 /* server.p12 in Resources */, + 14B7DF681E043085001D0109 /* Assets.xcassets in Resources */, + 14B7DF721E043085001D0109 /* Main.storyboard in Resources */, + 14B7DF771E043085001D0109 /* cacert.der in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 14905C4D1DF98FD8002AE61B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 145C4BEB1E36069B00A855C7 /* ObjectsDerived.ice in Sources */, + 145C4BEC1E36069B00A855C7 /* ObjectsDerivedEx.ice in Sources */, + 140C3E0F1E03005200142503 /* InheritanceTest.ice in Sources */, + 140C3DED1E02FF0900142503 /* MetricsTest.ice in Sources */, + 140C3DEE1E02FF0900142503 /* ObjectsTest.ice in Sources */, + 140C3DEF1E02FF0900142503 /* OperationsTest.ice in Sources */, + 140C3E131E03007D00142503 /* InterceptorTest.ice in Sources */, + 140C3DF01E02FF0900142503 /* OptionalTest.ice in Sources */, + 140C3DF11E02FF0900142503 /* ProxyTest.ice in Sources */, + 140C3DF21E02FF0900142503 /* RetryTest.ice in Sources */, + 140C3DF31E02FF0900142503 /* ServantLocatorTest.ice in Sources */, + 140C3DF41E02FF0900142503 /* ServicesTest.ice in Sources */, + 140C3DF51E02FF0900142503 /* StreamTest.ice in Sources */, + 140C3DF61E02FF0900142503 /* TimeoutTest.ice in Sources */, + 140C3DF71E02FF0900142503 /* ACMTest.ice in Sources */, + 140C3DF81E02FF0900142503 /* AdapterDeactivationTest.ice in Sources */, + 140C3DF91E02FF0900142503 /* AdminTest.ice in Sources */, + 145C4BE61E36061900A855C7 /* TestIntfI.m in Sources */, + 140C3DFA1E02FF0900142503 /* AMITest.ice in Sources */, + 140C3DFB1E02FF0900142503 /* BindingTest.ice in Sources */, + 140C3DFC1E02FF0900142503 /* DefaultServantTest.ice in Sources */, + 140C3DFD1E02FF0900142503 /* DefaultValueTest.ice in Sources */, + 140C3DFE1E02FF0900142503 /* DispatcherTest.ice in Sources */, + 140C3DFF1E02FF0900142503 /* EnumTest.ice in Sources */, + 140C3E001E02FF0900142503 /* ExceptionsTest.ice in Sources */, + 140C3E011E02FF0900142503 /* FacetsTest.ice in Sources */, + 140C3E031E02FF0900142503 /* HashTest.ice in Sources */, + 140C3E041E02FF0900142503 /* HoldTest.ice in Sources */, + 140C3E051E02FF0900142503 /* InfoTest.ice in Sources */, + 140C3E061E02FF0900142503 /* InvokeTest.ice in Sources */, + 140C3E071E02FF0900142503 /* LocationTest.ice in Sources */, + 140C3E081E02FF0900142503 /* SlicingExceptionsTestClient.ice in Sources */, + 140C3E091E02FF0900142503 /* SlicingExceptionsTestServer.ice in Sources */, + 140C3E0A1E02FF0900142503 /* SlicingObjectsTestClient.ice in Sources */, + 140C3E0B1E02FF0900142503 /* SlicingObjectsTestServer.ice in Sources */, + 140C3D141E02FCE100142503 /* TestI.m in Sources */, + 140C3CCA1E02FCE000142503 /* ServantLocatorI.m in Sources */, + 140C3DA61E02FCE100142503 /* Client.m in Sources */, + 140C3D521E02FCE100142503 /* Client.m in Sources */, + 140C3CF41E02FCE100142503 /* AllTests.m in Sources */, + 140C3D021E02FCE100142503 /* Client.m in Sources */, + 14905C711DF9923D002AE61B /* Controller.ice in Sources */, + 140C3DA21E02FCE100142503 /* Server.m in Sources */, + 140C3C9E1E02FCE000142503 /* TwowaysNewAMI.m in Sources */, + 140C3D261E02FCE100142503 /* TestI.m in Sources */, + 140C3D9C1E02FCE100142503 /* Client.m in Sources */, + 140C3CDA1E02FCE100142503 /* Client.m in Sources */, + 140C3D581E02FCE100142503 /* Server.m in Sources */, + 140C3DB81E02FCE100142503 /* Server.m in Sources */, + 140C3D121E02FCE100142503 /* Server.m in Sources */, + 140C3C861E02FCE000142503 /* AllTests.m in Sources */, + 140C3D3A1E02FCE100142503 /* AllTests.m in Sources */, + 140C3D821E02FCE100142503 /* AllTests.m in Sources */, + 140C3D981E02FCE100142503 /* AllTests.m in Sources */, + 140C3DAC1E02FCE100142503 /* Server.m in Sources */, + 140C3CCE1E02FCE000142503 /* Server.m in Sources */, + 140C3CE01E02FCE100142503 /* Client.m in Sources */, + 140C3D301E02FCE100142503 /* Client.m in Sources */, + 14905C5C1DF98FD8002AE61B /* ViewController.m in Sources */, + 140C3C701E02FCE000142503 /* Client.m in Sources */, + 140C3D8E1E02FCE100142503 /* Client.m in Sources */, + 140C3D761E02FCE100142503 /* AllTests.m in Sources */, + 140C3D361E02FCE100142503 /* Server.m in Sources */, + 140C3D081E02FCE100142503 /* TestI.m in Sources */, + 140C3D6C1E02FCE100142503 /* AllTests.m in Sources */, + 140C3D1E1E02FCE100142503 /* TestI.m in Sources */, + 140C3C761E02FCE000142503 /* TestI.m in Sources */, + 140C3DA41E02FCE100142503 /* AllTests.m in Sources */, + 140C3D8A1E02FCE100142503 /* Server.m in Sources */, + 140C3CF61E02FCE100142503 /* Client.m in Sources */, + 140C3D681E02FCE100142503 /* Client.m in Sources */, + 140C3CAA1E02FCE000142503 /* AllTests.m in Sources */, + 140C3D2A1E02FCE100142503 /* Client.m in Sources */, + 140C3C921E02FCE000142503 /* Oneways.m in Sources */, + 140C3D661E02FCE100142503 /* AllTests.m in Sources */, + 140C3D841E02FCE100142503 /* Client.m in Sources */, + 140C3D281E02FCE100142503 /* AllTests.m in Sources */, + 140C3C841E02FCE000142503 /* TestI.m in Sources */, + 140C3D721E02FCE100142503 /* Server.m in Sources */, + 140C3C7A1E02FCE000142503 /* Client.m in Sources */, + 140C3D501E02FCE100142503 /* AllTests.m in Sources */, + 140C3CFA1E02FCE100142503 /* Server.m in Sources */, + 14905C591DF98FD8002AE61B /* AppDelegate.m in Sources */, + 140C3D801E02FCE100142503 /* TestI.m in Sources */, + 140C3D0E1E02FCE100142503 /* Client.m in Sources */, + 140C3D8C1E02FCE100142503 /* TestI.m in Sources */, + 140C3CE41E02FCE100142503 /* TestI.m in Sources */, + 140C3CEE1E02FCE100142503 /* Server.m in Sources */, + 140C3D6E1E02FCE100142503 /* Client.m in Sources */, + 140C3D4C1E02FCE100142503 /* Server.m in Sources */, + 140C3C9C1E02FCE000142503 /* Twoways.m in Sources */, + 140C3D441E02FCE100142503 /* AllTests.m in Sources */, + 140C3C941E02FCE000142503 /* OnewaysNewAMI.m in Sources */, + 140C3CDE1E02FCE100142503 /* AllTests.m in Sources */, + 140C3D001E02FCE100142503 /* AllTests.m in Sources */, + 140C3CD41E02FCE100142503 /* Client.m in Sources */, + 140C3D7E1E02FCE100142503 /* Server.m in Sources */, + 140C3D4E1E02FCE100142503 /* TestI.m in Sources */, + 140C3D1A1E02FCE100142503 /* Client.m in Sources */, + 140C3D461E02FCE100142503 /* Client.m in Sources */, + 140C3DB01E02FCE100142503 /* TestI.m in Sources */, + 140C3D1C1E02FCE100142503 /* Server.m in Sources */, + 140C3D421E02FCE100142503 /* TestI.m in Sources */, + 140C3CB61E02FCE000142503 /* AllTests.m in Sources */, + 140C3CD01E02FCE100142503 /* TestI.m in Sources */, + 140C3DAE1E02FCE100142503 /* ServerLocator.m in Sources */, + 140C3CAC1E02FCE000142503 /* Client.m in Sources */, + 140C3D0A1E02FCE100142503 /* AllTests.m in Sources */, + 140C3DB21E02FCE100142503 /* AllTests.m in Sources */, + 140C3C8C1E02FCE000142503 /* Client.m in Sources */, + 140C3D381E02FCE100142503 /* TestI.m in Sources */, + 140C3D061E02FCE100142503 /* Server.m in Sources */, + 140C3CD21E02FCE100142503 /* AllTests.m in Sources */, + 140C3C881E02FCE000142503 /* BatchOneways.m in Sources */, + 140C3D161E02FCE100142503 /* AllTests.m in Sources */, + 140C3CC21E02FCE000142503 /* AllTests.m in Sources */, + 140C3CA81E02FCE000142503 /* TestI.m in Sources */, + 140C3E151E03019000142503 /* TestCommon.m in Sources */, + 140C3C981E02FCE000142503 /* Server.m in Sources */, + 140C3CEA1E02FCE100142503 /* AllTests.m in Sources */, + 140C3CA61E02FCE000142503 /* Server.m in Sources */, + 140C3CA21E02FCE000142503 /* Client.m in Sources */, + 140C3D961E02FCE100142503 /* MyObjectI.m in Sources */, + 140C3C781E02FCE000142503 /* AllTests.m in Sources */, + 140C3D3C1E02FCE100142503 /* Client.m in Sources */, + 140C3C8A1E02FCE000142503 /* BatchOnewaysAMI.m in Sources */, + 140C3D741E02FCE100142503 /* TestI.m in Sources */, + 140C3DC01E02FCE100142503 /* AllTests.m in Sources */, + 140C3C6E1E02FCE000142503 /* AllTests.m in Sources */, + 140C3D2E1E02FCE100142503 /* AllTests.m in Sources */, + 140C3D5A1E02FCE100142503 /* TestI.m in Sources */, + 140C3D781E02FCE100142503 /* Client.m in Sources */, + 140C3E201E03EAF300142503 /* Collocated.m in Sources */, + 14905C561DF98FD8002AE61B /* main.m in Sources */, + 140C3CF01E02FCE100142503 /* TestI.m in Sources */, + 140C3E1E1E03EAD000142503 /* Collocated.m in Sources */, + 140C3DC61E02FCE100142503 /* Server.m in Sources */, + 140C3CBE1E02FCE000142503 /* Server.m in Sources */, + 140C3DBE1E02FCE100142503 /* TestI.m in Sources */, + 14B7DEA81E041173001D0109 /* Collocated.m in Sources */, + 140C3E181E03E87D00142503 /* Collocated.m in Sources */, + 140C3E1A1E03EAAA00142503 /* Collocated.m in Sources */, + 140C3E221E03EBE000142503 /* Collocated.m in Sources */, + 14B7DEAA1E04119D001D0109 /* Collocated.m in Sources */, + 140C3DCC1E02FCE100142503 /* TestI.m in Sources */, + 140C3DB41E02FCE100142503 /* Client.m in Sources */, + 140C3CB21E02FCE000142503 /* Server.m in Sources */, + 14B7DEA61E041157001D0109 /* Collocated.m in Sources */, + 140C3C821E02FCE000142503 /* Server.m in Sources */, + 14B7DEA21E04103F001D0109 /* Collocated.m in Sources */, + 14B7DEA41E04113A001D0109 /* Collocated.m in Sources */, + 140C3C9A1E02FCE000142503 /* TestI.m in Sources */, + 140C3C741E02FCE000142503 /* Server.m in Sources */, + 140C3D401E02FCE100142503 /* Server.m in Sources */, + 140C3CFC1E02FCE100142503 /* TestI.m in Sources */, + 140C3D9A1E02FCE100142503 /* BlobjectI.m in Sources */, + 140C3D901E02FCE100142503 /* InterceptorI.m in Sources */, + 140C3E1C1E03EABE00142503 /* Collocated.m in Sources */, + 140C3CC41E02FCE000142503 /* Client.m in Sources */, + 140C3CE21E02FCE100142503 /* Server.m in Sources */, + 140C3CC01E02FCE000142503 /* TestI.m in Sources */, + 140C3DC21E02FCE100142503 /* Client.m in Sources */, + 140C3D201E02FCE100142503 /* Client.m in Sources */, + 140C3CB41E02FCE000142503 /* TestI.m in Sources */, + 140C3CA01E02FCE000142503 /* AllTests.m in Sources */, + 140C3CEC1E02FCE100142503 /* Client.m in Sources */, + 140C3CB81E02FCE000142503 /* Client.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 14B7DEAC1E043085001D0109 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 145C4BED1E3606FF00A855C7 /* TestIntfI.m in Sources */, + 145C4BE91E36064B00A855C7 /* ObjectsDerived.ice in Sources */, + 145C4BEA1E36064B00A855C7 /* ObjectsDerivedEx.ice in Sources */, + 14B7DEAD1E043085001D0109 /* InheritanceTest.ice in Sources */, + 14B7DEAE1E043085001D0109 /* MetricsTest.ice in Sources */, + 14B7DEAF1E043085001D0109 /* ObjectsTest.ice in Sources */, + 14B7DEB01E043085001D0109 /* OperationsTest.ice in Sources */, + 14B7DEB11E043085001D0109 /* InterceptorTest.ice in Sources */, + 14B7DEB21E043085001D0109 /* OptionalTest.ice in Sources */, + 14B7DEB31E043085001D0109 /* ProxyTest.ice in Sources */, + 14B7DEB41E043085001D0109 /* RetryTest.ice in Sources */, + 14B7DEB51E043085001D0109 /* ServantLocatorTest.ice in Sources */, + 14B7DEB61E043085001D0109 /* ServicesTest.ice in Sources */, + 14B7DEB71E043085001D0109 /* StreamTest.ice in Sources */, + 14B7DEB81E043085001D0109 /* TimeoutTest.ice in Sources */, + 14B7DEB91E043085001D0109 /* ACMTest.ice in Sources */, + 14B7DEBA1E043085001D0109 /* AdapterDeactivationTest.ice in Sources */, + 14B7DEBB1E043085001D0109 /* AdminTest.ice in Sources */, + 14B7DEBC1E043085001D0109 /* AMITest.ice in Sources */, + 14B7DEBD1E043085001D0109 /* BindingTest.ice in Sources */, + 14B7DEBE1E043085001D0109 /* DefaultServantTest.ice in Sources */, + 14B7DEBF1E043085001D0109 /* DefaultValueTest.ice in Sources */, + 14B7DEC01E043085001D0109 /* DispatcherTest.ice in Sources */, + 14B7DEC11E043085001D0109 /* EnumTest.ice in Sources */, + 14B7DEC21E043085001D0109 /* ExceptionsTest.ice in Sources */, + 14B7DEC31E043085001D0109 /* FacetsTest.ice in Sources */, + 14B7DEC41E043085001D0109 /* HashTest.ice in Sources */, + 14B7DEC51E043085001D0109 /* HoldTest.ice in Sources */, + 14B7DEC61E043085001D0109 /* InfoTest.ice in Sources */, + 14B7DEC71E043085001D0109 /* InvokeTest.ice in Sources */, + 14B7DEC81E043085001D0109 /* LocationTest.ice in Sources */, + 14B7DEC91E043085001D0109 /* SlicingExceptionsTestClient.ice in Sources */, + 14B7DECA1E043085001D0109 /* SlicingExceptionsTestServer.ice in Sources */, + 14B7DECB1E043085001D0109 /* SlicingObjectsTestClient.ice in Sources */, + 14B7DECC1E043085001D0109 /* SlicingObjectsTestServer.ice in Sources */, + 14B7DECD1E043085001D0109 /* TestI.m in Sources */, + 14B7DECE1E043085001D0109 /* ServantLocatorI.m in Sources */, + 14B7DECF1E043085001D0109 /* Client.m in Sources */, + 14B7DED01E043085001D0109 /* Client.m in Sources */, + 14B7DED11E043085001D0109 /* AllTests.m in Sources */, + 14B7DED21E043085001D0109 /* Client.m in Sources */, + 14B7DED31E043085001D0109 /* Controller.ice in Sources */, + 14B7DED41E043085001D0109 /* Server.m in Sources */, + 14B7DED51E043085001D0109 /* TwowaysNewAMI.m in Sources */, + 14B7DED61E043085001D0109 /* TestI.m in Sources */, + 14B7DED71E043085001D0109 /* Client.m in Sources */, + 14B7DED81E043085001D0109 /* Client.m in Sources */, + 14B7DED91E043085001D0109 /* Server.m in Sources */, + 14B7DEDA1E043085001D0109 /* Server.m in Sources */, + 14B7DEDB1E043085001D0109 /* Server.m in Sources */, + 14B7DEDC1E043085001D0109 /* AllTests.m in Sources */, + 14B7DEDD1E043085001D0109 /* AllTests.m in Sources */, + 14B7DEDE1E043085001D0109 /* AllTests.m in Sources */, + 14B7DEDF1E043085001D0109 /* AllTests.m in Sources */, + 14B7DEE01E043085001D0109 /* Server.m in Sources */, + 14B7DEE11E043085001D0109 /* Server.m in Sources */, + 14B7DEE21E043085001D0109 /* Client.m in Sources */, + 14B7DEE31E043085001D0109 /* Client.m in Sources */, + 14B7DEE41E043085001D0109 /* ViewController.m in Sources */, + 14B7DEE51E043085001D0109 /* Client.m in Sources */, + 14B7DEE61E043085001D0109 /* Client.m in Sources */, + 14B7DEE71E043085001D0109 /* AllTests.m in Sources */, + 14B7DEE81E043085001D0109 /* Server.m in Sources */, + 14B7DEE91E043085001D0109 /* TestI.m in Sources */, + 14B7DEEA1E043085001D0109 /* AllTests.m in Sources */, + 14B7DEEB1E043085001D0109 /* TestI.m in Sources */, + 14B7DEEC1E043085001D0109 /* TestI.m in Sources */, + 14B7DEED1E043085001D0109 /* AllTests.m in Sources */, + 14B7DEEE1E043085001D0109 /* Server.m in Sources */, + 14B7DEEF1E043085001D0109 /* Client.m in Sources */, + 14B7DEF01E043085001D0109 /* Client.m in Sources */, + 14B7DEF11E043085001D0109 /* AllTests.m in Sources */, + 14B7DEF21E043085001D0109 /* Client.m in Sources */, + 14B7DEF31E043085001D0109 /* Oneways.m in Sources */, + 14B7DEF41E043085001D0109 /* AllTests.m in Sources */, + 14B7DEF51E043085001D0109 /* Client.m in Sources */, + 14B7DEF61E043085001D0109 /* AllTests.m in Sources */, + 14B7DEF71E043085001D0109 /* TestI.m in Sources */, + 14B7DEF81E043085001D0109 /* Server.m in Sources */, + 14B7DEF91E043085001D0109 /* Client.m in Sources */, + 14B7DEFA1E043085001D0109 /* AllTests.m in Sources */, + 14B7DEFB1E043085001D0109 /* Server.m in Sources */, + 14B7DEFC1E043085001D0109 /* AppDelegate.m in Sources */, + 14B7DEFD1E043085001D0109 /* TestI.m in Sources */, + 14B7DEFE1E043085001D0109 /* Client.m in Sources */, + 14B7DEFF1E043085001D0109 /* TestI.m in Sources */, + 14B7DF001E043085001D0109 /* TestI.m in Sources */, + 14B7DF011E043085001D0109 /* Server.m in Sources */, + 14B7DF021E043085001D0109 /* Client.m in Sources */, + 14B7DF031E043085001D0109 /* Server.m in Sources */, + 14B7DF041E043085001D0109 /* Twoways.m in Sources */, + 14B7DF051E043085001D0109 /* AllTests.m in Sources */, + 14B7DF061E043085001D0109 /* OnewaysNewAMI.m in Sources */, + 14B7DF071E043085001D0109 /* AllTests.m in Sources */, + 14B7DF081E043085001D0109 /* AllTests.m in Sources */, + 14B7DF091E043085001D0109 /* Client.m in Sources */, + 14B7DF0A1E043085001D0109 /* Server.m in Sources */, + 14B7DF0B1E043085001D0109 /* TestI.m in Sources */, + 14B7DF0C1E043085001D0109 /* Client.m in Sources */, + 14B7DF0D1E043085001D0109 /* Client.m in Sources */, + 14B7DF0E1E043085001D0109 /* TestI.m in Sources */, + 14B7DF0F1E043085001D0109 /* Server.m in Sources */, + 14B7DF101E043085001D0109 /* TestI.m in Sources */, + 14B7DF111E043085001D0109 /* AllTests.m in Sources */, + 14B7DF121E043085001D0109 /* TestI.m in Sources */, + 14B7DF131E043085001D0109 /* ServerLocator.m in Sources */, + 14B7DF141E043085001D0109 /* Client.m in Sources */, + 14B7DF151E043085001D0109 /* AllTests.m in Sources */, + 14B7DF161E043085001D0109 /* AllTests.m in Sources */, + 14B7DF171E043085001D0109 /* Client.m in Sources */, + 14B7DF181E043085001D0109 /* TestI.m in Sources */, + 14B7DF191E043085001D0109 /* Server.m in Sources */, + 14B7DF1A1E043085001D0109 /* AllTests.m in Sources */, + 14B7DF1B1E043085001D0109 /* BatchOneways.m in Sources */, + 14B7DF1C1E043085001D0109 /* AllTests.m in Sources */, + 14B7DF1D1E043085001D0109 /* AllTests.m in Sources */, + 14B7DF1E1E043085001D0109 /* TestI.m in Sources */, + 14B7DF1F1E043085001D0109 /* TestCommon.m in Sources */, + 14B7DF201E043085001D0109 /* Server.m in Sources */, + 14B7DF211E043085001D0109 /* AllTests.m in Sources */, + 14B7DF221E043085001D0109 /* Server.m in Sources */, + 14B7DF231E043085001D0109 /* Client.m in Sources */, + 14B7DF241E043085001D0109 /* MyObjectI.m in Sources */, + 14B7DF251E043085001D0109 /* AllTests.m in Sources */, + 14B7DF261E043085001D0109 /* Client.m in Sources */, + 14B7DF271E043085001D0109 /* BatchOnewaysAMI.m in Sources */, + 14B7DF281E043085001D0109 /* TestI.m in Sources */, + 14B7DF291E043085001D0109 /* AllTests.m in Sources */, + 14B7DF2A1E043085001D0109 /* AllTests.m in Sources */, + 14B7DF2B1E043085001D0109 /* AllTests.m in Sources */, + 14B7DF2C1E043085001D0109 /* TestI.m in Sources */, + 14B7DF2D1E043085001D0109 /* Client.m in Sources */, + 14B7DF2E1E043085001D0109 /* Collocated.m in Sources */, + 14B7DF2F1E043085001D0109 /* main.m in Sources */, + 14B7DF301E043085001D0109 /* TestI.m in Sources */, + 14B7DF311E043085001D0109 /* Collocated.m in Sources */, + 14B7DF321E043085001D0109 /* Server.m in Sources */, + 14B7DF331E043085001D0109 /* Server.m in Sources */, + 14B7DF341E043085001D0109 /* TestI.m in Sources */, + 14B7DF351E043085001D0109 /* Collocated.m in Sources */, + 14B7DF361E043085001D0109 /* Collocated.m in Sources */, + 14B7DF371E043085001D0109 /* Collocated.m in Sources */, + 14B7DF381E043085001D0109 /* Collocated.m in Sources */, + 14B7DF391E043085001D0109 /* Collocated.m in Sources */, + 14B7DF3A1E043085001D0109 /* TestI.m in Sources */, + 14B7DF3B1E043085001D0109 /* Client.m in Sources */, + 14B7DF3C1E043085001D0109 /* Server.m in Sources */, + 14B7DF3D1E043085001D0109 /* Collocated.m in Sources */, + 14B7DF3E1E043085001D0109 /* Server.m in Sources */, + 14B7DF3F1E043085001D0109 /* Collocated.m in Sources */, + 14B7DF401E043085001D0109 /* Collocated.m in Sources */, + 14B7DF411E043085001D0109 /* TestI.m in Sources */, + 14B7DF421E043085001D0109 /* Server.m in Sources */, + 14B7DF431E043085001D0109 /* Server.m in Sources */, + 14B7DF441E043085001D0109 /* TestI.m in Sources */, + 14B7DF451E043085001D0109 /* BlobjectI.m in Sources */, + 14B7DF461E043085001D0109 /* InterceptorI.m in Sources */, + 14B7DF471E043085001D0109 /* Collocated.m in Sources */, + 14B7DF481E043085001D0109 /* Client.m in Sources */, + 14B7DF491E043085001D0109 /* Server.m in Sources */, + 14B7DF4A1E043085001D0109 /* TestI.m in Sources */, + 14B7DF4B1E043085001D0109 /* Client.m in Sources */, + 14B7DF4C1E043085001D0109 /* Client.m in Sources */, + 14B7DF4D1E043085001D0109 /* TestI.m in Sources */, + 14B7DF4E1E043085001D0109 /* AllTests.m in Sources */, + 14B7DF4F1E043085001D0109 /* Client.m in Sources */, + 14B7DF501E043085001D0109 /* Client.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 14905C5D1DF98FD8002AE61B /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 14905C5E1DF98FD8002AE61B /* Base */, + ); + name = Main.storyboard; + sourceTree = "<group>"; + }; + 14905C621DF98FD8002AE61B /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 14905C631DF98FD8002AE61B /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = "<group>"; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 14905C661DF98FD8002AE61B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ADDITIONAL_SDKS = "../../../../IceSDK/$(PLATFORM_NAME).sdk"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 14905C671DF98FD8002AE61B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ADDITIONAL_SDKS = "../../../../IceSDK/$(PLATFORM_NAME).sdk"; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 14905C691DF98FD8002AE61B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = U4TBVKNQ7F; + HEADER_SEARCH_PATHS = ( + ../../Ice, + ../../include, + ); + INFOPLIST_FILE = Classes/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "-lIceGridObjC", + "-lGlacier2ObjC", + "-lIceSSLObjC", + "-lIceStormObjC", + "-lIceObjC", + "-lIceDiscovery", + "-lIceIAP", + "-lIceSSL", + "-lIce", + "-lbz2", + "-liconv", + "-lc++", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.ObjC-Test-Controller"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 14905C6A1DF98FD8002AE61B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = U4TBVKNQ7F; + HEADER_SEARCH_PATHS = ( + ../../Ice, + ../../include, + ); + INFOPLIST_FILE = Classes/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "-lIceGridObjC", + "-lGlacier2ObjC", + "-lIceSSLObjC", + "-lIceStormObjC", + "-lIceObjC", + "-lIceDiscovery", + "-lIceIAP", + "-lIceSSL", + "-lIce", + "-lbz2", + "-liconv", + "-lc++", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.ObjC-Test-Controller"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 14B7DF7B1E043085001D0109 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = U4TBVKNQ7F; + HEADER_SEARCH_PATHS = ( + ../../Ice, + ../../include, + ); + INFOPLIST_FILE = Classes/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "-lIceGridObjC", + "-lGlacier2ObjC", + "-lIceSSLObjC", + "-lIceStormObjC", + "-lIceObjC", + "-lIceDiscovery", + "-lIceIAP", + "-lIceSSL", + "-lIce", + "-lbz2", + "-liconv", + "-lc++", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.ObjC-ARC-Test-Controller"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 14B7DF7C1E043085001D0109 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = U4TBVKNQ7F; + HEADER_SEARCH_PATHS = ( + ../../Ice, + ../../include, + ); + INFOPLIST_FILE = Classes/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "-lIceGridObjC", + "-lGlacier2ObjC", + "-lIceSSLObjC", + "-lIceStormObjC", + "-lIceObjC", + "-lIceDiscovery", + "-lIceIAP", + "-lIceSSL", + "-lIce", + "-lbz2", + "-liconv", + "-lc++", + "-ObjC", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.ObjC-ARC-Test-Controller"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 14905C4C1DF98FD8002AE61B /* Build configuration list for PBXProject "Objective-C Test Controller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 14905C661DF98FD8002AE61B /* Debug */, + 14905C671DF98FD8002AE61B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 14905C681DF98FD8002AE61B /* Build configuration list for PBXNativeTarget "Objective-C Test Controller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 14905C691DF98FD8002AE61B /* Debug */, + 14905C6A1DF98FD8002AE61B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 14B7DF7A1E043085001D0109 /* Build configuration list for PBXNativeTarget "Objective-C ARC Test Controller" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 14B7DF7B1E043085001D0109 /* Debug */, + 14B7DF7C1E043085001D0109 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 14905C491DF98FD8002AE61B /* Project object */; +} diff --git a/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000000..9350b69dd51 --- /dev/null +++ b/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "self:/Users/benoit/Devel/GitHub/ice/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj"> + </FileRef> +</Workspace> diff --git a/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/xcshareddata/xcschemes/Objective-C ARC Test Controller.xcscheme b/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/xcshareddata/xcschemes/Objective-C ARC Test Controller.xcscheme new file mode 100644 index 00000000000..9c516f98bd4 --- /dev/null +++ b/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/xcshareddata/xcschemes/Objective-C ARC Test Controller.xcscheme @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0820" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "14B7DEAB1E043085001D0109" + BuildableName = "Objective-C ARC Test Controller.app" + BlueprintName = "Objective-C ARC Test Controller" + ReferencedContainer = "container:Objective-C Test Controller.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "14B7DEAB1E043085001D0109" + BuildableName = "Objective-C ARC Test Controller.app" + BlueprintName = "Objective-C ARC Test Controller" + ReferencedContainer = "container:Objective-C Test Controller.xcodeproj"> + </BuildableReference> + </MacroExpansion> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <BuildableProductRunnable + runnableDebuggingMode = "0"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "14B7DEAB1E043085001D0109" + BuildableName = "Objective-C ARC Test Controller.app" + BlueprintName = "Objective-C ARC Test Controller" + ReferencedContainer = "container:Objective-C Test Controller.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + <BuildableProductRunnable + runnableDebuggingMode = "0"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "14B7DEAB1E043085001D0109" + BuildableName = "Objective-C ARC Test Controller.app" + BlueprintName = "Objective-C ARC Test Controller" + ReferencedContainer = "container:Objective-C Test Controller.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/xcshareddata/xcschemes/Objective-C Test Controller.xcscheme b/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/xcshareddata/xcschemes/Objective-C Test Controller.xcscheme new file mode 100644 index 00000000000..4793770807e --- /dev/null +++ b/objective-c/test/ios/controller/Objective-C Test Controller.xcodeproj/xcshareddata/xcschemes/Objective-C Test Controller.xcscheme @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0820" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "14905C501DF98FD8002AE61B" + BuildableName = "Objective-C Test Controller.app" + BlueprintName = "Objective-C Test Controller" + ReferencedContainer = "container:Objective-C Test Controller.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES"> + <Testables> + </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "14905C501DF98FD8002AE61B" + BuildableName = "Objective-C Test Controller.app" + BlueprintName = "Objective-C Test Controller" + ReferencedContainer = "container:Objective-C Test Controller.xcodeproj"> + </BuildableReference> + </MacroExpansion> + <AdditionalOptions> + </AdditionalOptions> + </TestAction> + <LaunchAction + buildConfiguration = "Debug" + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + debugServiceExtension = "internal" + allowLocationSimulation = "YES"> + <BuildableProductRunnable + runnableDebuggingMode = "0"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "14905C501DF98FD8002AE61B" + BuildableName = "Objective-C Test Controller.app" + BlueprintName = "Objective-C Test Controller" + ReferencedContainer = "container:Objective-C Test Controller.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + buildConfiguration = "Release" + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + debugDocumentVersioning = "YES"> + <BuildableProductRunnable + runnableDebuggingMode = "0"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "14905C501DF98FD8002AE61B" + BuildableName = "Objective-C Test Controller.app" + BlueprintName = "Objective-C Test Controller" + ReferencedContainer = "container:Objective-C Test Controller.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/objective-c/test/ios/testSuiteApp/Classes/AppDelegate.h b/objective-c/test/ios/testSuiteApp/Classes/AppDelegate.h new file mode 100644 index 00000000000..95d7a655adb --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Classes/AppDelegate.h @@ -0,0 +1,37 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <UIKit/UIKit.h> + +@class TestViewController; + +@interface AppDelegate : NSObject <UIApplicationDelegate> +{ +@private + UIWindow *window; + IBOutlet UINavigationController *navigationController; + NSArray* tests; + NSInteger currentTest; + NSString* protocol; + BOOL loop; + BOOL runAll; +} + +@property (nonatomic, retain) IBOutlet UIWindow *window; +@property (nonatomic, retain) IBOutlet UINavigationController* navigationController; +@property (nonatomic, readonly) NSArray* tests; +@property (nonatomic) NSInteger currentTest; +@property (nonatomic, retain) NSString* protocol; +@property (nonatomic) BOOL loop; +@property (readonly) BOOL runAll; + +-(BOOL)testCompleted:(BOOL)success; + +@end + diff --git a/objective-c/test/ios/testSuiteApp/Classes/AppDelegate.m b/objective-c/test/ios/testSuiteApp/Classes/AppDelegate.m new file mode 100644 index 00000000000..fbde1102ced --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Classes/AppDelegate.m @@ -0,0 +1,263 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <AppDelegate.h> +#import <TestViewController.h> +#import <Test.h> + +struct TestCases +{ + NSString* __unsafe_unretained name; + int (*startServer)(int, char**); + int (*startClient)(int, char**); + bool sslSupport; + bool wsSupport; + bool runWithSlicedFormat; + bool runWith10Encoding; +}; + +static NSString* protocols[] = { @"tcp", @"ssl", @"ws", @"wss" }; +const int nProtocols = sizeof(protocols) / sizeof(NSString*); + +int adapterDeactivationServer(int, char**); +int adapterDeactivationClient(int, char**); +int adminServer(int, char**); +int adminClient(int, char**); +int amiServer(int, char**); +int amiClient(int, char**); +int bindingServer(int, char**); +int bindingClient(int, char**); +int defaultServantServer(int, char**); +int defaultServantClient(int, char**); +int defaultValueClient(int, char**); +int dispatcherServer(int, char**); +int dispatcherClient(int, char**); +int enumServer(int, char**); +int enumClient(int, char**); +int exceptionsServer(int, char**); +int exceptionsClient(int, char**); +int facetsServer(int, char**); +int facetsClient(int, char**); +int holdServer(int, char**); +int holdClient(int, char**); +int inheritanceServer(int, char**); +int inheritanceClient(int, char**); +int interceptorServer(int, char**); +int interceptorClient(int, char**); +int invokeServer(int, char**); +int invokeClient(int, char**); +int locationServer(int, char**); +int locationClient(int, char**); +int objectsServer(int, char**); +int objectsClient(int, char**); +int operationsServer(int, char**); +int operationsClient(int, char**); +int optionalServer(int, char**); +int optionalClient(int, char**); +int proxyServer(int, char**); +int proxyClient(int, char**); +int retryServer(int, char**); +int retryClient(int, char**); +int streamClient(int, char**); +int timeoutServer(int, char**); +int timeoutClient(int, char**); +int slicingExceptionsServer(int, char**); +int slicingExceptionsClient(int, char**); +int hashClient(int, char**); +int infoServer(int, char**); +int infoClient(int, char**); +int metricsServer(int, char**); +int metricsClient(int, char**); +int servicesClient(int, char**); + +static const struct TestCases alltests[] = +{ +// +// Name | Server | Client | SSL Support | WS Support | Sliced | 1.0 Encoding | +// +{ @"proxy", proxyServer, proxyClient, true, true, false, false }, +{ @"admin", adminServer, adminClient, true, true, false, false }, +{ @"ami", amiServer, amiClient, true, true, false, false }, +{ @"operations", operationsServer, operationsClient, true, true, false, false }, +{ @"exceptions", exceptionsServer, exceptionsClient, true, true, true, true }, +{ @"inheritance", inheritanceServer, inheritanceClient, true, true, false, false }, +{ @"invoke", invokeServer, invokeClient, true, true, false, false }, +{ @"metrics", metricsServer, metricsClient, false, false, false, false}, +{ @"facets", facetsServer, facetsClient, true, true, false, false }, +{ @"objects", objectsServer, objectsClient, true, true, true, true }, +{ @"optional", optionalServer, optionalClient, true, true, true, false }, +{ @"interceptor", interceptorServer, interceptorClient, true, true, false, false }, +{ @"dispatcher", dispatcherServer, dispatcherClient, true, true, false, false }, +{ @"defaultServant", defaultServantServer, defaultServantClient, true, true, false, false }, +{ @"defaultValue", 0, defaultValueClient, true, true, false, false }, +{ @"binding", bindingServer, bindingClient, true, true, false, false }, +{ @"hold", holdServer, holdClient, true, true, false, false }, +{ @"location", locationServer, locationClient, true, true, false, false }, +{ @"adapterDeactivation", adapterDeactivationServer, adapterDeactivationClient, true, true, false, false }, +{ @"stream", 0, streamClient, true, true, false, true }, +{ @"slicing/exceptions", slicingExceptionsServer, slicingExceptionsClient, true, true, false, true }, +// +// Slicing objects will not work as both applications are linked in the same executable +// and have knowledge of the same Slice types. +// +//{ @"slicing/objects",slicingObjectsServer, slicingObjectsClient, true, false, true }, +{ @"retry",retryServer, retryClient, true, true, false, false }, +{ @"timeout",timeoutServer, timeoutClient, true, true, false, false }, +{ @"hash", 0, hashClient, true, true, false, false }, +{ @"info",infoServer, infoClient, true, true, false , false }, +{ @"enums", enumServer, enumClient, true, true, false, true }, +{ @"services", 0, servicesClient, true, true, false, false } +}; + +@implementation AppDelegate + +@synthesize window; +@synthesize navigationController; +@synthesize tests; +@synthesize currentTest; +@synthesize protocol; +@synthesize loop; +@synthesize runAll; + +static NSString* currentTestKey = @"currentTestKey"; +static NSString* protocolKey = @"protocolKey"; + ++(void)initialize +{ + NSDictionary* appDefaults = [NSDictionary dictionaryWithObjectsAndKeys: + @"0", currentTestKey, + @"tcp", protocolKey, + nil]; + [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults]; +} + +-(id)init +{ + if(self = [super init]) + { + self->runAll = getenv("RUNALL") != NULL; + + NSMutableArray* theTests = [NSMutableArray array]; + for(int i = 0; i < sizeof(alltests)/sizeof(alltests[0]); ++i) + { + Test* test = [Test testWithName:alltests[i].name + server:alltests[i].startServer + client:alltests[i].startClient + sslSupport:alltests[i].sslSupport + wsSupport:alltests[i].wsSupport + runWithSlicedFormat:alltests[i].runWithSlicedFormat + runWith10Encoding:alltests[i].runWith10Encoding]; + [theTests addObject:test]; + } + tests = [theTests copy]; +#if defined(__clang__) && !__has_feature(objc_arc) + [tests retain]; +#endif + // Initialize the application defaults. + currentTest = [[NSUserDefaults standardUserDefaults] integerForKey:currentTestKey]; + if(runAll || currentTest < 0 || currentTest > tests.count) + { + currentTest = 0; + } + + protocol = [[NSUserDefaults standardUserDefaults] stringForKey:protocolKey]; + int i = 0; + for(; i < nProtocols; ++i) + { + if([protocols[i] isEqualToString:protocol]) + { + break; + } + } + if(i == nProtocols) + { + protocol = @"tcp"; + } + + loop = NO; + } + return self; +} + +- (void)applicationDidFinishLaunching:(UIApplication *)application +{ + + // Override point for customization after app launch + [window setRootViewController:navigationController]; + [window makeKeyAndVisible]; +} + +#if defined(__clang__) && !__has_feature(objc_arc) +- (void)dealloc +{ + [tests release]; + [protocol release]; + [navigationController release]; + [window release]; + [super dealloc]; +} +#endif + +-(NSInteger)currentTest +{ + return currentTest; +} + +-(void)setCurrentTest:(NSInteger)test +{ + currentTest = test; + + [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInteger:currentTest] forKey:currentTestKey]; +} + +-(NSString*)protocol +{ + return protocol; +} + +-(void)setprotocol:(NSString*)v +{ + protocol = v; + [[NSUserDefaults standardUserDefaults] setObject:protocol forKey:protocolKey]; +} + +-(BOOL)testCompleted:(BOOL)success +{ + if(success) + { + self.currentTest = (currentTest+1) % tests.count; + if(runAll || loop) + { + if(self.currentTest == 0) + { + int i = 0; + for(; i < nProtocols; ++i) + { + if([protocols[i] isEqualToString:protocol]) + { + break; + } + } + + if(++i == nProtocols && !loop) + { + return NO; + } + else + { + protocol = protocols[i % nProtocols]; + } + } + return YES; + } + } + return NO; +} + +@end diff --git a/objective-c/test/ios/testSuiteApp/Classes/Test.h b/objective-c/test/ios/testSuiteApp/Classes/Test.h new file mode 100644 index 00000000000..e2f6fef0c24 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Classes/Test.h @@ -0,0 +1,44 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <UIKit/UIKit.h> + + +@interface Test : NSObject +{ +@private + int (*server)(int,char**); + int (*client)(int,char**); + NSString* name; + BOOL sslSupport; + BOOL wsSupport; + BOOL runWithSlicedFormat; + BOOL runWith10Encoding; +} + ++(id) testWithName:(const NSString*)name + server:(int (*)(int, char**))server + client:(int (*)(int, char**))client + sslSupport:(BOOL)sslSupport + wsSupport:(BOOL)wsSupport + runWithSlicedFormat:(BOOL)runWithSlicedFormat + runWith10Encoding:(BOOL)runWith10Encoding; + +-(BOOL)hasServer; +-(BOOL)isProtocolSupported:(NSString*)protocol; +-(int)server; +-(int)client; + +@property (readonly) NSString* name; +@property (readonly) BOOL sslSupport; +@property (readonly) BOOL wsSupport; +@property (readonly) BOOL runWithSlicedFormat; +@property (readonly) BOOL runWith10Encoding; + +@end diff --git a/objective-c/test/ios/testSuiteApp/Classes/Test.m b/objective-c/test/ios/testSuiteApp/Classes/Test.m new file mode 100644 index 00000000000..5c96850ec9f --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Classes/Test.m @@ -0,0 +1,88 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <Test.h> +#include <dlfcn.h> + +@implementation Test + +@synthesize name; +@synthesize sslSupport; +@synthesize wsSupport; +@synthesize runWithSlicedFormat; +@synthesize runWith10Encoding; + ++(id)testWithName:(NSString*)name + server:(int (*)(int, char**))server + client:(int (*)(int, char**))client + sslSupport:(BOOL)sslSupport + wsSupport:(BOOL)wsSupport + runWithSlicedFormat:(BOOL)runWithSlicedFormat + runWith10Encoding:(BOOL)runWith10Encoding +{ + Test* t = [[Test alloc] init]; + if(t != nil) + { + t->name = name; + t->server = server; + t->client = client; + t->sslSupport = sslSupport; + t->wsSupport = wsSupport; + t->runWithSlicedFormat = runWithSlicedFormat; + t->runWith10Encoding = runWith10Encoding; + } +#if defined(__clang__) && !__has_feature(objc_arc) + return [t autorelease]; +#else + return t; +#endif +} +-(BOOL) hasServer +{ + return server != 0; +} +-(BOOL)isProtocolSupported:(NSString*)protocol +{ + BOOL supported = YES; + if(!sslSupport) + { + supported &= [protocol isEqualToString:@"tcp"] || [protocol isEqualToString:@"ws"]; + } + if(!wsSupport) + { + supported &= [protocol isEqualToString:@"tcp"] || [protocol isEqualToString:@"ssl"]; + } + return supported; +} +-(int)server +{ + NSAssert(server != 0, @"server != 0"); + int argc = 0; + char** argv = 0; + return (*server)(argc, argv); +} + +-(int)client +{ + int argc = 0; + char** argv = 0; + + NSAssert(client != 0, @"client != 0"); + return (*client)(argc, argv); +} + +#if defined(__clang__) && !__has_feature(objc_arc) +-(void)dealloc +{ + [name release]; + [super dealloc]; +} +#endif + +@end diff --git a/objective-c/test/ios/testSuiteApp/Classes/TestSelectController.h b/objective-c/test/ios/testSuiteApp/Classes/TestSelectController.h new file mode 100644 index 00000000000..92f81db7ef8 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Classes/TestSelectController.h @@ -0,0 +1,26 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <UIKit/UIKit.h> + +@class TestViewController; + +@interface TestSelectController : UIViewController<UIPickerViewDataSource, UIPickerViewDelegate> +{ +@private + IBOutlet UIPickerView* pickerView; + IBOutlet UISegmentedControl* protocol; + IBOutlet UISwitch* loopSwitch; + NSArray* tests; + TestViewController *testViewController; +} + +-(IBAction)runTest:(id)sender; + +@end diff --git a/objective-c/test/ios/testSuiteApp/Classes/TestSelectController.m b/objective-c/test/ios/testSuiteApp/Classes/TestSelectController.m new file mode 100644 index 00000000000..0fc66d5e835 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Classes/TestSelectController.m @@ -0,0 +1,135 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <TestSelectController.h> +#import <Test.h> +#import <AppDelegate.h> +#import <TestViewController.h> + +@interface TestSelectController() + +@property (nonatomic, retain) NSArray* tests; +@property (nonatomic, retain) UIPickerView* pickerView; +@property (nonatomic, retain) UISwitch* sslSwitch; +@property (nonatomic, retain) UISegmentedControl* protocol; +@property (nonatomic, retain) TestViewController* testViewController; + +@end + +@implementation TestSelectController + +@synthesize tests; +@synthesize pickerView; +@synthesize protocol; +@synthesize testViewController; + +- (void)viewDidLoad +{ + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + self.tests = appDelegate.tests; + [super viewDidLoad]; +} + +-(void)viewWillAppear:(BOOL)animated +{ + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + [pickerView selectRow:appDelegate.currentTest inComponent:0 animated:NO]; + for (int i = 0; i != [self.protocol numberOfSegments]; ++i) + { + if([[self.protocol titleForSegmentAtIndex:i] isEqualToString:[appDelegate.protocol uppercaseString]]) + { + self.protocol.selectedSegmentIndex = i; + break; + } + } + + if(appDelegate.runAll) + { + [self.navigationController pushViewController:self.testViewController animated:YES]; + } +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation +{ + // Return YES for supported orientations + return (interfaceOrientation == UIInterfaceOrientationPortrait); +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview + // Release anything that's not essential, such as cached data +} + +#if defined(__clang__) && !__has_feature(objc_arc) +- (void)dealloc +{ + [tests release]; + [pickerView release]; + [protocol release]; + [loopSwitch release]; + [testViewController release]; + + [super dealloc]; +} +#endif + +-(TestViewController*)testViewController +{ + // Instantiate the test view controller if necessary. + if (testViewController == nil) + { + NSString* nib; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) + { + nib = @"TestView-iPad"; + } + else + { + nib = @"TestView"; + } + testViewController = [[TestViewController alloc] initWithNibName:nib bundle:nil]; + } + return testViewController; +} + +#pragma mark - + +-(IBAction)runTest:(id)sender +{ + NSUInteger row = [pickerView selectedRowInComponent:0]; + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + appDelegate.currentTest = row; + appDelegate.protocol = [[protocol titleForSegmentAtIndex:[protocol selectedSegmentIndex]] lowercaseString]; + appDelegate.loop = loopSwitch.isOn; + + TestViewController* controller = self.testViewController; + [self.navigationController pushViewController:controller animated:YES]; +} + +#pragma mark UIPickerViewDelegate + +- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component +{ + Test* test = (Test*)[tests objectAtIndex:row]; + return test.name; +} + +#pragma mark UIPickerViewDataSource + +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView +{ + return 1; +} + +- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)componen +{ + return tests.count; +} +@end diff --git a/objective-c/test/ios/testSuiteApp/Classes/TestViewController.h b/objective-c/test/ios/testSuiteApp/Classes/TestViewController.h new file mode 100644 index 00000000000..fbccbf275ac --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Classes/TestViewController.h @@ -0,0 +1,37 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <UIKit/UIKit.h> + +typedef enum +{ + TestConfigOptionDefault, + TestConfigOptionSliced, + TestConfigOptionEncoding10 +} TestConfigOption; + +@class Test; + +@interface TestViewController : UIViewController<UITableViewDataSource, UITableViewDelegate> +{ +@private + IBOutlet UITableView* output; + IBOutlet UIActivityIndicatorView* activity; + IBOutlet UIButton* nextButton; + + NSMutableString* currentMessage; + NSMutableArray* messages; + NSOperationQueue* queue; + Test* test; + NSEnumerator* testRunEnumerator; +} +-(IBAction)next:(id)sender; +-(NSOperationQueue*) queue; +@end + diff --git a/objective-c/test/ios/testSuiteApp/Classes/TestViewController.m b/objective-c/test/ios/testSuiteApp/Classes/TestViewController.m new file mode 100644 index 00000000000..697c2c31415 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Classes/TestViewController.m @@ -0,0 +1,515 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <TestViewController.h> +#import <Test.h> +#import <AppDelegate.h> + +#import <TestCommon.h> + +// +// Avoid warning for undocumented method. +// +@interface UIApplication(UndocumentedAPI) +-(void)launchApplicationWithIdentifier:(NSString*)id suspended:(BOOL)flag; +@end + +// TODO: Would be nice to have a red font for fatal, and error messages. +@interface MessageCell : UITableViewCell +{ +@private + UILabel* body; +} + +@property (nonatomic, retain) UILabel* body; + ++(CGFloat)heightForMessage:(NSString*)messsage; + +@end + +@implementation MessageCell +@synthesize body; + +- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier +{ + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) + { + body = [[UILabel alloc] initWithFrame:CGRectZero]; + body.textColor = [UIColor blackColor]; + body.font = [UIFont boldSystemFontOfSize:14]; + body.numberOfLines = 0; + + [self.contentView addSubview:self.body]; + } + + return self; +} + ++(CGFloat)heightForMessage:(NSString*)text +{ + // The header is always one line, the body is multiple lines. + // The width of the table is 320 - 20px of left & right padding. We don't want to let the body + // text go past 200px. + CGRect body = [text boundingRectWithSize:CGSizeMake(300.f, 200.0f) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:14] } context:nil]; + return body.size.height + 20.f; +} + +- (void)layoutSubviews +{ + [super layoutSubviews]; + + CGRect contentRect = self.contentView.bounds; + + CGRect bodyFrame = CGRectMake(10.f, 0.f, CGRectGetWidth(contentRect)-20.f, CGRectGetHeight(contentRect)); + + self.body.frame = bodyFrame; +} + +#if defined(__clang__) && !__has_feature(objc_arc) +- (void)dealloc +{ + [body release]; + [super dealloc]; +} +#endif + +-(void)setMessage:(NSString*)m +{ + self.body.text = m; +} + +@end + +@interface TestViewController() + +@property (nonatomic, retain) UITableView* output; +@property (nonatomic, retain) UIActivityIndicatorView* activity; +@property (nonatomic, retain) UIButton* nextButton; + +@property (nonatomic, retain) NSMutableString* currentMessage; +@property (nonatomic, retain) NSMutableArray* messages; +@property (nonatomic, retain) NSOperationQueue* queue; +@property (retain) Test* test; + +-(void)add:(NSString*)d; +-(void)startTest; +@end + +@interface TestRun : NSObject +{ + TestConfigOption option; + Test* test; + int completed; + int error; + TestViewController* viewController; +} + ++(id) testRun:(Test*)test; ++(id) testRunWithConfigOption:(Test*)test option:(TestConfigOption)option; + +-(NSInvocationOperation*) runInvocation:(TestViewController*)callback; +@end + +@implementation TestViewController + +@synthesize output; +@synthesize activity; +@synthesize nextButton; +@synthesize currentMessage; +@synthesize messages; +@synthesize queue; +@synthesize test; + +- (void)viewDidLoad +{ + self.currentMessage = [NSMutableString string]; + self.messages = [NSMutableArray array]; + queue = [[NSOperationQueue alloc] init]; + self.queue.maxConcurrentOperationCount = 2; // We need at least 2 concurrent operations. + TestCommonInit(self, @selector(add:)); + [super viewDidLoad]; +} + +-(void)viewWillAppear:(BOOL)animated +{ + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + self.test = (Test*)[appDelegate.tests objectAtIndex:appDelegate.currentTest]; + [self startTest]; +} + +-(void)viewWillDisappear:(BOOL)animated +{ + // TODO: Waiting isn't possible until the tests periodically find out whether + // they should terminate. + // Wait until the tests are complete. + //[queue waitUntilAllOperationsAreFinished]; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation +{ + // Return YES for supported orientations + return (interfaceOrientation == UIInterfaceOrientationPortrait); +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview + // Release anything that's not essential, such as cached data +} + +#if defined(__clang__) && !__has_feature(objc_arc) +- (void)dealloc +{ + [output release]; + [activity release]; + [nextButton release]; + + [currentMessage release]; + [messages release]; + [queue release]; + [test release]; + + [super dealloc]; +} +#endif + +#pragma mark - + +-(void)startTest +{ + self.title = test.name; + [self.navigationItem setHidesBackButton:YES animated:YES]; + + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + if(appDelegate.loop) + { + [nextButton setTitle:@"Stop running" forState:UIControlStateNormal]; + } + else + { + nextButton.enabled = NO; + [nextButton setAlpha:0.5]; + [nextButton setTitle:@"Test is running" forState:UIControlStateDisabled]; + } + + // Clear the current message, and the the table log. + [currentMessage deleteCharactersInRange:NSMakeRange(0, currentMessage.length)]; + [messages removeAllObjects]; + [output reloadData]; + [activity startAnimating]; + + if(![test isProtocolSupported:appDelegate.protocol]) + { + tprintf("Test not supported with %s\n", [appDelegate.protocol UTF8String]); + [self testComplete:YES]; + return; + } + + NSMutableArray* testRuns = [NSMutableArray array]; + [testRuns addObject:[TestRun testRun:test]]; + if(test.runWithSlicedFormat) + { + [testRuns addObject:[TestRun testRunWithConfigOption:test option:TestConfigOptionSliced]]; + } + if(test.runWith10Encoding) + { + [testRuns addObject:[TestRun testRunWithConfigOption:test option:TestConfigOptionEncoding10]]; + } + testRunEnumerator = [testRuns objectEnumerator]; +#if defined(__clang__) && !__has_feature(objc_arc) + [testRunEnumerator retain]; +#endif + id testRun = [testRunEnumerator nextObject]; + [queue addOperation:[testRun runInvocation:self]]; +} + +-(void)testRunComplete:(BOOL)success +{ + if(!success) + { + [self testComplete:NO]; + return; + } + + id testRun = [testRunEnumerator nextObject]; + if(testRun == nil) + { + [self testComplete:YES]; + } + else + { + [queue addOperation:[testRun runInvocation:self]]; + } +} + +-(void)testComplete:(BOOL)success +{ + [activity stopAnimating]; + + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + Test* nextTest = (Test*)[appDelegate.tests objectAtIndex:(appDelegate.currentTest+1)%(appDelegate.tests.count)]; + NSString* buttonTitle = [NSString stringWithFormat:@"Run %@", nextTest.name]; + [nextButton setTitle:buttonTitle forState:UIControlStateNormal]; + + nextButton.enabled = YES; + [nextButton setAlpha:1.0]; + [self.navigationItem setHidesBackButton:NO animated:YES]; + + self.test = nil; +#if defined(__clang__) && !__has_feature(objc_arc) + [testRunEnumerator release]; +#endif + testRunEnumerator = nil; + + // For memory leak testing comment the following line out. + if([appDelegate testCompleted:success]) + { + self.test = (Test*)[appDelegate.tests objectAtIndex:appDelegate.currentTest]; + [self startTest]; + } +} + +-(IBAction)next:(id)sender +{ + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + if(appDelegate.loop) + { + appDelegate.loop = NO; + nextButton.enabled = NO; + [nextButton setAlpha:0.5]; + [nextButton setTitle:@"Waiting..." forState:UIControlStateDisabled]; + } + else + { + NSAssert(test == nil, @"test == nil"); + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + self.test = (Test*)[appDelegate.tests objectAtIndex:appDelegate.currentTest]; + [self startTest]; + } +} + +-(NSOperationQueue*) queue +{ + return queue; +} + +-(void)add:(NSString*)s +{ + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + if(appDelegate.runAll) + { + printf("%s", [s UTF8String]); + } + + [currentMessage appendString:s]; + NSRange range = [currentMessage rangeOfString:@"\n" options:NSBackwardsSearch]; + if(range.location != NSNotFound) + { +#if defined(__clang__) && !__has_feature(objc_arc) + [messages addObject:[[currentMessage copy] autorelease]]; +#else + [messages addObject:[currentMessage copy]]; +#endif + [currentMessage deleteCharactersInRange:NSMakeRange(0, currentMessage.length)]; + [output reloadData]; + NSUInteger path[] = {0, messages.count-1}; + [output scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndexes:path length:2] + atScrollPosition:UITableViewScrollPositionBottom + animated:NO]; + } +} + +#pragma mark <UITableViewDelegate, UITableViewDataSource> Methods + +-(NSInteger)numberOfSectionsInTableView:(UITableView *)tv +{ + return 1; +} + +-(NSInteger)tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)section +{ + return messages.count; +} + +-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +{ + if([messages count] <= indexPath.row) + { + return [MessageCell heightForMessage:@""]; + } + return [MessageCell heightForMessage:[messages objectAtIndex:indexPath.row]]; +} + +-(UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + MessageCell *cell = (MessageCell*)[output dequeueReusableCellWithIdentifier:@"MessageCell"]; + if(cell == nil) + { +#if defined(__clang__) && !__has_feature(objc_arc) + cell = [[[MessageCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MessageCell"] autorelease]; +#else + cell = [[MessageCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MessageCell"]; +#endif + } + [cell setMessage:[messages objectAtIndex:indexPath.row]]; + return cell; +} + +-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + return nil; +} + +@end + +@implementation TestRun +-(id) init:(Test*)t option:(TestConfigOption)opt +{ + self = [super init]; + if(!self) + { + return nil; + } + self->test = t; + self->option = opt; + self->completed = 0; + self->error = 0; + return self; +} + ++(id) testRun:(Test*)test +{ + TestRun* run = [[TestRun alloc] init:test option:TestConfigOptionDefault]; +#if defined(__clang__) && !__has_feature(objc_arc) + [run autorelease]; +#endif + return run; +} ++(id) testRunWithConfigOption:(Test*)test option:(TestConfigOption)option +{ + TestRun* run = [[TestRun alloc] init:test option:option]; +#if defined(__clang__) && !__has_feature(objc_arc) + [run autorelease]; +#endif + return run; +} + +-(NSInvocationOperation*) runInvocation:(TestViewController*)ctl +{ + viewController = ctl; +#if defined(__clang__) && !__has_feature(objc_arc) + return [[[NSInvocationOperation alloc] initWithTarget:self selector:@selector(run) object:nil] autorelease]; +#else + return [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(run) object:nil]; +#endif + +} + +-(void) run +{ + // Initialize testCommon. + AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; + if(appDelegate.runAll) + { + printf("\n*** running %s test %ld/%lu ...\n", [test.name UTF8String], (long)appDelegate.currentTest + 1, + (unsigned long)[appDelegate.tests count]); + printf("*** protocol: %s\n", [appDelegate.protocol UTF8String]); + fflush(stdout); + } + + TestCommonTestInit(self, + @selector(serverReady), + appDelegate.protocol, + option == TestConfigOptionSliced, + option == TestConfigOptionEncoding10); + + if(option == TestConfigOptionSliced) + { + tprintf("Running test with %s and sliced format.\n", [appDelegate.protocol UTF8String]); + } + else if(option == TestConfigOptionEncoding10) + { + tprintf("Running test with %s and 1.0 encoding.\n", [appDelegate.protocol UTF8String]); + } + else + { + tprintf("Running test with %s and default format.\n", [appDelegate.protocol UTF8String]); + } + + if([test hasServer]) + { + [self runServer]; + } + else + { + [self runClient]; + } +} + +-(void)clientComplete:(NSNumber*)rc +{ + if([rc intValue] != 0) + { + [viewController add:[NSString stringWithFormat:@"client error: %@!\n", rc]]; + if([test hasServer]) + { + serverStop(); + } + ++error; + } + + if(![test hasServer] || ++completed == 2) + { + [viewController testRunComplete:error == 0]; + } +} + +// Run in a separate thread. +-(void)runClient +{ + int rc = [test client]; + [self performSelectorOnMainThread:@selector(clientComplete:) withObject:[NSNumber numberWithInt:rc] waitUntilDone:NO]; +} + +-(void)serverComplete:(NSNumber*)rc +{ + if([rc intValue] != 0) + { + [viewController add:[NSString stringWithFormat:@"server error: %@!\n", rc]]; + ++error; + } + + if(++completed == 2) + { + [viewController testRunComplete:error == 0]; + } +} + +// Run in a separate thread. +-(void)runServer +{ + int rc = [test server]; + [self performSelectorOnMainThread:@selector(serverComplete:) withObject:[NSNumber numberWithInt:rc] waitUntilDone:NO]; +} + +// Kick off the client. +-(void)serverReady +{ + NSInvocationOperation* invocation = [[NSInvocationOperation alloc] + initWithTarget:self + selector:@selector(runClient) + object:nil]; +#if defined(__clang__) && !__has_feature(objc_arc) + [invocation autorelease]; +#endif + [[viewController queue] addOperation:invocation]; +} +@end + + diff --git a/objective-c/test/ios/testSuiteApp/Default-568h@2x.png b/objective-c/test/ios/testSuiteApp/Default-568h@2x.png Binary files differnew file mode 100644 index 00000000000..0891b7aabfc --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Default-568h@2x.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/Contents.json b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000000..5a94148ba69 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,105 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "test_suite-Small@2x-1.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "test_suite-Small@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "test_suite-Small-40@2x-1.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "test_suite-Small-40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "test_suite-Small-40@3x-1.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "New icon-60@3x.png", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "test_suite-Small.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "test_suite-Small@2x-2.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "test_suite-Small-40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "test_suite-Small-40@2x-2.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "test_suite-76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "test_suite-76@2x.png", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/New icon-60@3x.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/New icon-60@3x.png Binary files differnew file mode 100644 index 00000000000..a37f851e642 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/New icon-60@3x.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-76.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-76.png Binary files differnew file mode 100644 index 00000000000..2855a8b674b --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-76.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-76@2x.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-76@2x.png Binary files differnew file mode 100644 index 00000000000..29047dc5a52 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-76@2x.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40.png Binary files differnew file mode 100644 index 00000000000..e76086fb3d6 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-1.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-1.png Binary files differnew file mode 100644 index 00000000000..7615d3255bc --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-1.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-2.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-2.png Binary files differnew file mode 100644 index 00000000000..7615d3255bc --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@2x-2.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@3x-1.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@3x-1.png Binary files differnew file mode 100644 index 00000000000..f04f442176a --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@3x-1.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@3x.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@3x.png Binary files differnew file mode 100644 index 00000000000..f04f442176a --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small-40@3x.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small.png Binary files differnew file mode 100644 index 00000000000..d57695edc28 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@2x-1.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@2x-1.png Binary files differnew file mode 100644 index 00000000000..79edc547e2c --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@2x-1.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@2x-2.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@2x-2.png Binary files differnew file mode 100644 index 00000000000..79edc547e2c --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@2x-2.png diff --git a/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@3x.png b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@3x.png Binary files differnew file mode 100644 index 00000000000..49cdc033096 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Images.xcassets/AppIcon.appiconset/test_suite-Small@3x.png diff --git a/objective-c/test/ios/testSuiteApp/Info-ARC.plist b/objective-c/test/ios/testSuiteApp/Info-ARC.plist new file mode 100644 index 00000000000..0ea4d4dda39 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Info-ARC.plist @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleDisplayName</key> + <string>Test Suite ARC</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>NSMainNibFile</key> + <string>MainWindow</string> + <key>NSMainNibFile~ipad</key> + <string>MainWindow-iPad</string> + <key>UIRequiresFullScreen</key> + <true/> +</dict> +</plist> diff --git a/objective-c/test/ios/testSuiteApp/Info.plist b/objective-c/test/ios/testSuiteApp/Info.plist new file mode 100644 index 00000000000..1b22d5d881c --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Info.plist @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleDisplayName</key> + <string>Test Suite</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>NSMainNibFile</key> + <string>MainWindow</string> + <key>NSMainNibFile~ipad</key> + <string>MainWindow-iPad</string> + <key>UIRequiresFullScreen</key> + <true/> +</dict> +</plist> diff --git a/objective-c/test/ios/testSuiteApp/MainWindow-iPad.xib b/objective-c/test/ios/testSuiteApp/MainWindow-iPad.xib new file mode 100644 index 00000000000..1313995e567 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/MainWindow-iPad.xib @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIApplication"> + <connections> + <outlet property="delegate" destination="3" id="4"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <customObject id="3" userLabel="container App Delegate" customClass="AppDelegate"> + <connections> + <outlet property="navigationController" destination="17" id="21"/> + <outlet property="window" destination="12" id="14"/> + </connections> + </customObject> + <navigationController id="17"> + <extendedEdge key="edgesForExtendedLayout"/> + <navigationBar key="navigationBar" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="19"> + <autoresizingMask key="autoresizingMask"/> + <animations/> + </navigationBar> + <viewControllers> + <viewController nibName="TestSelect-iPad" id="18" customClass="TestSelectController"> + <extendedEdge key="edgesForExtendedLayout"/> + <navigationItem key="navigationItem" title="Ice Test Suite" id="20"/> + </viewController> + </viewControllers> + <metadata/> + </navigationController> + <window opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="12"> + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + <metadata/> + </window> + </objects> +</document> diff --git a/objective-c/test/ios/testSuiteApp/MainWindow.xib b/objective-c/test/ios/testSuiteApp/MainWindow.xib new file mode 100644 index 00000000000..8dd1820b23b --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/MainWindow.xib @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIApplication"> + <connections> + <outlet property="delegate" destination="3" id="4"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <customObject id="3" userLabel="container App Delegate" customClass="AppDelegate"> + <connections> + <outlet property="navigationController" destination="17" id="21"/> + <outlet property="window" destination="12" id="14"/> + </connections> + </customObject> + <navigationController id="17"> + <extendedEdge key="edgesForExtendedLayout"/> + <navigationBar key="navigationBar" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="19"> + <autoresizingMask key="autoresizingMask"/> + <animations/> + </navigationBar> + <viewControllers> + <viewController nibName="TestSelect" id="18" customClass="TestSelectController"> + <extendedEdge key="edgesForExtendedLayout"/> + <navigationItem key="navigationItem" title="Ice Test Suite" id="20"/> + </viewController> + </viewControllers> + </navigationController> + <window opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="12"> + <rect key="frame" x="0.0" y="0.0" width="320" height="480"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + </window> + </objects> +</document> diff --git a/objective-c/test/ios/testSuiteApp/Objective-C Test Suite.xcodeproj/project.pbxproj b/objective-c/test/ios/testSuiteApp/Objective-C Test Suite.xcodeproj/project.pbxproj new file mode 100755 index 00000000000..169890e547d --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Objective-C Test Suite.xcodeproj/project.pbxproj @@ -0,0 +1,1930 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 47; + objects = { + +/* Begin PBXBuildFile section */ + 1400641A1234DFE800249AA4 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064131234DFE800249AA4 /* Server.m */; }; + 1400641B1234DFE800249AA4 /* InvokeTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140064141234DFE800249AA4 /* InvokeTest.ice */; }; + 1400641C1234DFE800249AA4 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064151234DFE800249AA4 /* Client.m */; }; + 1400641D1234DFE800249AA4 /* BlobjectI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064161234DFE800249AA4 /* BlobjectI.m */; }; + 1400641E1234DFE800249AA4 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064181234DFE800249AA4 /* AllTests.m */; }; + 1400642B1234E0E900249AA4 /* TwowaysNewAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064291234E0E900249AA4 /* TwowaysNewAMI.m */; }; + 1400642C1234E0E900249AA4 /* OnewaysNewAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 1400642A1234E0E900249AA4 /* OnewaysNewAMI.m */; }; + 140157C1123645D0007C165E /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140157BA123645D0007C165E /* TestI.m */; }; + 140157C2123645D0007C165E /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140157BB123645D0007C165E /* AllTests.m */; }; + 140157C3123645D0007C165E /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140157BC123645D0007C165E /* Client.m */; }; + 140157C5123645D0007C165E /* DispatcherTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140157BE123645D0007C165E /* DispatcherTest.ice */; }; + 140157C6123645D0007C165E /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140157BF123645D0007C165E /* Server.m */; }; + 140A392D122CF11300E1931D /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A3927122CF11300E1931D /* TestI.m */; }; + 140A392E122CF11300E1931D /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A3929122CF11300E1931D /* Client.m */; }; + 140A392F122CF11300E1931D /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A392A122CF11300E1931D /* Server.m */; }; + 140A3930122CF11300E1931D /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A392B122CF11300E1931D /* AllTests.m */; }; + 140A3931122CF11300E1931D /* AMITest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140A392C122CF11300E1931D /* AMITest.ice */; }; + 1450A1091ABC09B400A71895 /* BatchOnewaysAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 1450A1081ABC09B400A71895 /* BatchOnewaysAMI.m */; }; + 1450A10A1ABC09B400A71895 /* BatchOnewaysAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 1450A1081ABC09B400A71895 /* BatchOnewaysAMI.m */; }; + 14532D321761D39700176FE1 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; + 14532D331761D39700176FE1 /* TestView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* TestView.xib */; }; + 14532D341761D39700176FE1 /* TestSelect.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34B7662B0E8D55FE00CE4701 /* TestSelect.xib */; }; + 14532D361761D39700176FE1 /* server.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 342EBA860E926E98000051FA /* server.p12 */; }; + 14532D371761D39700176FE1 /* client.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 342EBA880E926E9F000051FA /* client.p12 */; }; + 14532D381761D39700176FE1 /* cacert.der in Resources */ = {isa = PBXBuildFile; fileRef = 342EBA8A0E926F90000051FA /* cacert.der */; }; + 14532D391761D39700176FE1 /* TestSelect-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34730A10122BF6C300D293CC /* TestSelect-iPad.xib */; }; + 14532D3A1761D39700176FE1 /* TestView-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34730A14122BF6ED00D293CC /* TestView-iPad.xib */; }; + 14532D3B1761D39700176FE1 /* MainWindow-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34C618AE122C035000F60A28 /* MainWindow-iPad.xib */; }; + 14532D3C1761D39700176FE1 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14934E64161AFC8C00348FC2 /* Default-568h@2x.png */; }; + 14532D3E1761D39700176FE1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; + 14532D3F1761D39700176FE1 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; }; + 14532D401761D39700176FE1 /* TestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* TestViewController.m */; }; + 14532D411761D39700176FE1 /* TestSelectController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B766290E8D55E700CE4701 /* TestSelectController.m */; }; + 14532D421761D39700176FE1 /* Test.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B766330E8D56C700CE4701 /* Test.m */; }; + 14532D431761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AA0FD7A7700018C227 /* AllTests.m */; }; + 14532D441761D39700176FE1 /* BatchOneways.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AB0FD7A7700018C227 /* BatchOneways.m */; }; + 14532D451761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AC0FD7A7700018C227 /* Client.m */; }; + 14532D461761D39700176FE1 /* Oneways.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AD0FD7A7700018C227 /* Oneways.m */; }; + 14532D471761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AF0FD7A7700018C227 /* Server.m */; }; + 14532D481761D39700176FE1 /* Twoways.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4B30FD7A7700018C227 /* Twoways.m */; }; + 14532D491761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4F10FD7A9660018C227 /* TestI.m */; }; + 14532D4A1761D39700176FE1 /* TestCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5000FD7AB5C0018C227 /* TestCommon.m */; }; + 14532D4B1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5180FD7E7740018C227 /* AllTests.m */; }; + 14532D4C1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5190FD7E7740018C227 /* Client.m */; }; + 14532D4D1761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B51C0FD7E7740018C227 /* Server.m */; }; + 14532D4E1761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B51F0FD7E7740018C227 /* TestI.m */; }; + 14532D4F1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5260FD7E78B0018C227 /* AllTests.m */; }; + 14532D501761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5270FD7E78B0018C227 /* Client.m */; }; + 14532D511761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5280FD7E78B0018C227 /* Server.m */; }; + 14532D521761D39700176FE1 /* BindingTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5290FD7E78B0018C227 /* BindingTest.ice */; }; + 14532D531761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B52B0FD7E78B0018C227 /* TestI.m */; }; + 14532D541761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5320FD7E7BD0018C227 /* Client.m */; }; + 14532D551761D39700176FE1 /* DefaultServantTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5330FD7E7BD0018C227 /* DefaultServantTest.ice */; }; + 14532D571761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5380FD7E7CA0018C227 /* Client.m */; }; + 14532D581761D39700176FE1 /* ExceptionsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5390FD7E7CA0018C227 /* ExceptionsTest.ice */; }; + 14532D591761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B53A0FD7E7CA0018C227 /* TestI.m */; }; + 14532D5A1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B53B0FD7E7CA0018C227 /* AllTests.m */; }; + 14532D5B1761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B53D0FD7E7CA0018C227 /* Server.m */; }; + 14532D5C1761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5430FD7E7E60018C227 /* TestI.m */; }; + 14532D5D1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5440FD7E7E60018C227 /* AllTests.m */; }; + 14532D5E1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5450FD7E7E60018C227 /* Client.m */; }; + 14532D5F1761D39700176FE1 /* FacetsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5460FD7E7E60018C227 /* FacetsTest.ice */; }; + 14532D601761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5480FD7E7E60018C227 /* Server.m */; }; + 14532D611761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B54F0FD7E7FB0018C227 /* AllTests.m */; }; + 14532D621761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5500FD7E7FB0018C227 /* TestI.m */; }; + 14532D631761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5510FD7E7FB0018C227 /* Server.m */; }; + 14532D641761D39700176FE1 /* InheritanceTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5520FD7E7FB0018C227 /* InheritanceTest.ice */; }; + 14532D651761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5530FD7E7FB0018C227 /* Client.m */; }; + 14532D661761D39700176FE1 /* InterceptorTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5590FD7E8080018C227 /* InterceptorTest.ice */; }; + 14532D671761D39700176FE1 /* MyObjectI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B55B0FD7E8080018C227 /* MyObjectI.m */; }; + 14532D681761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B55C0FD7E8080018C227 /* Client.m */; }; + 14532D691761D39700176FE1 /* InterceptorI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B55D0FD7E8080018C227 /* InterceptorI.m */; }; + 14532D6A1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5630FD7E81B0018C227 /* Client.m */; }; + 14532D6B1761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5650FD7E81B0018C227 /* Server.m */; }; + 14532D6C1761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5660FD7E81B0018C227 /* TestI.m */; }; + 14532D6D1761D39700176FE1 /* LocationTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5670FD7E81B0018C227 /* LocationTest.ice */; }; + 14532D6E1761D39700176FE1 /* ServerLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5680FD7E81B0018C227 /* ServerLocator.m */; }; + 14532D6F1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B56A0FD7E81B0018C227 /* AllTests.m */; }; + 14532D701761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5710FD7E8270018C227 /* Client.m */; }; + 14532D711761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5720FD7E8270018C227 /* TestI.m */; }; + 14532D721761D39700176FE1 /* ObjectsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5730FD7E8270018C227 /* ObjectsTest.ice */; }; + 14532D731761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5740FD7E8270018C227 /* Server.m */; }; + 14532D741761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5760FD7E8270018C227 /* AllTests.m */; }; + 14532D751761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B57D0FD7E8390018C227 /* Client.m */; }; + 14532D761761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B57E0FD7E8390018C227 /* Server.m */; }; + 14532D771761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B57F0FD7E8390018C227 /* TestI.m */; }; + 14532D781761D39700176FE1 /* ProxyTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5800FD7E8390018C227 /* ProxyTest.ice */; }; + 14532D791761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5810FD7E8390018C227 /* AllTests.m */; }; + 14532D7A1761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5870FD7E8440018C227 /* TestI.m */; }; + 14532D7B1761D39700176FE1 /* RetryTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5880FD7E8440018C227 /* RetryTest.ice */; }; + 14532D7C1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B58A0FD7E8440018C227 /* AllTests.m */; }; + 14532D7D1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B58B0FD7E8440018C227 /* Client.m */; }; + 14532D7E1761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B58C0FD7E8440018C227 /* Server.m */; }; + 14532D7F1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5920FD7E8560018C227 /* AllTests.m */; }; + 14532D801761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5930FD7E8560018C227 /* Client.m */; }; + 14532D811761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5940FD7E8560018C227 /* Server.m */; }; + 14532D821761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5950FD7E8560018C227 /* TestI.m */; }; + 14532D831761D39700176FE1 /* TimeoutTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5960FD7E8560018C227 /* TimeoutTest.ice */; }; + 14532D841761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B59D0FD7E8640018C227 /* AllTests.m */; }; + 14532D851761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B59E0FD7E8640018C227 /* Client.m */; }; + 14532D861761D39700176FE1 /* SlicingExceptionsTestServer.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B59F0FD7E8640018C227 /* SlicingExceptionsTestServer.ice */; }; + 14532D871761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5A00FD7E8640018C227 /* TestI.m */; }; + 14532D881761D39700176FE1 /* SlicingExceptionsTestClient.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5A20FD7E8640018C227 /* SlicingExceptionsTestClient.ice */; }; + 14532D891761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5A30FD7E8640018C227 /* Server.m */; }; + 14532D8A1761D39700176FE1 /* AdapterDeactivationTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B6020FD7EFCC0018C227 /* AdapterDeactivationTest.ice */; }; + 14532D8B1761D39700176FE1 /* OperationsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B66A0FD7F41C0018C227 /* OperationsTest.ice */; }; + 14532D8C1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 146B33FF0FE8BC61009C6199 /* AllTests.m */; }; + 14532D8D1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 146B34000FE8BC61009C6199 /* Client.m */; }; + 14532D8E1761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 146B34010FE8BC61009C6199 /* Server.m */; }; + 14532D8F1761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 146B34040FE8BC61009C6199 /* TestI.m */; }; + 14532D901761D39700176FE1 /* HoldTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 146B340A0FE8BD58009C6199 /* HoldTest.ice */; }; + 14532D911761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A3927122CF11300E1931D /* TestI.m */; }; + 14532D921761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A3929122CF11300E1931D /* Client.m */; }; + 14532D931761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A392A122CF11300E1931D /* Server.m */; }; + 14532D941761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A392B122CF11300E1931D /* AllTests.m */; }; + 14532D951761D39700176FE1 /* AMITest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140A392C122CF11300E1931D /* AMITest.ice */; }; + 14532D961761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064131234DFE800249AA4 /* Server.m */; }; + 14532D971761D39700176FE1 /* InvokeTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140064141234DFE800249AA4 /* InvokeTest.ice */; }; + 14532D981761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064151234DFE800249AA4 /* Client.m */; }; + 14532D991761D39700176FE1 /* BlobjectI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064161234DFE800249AA4 /* BlobjectI.m */; }; + 14532D9A1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064181234DFE800249AA4 /* AllTests.m */; }; + 14532D9B1761D39700176FE1 /* TwowaysNewAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140064291234E0E900249AA4 /* TwowaysNewAMI.m */; }; + 14532D9C1761D39700176FE1 /* OnewaysNewAMI.m in Sources */ = {isa = PBXBuildFile; fileRef = 1400642A1234E0E900249AA4 /* OnewaysNewAMI.m */; }; + 14532D9D1761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 140157BA123645D0007C165E /* TestI.m */; }; + 14532D9E1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 140157BB123645D0007C165E /* AllTests.m */; }; + 14532D9F1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 140157BC123645D0007C165E /* Client.m */; }; + 14532DA01761D39700176FE1 /* DispatcherTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 140157BE123645D0007C165E /* DispatcherTest.ice */; }; + 14532DA11761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 140157BF123645D0007C165E /* Server.m */; }; + 14532DA21761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 14D5BF951240C61900A19716 /* AllTests.m */; }; + 14532DA31761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 14D5BF961240C61900A19716 /* Client.m */; }; + 14532DA41761D39700176FE1 /* DefaultValueTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14D5BF971240C61900A19716 /* DefaultValueTest.ice */; }; + 14532DA51761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 820AA55E170D92D6000DD016 /* AllTests.m */; }; + 14532DA61761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 820AA55F170D92D6000DD016 /* Client.m */; }; + 14532DA71761D39700176FE1 /* HashTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 820AA560170D92D6000DD016 /* HashTest.ice */; }; + 14532DA81761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E87F17328C7400920D6D /* AllTests.m */; }; + 14532DA91761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E88017328C7400920D6D /* Client.m */; }; + 14532DAA1761D39700176FE1 /* EnumTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E88117328C7400920D6D /* EnumTest.ice */; }; + 14532DAB1761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E88417328C7400920D6D /* Server.m */; }; + 14532DAC1761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E88617328C7400920D6D /* TestI.m */; }; + 14532DAD1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA77173C1993007C2602 /* AllTests.m */; }; + 14532DAE1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA7A173C1993007C2602 /* Client.m */; }; + 14532DAF1761D39700176FE1 /* InfoTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA7D173C1993007C2602 /* InfoTest.ice */; }; + 14532DB01761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA83173C1993007C2602 /* Server.m */; }; + 14532DB11761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA86173C1993007C2602 /* TestI.m */; }; + 14532DB21761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC031744E0C600A5CEFE /* AllTests.m */; }; + 14532DB31761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC061744E0C600A5CEFE /* Client.m */; }; + 14532DB41761D39700176FE1 /* MetricsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC0A1744E0C600A5CEFE /* MetricsTest.ice */; }; + 14532DB51761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC0F1744E0C600A5CEFE /* Server.m */; }; + 14532DB61761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC121744E0C600A5CEFE /* TestI.m */; }; + 14532DB71761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 82591289174D147C00B3F597 /* AllTests.m */; }; + 14532DB81761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 8259128A174D147C00B3F597 /* Client.m */; }; + 14532DB91761D39700176FE1 /* ServicesTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 8259128D174D147C00B3F597 /* ServicesTest.ice */; }; + 14532DBA1761D39700176FE1 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B5567E1753721F00FDA693 /* AllTests.m */; }; + 14532DBB1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B5567F1753721F00FDA693 /* Client.m */; }; + 14532DBC1761D39700176FE1 /* OptionalTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14B556801753721F00FDA693 /* OptionalTest.ice */; }; + 14532DBD1761D39700176FE1 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B556811753721F00FDA693 /* Server.m */; }; + 14532DBE1761D39700176FE1 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B556831753721F00FDA693 /* TestI.m */; }; + 14532DBF1761D39700176FE1 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 14CBD36B17588C51000D3373 /* Client.m */; }; + 14532DC01761D39700176FE1 /* StreamTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14CBD36C17588C51000D3373 /* StreamTest.ice */; }; + 14532DC31761D39700176FE1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 14532DC41761D39700176FE1 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 344126360FD8E8EA00C8D69C /* Security.framework */; }; + 14532DC51761D39700176FE1 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 344126370FD8E8EA00C8D69C /* CFNetwork.framework */; }; + 14532DC61761D39700176FE1 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34E396620FF1D71400FBACD6 /* CoreGraphics.framework */; }; + 1469025C1CF7228100DE11F2 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 1469025B1CF7228100DE11F2 /* TestI.m */; }; + 1469025D1CF7228100DE11F2 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 1469025B1CF7228100DE11F2 /* TestI.m */; }; + 146B34050FE8BC61009C6199 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 146B33FF0FE8BC61009C6199 /* AllTests.m */; }; + 146B34060FE8BC61009C6199 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 146B34000FE8BC61009C6199 /* Client.m */; }; + 146B34070FE8BC61009C6199 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 146B34010FE8BC61009C6199 /* Server.m */; }; + 146B34090FE8BC61009C6199 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 146B34040FE8BC61009C6199 /* TestI.m */; }; + 146B340B0FE8BD58009C6199 /* HoldTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 146B340A0FE8BD58009C6199 /* HoldTest.ice */; }; + 146D4AB21A77D82000930925 /* AdminTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14F560DF1A7010B80028417F /* AdminTest.ice */; }; + 146D4AB31A77D82000930925 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F560E01A7010B80028417F /* AllTests.m */; }; + 146D4AB41A77D82000930925 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F560E11A7010B80028417F /* Client.m */; }; + 146D4AB51A77D82000930925 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F560E21A7010B80028417F /* Server.m */; }; + 146D4AB61A77D82000930925 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F560E41A7010B80028417F /* TestI.m */; }; + 14934E65161AFC8C00348FC2 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 14934E64161AFC8C00348FC2 /* Default-568h@2x.png */; }; + 14B556841753721F00FDA693 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B5567E1753721F00FDA693 /* AllTests.m */; }; + 14B556851753721F00FDA693 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B5567F1753721F00FDA693 /* Client.m */; }; + 14B556861753721F00FDA693 /* OptionalTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14B556801753721F00FDA693 /* OptionalTest.ice */; }; + 14B556871753721F00FDA693 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B556811753721F00FDA693 /* Server.m */; }; + 14B556881753721F00FDA693 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B556831753721F00FDA693 /* TestI.m */; }; + 14CBD36D17588C51000D3373 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 14CBD36B17588C51000D3373 /* Client.m */; }; + 14CBD36E17588C51000D3373 /* StreamTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14CBD36C17588C51000D3373 /* StreamTest.ice */; }; + 14D5BF981240C61900A19716 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 14D5BF951240C61900A19716 /* AllTests.m */; }; + 14D5BF991240C61900A19716 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 14D5BF961240C61900A19716 /* Client.m */; }; + 14D5BF9A1240C61900A19716 /* DefaultValueTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14D5BF971240C61900A19716 /* DefaultValueTest.ice */; }; + 14F560E51A7010B80028417F /* AdminTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 14F560DF1A7010B80028417F /* AdminTest.ice */; }; + 14F560E61A7010B80028417F /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F560E01A7010B80028417F /* AllTests.m */; }; + 14F560E71A7010B80028417F /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F560E11A7010B80028417F /* Client.m */; }; + 14F560E81A7010B80028417F /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F560E21A7010B80028417F /* Server.m */; }; + 14F560E91A7010B80028417F /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F560E41A7010B80028417F /* TestI.m */; }; + 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; }; + 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 2899E5220DE3E06400AC0155 /* TestView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* TestView.xib */; }; + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; + 28D7ACF80DDB3853001CB0EB /* TestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* TestViewController.m */; }; + 342EBA870E926E98000051FA /* server.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 342EBA860E926E98000051FA /* server.p12 */; }; + 342EBA890E926E9F000051FA /* client.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 342EBA880E926E9F000051FA /* client.p12 */; }; + 342EBA8B0E926F90000051FA /* cacert.der in Resources */ = {isa = PBXBuildFile; fileRef = 342EBA8A0E926F90000051FA /* cacert.der */; }; + 344126380FD8E8EA00C8D69C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 344126360FD8E8EA00C8D69C /* Security.framework */; }; + 344126390FD8E8EA00C8D69C /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 344126370FD8E8EA00C8D69C /* CFNetwork.framework */; }; + 34730A11122BF6C300D293CC /* TestSelect-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34730A10122BF6C300D293CC /* TestSelect-iPad.xib */; }; + 34730A15122BF6ED00D293CC /* TestView-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34730A14122BF6ED00D293CC /* TestView-iPad.xib */; }; + 34B3B4B50FD7A7700018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AA0FD7A7700018C227 /* AllTests.m */; }; + 34B3B4B60FD7A7700018C227 /* BatchOneways.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AB0FD7A7700018C227 /* BatchOneways.m */; }; + 34B3B4B70FD7A7700018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AC0FD7A7700018C227 /* Client.m */; }; + 34B3B4B80FD7A7700018C227 /* Oneways.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AD0FD7A7700018C227 /* Oneways.m */; }; + 34B3B4BA0FD7A7700018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4AF0FD7A7700018C227 /* Server.m */; }; + 34B3B4BD0FD7A7700018C227 /* Twoways.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4B30FD7A7700018C227 /* Twoways.m */; }; + 34B3B4F30FD7A9660018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B4F10FD7A9660018C227 /* TestI.m */; }; + 34B3B5010FD7AB5C0018C227 /* TestCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5000FD7AB5C0018C227 /* TestCommon.m */; }; + 34B3B5200FD7E7740018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5180FD7E7740018C227 /* AllTests.m */; }; + 34B3B5210FD7E7740018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5190FD7E7740018C227 /* Client.m */; }; + 34B3B5230FD7E7740018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B51C0FD7E7740018C227 /* Server.m */; }; + 34B3B5250FD7E7740018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B51F0FD7E7740018C227 /* TestI.m */; }; + 34B3B52C0FD7E78B0018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5260FD7E78B0018C227 /* AllTests.m */; }; + 34B3B52D0FD7E78B0018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5270FD7E78B0018C227 /* Client.m */; }; + 34B3B52E0FD7E78B0018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5280FD7E78B0018C227 /* Server.m */; }; + 34B3B52F0FD7E78B0018C227 /* BindingTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5290FD7E78B0018C227 /* BindingTest.ice */; }; + 34B3B5300FD7E78B0018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B52B0FD7E78B0018C227 /* TestI.m */; }; + 34B3B5350FD7E7BD0018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5320FD7E7BD0018C227 /* Client.m */; }; + 34B3B5360FD7E7BD0018C227 /* DefaultServantTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5330FD7E7BD0018C227 /* DefaultServantTest.ice */; }; + 34B3B53E0FD7E7CA0018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5380FD7E7CA0018C227 /* Client.m */; }; + 34B3B53F0FD7E7CA0018C227 /* ExceptionsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5390FD7E7CA0018C227 /* ExceptionsTest.ice */; }; + 34B3B5400FD7E7CA0018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B53A0FD7E7CA0018C227 /* TestI.m */; }; + 34B3B5410FD7E7CA0018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B53B0FD7E7CA0018C227 /* AllTests.m */; }; + 34B3B5420FD7E7CA0018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B53D0FD7E7CA0018C227 /* Server.m */; }; + 34B3B5490FD7E7E60018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5430FD7E7E60018C227 /* TestI.m */; }; + 34B3B54A0FD7E7E60018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5440FD7E7E60018C227 /* AllTests.m */; }; + 34B3B54B0FD7E7E60018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5450FD7E7E60018C227 /* Client.m */; }; + 34B3B54C0FD7E7E60018C227 /* FacetsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5460FD7E7E60018C227 /* FacetsTest.ice */; }; + 34B3B54D0FD7E7E60018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5480FD7E7E60018C227 /* Server.m */; }; + 34B3B5540FD7E7FB0018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B54F0FD7E7FB0018C227 /* AllTests.m */; }; + 34B3B5550FD7E7FB0018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5500FD7E7FB0018C227 /* TestI.m */; }; + 34B3B5560FD7E7FB0018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5510FD7E7FB0018C227 /* Server.m */; }; + 34B3B5570FD7E7FB0018C227 /* InheritanceTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5520FD7E7FB0018C227 /* InheritanceTest.ice */; }; + 34B3B5580FD7E7FB0018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5530FD7E7FB0018C227 /* Client.m */; }; + 34B3B55F0FD7E8080018C227 /* InterceptorTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5590FD7E8080018C227 /* InterceptorTest.ice */; }; + 34B3B5600FD7E8080018C227 /* MyObjectI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B55B0FD7E8080018C227 /* MyObjectI.m */; }; + 34B3B5610FD7E8080018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B55C0FD7E8080018C227 /* Client.m */; }; + 34B3B5620FD7E8080018C227 /* InterceptorI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B55D0FD7E8080018C227 /* InterceptorI.m */; }; + 34B3B56B0FD7E81B0018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5630FD7E81B0018C227 /* Client.m */; }; + 34B3B56C0FD7E81B0018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5650FD7E81B0018C227 /* Server.m */; }; + 34B3B56D0FD7E81B0018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5660FD7E81B0018C227 /* TestI.m */; }; + 34B3B56E0FD7E81B0018C227 /* LocationTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5670FD7E81B0018C227 /* LocationTest.ice */; }; + 34B3B56F0FD7E81B0018C227 /* ServerLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5680FD7E81B0018C227 /* ServerLocator.m */; }; + 34B3B5700FD7E81B0018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B56A0FD7E81B0018C227 /* AllTests.m */; }; + 34B3B5770FD7E8270018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5710FD7E8270018C227 /* Client.m */; }; + 34B3B5780FD7E8270018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5720FD7E8270018C227 /* TestI.m */; }; + 34B3B5790FD7E8270018C227 /* ObjectsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5730FD7E8270018C227 /* ObjectsTest.ice */; }; + 34B3B57A0FD7E8270018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5740FD7E8270018C227 /* Server.m */; }; + 34B3B57B0FD7E8270018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5760FD7E8270018C227 /* AllTests.m */; }; + 34B3B5820FD7E8390018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B57D0FD7E8390018C227 /* Client.m */; }; + 34B3B5830FD7E8390018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B57E0FD7E8390018C227 /* Server.m */; }; + 34B3B5840FD7E8390018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B57F0FD7E8390018C227 /* TestI.m */; }; + 34B3B5850FD7E8390018C227 /* ProxyTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5800FD7E8390018C227 /* ProxyTest.ice */; }; + 34B3B5860FD7E8390018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5810FD7E8390018C227 /* AllTests.m */; }; + 34B3B58D0FD7E8440018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5870FD7E8440018C227 /* TestI.m */; }; + 34B3B58E0FD7E8440018C227 /* RetryTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5880FD7E8440018C227 /* RetryTest.ice */; }; + 34B3B58F0FD7E8440018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B58A0FD7E8440018C227 /* AllTests.m */; }; + 34B3B5900FD7E8440018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B58B0FD7E8440018C227 /* Client.m */; }; + 34B3B5910FD7E8440018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B58C0FD7E8440018C227 /* Server.m */; }; + 34B3B5980FD7E8560018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5920FD7E8560018C227 /* AllTests.m */; }; + 34B3B5990FD7E8560018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5930FD7E8560018C227 /* Client.m */; }; + 34B3B59A0FD7E8560018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5940FD7E8560018C227 /* Server.m */; }; + 34B3B59B0FD7E8560018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5950FD7E8560018C227 /* TestI.m */; }; + 34B3B59C0FD7E8560018C227 /* TimeoutTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5960FD7E8560018C227 /* TimeoutTest.ice */; }; + 34B3B5A40FD7E8640018C227 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B59D0FD7E8640018C227 /* AllTests.m */; }; + 34B3B5A50FD7E8640018C227 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B59E0FD7E8640018C227 /* Client.m */; }; + 34B3B5A60FD7E8640018C227 /* SlicingExceptionsTestServer.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B59F0FD7E8640018C227 /* SlicingExceptionsTestServer.ice */; }; + 34B3B5A70FD7E8640018C227 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5A00FD7E8640018C227 /* TestI.m */; }; + 34B3B5A80FD7E8640018C227 /* SlicingExceptionsTestClient.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5A20FD7E8640018C227 /* SlicingExceptionsTestClient.ice */; }; + 34B3B5A90FD7E8640018C227 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B5A30FD7E8640018C227 /* Server.m */; }; + 34B3B6030FD7EFCC0018C227 /* AdapterDeactivationTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B6020FD7EFCC0018C227 /* AdapterDeactivationTest.ice */; }; + 34B3B66B0FD7F41C0018C227 /* OperationsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 34B3B66A0FD7F41C0018C227 /* OperationsTest.ice */; }; + 34B7662A0E8D55E700CE4701 /* TestSelectController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B766290E8D55E700CE4701 /* TestSelectController.m */; }; + 34B7662C0E8D55FE00CE4701 /* TestSelect.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34B7662B0E8D55FE00CE4701 /* TestSelect.xib */; }; + 34B766340E8D56C700CE4701 /* Test.m in Sources */ = {isa = PBXBuildFile; fileRef = 34B766330E8D56C700CE4701 /* Test.m */; }; + 34C618AF122C035000F60A28 /* MainWindow-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34C618AE122C035000F60A28 /* MainWindow-iPad.xib */; }; + 34E396630FF1D71400FBACD6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34E396620FF1D71400FBACD6 /* CoreGraphics.framework */; }; + 820AA561170D92D6000DD016 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 820AA55E170D92D6000DD016 /* AllTests.m */; }; + 820AA562170D92D6000DD016 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 820AA55F170D92D6000DD016 /* Client.m */; }; + 820AA563170D92D6000DD016 /* HashTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 820AA560170D92D6000DD016 /* HashTest.ice */; }; + 8259128F174D147C00B3F597 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 82591289174D147C00B3F597 /* AllTests.m */; }; + 82591290174D147C00B3F597 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 8259128A174D147C00B3F597 /* Client.m */; }; + 82591293174D147C00B3F597 /* ServicesTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 8259128D174D147C00B3F597 /* ServicesTest.ice */; }; + 8291AC171744E0C600A5CEFE /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC031744E0C600A5CEFE /* AllTests.m */; }; + 8291AC1A1744E0C600A5CEFE /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC061744E0C600A5CEFE /* Client.m */; }; + 8291AC1D1744E0C600A5CEFE /* MetricsTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC0A1744E0C600A5CEFE /* MetricsTest.ice */; }; + 8291AC221744E0C600A5CEFE /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC0F1744E0C600A5CEFE /* Server.m */; }; + 8291AC241744E0C600A5CEFE /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 8291AC121744E0C600A5CEFE /* TestI.m */; }; + 82D53AA71823264600703264 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 82D53AA61823264600703264 /* Images.xcassets */; }; + 82E5DA8B173C1993007C2602 /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA77173C1993007C2602 /* AllTests.m */; }; + 82E5DA8E173C1993007C2602 /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA7A173C1993007C2602 /* Client.m */; }; + 82E5DA90173C1993007C2602 /* InfoTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA7D173C1993007C2602 /* InfoTest.ice */; }; + 82E5DA96173C1993007C2602 /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA83173C1993007C2602 /* Server.m */; }; + 82E5DA98173C1993007C2602 /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 82E5DA86173C1993007C2602 /* TestI.m */; }; + 82F4E88A17328C7400920D6D /* AllTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E87F17328C7400920D6D /* AllTests.m */; }; + 82F4E88B17328C7400920D6D /* Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E88017328C7400920D6D /* Client.m */; }; + 82F4E88C17328C7400920D6D /* EnumTest.ice in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E88117328C7400920D6D /* EnumTest.ice */; }; + 82F4E88F17328C7400920D6D /* Server.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E88417328C7400920D6D /* Server.m */; }; + 82F4E89017328C7400920D6D /* TestI.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F4E88617328C7400920D6D /* TestI.m */; }; + D83717A01BFFC5BE005D65BC /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 82D53AA61823264600703264 /* Images.xcassets */; }; +/* End PBXBuildFile section */ + +/* Begin PBXBuildRule section */ + D81F86FA1D89D3B50076917C /* PBXBuildRule */ = { + isa = PBXBuildRule; + compilerSpec = com.apple.compilers.proxy.script; + filePatterns = "*.ice"; + fileType = pattern.proxy; + isEditable = 1; + outputFiles = ( + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).h", + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).m", + ); + script = /usr/local/bin/icebuilder; + }; + D8D23B1E1D8AF52E00EE192D /* PBXBuildRule */ = { + isa = PBXBuildRule; + compilerSpec = com.apple.compilers.proxy.script; + filePatterns = "*.ice"; + fileType = pattern.proxy; + isEditable = 1; + outputFiles = ( + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).h", + "$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).m", + ); + script = /usr/local/bin/icebuilder; + }; +/* End PBXBuildRule section */ + +/* Begin PBXFileReference section */ + 140064131234DFE800249AA4 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/invoke/Server.m; sourceTree = SOURCE_ROOT; }; + 140064141234DFE800249AA4 /* InvokeTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = InvokeTest.ice; path = ../../Ice/invoke/InvokeTest.ice; sourceTree = SOURCE_ROOT; }; + 140064151234DFE800249AA4 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/invoke/Client.m; sourceTree = SOURCE_ROOT; }; + 140064161234DFE800249AA4 /* BlobjectI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BlobjectI.m; path = ../../Ice/invoke/BlobjectI.m; sourceTree = SOURCE_ROOT; }; + 140064171234DFE800249AA4 /* BlobjectI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BlobjectI.h; path = ../../Ice/invoke/BlobjectI.h; sourceTree = SOURCE_ROOT; }; + 140064181234DFE800249AA4 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/invoke/AllTests.m; sourceTree = SOURCE_ROOT; }; + 140064291234E0E900249AA4 /* TwowaysNewAMI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TwowaysNewAMI.m; path = ../../Ice/operations/TwowaysNewAMI.m; sourceTree = SOURCE_ROOT; }; + 1400642A1234E0E900249AA4 /* OnewaysNewAMI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OnewaysNewAMI.m; path = ../../Ice/operations/OnewaysNewAMI.m; sourceTree = SOURCE_ROOT; }; + 140157B9123645D0007C165E /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/dispatcher/TestI.h; sourceTree = SOURCE_ROOT; }; + 140157BA123645D0007C165E /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/dispatcher/TestI.m; sourceTree = SOURCE_ROOT; }; + 140157BB123645D0007C165E /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/dispatcher/AllTests.m; sourceTree = SOURCE_ROOT; }; + 140157BC123645D0007C165E /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/dispatcher/Client.m; sourceTree = SOURCE_ROOT; }; + 140157BE123645D0007C165E /* DispatcherTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = DispatcherTest.ice; path = ../../Ice/dispatcher/DispatcherTest.ice; sourceTree = SOURCE_ROOT; }; + 140157BF123645D0007C165E /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/dispatcher/Server.m; sourceTree = SOURCE_ROOT; }; + 140A3927122CF11300E1931D /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/ami/TestI.m; sourceTree = SOURCE_ROOT; }; + 140A3928122CF11300E1931D /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/ami/TestI.h; sourceTree = SOURCE_ROOT; }; + 140A3929122CF11300E1931D /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/ami/Client.m; sourceTree = SOURCE_ROOT; }; + 140A392A122CF11300E1931D /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/ami/Server.m; sourceTree = SOURCE_ROOT; }; + 140A392B122CF11300E1931D /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/ami/AllTests.m; sourceTree = SOURCE_ROOT; }; + 140A392C122CF11300E1931D /* AMITest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = AMITest.ice; path = ../../Ice/ami/AMITest.ice; sourceTree = SOURCE_ROOT; }; + 14103B0B1CF892720097DE5A /* ExternalAccessory.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ExternalAccessory.framework; path = System/Library/Frameworks/ExternalAccessory.framework; sourceTree = SDKROOT; }; + 1450A1081ABC09B400A71895 /* BatchOnewaysAMI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BatchOnewaysAMI.m; path = ../../Ice/operations/BatchOnewaysAMI.m; sourceTree = "<group>"; }; + 14532DCD1761D39700176FE1 /* Objective-C Test Suite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Objective-C Test Suite.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 14532DCE1761D39700176FE1 /* Info-ARC.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-ARC.plist"; path = "/Users/joe/Development/ZeroC/icetouch/test/objective-c/iPhone/container/Info-ARC.plist"; sourceTree = "<absolute>"; }; + 1469025A1CF7228100DE11F2 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/defaultServant/TestI.h; sourceTree = "<group>"; }; + 1469025B1CF7228100DE11F2 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/defaultServant/TestI.m; sourceTree = "<group>"; }; + 146B33FF0FE8BC61009C6199 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/hold/AllTests.m; sourceTree = SOURCE_ROOT; }; + 146B34000FE8BC61009C6199 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/hold/Client.m; sourceTree = SOURCE_ROOT; }; + 146B34010FE8BC61009C6199 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/hold/Server.m; sourceTree = SOURCE_ROOT; }; + 146B34030FE8BC61009C6199 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/hold/TestI.h; sourceTree = SOURCE_ROOT; }; + 146B34040FE8BC61009C6199 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/hold/TestI.m; sourceTree = SOURCE_ROOT; }; + 146B340A0FE8BD58009C6199 /* HoldTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = HoldTest.ice; path = ../../Ice/hold/HoldTest.ice; sourceTree = SOURCE_ROOT; }; + 14934E64161AFC8C00348FC2 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; }; + 14B5567E1753721F00FDA693 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/optional/AllTests.m; sourceTree = "<group>"; }; + 14B5567F1753721F00FDA693 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/optional/Client.m; sourceTree = "<group>"; }; + 14B556801753721F00FDA693 /* OptionalTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = OptionalTest.ice; path = ../../Ice/optional/OptionalTest.ice; sourceTree = "<group>"; }; + 14B556811753721F00FDA693 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/optional/Server.m; sourceTree = "<group>"; }; + 14B556821753721F00FDA693 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/optional/TestI.h; sourceTree = "<group>"; }; + 14B556831753721F00FDA693 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/optional/TestI.m; sourceTree = "<group>"; }; + 14CBD36B17588C51000D3373 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/stream/Client.m; sourceTree = "<group>"; }; + 14CBD36C17588C51000D3373 /* StreamTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = StreamTest.ice; path = ../../Ice/stream/StreamTest.ice; sourceTree = "<group>"; }; + 14D5BF951240C61900A19716 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/defaultValue/AllTests.m; sourceTree = SOURCE_ROOT; }; + 14D5BF961240C61900A19716 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/defaultValue/Client.m; sourceTree = SOURCE_ROOT; }; + 14D5BF971240C61900A19716 /* DefaultValueTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = DefaultValueTest.ice; path = ../../Ice/defaultValue/DefaultValueTest.ice; sourceTree = SOURCE_ROOT; }; + 14F560DF1A7010B80028417F /* AdminTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = AdminTest.ice; path = ../../Ice/admin/AdminTest.ice; sourceTree = "<group>"; }; + 14F560E01A7010B80028417F /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/admin/AllTests.m; sourceTree = "<group>"; }; + 14F560E11A7010B80028417F /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/admin/Client.m; sourceTree = "<group>"; }; + 14F560E21A7010B80028417F /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/admin/Server.m; sourceTree = "<group>"; }; + 14F560E31A7010B80028417F /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/admin/TestI.h; sourceTree = "<group>"; }; + 14F560E41A7010B80028417F /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/admin/TestI.m; sourceTree = "<group>"; }; + 1D3623240D0F684500981E51 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; + 1D3623250D0F684500981E51 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; + 1D6058910D05DD3D006BFB54 /* Objective-C Test Suite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Objective-C Test Suite.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 2899E5210DE3E06400AC0155 /* TestView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TestView.xib; sourceTree = "<group>"; }; + 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; }; + 28D7ACF60DDB3853001CB0EB /* TestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestViewController.h; sourceTree = "<group>"; }; + 28D7ACF70DDB3853001CB0EB /* TestViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestViewController.m; sourceTree = "<group>"; }; + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; + 342EBA860E926E98000051FA /* server.p12 */ = {isa = PBXFileReference; lastKnownFileType = file; name = server.p12; path = ../../../certs/server.p12; sourceTree = SOURCE_ROOT; }; + 342EBA880E926E9F000051FA /* client.p12 */ = {isa = PBXFileReference; lastKnownFileType = file; name = client.p12; path = ../../../certs/client.p12; sourceTree = SOURCE_ROOT; }; + 342EBA8A0E926F90000051FA /* cacert.der */ = {isa = PBXFileReference; lastKnownFileType = file; name = cacert.der; path = ../../../certs/cacert.der; sourceTree = SOURCE_ROOT; }; + 344126360FD8E8EA00C8D69C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + 344126370FD8E8EA00C8D69C /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + 34730A10122BF6C300D293CC /* TestSelect-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "TestSelect-iPad.xib"; sourceTree = "<group>"; }; + 34730A14122BF6ED00D293CC /* TestView-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "TestView-iPad.xib"; sourceTree = "<group>"; }; + 34B3B4AA0FD7A7700018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/operations/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B4AB0FD7A7700018C227 /* BatchOneways.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BatchOneways.m; path = ../../Ice/operations/BatchOneways.m; sourceTree = SOURCE_ROOT; }; + 34B3B4AC0FD7A7700018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/operations/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B4AD0FD7A7700018C227 /* Oneways.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Oneways.m; path = ../../Ice/operations/Oneways.m; sourceTree = SOURCE_ROOT; }; + 34B3B4AF0FD7A7700018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/operations/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B4B30FD7A7700018C227 /* Twoways.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Twoways.m; path = ../../Ice/operations/Twoways.m; sourceTree = SOURCE_ROOT; }; + 34B3B4F00FD7A9660018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/operations/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B4F10FD7A9660018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/operations/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5000FD7AB5C0018C227 /* TestCommon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestCommon.m; path = ../Common/TestCommon.m; sourceTree = SOURCE_ROOT; }; + 34B3B5180FD7E7740018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/adapterDeactivation/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B5190FD7E7740018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/adapterDeactivation/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B51C0FD7E7740018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/adapterDeactivation/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B51E0FD7E7740018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/adapterDeactivation/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B51F0FD7E7740018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/adapterDeactivation/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5260FD7E78B0018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/binding/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B5270FD7E78B0018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/binding/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B5280FD7E78B0018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/binding/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B5290FD7E78B0018C227 /* BindingTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = BindingTest.ice; path = ../../Ice/binding/BindingTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B52A0FD7E78B0018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/binding/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B52B0FD7E78B0018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/binding/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5320FD7E7BD0018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/defaultServant/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B5330FD7E7BD0018C227 /* DefaultServantTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = DefaultServantTest.ice; path = ../../Ice/defaultServant/DefaultServantTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5380FD7E7CA0018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/exceptions/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B5390FD7E7CA0018C227 /* ExceptionsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = ExceptionsTest.ice; path = ../../Ice/exceptions/ExceptionsTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B53A0FD7E7CA0018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/exceptions/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B53B0FD7E7CA0018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/exceptions/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B53C0FD7E7CA0018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/exceptions/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B53D0FD7E7CA0018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/exceptions/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B5430FD7E7E60018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/facets/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5440FD7E7E60018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/facets/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B5450FD7E7E60018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/facets/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B5460FD7E7E60018C227 /* FacetsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = FacetsTest.ice; path = ../../Ice/facets/FacetsTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5470FD7E7E60018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/facets/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B5480FD7E7E60018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/facets/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B54E0FD7E7FB0018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/inheritance/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B54F0FD7E7FB0018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/inheritance/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B5500FD7E7FB0018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/inheritance/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5510FD7E7FB0018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/inheritance/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B5520FD7E7FB0018C227 /* InheritanceTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = InheritanceTest.ice; path = ../../Ice/inheritance/InheritanceTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5530FD7E7FB0018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/inheritance/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B5590FD7E8080018C227 /* InterceptorTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = InterceptorTest.ice; path = ../../Ice/interceptor/InterceptorTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B55A0FD7E8080018C227 /* MyObjectI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MyObjectI.h; path = ../../Ice/interceptor/MyObjectI.h; sourceTree = SOURCE_ROOT; }; + 34B3B55B0FD7E8080018C227 /* MyObjectI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MyObjectI.m; path = ../../Ice/interceptor/MyObjectI.m; sourceTree = SOURCE_ROOT; }; + 34B3B55C0FD7E8080018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/interceptor/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B55D0FD7E8080018C227 /* InterceptorI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = InterceptorI.m; path = ../../Ice/interceptor/InterceptorI.m; sourceTree = SOURCE_ROOT; }; + 34B3B55E0FD7E8080018C227 /* InterceptorI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InterceptorI.h; path = ../../Ice/interceptor/InterceptorI.h; sourceTree = SOURCE_ROOT; }; + 34B3B5630FD7E81B0018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/location/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B5640FD7E81B0018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/location/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B5650FD7E81B0018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/location/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B5660FD7E81B0018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/location/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5670FD7E81B0018C227 /* LocationTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = LocationTest.ice; path = ../../Ice/location/LocationTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5680FD7E81B0018C227 /* ServerLocator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ServerLocator.m; path = ../../Ice/location/ServerLocator.m; sourceTree = SOURCE_ROOT; }; + 34B3B5690FD7E81B0018C227 /* ServerLocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ServerLocator.h; path = ../../Ice/location/ServerLocator.h; sourceTree = SOURCE_ROOT; }; + 34B3B56A0FD7E81B0018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/location/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B5710FD7E8270018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/objects/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B5720FD7E8270018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/objects/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5730FD7E8270018C227 /* ObjectsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = ObjectsTest.ice; path = ../../Ice/objects/ObjectsTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5740FD7E8270018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/objects/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B5750FD7E8270018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/objects/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B5760FD7E8270018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/objects/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B57C0FD7E8390018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/proxy/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B57D0FD7E8390018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/proxy/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B57E0FD7E8390018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/proxy/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B57F0FD7E8390018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/proxy/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5800FD7E8390018C227 /* ProxyTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = ProxyTest.ice; path = ../../Ice/proxy/ProxyTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5810FD7E8390018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/proxy/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B5870FD7E8440018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/retry/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5880FD7E8440018C227 /* RetryTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = RetryTest.ice; path = ../../Ice/retry/RetryTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5890FD7E8440018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/retry/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B58A0FD7E8440018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/retry/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B58B0FD7E8440018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/retry/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B58C0FD7E8440018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/retry/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B5920FD7E8560018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/timeout/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B5930FD7E8560018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/timeout/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B5940FD7E8560018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/timeout/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B5950FD7E8560018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/timeout/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5960FD7E8560018C227 /* TimeoutTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = TimeoutTest.ice; path = ../../Ice/timeout/TimeoutTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5970FD7E8560018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/timeout/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B59D0FD7E8640018C227 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/slicing/exceptions/AllTests.m; sourceTree = SOURCE_ROOT; }; + 34B3B59E0FD7E8640018C227 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/slicing/exceptions/Client.m; sourceTree = SOURCE_ROOT; }; + 34B3B59F0FD7E8640018C227 /* SlicingExceptionsTestServer.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = SlicingExceptionsTestServer.ice; path = ../../Ice/slicing/exceptions/SlicingExceptionsTestServer.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5A00FD7E8640018C227 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestI.m; path = ../../Ice/slicing/exceptions/TestI.m; sourceTree = SOURCE_ROOT; }; + 34B3B5A10FD7E8640018C227 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestI.h; path = ../../Ice/slicing/exceptions/TestI.h; sourceTree = SOURCE_ROOT; }; + 34B3B5A20FD7E8640018C227 /* SlicingExceptionsTestClient.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = SlicingExceptionsTestClient.ice; path = ../../Ice/slicing/exceptions/SlicingExceptionsTestClient.ice; sourceTree = SOURCE_ROOT; }; + 34B3B5A30FD7E8640018C227 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Server.m; path = ../../Ice/slicing/exceptions/Server.m; sourceTree = SOURCE_ROOT; }; + 34B3B6020FD7EFCC0018C227 /* AdapterDeactivationTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = AdapterDeactivationTest.ice; path = ../../Ice/adapterDeactivation/AdapterDeactivationTest.ice; sourceTree = SOURCE_ROOT; }; + 34B3B66A0FD7F41C0018C227 /* OperationsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = OperationsTest.ice; path = ../../Ice/operations/OperationsTest.ice; sourceTree = SOURCE_ROOT; }; + 34B766280E8D55E700CE4701 /* TestSelectController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestSelectController.h; sourceTree = "<group>"; }; + 34B766290E8D55E700CE4701 /* TestSelectController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestSelectController.m; sourceTree = "<group>"; }; + 34B7662B0E8D55FE00CE4701 /* TestSelect.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TestSelect.xib; sourceTree = "<group>"; }; + 34B766320E8D56C700CE4701 /* Test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Test.h; sourceTree = "<group>"; }; + 34B766330E8D56C700CE4701 /* Test.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Test.m; sourceTree = "<group>"; }; + 34C618AE122C035000F60A28 /* MainWindow-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = "MainWindow-iPad.xib"; sourceTree = "<group>"; }; + 34E396620FF1D71400FBACD6 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 820AA55E170D92D6000DD016 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AllTests.m; path = ../../Ice/hash/AllTests.m; sourceTree = "<group>"; }; + 820AA55F170D92D6000DD016 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Client.m; path = ../../Ice/hash/Client.m; sourceTree = "<group>"; }; + 820AA560170D92D6000DD016 /* HashTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; name = HashTest.ice; path = ../../Ice/hash/HashTest.ice; sourceTree = "<group>"; }; + 82591289174D147C00B3F597 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 8259128A174D147C00B3F597 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 8259128D174D147C00B3F597 /* ServicesTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; path = ServicesTest.ice; sourceTree = "<group>"; }; + 8291AC031744E0C600A5CEFE /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 8291AC061744E0C600A5CEFE /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 8291AC0A1744E0C600A5CEFE /* MetricsTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; path = MetricsTest.ice; sourceTree = "<group>"; }; + 8291AC0F1744E0C600A5CEFE /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 8291AC111744E0C600A5CEFE /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 8291AC121744E0C600A5CEFE /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 82D53AA61823264600703264 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; + 82E5DA77173C1993007C2602 /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 82E5DA7A173C1993007C2602 /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 82E5DA7D173C1993007C2602 /* InfoTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; path = InfoTest.ice; sourceTree = "<group>"; }; + 82E5DA83173C1993007C2602 /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 82E5DA85173C1993007C2602 /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 82E5DA86173C1993007C2602 /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 82F4E87F17328C7400920D6D /* AllTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AllTests.m; sourceTree = "<group>"; }; + 82F4E88017328C7400920D6D /* Client.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Client.m; sourceTree = "<group>"; }; + 82F4E88117328C7400920D6D /* EnumTest.ice */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.slice; path = EnumTest.ice; sourceTree = "<group>"; }; + 82F4E88417328C7400920D6D /* Server.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Server.m; sourceTree = "<group>"; }; + 82F4E88517328C7400920D6D /* TestI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestI.h; sourceTree = "<group>"; }; + 82F4E88617328C7400920D6D /* TestI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestI.m; sourceTree = "<group>"; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 14532DC11761D39700176FE1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 14532DC31761D39700176FE1 /* UIKit.framework in Frameworks */, + 14532DC41761D39700176FE1 /* Security.framework in Frameworks */, + 14532DC51761D39700176FE1 /* CFNetwork.framework in Frameworks */, + 14532DC61761D39700176FE1 /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, + 344126380FD8E8EA00C8D69C /* Security.framework in Frameworks */, + 344126390FD8E8EA00C8D69C /* CFNetwork.framework in Frameworks */, + 34E396630FF1D71400FBACD6 /* CoreGraphics.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 1D3623240D0F684500981E51 /* AppDelegate.h */, + 1D3623250D0F684500981E51 /* AppDelegate.m */, + 28D7ACF60DDB3853001CB0EB /* TestViewController.h */, + 28D7ACF70DDB3853001CB0EB /* TestViewController.m */, + 34B766280E8D55E700CE4701 /* TestSelectController.h */, + 34B766290E8D55E700CE4701 /* TestSelectController.m */, + 34B766320E8D56C700CE4701 /* Test.h */, + 34B766330E8D56C700CE4701 /* Test.m */, + ); + path = Classes; + sourceTree = "<group>"; + }; + 140064111234DFBF00249AA4 /* invoke */ = { + isa = PBXGroup; + children = ( + 140064131234DFE800249AA4 /* Server.m */, + 140064141234DFE800249AA4 /* InvokeTest.ice */, + 140064151234DFE800249AA4 /* Client.m */, + 140064161234DFE800249AA4 /* BlobjectI.m */, + 140064171234DFE800249AA4 /* BlobjectI.h */, + 140064181234DFE800249AA4 /* AllTests.m */, + ); + name = invoke; + sourceTree = "<group>"; + }; + 140157B6123645B3007C165E /* dispatcher */ = { + isa = PBXGroup; + children = ( + 140157B9123645D0007C165E /* TestI.h */, + 140157BA123645D0007C165E /* TestI.m */, + 140157BB123645D0007C165E /* AllTests.m */, + 140157BC123645D0007C165E /* Client.m */, + 140157BE123645D0007C165E /* DispatcherTest.ice */, + 140157BF123645D0007C165E /* Server.m */, + ); + name = dispatcher; + sourceTree = "<group>"; + }; + 140A3926122CF0EC00E1931D /* ami */ = { + isa = PBXGroup; + children = ( + 140A3927122CF11300E1931D /* TestI.m */, + 140A3928122CF11300E1931D /* TestI.h */, + 140A3929122CF11300E1931D /* Client.m */, + 140A392A122CF11300E1931D /* Server.m */, + 140A392B122CF11300E1931D /* AllTests.m */, + 140A392C122CF11300E1931D /* AMITest.ice */, + ); + name = ami; + sourceTree = "<group>"; + }; + 146B33FE0FE8BBF9009C6199 /* hold */ = { + isa = PBXGroup; + children = ( + 146B340A0FE8BD58009C6199 /* HoldTest.ice */, + 146B33FF0FE8BC61009C6199 /* AllTests.m */, + 146B34000FE8BC61009C6199 /* Client.m */, + 146B34010FE8BC61009C6199 /* Server.m */, + 146B34030FE8BC61009C6199 /* TestI.h */, + 146B34040FE8BC61009C6199 /* TestI.m */, + ); + name = hold; + sourceTree = "<group>"; + }; + 14B5567D175371DB00FDA693 /* optional */ = { + isa = PBXGroup; + children = ( + 14B5567E1753721F00FDA693 /* AllTests.m */, + 14B5567F1753721F00FDA693 /* Client.m */, + 14B556801753721F00FDA693 /* OptionalTest.ice */, + 14B556811753721F00FDA693 /* Server.m */, + 14B556821753721F00FDA693 /* TestI.h */, + 14B556831753721F00FDA693 /* TestI.m */, + ); + name = optional; + sourceTree = "<group>"; + }; + 14CBD36817588C16000D3373 /* stream */ = { + isa = PBXGroup; + children = ( + 14CBD36B17588C51000D3373 /* Client.m */, + 14CBD36C17588C51000D3373 /* StreamTest.ice */, + ); + name = stream; + sourceTree = "<group>"; + }; + 14D5BF941240C5EB00A19716 /* defaultValue */ = { + isa = PBXGroup; + children = ( + 14D5BF951240C61900A19716 /* AllTests.m */, + 14D5BF961240C61900A19716 /* Client.m */, + 14D5BF971240C61900A19716 /* DefaultValueTest.ice */, + ); + name = defaultValue; + sourceTree = "<group>"; + }; + 14F560DE1A7010890028417F /* admin */ = { + isa = PBXGroup; + children = ( + 14F560DF1A7010B80028417F /* AdminTest.ice */, + 14F560E01A7010B80028417F /* AllTests.m */, + 14F560E11A7010B80028417F /* Client.m */, + 14F560E21A7010B80028417F /* Server.m */, + 14F560E31A7010B80028417F /* TestI.h */, + 14F560E41A7010B80028417F /* TestI.m */, + ); + name = admin; + sourceTree = "<group>"; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 1D6058910D05DD3D006BFB54 /* Objective-C Test Suite.app */, + 14532DCD1761D39700176FE1 /* Objective-C Test Suite.app */, + ); + name = Products; + sourceTree = "<group>"; + }; + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + D83717A11BFFC64D005D65BC /* Tests */, + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 34730A09122BF68100D293CC /* Resources-iPad */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = CustomTemplate; + sourceTree = "<group>"; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 29B97316FDCFA39411CA2CEA /* main.m */, + ); + name = "Other Sources"; + sourceTree = "<group>"; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 82D53AA61823264600703264 /* Images.xcassets */, + 14532DCE1761D39700176FE1 /* Info-ARC.plist */, + 342EBA8A0E926F90000051FA /* cacert.der */, + 342EBA880E926E9F000051FA /* client.p12 */, + 342EBA860E926E98000051FA /* server.p12 */, + 2899E5210DE3E06400AC0155 /* TestView.xib */, + 28AD733E0D9D9553002E5188 /* MainWindow.xib */, + 8D1107310486CEB800E47090 /* Info.plist */, + 34B7662B0E8D55FE00CE4701 /* TestSelect.xib */, + ); + name = Resources; + sourceTree = "<group>"; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 14103B0B1CF892720097DE5A /* ExternalAccessory.framework */, + 34E396620FF1D71400FBACD6 /* CoreGraphics.framework */, + 344126360FD8E8EA00C8D69C /* Security.framework */, + 344126370FD8E8EA00C8D69C /* CFNetwork.framework */, + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + 34730A09122BF68100D293CC /* Resources-iPad */ = { + isa = PBXGroup; + children = ( + 14934E64161AFC8C00348FC2 /* Default-568h@2x.png */, + 34C618AE122C035000F60A28 /* MainWindow-iPad.xib */, + 34730A14122BF6ED00D293CC /* TestView-iPad.xib */, + 34730A10122BF6C300D293CC /* TestSelect-iPad.xib */, + ); + name = "Resources-iPad"; + sourceTree = "<group>"; + }; + 34B3B4A90FD7A7510018C227 /* operations */ = { + isa = PBXGroup; + children = ( + 1450A1081ABC09B400A71895 /* BatchOnewaysAMI.m */, + 140064291234E0E900249AA4 /* TwowaysNewAMI.m */, + 1400642A1234E0E900249AA4 /* OnewaysNewAMI.m */, + 34B3B66A0FD7F41C0018C227 /* OperationsTest.ice */, + 34B3B4F00FD7A9660018C227 /* TestI.h */, + 34B3B4F10FD7A9660018C227 /* TestI.m */, + 34B3B4AA0FD7A7700018C227 /* AllTests.m */, + 34B3B4AB0FD7A7700018C227 /* BatchOneways.m */, + 34B3B4AC0FD7A7700018C227 /* Client.m */, + 34B3B4AD0FD7A7700018C227 /* Oneways.m */, + 34B3B4AF0FD7A7700018C227 /* Server.m */, + 34B3B4B30FD7A7700018C227 /* Twoways.m */, + ); + name = operations; + sourceTree = "<group>"; + }; + 34B3B4FF0FD7AB4E0018C227 /* Common */ = { + isa = PBXGroup; + children = ( + 34B3B5000FD7AB5C0018C227 /* TestCommon.m */, + ); + name = Common; + sourceTree = "<group>"; + }; + 34B3B5030FD7E6EB0018C227 /* adapterDeactivation */ = { + isa = PBXGroup; + children = ( + 34B3B6020FD7EFCC0018C227 /* AdapterDeactivationTest.ice */, + 34B3B5180FD7E7740018C227 /* AllTests.m */, + 34B3B5190FD7E7740018C227 /* Client.m */, + 34B3B51C0FD7E7740018C227 /* Server.m */, + 34B3B51E0FD7E7740018C227 /* TestI.h */, + 34B3B51F0FD7E7740018C227 /* TestI.m */, + ); + name = adapterDeactivation; + sourceTree = "<group>"; + }; + 34B3B5040FD7E6F60018C227 /* binding */ = { + isa = PBXGroup; + children = ( + 34B3B5260FD7E78B0018C227 /* AllTests.m */, + 34B3B5270FD7E78B0018C227 /* Client.m */, + 34B3B5280FD7E78B0018C227 /* Server.m */, + 34B3B5290FD7E78B0018C227 /* BindingTest.ice */, + 34B3B52A0FD7E78B0018C227 /* TestI.h */, + 34B3B52B0FD7E78B0018C227 /* TestI.m */, + ); + name = binding; + sourceTree = "<group>"; + }; + 34B3B5050FD7E6FC0018C227 /* defaultServant */ = { + isa = PBXGroup; + children = ( + 1469025A1CF7228100DE11F2 /* TestI.h */, + 1469025B1CF7228100DE11F2 /* TestI.m */, + 34B3B5320FD7E7BD0018C227 /* Client.m */, + 34B3B5330FD7E7BD0018C227 /* DefaultServantTest.ice */, + ); + name = defaultServant; + sourceTree = "<group>"; + }; + 34B3B5060FD7E7030018C227 /* exceptions */ = { + isa = PBXGroup; + children = ( + 34B3B5380FD7E7CA0018C227 /* Client.m */, + 34B3B5390FD7E7CA0018C227 /* ExceptionsTest.ice */, + 34B3B53A0FD7E7CA0018C227 /* TestI.m */, + 34B3B53B0FD7E7CA0018C227 /* AllTests.m */, + 34B3B53C0FD7E7CA0018C227 /* TestI.h */, + 34B3B53D0FD7E7CA0018C227 /* Server.m */, + ); + name = exceptions; + sourceTree = "<group>"; + }; + 34B3B5070FD7E7090018C227 /* facets */ = { + isa = PBXGroup; + children = ( + 34B3B5430FD7E7E60018C227 /* TestI.m */, + 34B3B5440FD7E7E60018C227 /* AllTests.m */, + 34B3B5450FD7E7E60018C227 /* Client.m */, + 34B3B5460FD7E7E60018C227 /* FacetsTest.ice */, + 34B3B5470FD7E7E60018C227 /* TestI.h */, + 34B3B5480FD7E7E60018C227 /* Server.m */, + ); + name = facets; + sourceTree = "<group>"; + }; + 34B3B5080FD7E7130018C227 /* inheritance */ = { + isa = PBXGroup; + children = ( + 34B3B54E0FD7E7FB0018C227 /* TestI.h */, + 34B3B54F0FD7E7FB0018C227 /* AllTests.m */, + 34B3B5500FD7E7FB0018C227 /* TestI.m */, + 34B3B5510FD7E7FB0018C227 /* Server.m */, + 34B3B5520FD7E7FB0018C227 /* InheritanceTest.ice */, + 34B3B5530FD7E7FB0018C227 /* Client.m */, + ); + name = inheritance; + sourceTree = "<group>"; + }; + 34B3B5090FD7E71D0018C227 /* interceptor */ = { + isa = PBXGroup; + children = ( + 34B3B5590FD7E8080018C227 /* InterceptorTest.ice */, + 34B3B55A0FD7E8080018C227 /* MyObjectI.h */, + 34B3B55B0FD7E8080018C227 /* MyObjectI.m */, + 34B3B55C0FD7E8080018C227 /* Client.m */, + 34B3B55D0FD7E8080018C227 /* InterceptorI.m */, + 34B3B55E0FD7E8080018C227 /* InterceptorI.h */, + ); + name = interceptor; + sourceTree = "<group>"; + }; + 34B3B50E0FD7E7230018C227 /* location */ = { + isa = PBXGroup; + children = ( + 34B3B5630FD7E81B0018C227 /* Client.m */, + 34B3B5640FD7E81B0018C227 /* TestI.h */, + 34B3B5650FD7E81B0018C227 /* Server.m */, + 34B3B5660FD7E81B0018C227 /* TestI.m */, + 34B3B5670FD7E81B0018C227 /* LocationTest.ice */, + 34B3B5680FD7E81B0018C227 /* ServerLocator.m */, + 34B3B5690FD7E81B0018C227 /* ServerLocator.h */, + 34B3B56A0FD7E81B0018C227 /* AllTests.m */, + ); + name = location; + sourceTree = "<group>"; + }; + 34B3B50F0FD7E7280018C227 /* objects */ = { + isa = PBXGroup; + children = ( + 34B3B5710FD7E8270018C227 /* Client.m */, + 34B3B5720FD7E8270018C227 /* TestI.m */, + 34B3B5730FD7E8270018C227 /* ObjectsTest.ice */, + 34B3B5740FD7E8270018C227 /* Server.m */, + 34B3B5750FD7E8270018C227 /* TestI.h */, + 34B3B5760FD7E8270018C227 /* AllTests.m */, + ); + name = objects; + sourceTree = "<group>"; + }; + 34B3B5110FD7E72F0018C227 /* proxy */ = { + isa = PBXGroup; + children = ( + 34B3B57C0FD7E8390018C227 /* TestI.h */, + 34B3B57D0FD7E8390018C227 /* Client.m */, + 34B3B57E0FD7E8390018C227 /* Server.m */, + 34B3B57F0FD7E8390018C227 /* TestI.m */, + 34B3B5800FD7E8390018C227 /* ProxyTest.ice */, + 34B3B5810FD7E8390018C227 /* AllTests.m */, + ); + name = proxy; + sourceTree = "<group>"; + }; + 34B3B5120FD7E7340018C227 /* retry */ = { + isa = PBXGroup; + children = ( + 34B3B5870FD7E8440018C227 /* TestI.m */, + 34B3B5880FD7E8440018C227 /* RetryTest.ice */, + 34B3B5890FD7E8440018C227 /* TestI.h */, + 34B3B58A0FD7E8440018C227 /* AllTests.m */, + 34B3B58B0FD7E8440018C227 /* Client.m */, + 34B3B58C0FD7E8440018C227 /* Server.m */, + ); + name = retry; + sourceTree = "<group>"; + }; + 34B3B5140FD7E73E0018C227 /* timeout */ = { + isa = PBXGroup; + children = ( + 34B3B5920FD7E8560018C227 /* AllTests.m */, + 34B3B5930FD7E8560018C227 /* Client.m */, + 34B3B5940FD7E8560018C227 /* Server.m */, + 34B3B5950FD7E8560018C227 /* TestI.m */, + 34B3B5960FD7E8560018C227 /* TimeoutTest.ice */, + 34B3B5970FD7E8560018C227 /* TestI.h */, + ); + name = timeout; + sourceTree = "<group>"; + }; + 34B3B5160FD7E7490018C227 /* slicing-exceptions */ = { + isa = PBXGroup; + children = ( + 34B3B59D0FD7E8640018C227 /* AllTests.m */, + 34B3B59E0FD7E8640018C227 /* Client.m */, + 34B3B59F0FD7E8640018C227 /* SlicingExceptionsTestServer.ice */, + 34B3B5A00FD7E8640018C227 /* TestI.m */, + 34B3B5A10FD7E8640018C227 /* TestI.h */, + 34B3B5A20FD7E8640018C227 /* SlicingExceptionsTestClient.ice */, + 34B3B5A30FD7E8640018C227 /* Server.m */, + ); + name = "slicing-exceptions"; + sourceTree = "<group>"; + }; + 820AA564170D92EA000DD016 /* hash */ = { + isa = PBXGroup; + children = ( + 820AA55E170D92D6000DD016 /* AllTests.m */, + 820AA55F170D92D6000DD016 /* Client.m */, + 820AA560170D92D6000DD016 /* HashTest.ice */, + ); + name = hash; + sourceTree = "<group>"; + }; + 82591287174D147C00B3F597 /* services */ = { + isa = PBXGroup; + children = ( + 82591289174D147C00B3F597 /* AllTests.m */, + 8259128A174D147C00B3F597 /* Client.m */, + 8259128D174D147C00B3F597 /* ServicesTest.ice */, + ); + name = services; + path = ../../Ice/services; + sourceTree = "<group>"; + }; + 8291ABFF1744E0C600A5CEFE /* metrics */ = { + isa = PBXGroup; + children = ( + 8291AC031744E0C600A5CEFE /* AllTests.m */, + 8291AC061744E0C600A5CEFE /* Client.m */, + 8291AC0A1744E0C600A5CEFE /* MetricsTest.ice */, + 8291AC0F1744E0C600A5CEFE /* Server.m */, + 8291AC111744E0C600A5CEFE /* TestI.h */, + 8291AC121744E0C600A5CEFE /* TestI.m */, + ); + name = metrics; + path = ../../Ice/metrics; + sourceTree = "<group>"; + }; + 82E5DA73173C1993007C2602 /* info */ = { + isa = PBXGroup; + children = ( + 82E5DA77173C1993007C2602 /* AllTests.m */, + 82E5DA7A173C1993007C2602 /* Client.m */, + 82E5DA7D173C1993007C2602 /* InfoTest.ice */, + 82E5DA83173C1993007C2602 /* Server.m */, + 82E5DA85173C1993007C2602 /* TestI.h */, + 82E5DA86173C1993007C2602 /* TestI.m */, + ); + name = info; + path = ../../Ice/info; + sourceTree = "<group>"; + }; + 82F4E87B17328C7400920D6D /* enums */ = { + isa = PBXGroup; + children = ( + 82F4E87F17328C7400920D6D /* AllTests.m */, + 82F4E88017328C7400920D6D /* Client.m */, + 82F4E88117328C7400920D6D /* EnumTest.ice */, + 82F4E88417328C7400920D6D /* Server.m */, + 82F4E88517328C7400920D6D /* TestI.h */, + 82F4E88617328C7400920D6D /* TestI.m */, + ); + name = enums; + path = ../../Ice/enums; + sourceTree = "<group>"; + }; + D83717A11BFFC64D005D65BC /* Tests */ = { + isa = PBXGroup; + children = ( + 14F560DE1A7010890028417F /* admin */, + 14CBD36817588C16000D3373 /* stream */, + 82591287174D147C00B3F597 /* services */, + 8291ABFF1744E0C600A5CEFE /* metrics */, + 82E5DA73173C1993007C2602 /* info */, + 82F4E87B17328C7400920D6D /* enums */, + 14D5BF941240C5EB00A19716 /* defaultValue */, + 140157B6123645B3007C165E /* dispatcher */, + 140064111234DFBF00249AA4 /* invoke */, + 140A3926122CF0EC00E1931D /* ami */, + 146B33FE0FE8BBF9009C6199 /* hold */, + 34B3B5160FD7E7490018C227 /* slicing-exceptions */, + 34B3B5140FD7E73E0018C227 /* timeout */, + 34B3B5120FD7E7340018C227 /* retry */, + 34B3B5110FD7E72F0018C227 /* proxy */, + 34B3B50F0FD7E7280018C227 /* objects */, + 34B3B50E0FD7E7230018C227 /* location */, + 34B3B5090FD7E71D0018C227 /* interceptor */, + 34B3B5080FD7E7130018C227 /* inheritance */, + 820AA564170D92EA000DD016 /* hash */, + 34B3B5070FD7E7090018C227 /* facets */, + 34B3B5060FD7E7030018C227 /* exceptions */, + 34B3B5050FD7E6FC0018C227 /* defaultServant */, + 34B3B5040FD7E6F60018C227 /* binding */, + 34B3B5030FD7E6EB0018C227 /* adapterDeactivation */, + 34B3B4FF0FD7AB4E0018C227 /* Common */, + 34B3B4A90FD7A7510018C227 /* operations */, + 14B5567D175371DB00FDA693 /* optional */, + ); + name = Tests; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 14532D301761D39700176FE1 /* Objective-C Test Suite ARC */ = { + isa = PBXNativeTarget; + buildConfigurationList = 14532DC81761D39700176FE1 /* Build configuration list for PBXNativeTarget "Objective-C Test Suite ARC" */; + buildPhases = ( + 14532D311761D39700176FE1 /* Resources */, + 14532D3D1761D39700176FE1 /* Sources */, + 14532DC11761D39700176FE1 /* Frameworks */, + ); + buildRules = ( + D8D23B1E1D8AF52E00EE192D /* PBXBuildRule */, + ); + dependencies = ( + ); + name = "Objective-C Test Suite ARC"; + productName = container; + productReference = 14532DCD1761D39700176FE1 /* Objective-C Test Suite.app */; + productType = "com.apple.product-type.application"; + }; + 1D6058900D05DD3D006BFB54 /* Objective-C Test Suite */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Objective-C Test Suite" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + ); + buildRules = ( + D81F86FA1D89D3B50076917C /* PBXBuildRule */, + ); + dependencies = ( + ); + name = "Objective-C Test Suite"; + productName = container; + productReference = 1D6058910D05DD3D006BFB54 /* Objective-C Test Suite.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0710; + TargetAttributes = { + 14532D301761D39700176FE1 = { + DevelopmentTeam = U4TBVKNQ7F; + }; + }; + }; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Objective-C Test Suite" */; + compatibilityVersion = "Xcode 6.3"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + en, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1D6058900D05DD3D006BFB54 /* Objective-C Test Suite */, + 14532D301761D39700176FE1 /* Objective-C Test Suite ARC */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 14532D311761D39700176FE1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 14532D321761D39700176FE1 /* MainWindow.xib in Resources */, + 14532D331761D39700176FE1 /* TestView.xib in Resources */, + 14532D341761D39700176FE1 /* TestSelect.xib in Resources */, + 14532D361761D39700176FE1 /* server.p12 in Resources */, + 14532D371761D39700176FE1 /* client.p12 in Resources */, + 14532D381761D39700176FE1 /* cacert.der in Resources */, + 14532D391761D39700176FE1 /* TestSelect-iPad.xib in Resources */, + 14532D3A1761D39700176FE1 /* TestView-iPad.xib in Resources */, + 82D53AA71823264600703264 /* Images.xcassets in Resources */, + 14532D3B1761D39700176FE1 /* MainWindow-iPad.xib in Resources */, + 14532D3C1761D39700176FE1 /* Default-568h@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, + 2899E5220DE3E06400AC0155 /* TestView.xib in Resources */, + 34B7662C0E8D55FE00CE4701 /* TestSelect.xib in Resources */, + 342EBA870E926E98000051FA /* server.p12 in Resources */, + 342EBA890E926E9F000051FA /* client.p12 in Resources */, + 342EBA8B0E926F90000051FA /* cacert.der in Resources */, + 34730A11122BF6C300D293CC /* TestSelect-iPad.xib in Resources */, + 34730A15122BF6ED00D293CC /* TestView-iPad.xib in Resources */, + D83717A01BFFC5BE005D65BC /* Images.xcassets in Resources */, + 34C618AF122C035000F60A28 /* MainWindow-iPad.xib in Resources */, + 14934E65161AFC8C00348FC2 /* Default-568h@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 14532D3D1761D39700176FE1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 146D4AB21A77D82000930925 /* AdminTest.ice in Sources */, + 146D4AB31A77D82000930925 /* AllTests.m in Sources */, + 146D4AB41A77D82000930925 /* Client.m in Sources */, + 146D4AB51A77D82000930925 /* Server.m in Sources */, + 146D4AB61A77D82000930925 /* TestI.m in Sources */, + 14532D3E1761D39700176FE1 /* main.m in Sources */, + 14532D3F1761D39700176FE1 /* AppDelegate.m in Sources */, + 14532D401761D39700176FE1 /* TestViewController.m in Sources */, + 14532D411761D39700176FE1 /* TestSelectController.m in Sources */, + 14532D421761D39700176FE1 /* Test.m in Sources */, + 14532D431761D39700176FE1 /* AllTests.m in Sources */, + 14532D441761D39700176FE1 /* BatchOneways.m in Sources */, + 14532D451761D39700176FE1 /* Client.m in Sources */, + 14532D461761D39700176FE1 /* Oneways.m in Sources */, + 14532D471761D39700176FE1 /* Server.m in Sources */, + 14532D481761D39700176FE1 /* Twoways.m in Sources */, + 14532D491761D39700176FE1 /* TestI.m in Sources */, + 14532D4A1761D39700176FE1 /* TestCommon.m in Sources */, + 14532D4B1761D39700176FE1 /* AllTests.m in Sources */, + 14532D4C1761D39700176FE1 /* Client.m in Sources */, + 14532D4D1761D39700176FE1 /* Server.m in Sources */, + 14532D4E1761D39700176FE1 /* TestI.m in Sources */, + 14532D4F1761D39700176FE1 /* AllTests.m in Sources */, + 14532D501761D39700176FE1 /* Client.m in Sources */, + 14532D511761D39700176FE1 /* Server.m in Sources */, + 14532D521761D39700176FE1 /* BindingTest.ice in Sources */, + 14532D531761D39700176FE1 /* TestI.m in Sources */, + 14532D541761D39700176FE1 /* Client.m in Sources */, + 14532D551761D39700176FE1 /* DefaultServantTest.ice in Sources */, + 14532D571761D39700176FE1 /* Client.m in Sources */, + 14532D581761D39700176FE1 /* ExceptionsTest.ice in Sources */, + 14532D591761D39700176FE1 /* TestI.m in Sources */, + 14532D5A1761D39700176FE1 /* AllTests.m in Sources */, + 14532D5B1761D39700176FE1 /* Server.m in Sources */, + 14532D5C1761D39700176FE1 /* TestI.m in Sources */, + 14532D5D1761D39700176FE1 /* AllTests.m in Sources */, + 14532D5E1761D39700176FE1 /* Client.m in Sources */, + 14532D5F1761D39700176FE1 /* FacetsTest.ice in Sources */, + 14532D601761D39700176FE1 /* Server.m in Sources */, + 14532D611761D39700176FE1 /* AllTests.m in Sources */, + 14532D621761D39700176FE1 /* TestI.m in Sources */, + 14532D631761D39700176FE1 /* Server.m in Sources */, + 14532D641761D39700176FE1 /* InheritanceTest.ice in Sources */, + 14532D651761D39700176FE1 /* Client.m in Sources */, + 14532D661761D39700176FE1 /* InterceptorTest.ice in Sources */, + 14532D671761D39700176FE1 /* MyObjectI.m in Sources */, + 14532D681761D39700176FE1 /* Client.m in Sources */, + 14532D691761D39700176FE1 /* InterceptorI.m in Sources */, + 14532D6A1761D39700176FE1 /* Client.m in Sources */, + 14532D6B1761D39700176FE1 /* Server.m in Sources */, + 14532D6C1761D39700176FE1 /* TestI.m in Sources */, + 14532D6D1761D39700176FE1 /* LocationTest.ice in Sources */, + 14532D6E1761D39700176FE1 /* ServerLocator.m in Sources */, + 14532D6F1761D39700176FE1 /* AllTests.m in Sources */, + 14532D701761D39700176FE1 /* Client.m in Sources */, + 14532D711761D39700176FE1 /* TestI.m in Sources */, + 14532D721761D39700176FE1 /* ObjectsTest.ice in Sources */, + 14532D731761D39700176FE1 /* Server.m in Sources */, + 14532D741761D39700176FE1 /* AllTests.m in Sources */, + 14532D751761D39700176FE1 /* Client.m in Sources */, + 14532D761761D39700176FE1 /* Server.m in Sources */, + 14532D771761D39700176FE1 /* TestI.m in Sources */, + 14532D781761D39700176FE1 /* ProxyTest.ice in Sources */, + 14532D791761D39700176FE1 /* AllTests.m in Sources */, + 14532D7A1761D39700176FE1 /* TestI.m in Sources */, + 14532D7B1761D39700176FE1 /* RetryTest.ice in Sources */, + 14532D7C1761D39700176FE1 /* AllTests.m in Sources */, + 14532D7D1761D39700176FE1 /* Client.m in Sources */, + 14532D7E1761D39700176FE1 /* Server.m in Sources */, + 14532D7F1761D39700176FE1 /* AllTests.m in Sources */, + 14532D801761D39700176FE1 /* Client.m in Sources */, + 14532D811761D39700176FE1 /* Server.m in Sources */, + 14532D821761D39700176FE1 /* TestI.m in Sources */, + 14532D831761D39700176FE1 /* TimeoutTest.ice in Sources */, + 14532D841761D39700176FE1 /* AllTests.m in Sources */, + 14532D851761D39700176FE1 /* Client.m in Sources */, + 14532D861761D39700176FE1 /* SlicingExceptionsTestServer.ice in Sources */, + 14532D871761D39700176FE1 /* TestI.m in Sources */, + 14532D881761D39700176FE1 /* SlicingExceptionsTestClient.ice in Sources */, + 14532D891761D39700176FE1 /* Server.m in Sources */, + 14532D8A1761D39700176FE1 /* AdapterDeactivationTest.ice in Sources */, + 14532D8B1761D39700176FE1 /* OperationsTest.ice in Sources */, + 14532D8C1761D39700176FE1 /* AllTests.m in Sources */, + 1450A10A1ABC09B400A71895 /* BatchOnewaysAMI.m in Sources */, + 14532D8D1761D39700176FE1 /* Client.m in Sources */, + 14532D8E1761D39700176FE1 /* Server.m in Sources */, + 14532D8F1761D39700176FE1 /* TestI.m in Sources */, + 14532D901761D39700176FE1 /* HoldTest.ice in Sources */, + 14532D911761D39700176FE1 /* TestI.m in Sources */, + 14532D921761D39700176FE1 /* Client.m in Sources */, + 14532D931761D39700176FE1 /* Server.m in Sources */, + 14532D941761D39700176FE1 /* AllTests.m in Sources */, + 14532D951761D39700176FE1 /* AMITest.ice in Sources */, + 14532D961761D39700176FE1 /* Server.m in Sources */, + 14532D971761D39700176FE1 /* InvokeTest.ice in Sources */, + 14532D981761D39700176FE1 /* Client.m in Sources */, + 1469025D1CF7228100DE11F2 /* TestI.m in Sources */, + 14532D991761D39700176FE1 /* BlobjectI.m in Sources */, + 14532D9A1761D39700176FE1 /* AllTests.m in Sources */, + 14532D9B1761D39700176FE1 /* TwowaysNewAMI.m in Sources */, + 14532D9C1761D39700176FE1 /* OnewaysNewAMI.m in Sources */, + 14532D9D1761D39700176FE1 /* TestI.m in Sources */, + 14532D9E1761D39700176FE1 /* AllTests.m in Sources */, + 14532D9F1761D39700176FE1 /* Client.m in Sources */, + 14532DA01761D39700176FE1 /* DispatcherTest.ice in Sources */, + 14532DA11761D39700176FE1 /* Server.m in Sources */, + 14532DA21761D39700176FE1 /* AllTests.m in Sources */, + 14532DA31761D39700176FE1 /* Client.m in Sources */, + 14532DA41761D39700176FE1 /* DefaultValueTest.ice in Sources */, + 14532DA51761D39700176FE1 /* AllTests.m in Sources */, + 14532DA61761D39700176FE1 /* Client.m in Sources */, + 14532DA71761D39700176FE1 /* HashTest.ice in Sources */, + 14532DA81761D39700176FE1 /* AllTests.m in Sources */, + 14532DA91761D39700176FE1 /* Client.m in Sources */, + 14532DAA1761D39700176FE1 /* EnumTest.ice in Sources */, + 14532DAB1761D39700176FE1 /* Server.m in Sources */, + 14532DAC1761D39700176FE1 /* TestI.m in Sources */, + 14532DAD1761D39700176FE1 /* AllTests.m in Sources */, + 14532DAE1761D39700176FE1 /* Client.m in Sources */, + 14532DAF1761D39700176FE1 /* InfoTest.ice in Sources */, + 14532DB01761D39700176FE1 /* Server.m in Sources */, + 14532DB11761D39700176FE1 /* TestI.m in Sources */, + 14532DB21761D39700176FE1 /* AllTests.m in Sources */, + 14532DB31761D39700176FE1 /* Client.m in Sources */, + 14532DB41761D39700176FE1 /* MetricsTest.ice in Sources */, + 14532DB51761D39700176FE1 /* Server.m in Sources */, + 14532DB61761D39700176FE1 /* TestI.m in Sources */, + 14532DB71761D39700176FE1 /* AllTests.m in Sources */, + 14532DB81761D39700176FE1 /* Client.m in Sources */, + 14532DB91761D39700176FE1 /* ServicesTest.ice in Sources */, + 14532DBA1761D39700176FE1 /* AllTests.m in Sources */, + 14532DBB1761D39700176FE1 /* Client.m in Sources */, + 14532DBC1761D39700176FE1 /* OptionalTest.ice in Sources */, + 14532DBD1761D39700176FE1 /* Server.m in Sources */, + 14532DBE1761D39700176FE1 /* TestI.m in Sources */, + 14532DBF1761D39700176FE1 /* Client.m in Sources */, + 14532DC01761D39700176FE1 /* StreamTest.ice in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589B0D05DD56006BFB54 /* main.m in Sources */, + 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */, + 28D7ACF80DDB3853001CB0EB /* TestViewController.m in Sources */, + 34B7662A0E8D55E700CE4701 /* TestSelectController.m in Sources */, + 34B766340E8D56C700CE4701 /* Test.m in Sources */, + 34B3B4B50FD7A7700018C227 /* AllTests.m in Sources */, + 34B3B4B60FD7A7700018C227 /* BatchOneways.m in Sources */, + 34B3B4B70FD7A7700018C227 /* Client.m in Sources */, + 34B3B4B80FD7A7700018C227 /* Oneways.m in Sources */, + 34B3B4BA0FD7A7700018C227 /* Server.m in Sources */, + 34B3B4BD0FD7A7700018C227 /* Twoways.m in Sources */, + 34B3B4F30FD7A9660018C227 /* TestI.m in Sources */, + 34B3B5010FD7AB5C0018C227 /* TestCommon.m in Sources */, + 34B3B5200FD7E7740018C227 /* AllTests.m in Sources */, + 34B3B5210FD7E7740018C227 /* Client.m in Sources */, + 34B3B5230FD7E7740018C227 /* Server.m in Sources */, + 34B3B5250FD7E7740018C227 /* TestI.m in Sources */, + 34B3B52C0FD7E78B0018C227 /* AllTests.m in Sources */, + 34B3B52D0FD7E78B0018C227 /* Client.m in Sources */, + 34B3B52E0FD7E78B0018C227 /* Server.m in Sources */, + 34B3B52F0FD7E78B0018C227 /* BindingTest.ice in Sources */, + 34B3B5300FD7E78B0018C227 /* TestI.m in Sources */, + 34B3B5350FD7E7BD0018C227 /* Client.m in Sources */, + 34B3B5360FD7E7BD0018C227 /* DefaultServantTest.ice in Sources */, + 34B3B53E0FD7E7CA0018C227 /* Client.m in Sources */, + 34B3B53F0FD7E7CA0018C227 /* ExceptionsTest.ice in Sources */, + 34B3B5400FD7E7CA0018C227 /* TestI.m in Sources */, + 34B3B5410FD7E7CA0018C227 /* AllTests.m in Sources */, + 34B3B5420FD7E7CA0018C227 /* Server.m in Sources */, + 34B3B5490FD7E7E60018C227 /* TestI.m in Sources */, + 34B3B54A0FD7E7E60018C227 /* AllTests.m in Sources */, + 34B3B54B0FD7E7E60018C227 /* Client.m in Sources */, + 34B3B54C0FD7E7E60018C227 /* FacetsTest.ice in Sources */, + 34B3B54D0FD7E7E60018C227 /* Server.m in Sources */, + 34B3B5540FD7E7FB0018C227 /* AllTests.m in Sources */, + 34B3B5550FD7E7FB0018C227 /* TestI.m in Sources */, + 34B3B5560FD7E7FB0018C227 /* Server.m in Sources */, + 34B3B5570FD7E7FB0018C227 /* InheritanceTest.ice in Sources */, + 34B3B5580FD7E7FB0018C227 /* Client.m in Sources */, + 34B3B55F0FD7E8080018C227 /* InterceptorTest.ice in Sources */, + 34B3B5600FD7E8080018C227 /* MyObjectI.m in Sources */, + 34B3B5610FD7E8080018C227 /* Client.m in Sources */, + 34B3B5620FD7E8080018C227 /* InterceptorI.m in Sources */, + 34B3B56B0FD7E81B0018C227 /* Client.m in Sources */, + 34B3B56C0FD7E81B0018C227 /* Server.m in Sources */, + 34B3B56D0FD7E81B0018C227 /* TestI.m in Sources */, + 34B3B56E0FD7E81B0018C227 /* LocationTest.ice in Sources */, + 34B3B56F0FD7E81B0018C227 /* ServerLocator.m in Sources */, + 34B3B5700FD7E81B0018C227 /* AllTests.m in Sources */, + 34B3B5770FD7E8270018C227 /* Client.m in Sources */, + 34B3B5780FD7E8270018C227 /* TestI.m in Sources */, + 34B3B5790FD7E8270018C227 /* ObjectsTest.ice in Sources */, + 34B3B57A0FD7E8270018C227 /* Server.m in Sources */, + 34B3B57B0FD7E8270018C227 /* AllTests.m in Sources */, + 34B3B5820FD7E8390018C227 /* Client.m in Sources */, + 34B3B5830FD7E8390018C227 /* Server.m in Sources */, + 34B3B5840FD7E8390018C227 /* TestI.m in Sources */, + 34B3B5850FD7E8390018C227 /* ProxyTest.ice in Sources */, + 34B3B5860FD7E8390018C227 /* AllTests.m in Sources */, + 34B3B58D0FD7E8440018C227 /* TestI.m in Sources */, + 34B3B58E0FD7E8440018C227 /* RetryTest.ice in Sources */, + 34B3B58F0FD7E8440018C227 /* AllTests.m in Sources */, + 34B3B5900FD7E8440018C227 /* Client.m in Sources */, + 34B3B5910FD7E8440018C227 /* Server.m in Sources */, + 34B3B5980FD7E8560018C227 /* AllTests.m in Sources */, + 34B3B5990FD7E8560018C227 /* Client.m in Sources */, + 34B3B59A0FD7E8560018C227 /* Server.m in Sources */, + 34B3B59B0FD7E8560018C227 /* TestI.m in Sources */, + 34B3B59C0FD7E8560018C227 /* TimeoutTest.ice in Sources */, + 34B3B5A40FD7E8640018C227 /* AllTests.m in Sources */, + 34B3B5A50FD7E8640018C227 /* Client.m in Sources */, + 34B3B5A60FD7E8640018C227 /* SlicingExceptionsTestServer.ice in Sources */, + 34B3B5A70FD7E8640018C227 /* TestI.m in Sources */, + 34B3B5A80FD7E8640018C227 /* SlicingExceptionsTestClient.ice in Sources */, + 34B3B5A90FD7E8640018C227 /* Server.m in Sources */, + 34B3B6030FD7EFCC0018C227 /* AdapterDeactivationTest.ice in Sources */, + 34B3B66B0FD7F41C0018C227 /* OperationsTest.ice in Sources */, + 14F560E61A7010B80028417F /* AllTests.m in Sources */, + 146B34050FE8BC61009C6199 /* AllTests.m in Sources */, + 146B34060FE8BC61009C6199 /* Client.m in Sources */, + 146B34070FE8BC61009C6199 /* Server.m in Sources */, + 146B34090FE8BC61009C6199 /* TestI.m in Sources */, + 14F560E91A7010B80028417F /* TestI.m in Sources */, + 1450A1091ABC09B400A71895 /* BatchOnewaysAMI.m in Sources */, + 146B340B0FE8BD58009C6199 /* HoldTest.ice in Sources */, + 140A392D122CF11300E1931D /* TestI.m in Sources */, + 140A392E122CF11300E1931D /* Client.m in Sources */, + 140A392F122CF11300E1931D /* Server.m in Sources */, + 140A3930122CF11300E1931D /* AllTests.m in Sources */, + 140A3931122CF11300E1931D /* AMITest.ice in Sources */, + 1400641A1234DFE800249AA4 /* Server.m in Sources */, + 1400641B1234DFE800249AA4 /* InvokeTest.ice in Sources */, + 1400641C1234DFE800249AA4 /* Client.m in Sources */, + 1400641D1234DFE800249AA4 /* BlobjectI.m in Sources */, + 1400641E1234DFE800249AA4 /* AllTests.m in Sources */, + 1400642B1234E0E900249AA4 /* TwowaysNewAMI.m in Sources */, + 1469025C1CF7228100DE11F2 /* TestI.m in Sources */, + 1400642C1234E0E900249AA4 /* OnewaysNewAMI.m in Sources */, + 140157C1123645D0007C165E /* TestI.m in Sources */, + 140157C2123645D0007C165E /* AllTests.m in Sources */, + 140157C3123645D0007C165E /* Client.m in Sources */, + 140157C5123645D0007C165E /* DispatcherTest.ice in Sources */, + 140157C6123645D0007C165E /* Server.m in Sources */, + 14D5BF981240C61900A19716 /* AllTests.m in Sources */, + 14F560E51A7010B80028417F /* AdminTest.ice in Sources */, + 14D5BF991240C61900A19716 /* Client.m in Sources */, + 14D5BF9A1240C61900A19716 /* DefaultValueTest.ice in Sources */, + 820AA561170D92D6000DD016 /* AllTests.m in Sources */, + 820AA562170D92D6000DD016 /* Client.m in Sources */, + 820AA563170D92D6000DD016 /* HashTest.ice in Sources */, + 82F4E88A17328C7400920D6D /* AllTests.m in Sources */, + 82F4E88B17328C7400920D6D /* Client.m in Sources */, + 82F4E88C17328C7400920D6D /* EnumTest.ice in Sources */, + 82F4E88F17328C7400920D6D /* Server.m in Sources */, + 82F4E89017328C7400920D6D /* TestI.m in Sources */, + 82E5DA8B173C1993007C2602 /* AllTests.m in Sources */, + 82E5DA8E173C1993007C2602 /* Client.m in Sources */, + 82E5DA90173C1993007C2602 /* InfoTest.ice in Sources */, + 82E5DA96173C1993007C2602 /* Server.m in Sources */, + 82E5DA98173C1993007C2602 /* TestI.m in Sources */, + 8291AC171744E0C600A5CEFE /* AllTests.m in Sources */, + 8291AC1A1744E0C600A5CEFE /* Client.m in Sources */, + 8291AC1D1744E0C600A5CEFE /* MetricsTest.ice in Sources */, + 8291AC221744E0C600A5CEFE /* Server.m in Sources */, + 14F560E71A7010B80028417F /* Client.m in Sources */, + 8291AC241744E0C600A5CEFE /* TestI.m in Sources */, + 14F560E81A7010B80028417F /* Server.m in Sources */, + 8259128F174D147C00B3F597 /* AllTests.m in Sources */, + 82591290174D147C00B3F597 /* Client.m in Sources */, + 82591293174D147C00B3F597 /* ServicesTest.ice in Sources */, + 14B556841753721F00FDA693 /* AllTests.m in Sources */, + 14B556851753721F00FDA693 /* Client.m in Sources */, + 14B556861753721F00FDA693 /* OptionalTest.ice in Sources */, + 14B556871753721F00FDA693 /* Server.m in Sources */, + 14B556881753721F00FDA693 /* TestI.m in Sources */, + 14CBD36D17588C51000D3373 /* Client.m in Sources */, + 14CBD36E17588C51000D3373 /* StreamTest.ice in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 14532DC91761D39700176FE1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = U4TBVKNQ7F; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Objective-C Test Suite_Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ""; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../Ice, + Classes, + generated, + ); + INFOPLIST_FILE = "$(SRCROOT)/Info-ARC.plist"; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lIce", + "-lIceSSL", + "-lGlacier2", + "-lIceGrid", + "-lIceStorm", + "-lIceObjc", + "-lIceSSLObjc", + "-lGlacier2Objc", + "-lIceGridObjc", + "-lIceStormObjc", + "-lc++", + "-lbz2", + "-liconv", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.Ice-Touch-Objective-C-Test-Suite-ARC"; + PRODUCT_NAME = "Objective-C Test Suite"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 14532DCA1761D39700176FE1 /* Debug ARC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = U4TBVKNQ7F; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Objective-C Test Suite_Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ""; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../Ice, + Classes, + generated, + ); + INFOPLIST_FILE = "$(SRCROOT)/Info-ARC.plist"; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = "-fobjc-arc-exceptions"; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lIce", + "-lIceSSL", + "-lGlacier2", + "-lIceGrid", + "-lIceStorm", + "-lIceObjc", + "-lIceSSLObjc", + "-lGlacier2Objc", + "-lIceGridObjc", + "-lIceStormObjc", + "-lc++", + "-lbz2", + "-liconv", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.Ice-Touch-Objective-C-Test-Suite-ARC"; + PRODUCT_NAME = "Objective-C Test Suite"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Debug ARC"; + }; + 14532DCB1761D39700176FE1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = NO; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = U4TBVKNQ7F; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Objective-C Test Suite_Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ""; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../Ice, + Classes, + generated, + ); + INFOPLIST_FILE = "$(SRCROOT)/Info-ARC.plist"; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lIce", + "-lIceSSL", + "-lGlacier2", + "-lIceGrid", + "-lIceStorm", + "-lIceObjc", + "-lIceSSLObjc", + "-lGlacier2Objc", + "-lIceGridObjc", + "-lIceStormObjc", + "-lc++", + "-lbz2", + "-liconv", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.Ice-Touch-Objective-C-Test-Suite-ARC"; + PRODUCT_NAME = "Objective-C Test Suite"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 14532DCC1761D39700176FE1 /* Release ARC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = U4TBVKNQ7F; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "Objective-C Test Suite_Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ""; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../Ice, + Classes, + generated, + ); + INFOPLIST_FILE = "$(SRCROOT)/Info-ARC.plist"; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = "-fobjc-arc-exceptions"; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lIce", + "-lIceSSL", + "-lGlacier2", + "-lIceGrid", + "-lIceStorm", + "-lIceObjc", + "-lIceSSLObjc", + "-lGlacier2Objc", + "-lIceGridObjc", + "-lIceStormObjc", + "-lc++", + "-lbz2", + "-liconv", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.Ice-Touch-Objective-C-Test-Suite-ARC"; + PRODUCT_NAME = "Objective-C Test Suite"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Release ARC"; + }; + 1488315C1761CC02007DF8F1 /* Debug ARC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ADDITIONAL_SDKS = "../../../IceSDK/$(PLATFORM_NAME).sdk"; + CLANG_ENABLE_OBJC_ARC = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = "Debug ARC"; + }; + 1488315D1761CC02007DF8F1 /* Debug ARC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ICE_OBJC_NOGC; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../Ice, + Classes, + generated, + ); + INFOPLIST_FILE = Info.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = "-fobjc-arc-exceptions"; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lIce", + "-lIceSSL", + "-lGlacier2", + "-lIceGrid", + "-lIceStorm", + "-lIceObjc", + "-lIceSSLObjc", + "-lGlacier2Objc", + "-lIceGridObjc", + "-lIceStormObjc", + "-lc++", + "-lbz2", + "-liconv", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.Ice-Touch-Objective-C-Test-Suite"; + PRODUCT_NAME = "Objective-C Test Suite"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Debug ARC"; + }; + 1488315E1761CC2B007DF8F1 /* Release ARC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ADDITIONAL_SDKS = "../../../IceSDK/$(PLATFORM_NAME).sdk"; + CLANG_ENABLE_OBJC_ARC = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + SDKROOT = iphoneos; + }; + name = "Release ARC"; + }; + 1488315F1761CC2B007DF8F1 /* Release ARC */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = ""; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ICE_OBJC_NOGC; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../Ice, + Classes, + generated, + ); + INFOPLIST_FILE = Info.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = "-fobjc-arc-exceptions"; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lIce", + "-lIceSSL", + "-lGlacier2", + "-lIceGrid", + "-lIceStorm", + "-lIceObjc", + "-lIceSSLObjc", + "-lGlacier2Objc", + "-lIceGridObjc", + "-lIceStormObjc", + "-lc++", + "-lbz2", + "-liconv", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.Ice-Touch-Objective-C-Test-Suite"; + PRODUCT_NAME = "Objective-C Test Suite"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Release ARC"; + }; + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ICE_OBJC_NOGC; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../Ice, + Classes, + generated, + ); + INFOPLIST_FILE = Info.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lIce", + "-lIceSSL", + "-lGlacier2", + "-lIceGrid", + "-lIceStorm", + "-lIceObjc", + "-lIceSSLObjc", + "-lGlacier2Objc", + "-lIceGridObjc", + "-lIceStormObjc", + "-lc++", + "-lbz2", + "-liconv", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.Ice-Touch-Objective-C-Test-Suite"; + PRODUCT_NAME = "Objective-C Test Suite"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_ARC = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = ""; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREPROCESSOR_DEFINITIONS = ICE_OBJC_NOGC; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ( + ../../include, + ../../Ice, + Classes, + generated, + ); + INFOPLIST_FILE = Info.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; + OTHER_LDFLAGS = ( + "-ObjC", + "-lIce", + "-lIceSSL", + "-lGlacier2", + "-lIceGrid", + "-lIceStorm", + "-lIceObjc", + "-lIceSSLObjc", + "-lGlacier2Objc", + "-lIceGridObjc", + "-lIceStormObjc", + "-lc++", + "-lbz2", + "-liconv", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zeroc.Ice-Touch-Objective-C-Test-Suite"; + PRODUCT_NAME = "Objective-C Test Suite"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ADDITIONAL_SDKS = "../../../IceSDK/$(PLATFORM_NAME).sdk"; + CLANG_ENABLE_OBJC_ARC = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ADDITIONAL_SDKS = "../../../IceSDK/$(PLATFORM_NAME).sdk"; + CLANG_ENABLE_OBJC_ARC = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + SDKROOT = iphoneos; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 14532DC81761D39700176FE1 /* Build configuration list for PBXNativeTarget "Objective-C Test Suite ARC" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 14532DC91761D39700176FE1 /* Debug */, + 14532DCA1761D39700176FE1 /* Debug ARC */, + 14532DCB1761D39700176FE1 /* Release */, + 14532DCC1761D39700176FE1 /* Release ARC */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Objective-C Test Suite" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 1488315D1761CC02007DF8F1 /* Debug ARC */, + 1D6058950D05DD3E006BFB54 /* Release */, + 1488315F1761CC2B007DF8F1 /* Release ARC */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Objective-C Test Suite" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + 1488315C1761CC02007DF8F1 /* Debug ARC */, + C01FCF5008A954540054247B /* Release */, + 1488315E1761CC2B007DF8F1 /* Release ARC */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/objective-c/test/ios/testSuiteApp/Objective-C Test Suite.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/objective-c/test/ios/testSuiteApp/Objective-C Test Suite.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000000..6d613748e57 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/Objective-C Test Suite.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "self:/Users/benoit/Devel/GitHub/ice/objective-c/test/ios/Objective-C Test Suite.xcodeproj"> + </FileRef> +</Workspace> diff --git a/objective-c/test/ios/testSuiteApp/TestSelect-iPad.xib b/objective-c/test/ios/testSuiteApp/TestSelect-iPad.xib new file mode 100644 index 00000000000..90145bdd782 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/TestSelect-iPad.xib @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TestSelectController"> + <connections> + <outlet property="loopSwitch" destination="13" id="15"/> + <outlet property="pickerView" destination="3" id="9"/> + <outlet property="protocol" destination="aUX-Gx-Jpg" id="xw4-aM-4dv"/> + <outlet property="view" destination="1" id="8"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view contentMode="scaleToFill" id="1"> + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <pickerView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="3"> + <rect key="frame" x="20" y="20" width="728" height="216"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <connections> + <outlet property="dataSource" destination="-1" id="5"/> + <outlet property="delegate" destination="-1" id="6"/> + </connections> + </pickerView> + <button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="4"> + <rect key="frame" x="326" y="373" width="117" height="37"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="15"/> + <state key="normal" title="Execute Test"> + <color key="titleShadowColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="disabled" title="Execute Test"/> + <state key="selected" title="Execute Test"/> + <state key="highlighted" title="Execute Test"> + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + </state> + <connections> + <action selector="runTest:" destination="-1" eventType="touchUpInside" id="7"/> + </connections> + </button> + <switch opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" id="13"> + <rect key="frame" x="395" y="321" width="51" height="31"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + </switch> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Loop" lineBreakMode="tailTruncation" minimumFontSize="10" id="14"> + <rect key="frame" x="324" y="324" width="42" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="aUX-Gx-Jpg"> + <rect key="frame" x="279" y="267" width="210" height="29"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <segments> + <segment title="TCP"/> + <segment title="SSL"/> + <segment title="WS"/> + <segment title="WSS"/> + </segments> + </segmentedControl> + </subviews> + <animations/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + <nil key="simulatedStatusBarMetrics"/> + </view> + </objects> +</document> diff --git a/objective-c/test/ios/testSuiteApp/TestSelect.xib b/objective-c/test/ios/testSuiteApp/TestSelect.xib new file mode 100644 index 00000000000..17b0b9b7e46 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/TestSelect.xib @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TestSelectController"> + <connections> + <outlet property="loopSwitch" destination="13" id="15"/> + <outlet property="pickerView" destination="3" id="9"/> + <outlet property="protocol" destination="16" id="17"/> + <outlet property="view" destination="1" id="8"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view contentMode="scaleToFill" id="1"> + <rect key="frame" x="0.0" y="0.0" width="320" height="480"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <pickerView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="3"> + <rect key="frame" x="-1" y="0.0" width="320" height="216"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <connections> + <outlet property="dataSource" destination="-1" id="5"/> + <outlet property="delegate" destination="-1" id="6"/> + </connections> + </pickerView> + <button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="4"> + <rect key="frame" x="100" y="368" width="117" height="37"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/> + <state key="normal" title="Execute Test"> + <color key="titleShadowColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="disabled" title="Execute Test"/> + <state key="selected" title="Execute Test"/> + <state key="highlighted" title="Execute Test"> + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + </state> + <connections> + <action selector="runTest:" destination="-1" eventType="touchUpInside" id="7"/> + </connections> + </button> + <switch opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" id="13"> + <rect key="frame" x="154" y="293" width="51" height="31"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + </switch> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Loop" lineBreakMode="tailTruncation" minimumFontSize="10" id="14"> + <rect key="frame" x="83" y="296" width="42" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/> + <nil key="highlightedColor"/> + </label> + <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="16"> + <rect key="frame" x="53" y="232" width="210" height="29"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <animations/> + <segments> + <segment title="TCP"/> + <segment title="SSL"/> + <segment title="WS"/> + <segment title="WSS"/> + </segments> + </segmentedControl> + </subviews> + <animations/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + <nil key="simulatedStatusBarMetrics"/> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + </view> + </objects> +</document> diff --git a/objective-c/test/ios/testSuiteApp/TestView-iPad.xib b/objective-c/test/ios/testSuiteApp/TestView-iPad.xib new file mode 100644 index 00000000000..06f8880bf36 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/TestView-iPad.xib @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TestViewController"> + <connections> + <outlet property="activity" destination="16" id="18"/> + <outlet property="nextButton" destination="17" id="20"/> + <outlet property="output" destination="9" id="12"/> + <outlet property="view" destination="6" id="8"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="6"> + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <tableView opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" bouncesZoom="NO" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="27" sectionFooterHeight="27" id="9"> + <rect key="frame" x="20" y="20" width="728" height="939"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <animations/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + <inset key="insetFor6xAndEarlier" minX="0.0" minY="20" maxX="0.0" maxY="-20"/> + <connections> + <outlet property="dataSource" destination="-1" id="10"/> + <outlet property="delegate" destination="-1" id="11"/> + </connections> + </tableView> + <activityIndicatorView hidden="YES" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="scaleToFill" hidesWhenStopped="YES" style="whiteLarge" id="16"> + <rect key="frame" x="242" y="967" width="37" height="37"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <animations/> + </activityIndicatorView> + <button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="17"> + <rect key="frame" x="20" y="967" width="214" height="37"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <animations/> + <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/> + <state key="normal" title="Launch Next Test"> + <color key="titleShadowColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="disabled" title="Launch Next Test"/> + <state key="selected" title="Launch Next Test"/> + <state key="highlighted" title="Launch Next Test"> + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + </state> + <connections> + <action selector="next:" destination="-1" eventType="touchUpInside" id="21"/> + </connections> + </button> + </subviews> + <animations/> + <color key="backgroundColor" white="0.75" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/> + </view> + </objects> +</document> diff --git a/objective-c/test/ios/testSuiteApp/TestView.xib b/objective-c/test/ios/testSuiteApp/TestView.xib new file mode 100644 index 00000000000..e8919a0a46a --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/TestView.xib @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none"> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TestViewController"> + <connections> + <outlet property="activity" destination="16" id="18"/> + <outlet property="nextButton" destination="17" id="20"/> + <outlet property="output" destination="9" id="12"/> + <outlet property="view" destination="6" id="8"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="6"> + <rect key="frame" x="0.0" y="0.0" width="320" height="460"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <tableView opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="bottomLeft" bouncesZoom="NO" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="27" sectionFooterHeight="27" id="9"> + <rect key="frame" x="0.0" y="0.0" width="320" height="403"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <animations/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + <connections> + <outlet property="dataSource" destination="-1" id="10"/> + <outlet property="delegate" destination="-1" id="11"/> + </connections> + </tableView> + <activityIndicatorView hidden="YES" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="bottomRight" hidesWhenStopped="YES" style="whiteLarge" id="16"> + <rect key="frame" x="242" y="411" width="37" height="37"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> + <animations/> + </activityIndicatorView> + <button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="17"> + <rect key="frame" x="10" y="412" width="214" height="37"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <animations/> + <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/> + <state key="normal" title="Launch Next Test"> + <color key="titleShadowColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="disabled" title="Launch Next Test"/> + <state key="selected" title="Launch Next Test"/> + <state key="highlighted" title="Launch Next Test"> + <color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + </state> + <connections> + <action selector="next:" destination="-1" eventType="touchUpInside" id="21"/> + </connections> + </button> + </subviews> + <animations/> + <color key="backgroundColor" white="0.75" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + </view> + </objects> +</document> diff --git a/objective-c/test/ios/testSuiteApp/main.m b/objective-c/test/ios/testSuiteApp/main.m new file mode 100644 index 00000000000..00f2d512d14 --- /dev/null +++ b/objective-c/test/ios/testSuiteApp/main.m @@ -0,0 +1,20 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#import <UIKit/UIKit.h> + +int main(int argc, char *argv[]) +{ + int retVal = EXIT_FAILURE; + @autoreleasepool + { + retVal = UIApplicationMain(argc, argv, nil, nil); + } + return retVal; +} |