summaryrefslogtreecommitdiff
path: root/objective-c/include
diff options
context:
space:
mode:
Diffstat (limited to 'objective-c/include')
-rw-r--r--objective-c/include/Makefile21
-rw-r--r--objective-c/include/objc/Glacier2.h10
-rw-r--r--objective-c/include/objc/Glacier2/.gitignore10
-rw-r--r--objective-c/include/objc/Glacier2/Glacier2.h14
-rw-r--r--objective-c/include/objc/Glacier2/Makefile26
-rw-r--r--objective-c/include/objc/Ice.h10
-rw-r--r--objective-c/include/objc/Ice/.gitignore39
-rw-r--r--objective-c/include/objc/Ice/Config.h63
-rw-r--r--objective-c/include/objc/Ice/DispatchInterceptor.h27
-rw-r--r--objective-c/include/objc/Ice/Exception.h47
-rw-r--r--objective-c/include/objc/Ice/Format.h15
-rw-r--r--objective-c/include/objc/Ice/Ice.h35
-rw-r--r--objective-c/include/objc/Ice/Initialize.h89
-rw-r--r--objective-c/include/objc/Ice/LocalObject.h16
-rw-r--r--objective-c/include/objc/Ice/Makefile26
-rw-r--r--objective-c/include/objc/Ice/NativePropertiesAdmin.h24
-rw-r--r--objective-c/include/objc/Ice/Object.h79
-rw-r--r--objective-c/include/objc/Ice/ObjectFactory.h16
-rw-r--r--objective-c/include/objc/Ice/Proxy.h191
-rw-r--r--objective-c/include/objc/Ice/SlicedData.h25
-rw-r--r--objective-c/include/objc/Ice/Stream.h374
-rw-r--r--objective-c/include/objc/IceGrid.h10
-rw-r--r--objective-c/include/objc/IceGrid/.gitignore15
-rw-r--r--objective-c/include/objc/IceGrid/IceGrid.h19
-rw-r--r--objective-c/include/objc/IceGrid/Makefile26
-rw-r--r--objective-c/include/objc/IceSSL.h10
-rw-r--r--objective-c/include/objc/IceSSL/.gitignore5
-rw-r--r--objective-c/include/objc/IceSSL/IceSSL.h11
-rw-r--r--objective-c/include/objc/IceSSL/Makefile26
-rw-r--r--objective-c/include/objc/IceStorm.h10
-rw-r--r--objective-c/include/objc/IceStorm/.gitignore5
-rw-r--r--objective-c/include/objc/IceStorm/Makefile26
-rw-r--r--objective-c/include/objc/Makefile21
33 files changed, 1341 insertions, 0 deletions
diff --git a/objective-c/include/Makefile b/objective-c/include/Makefile
new file mode 100644
index 00000000000..17d4d14e2fc
--- /dev/null
+++ b/objective-c/include/Makefile
@@ -0,0 +1,21 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2015 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 = objc
+
+$(EVERYTHING)::
+ @for subdir in $(SUBDIRS); \
+ do \
+ echo "making $@ in $$subdir"; \
+ ( cd $$subdir && $(MAKE) $@ ) || exit 1; \
+ done
diff --git a/objective-c/include/objc/Glacier2.h b/objective-c/include/objc/Glacier2.h
new file mode 100644
index 00000000000..b70e3caf3b0
--- /dev/null
+++ b/objective-c/include/objc/Glacier2.h
@@ -0,0 +1,10 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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 "Glacier2/Glacier2.h"
diff --git a/objective-c/include/objc/Glacier2/.gitignore b/objective-c/include/objc/Glacier2/.gitignore
new file mode 100644
index 00000000000..382c7a11d64
--- /dev/null
+++ b/objective-c/include/objc/Glacier2/.gitignore
@@ -0,0 +1,10 @@
+// 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/Glacier2.h b/objective-c/include/objc/Glacier2/Glacier2.h
new file mode 100644
index 00000000000..bde62e8c72a
--- /dev/null
+++ b/objective-c/include/objc/Glacier2/Glacier2.h
@@ -0,0 +1,14 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/Glacier2/Metrics.h>
+#import <objc/Glacier2/PermissionsVerifier.h>
+#import <objc/Glacier2/Router.h>
+#import <objc/Glacier2/SSLInfo.h>
+#import <objc/Glacier2/Session.h>
diff --git a/objective-c/include/objc/Glacier2/Makefile b/objective-c/include/objc/Glacier2/Makefile
new file mode 100644
index 00000000000..320137fd7f6
--- /dev/null
+++ b/objective-c/include/objc/Glacier2/Makefile
@@ -0,0 +1,26 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2015 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
new file mode 100644
index 00000000000..6de03a5e52d
--- /dev/null
+++ b/objective-c/include/objc/Ice.h
@@ -0,0 +1,10 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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 "Ice/Ice.h"
diff --git a/objective-c/include/objc/Ice/.gitignore b/objective-c/include/objc/Ice/.gitignore
new file mode 100644
index 00000000000..9be90a78435
--- /dev/null
+++ b/objective-c/include/objc/Ice/.gitignore
@@ -0,0 +1,39 @@
+// 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
new file mode 100644
index 00000000000..203440a2325
--- /dev/null
+++ b/objective-c/include/objc/Ice/Config.h
@@ -0,0 +1,63 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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.
+//
+// **********************************************************************
+
+//
+// Some import files we need almost everywhere
+//
+#import <Foundation/NSObject.h>
+#import <Foundation/NSString.h>
+#import <Foundation/NSArray.h>
+#import <Foundation/NSDictionary.h>
+#import <Foundation/NSData.h>
+#import <Foundation/NSNull.h>
+
+#import <stdlib.h>
+
+#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
+# define ICE_API ICE_DECLSPEC_EXPORT
+# else
+# define ICE_API ICE_DECLSPEC_IMPORT
+# endif
+#endif
+
+//
+// Don't forget to update the conversion methods from Util.h if the types below
+// are changed.
+//
+typedef unsigned char ICEByte;
+typedef short ICEShort;
+typedef int ICEInt;
+#if defined(__x86_64)
+typedef long ICELong;
+#else
+typedef long long ICELong;
+#endif
+typedef float ICEFloat;
+typedef double ICEDouble;
+
+#if defined(__clang__) && __has_feature(objc_arc)
+# define ICE_STRONG_QUALIFIER __strong
+# define ICE_AUTORELEASING_QUALIFIER __autoreleasing
+# define ICE_STRONG_ATTR strong
+# define ICE_AUTORELEASE(v) v
+# define ICE_RETAIN(v) v
+# define ICE_RELEASE(v)
+#else
+# define ICE_STRONG_QUALIFIER
+# define ICE_AUTORELEASING_QUALIFIER
+# define ICE_STRONG_ATTR retain
+# define ICE_AUTORELEASE(v) [v autorelease]
+# define ICE_RETAIN(v) [v retain]
+# define ICE_RELEASE(v) [v release]
+#endif
diff --git a/objective-c/include/objc/Ice/DispatchInterceptor.h b/objective-c/include/objc/Ice/DispatchInterceptor.h
new file mode 100644
index 00000000000..81516efeb0a
--- /dev/null
+++ b/objective-c/include/objc/Ice/DispatchInterceptor.h
@@ -0,0 +1,27 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/Object.h>
+
+ICE_API @protocol ICEDispatchInterceptor <ICEObject>
+-(BOOL) dispatch:(id<ICERequest>)request;
+@end
+
+ICE_API @interface ICEDispatchInterceptor : ICEServant
+@end
+
+ICE_API @interface ICEMainThreadDispatch : ICEDispatchInterceptor<ICEDispatchInterceptor>
+{
+ ICEObject* servant;
+}
+
+-(id)init:(ICEObject*)servant;
++(id)mainThreadDispatch:(ICEObject*)servant;
+@end
+
diff --git a/objective-c/include/objc/Ice/Exception.h b/objective-c/include/objc/Ice/Exception.h
new file mode 100644
index 00000000000..576cb24fe39
--- /dev/null
+++ b/objective-c/include/objc/Ice/Exception.h
@@ -0,0 +1,47 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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 <Foundation/NSException.h>
+
+//
+// Forward declarations
+//
+@protocol ICEOutputStream;
+@protocol ICEInputStream;
+
+@class NSCoder;
+
+ICE_API @interface ICEException : NSException
+-(NSString*)ice_name;
+@end
+
+ICE_API @interface ICELocalException : ICEException
+{
+@protected
+ const char* file;
+ int line;
+}
+
+@property(nonatomic, readonly) NSString* file;
+@property(nonatomic, readonly) int line;
+
+-(id)init:(const char*)file line:(int)line;
+-(id)init:(const char*)file line:(int)line reason:(NSString*)reason;
++(id)localException:(const char*)file line:(int)line;
+@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;
+@end
diff --git a/objective-c/include/objc/Ice/Format.h b/objective-c/include/objc/Ice/Format.h
new file mode 100644
index 00000000000..849037a97f4
--- /dev/null
+++ b/objective-c/include/objc/Ice/Format.h
@@ -0,0 +1,15 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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.
+//
+// **********************************************************************
+
+typedef enum
+{
+ ICEDefaultFormat,
+ ICECompactFormat,
+ ICESlicedFormat
+} ICEFormatType;
diff --git a/objective-c/include/objc/Ice/Ice.h b/objective-c/include/objc/Ice/Ice.h
new file mode 100644
index 00000000000..ab2b2631dd1
--- /dev/null
+++ b/objective-c/include/objc/Ice/Ice.h
@@ -0,0 +1,35 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/Communicator.h>
+#import <objc/Ice/Connection.h>
+#import <objc/Ice/Current.h>
+#import <objc/Ice/DispatchInterceptor.h>
+#import <objc/Ice/Exception.h>
+#import <objc/Ice/Identity.h>
+#import <objc/Ice/Initialize.h>
+#import <objc/Ice/LocalException.h>
+#import <objc/Ice/Locator.h>
+#import <objc/Ice/Logger.h>
+#import <objc/Ice/NativePropertiesAdmin.h>
+#import <objc/Ice/Object.h>
+#import <objc/Ice/ObjectAdapter.h>
+#import <objc/Ice/ServantLocator.h>
+#import <objc/Ice/Process.h>
+#import <objc/Ice/Properties.h>
+#import <objc/Ice/Proxy.h>
+#import <objc/Ice/RemoteLogger.h>
+#import <objc/Ice/Router.h>
+#import <objc/Ice/Stream.h>
+#import <objc/Ice/ObjectFactory.h>
+#import <objc/Ice/SlicedData.h>
+#import <objc/Ice/Version.h>
+#import <objc/Ice/ImplicitContext.h>
+#import <objc/Ice/Metrics.h>
+#import <objc/Ice/NativePropertiesAdmin.h>
diff --git a/objective-c/include/objc/Ice/Initialize.h b/objective-c/include/objc/Ice/Initialize.h
new file mode 100644
index 00000000000..633f8a37d03
--- /dev/null
+++ b/objective-c/include/objc/Ice/Initialize.h
@@ -0,0 +1,89 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/Communicator.h>
+#import <objc/Ice/Properties.h>
+#import <objc/Ice/Stream.h>
+#import <objc/Ice/Connection.h>
+#import <objc/Ice/Version.h>
+
+//
+// Forward declarations.
+//
+@protocol ICELogger;
+
+ICE_API @protocol ICEDispatcherCall <NSObject>
+-(void) run;
+@end
+
+ICE_API @protocol ICEBatchRequest <NSObject>
+-(void) enqueue;
+-(int) getSize;
+-(NSString*) getOperation;
+-(id<ICEObjectPrx>) getProxy;
+@end
+
+ICE_API @interface ICEInitializationData : NSObject
+{
+@private
+ id<ICEProperties> properties;
+ id<ICELogger> logger;
+ void(^dispatcher)(id<ICEDispatcherCall>, id<ICEConnection>);
+ void(^batchRequestInterceptor)(id<ICEBatchRequest>, int, int);
+ 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__;
+
+-(id) init:(id<ICEProperties>)properties logger:(id<ICELogger>)logger
+ dispatcher:(void(^)(id<ICEDispatcherCall>, id<ICEConnection>))d;
++(id) initializationData;
++(id) initializationData:(id<ICEProperties>)properties logger:(id<ICELogger>)logger
+ dispatcher:(void(^)(id<ICEDispatcherCall>, id<ICEConnection>))d;
+// This class also overrides copyWithZone:, hash, isEqual:, and dealloc.
+@end
+
+extern ICEEncodingVersion* ICEEncoding_1_0;
+extern ICEEncodingVersion* ICEEncoding_1_1;
+extern ICEEncodingVersion* ICECurrentEncoding;
+
+extern ICEProtocolVersion* ICEProtocol_1_0;
+extern ICEProtocolVersion* ICECurrentProtocol;
+extern ICEEncodingVersion* ICECurrentProtocolEncoding;
+
+ICE_API @interface ICEUtil : NSObject
++(id<ICEProperties>) createProperties;
++(id<ICEProperties>) createProperties:(int*)argc argv:(char*[])argv;
++(id<ICECommunicator>) createCommunicator;
++(id<ICECommunicator>) createCommunicator:(ICEInitializationData *)initData;
++(id<ICECommunicator>) createCommunicator:(int*)argc argv:(char*[])argv;
++(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;
+@end
+
+@interface ICEEncodingVersion(StringConv)
++(ICEEncodingVersion*) encodingVersionWithString:(NSString*)str;
+@end
+
+@interface ICEProtocolVersion(StringConv)
++(ICEProtocolVersion*) protocolVersionWithString:(NSString*)str;
+@end
diff --git a/objective-c/include/objc/Ice/LocalObject.h b/objective-c/include/objc/Ice/LocalObject.h
new file mode 100644
index 00000000000..533e20c3e99
--- /dev/null
+++ b/objective-c/include/objc/Ice/LocalObject.h
@@ -0,0 +1,16 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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>
+
+ICE_API @interface ICELocalObject : NSObject
+{
+ void* cxxObject_;
+}
+@end
diff --git a/objective-c/include/objc/Ice/Makefile b/objective-c/include/objc/Ice/Makefile
new file mode 100644
index 00000000000..579f93cece1
--- /dev/null
+++ b/objective-c/include/objc/Ice/Makefile
@@ -0,0 +1,26 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2015 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/NativePropertiesAdmin.h b/objective-c/include/objc/Ice/NativePropertiesAdmin.h
new file mode 100644
index 00000000000..98fc4362ecb
--- /dev/null
+++ b/objective-c/include/objc/Ice/NativePropertiesAdmin.h
@@ -0,0 +1,24 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/PropertiesAdmin.h>
+
+ICE_API @protocol ICEPropertiesAdminUpdateCallback <NSObject>
+-(void) updated:(ICEMutablePropertyDict*)properties;
+@end
+
+ICE_DEPRECATED_API("Use NSObject instead")
+ICE_API @interface ICEPropertiesAdminUpdateCallback : NSObject
+@end
+
+ICE_API @protocol ICENativePropertiesAdmin <NSObject>
+-(void) addUpdateCallback:(id<ICEPropertiesAdminUpdateCallback>)callback;
+-(void) removeUpdateCallback:(id<ICEPropertiesAdminUpdateCallback>)callback;
+@end
diff --git a/objective-c/include/objc/Ice/Object.h b/objective-c/include/objc/Ice/Object.h
new file mode 100644
index 00000000000..7acc8754471
--- /dev/null
+++ b/objective-c/include/objc/Ice/Object.h
@@ -0,0 +1,79 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/Current.h>
+
+//
+// Forward declarations.
+//
+@class ICEObject;
+@protocol ICEInputStream;
+@protocol ICEOutputStream;
+
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
+ICE_API int ICEInternalLookupString(NSString * const arr[], size_t, NSString * __unsafe_unretained);
+ICE_API void ICEInternalCheckModeAndSelector(id, ICEOperationMode, SEL, ICECurrent*);
+#if defined(__cplusplus)
+}
+#endif
+
+ICE_API @protocol ICERequest <NSObject>
+-(ICECurrent*) getCurrent;
+@end
+
+ICE_API @protocol ICEObject <NSObject>
+-(BOOL) ice_isA:(NSString*)typeId current:(ICECurrent*)current;
+-(void) ice_ping:(ICECurrent*)current;
+-(NSString*) ice_id:(ICECurrent*)current;
+-(NSArray*) ice_ids:(ICECurrent*)current;
+-(void) ice_preMarshal;
+-(void) ice_postUnmarshal;
+-(BOOL) ice_dispatch:(id<ICERequest>)request;
+@end
+
+ICE_API @interface ICEObject : NSObject<ICEObject, NSCopying>
+-(BOOL) ice_isA:(NSString*)typeId;
+-(void) ice_ping;
+-(NSString*) ice_id;
+-(NSArray*) ice_ids;
+-(BOOL) 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;
+@end
+
+ICE_API @interface ICEServant : ICEObject
+{
+ void* object__;
+ id delegate__;
+}
+-(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__;
+@end
+
+ICE_API @protocol ICEBlobject<ICEObject>
+-(BOOL) ice_invoke:(NSData*)inEncaps outEncaps:(NSMutableData**)outEncaps current:(ICECurrent*)current;
+@end
+
+ICE_API @interface ICEBlobject : ICEServant
+@end
diff --git a/objective-c/include/objc/Ice/ObjectFactory.h b/objective-c/include/objc/Ice/ObjectFactory.h
new file mode 100644
index 00000000000..8463e895780
--- /dev/null
+++ b/objective-c/include/objc/Ice/ObjectFactory.h
@@ -0,0 +1,16 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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>
+
+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
new file mode 100644
index 00000000000..9f501c4cd28
--- /dev/null
+++ b/objective-c/include/objc/Ice/Proxy.h
@@ -0,0 +1,191 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/Format.h> // For ICEFormatType
+#import <objc/Ice/Current.h> // For ICEOperationMode
+#import <objc/Ice/EndpointTypes.h> // For ICEEndpointSelectionType
+#import <objc/Ice/EndpointF.h> // For ICEEndpointSeq
+
+#import <Foundation/NSProxy.h>
+
+//
+// Forward declarations.
+//
+@class ICEObjectPrx;
+@class ICEException;
+@protocol ICECommunicator;
+@protocol ICERouterPrx;
+@protocol ICELocatorPrx;
+@protocol ICEOutputStream;
+@protocol ICEInputStream;
+
+//
+// Marshal/Unmarshall callbacks
+//
+typedef void (^ICEMarshalCB)(id<ICEOutputStream>);
+typedef void (^ICEUnmarshalCB)(id<ICEInputStream>, BOOL);
+
+ICE_API @protocol ICEAsyncResult <NSObject>
+
+-(void) cancel;
+
+-(id<ICECommunicator>) getCommunicator;
+-(id<ICEConnection>) getConnection;
+-(id<ICEObjectPrx>) getProxy;
+
+-(BOOL) isCompleted;
+-(void) waitForCompleted;
+
+-(BOOL) isSent;
+-(void) waitForSent;
+
+-(void) throwLocalException;
+
+-(BOOL) sentSynchronously;
+-(NSString*) getOperation;
+@end
+
+ICE_API @protocol ICEObjectPrx <NSObject, NSCopying>
+
+-(NSComparisonResult) compareIdentity:(id<ICEObjectPrx>)aProxy;
+-(NSComparisonResult) compareIdentityAndFacet:(id<ICEObjectPrx>)aProxy;
+
+-(id<ICECommunicator>) ice_getCommunicator;
+-(NSMutableString*) ice_toString;
+-(BOOL) ice_isA:(NSString*)typeId;
+-(BOOL) ice_isA:(NSString*)typeId context:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_isA:(NSString*)typeId;
+-(id<ICEAsyncResult>) begin_ice_isA:(NSString*)typeId context:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_isA:(NSString*)typeId response:(void(^)(BOOL))response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_isA:(NSString*)typeId context:(ICEContext*)context response:(void(^)(BOOL))response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_isA:(NSString*)typeId response:(void(^)(BOOL))response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(id<ICEAsyncResult>) begin_ice_isA:(NSString*)typeId context:(ICEContext*)context response:(void(^)(BOOL))response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(BOOL) end_ice_isA:(id<ICEAsyncResult>)result;
+-(void) ice_ping;
+-(void) ice_ping:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_ping;
+-(id<ICEAsyncResult>) begin_ice_ping:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_ping:(void(^)())response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_ping:(ICEContext*)context response:(void(^)())response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_ping:(void(^)())response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(id<ICEAsyncResult>) begin_ice_ping:(ICEContext*)context response:(void(^)())response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(void) end_ice_ping:(id<ICEAsyncResult>)result;
+-(NSMutableArray*) ice_ids;
+-(NSMutableArray*) ice_ids:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_ids;
+-(id<ICEAsyncResult>) begin_ice_ids:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_ids:(void(^)(NSArray*))response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_ids:(ICEContext*)context response:(void(^)(NSArray*))response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_ids:(void(^)(NSArray*))response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(id<ICEAsyncResult>) begin_ice_ids:(ICEContext*)context response:(void(^)(NSArray*))response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(NSMutableArray*) end_ice_ids:(id<ICEAsyncResult>)result;
+-(NSMutableString*) ice_id;
+-(NSMutableString*) ice_id:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_id;
+-(id<ICEAsyncResult>) begin_ice_id:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_id:(void(^)(NSString*))response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_id:(ICEContext*)context response:(void(^)(NSString*))response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_id:(void(^)(NSString*))response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(id<ICEAsyncResult>) begin_ice_id:(ICEContext*)context response:(void(^)(NSString*))response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(NSMutableString*) end_ice_id:(id<ICEAsyncResult>)result;
+-(BOOL) ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps outEncaps:(NSMutableData**)outEncaps;
+-(BOOL) ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps outEncaps:(NSMutableData**)outEncaps context:(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps;
+-(id<ICEAsyncResult>) begin_ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps context :(ICEContext*)context;
+-(id<ICEAsyncResult>) begin_ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps response:(void(^)(BOOL, NSMutableData*))response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps context:(ICEContext*)context response:(void(^)(BOOL, NSMutableData*))response exception:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps response:(void(^)(BOOL, NSMutableData*))response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(id<ICEAsyncResult>) begin_ice_invoke:(NSString*)operation mode:(ICEOperationMode)mode inEncaps:(NSData*)inEncaps context:(ICEContext*)context response:(void(^)(BOOL, NSMutableData*))response exception:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(BOOL) end_ice_invoke:(NSMutableData**)outEncaps result:(id<ICEAsyncResult>)result;
+-(ICEIdentity*) ice_getIdentity;
+-(id) ice_identity:(ICEIdentity*)identity;
+-(ICEMutableContext*) ice_getContext;
+-(id) ice_context:(ICEContext*)context;
+-(NSMutableString*) ice_getFacet;
+-(id) ice_facet:(NSString*)facet;
+-(NSMutableString*) ice_getAdapterId;
+-(id) ice_adapterId:(NSString*)adapterId;
+-(ICEMutableEndpointSeq*) ice_getEndpoints;
+-(id) ice_endpoints:(ICEEndpointSeq*)endpoints;
+-(ICEInt) ice_getLocatorCacheTimeout;
+-(id) ice_locatorCacheTimeout:(ICEInt)timeout;
+-(BOOL) ice_isConnectionCached;
+-(id) ice_connectionCached:(BOOL)cached;
+-(ICEEndpointSelectionType) ice_getEndpointSelection;
+-(id) ice_endpointSelection:(ICEEndpointSelectionType)type;
+-(BOOL) ice_isSecure;
+-(id) ice_secure:(BOOL)secure;
+-(ICEEncodingVersion*) ice_getEncodingVersion;
+-(id) ice_encodingVersion:(ICEEncodingVersion*)encoding;
+-(BOOL) ice_isPreferSecure;
+-(id) ice_preferSecure:(BOOL)preferSecure;
+-(id<ICERouterPrx>) ice_getRouter;
+-(id) ice_router:(id<ICERouterPrx>)router;
+-(id<ICELocatorPrx>) ice_getLocator;
+-(id) ice_locator:(id<ICELocatorPrx>)locator;
+-(BOOL) ice_isCollocationOptimized;
+-(id) ice_collocationOptimized:(BOOL)collocOptimized;
+-(ICEInt) ice_getInvocationTimeout;
+-(id) ice_invocationTimeout:(ICEInt)timeout;
+-(id) ice_twoway;
+-(BOOL) ice_isTwoway;
+-(id) ice_oneway;
+-(BOOL) ice_isOneway;
+-(id) ice_batchOneway;
+-(BOOL) ice_isBatchOneway;
+-(id) ice_datagram;
+-(BOOL) ice_isDatagram;
+-(id) ice_batchDatagram;
+-(BOOL) ice_isBatchDatagram;
+-(id) ice_compress:(BOOL)compress;
+-(id) ice_timeout:(int)timeout;
+-(id) ice_connectionId:(NSString*)connectionId;
+-(id<ICEConnection>) ice_getConnection;
+-(id<ICEAsyncResult>) begin_ice_getConnection;
+-(id<ICEAsyncResult>) begin_ice_getConnection:(void(^)(id<ICEConnection>))response exception:(void(^)(ICEException*))exception;
+-(id<ICEConnection>) end_ice_getConnection:(id<ICEAsyncResult>)result;
+-(id<ICEConnection>) ice_getCachedConnection;
+-(void) ice_flushBatchRequests;
+-(id<ICEAsyncResult>) begin_ice_flushBatchRequests;
+-(id<ICEAsyncResult>) begin_ice_flushBatchRequests:(void(^)(ICEException*))exception;
+-(id<ICEAsyncResult>) begin_ice_flushBatchRequests:(void(^)(ICEException*))exception sent:(void(^)(BOOL))sent;
+-(void) end_ice_flushBatchRequests:(id<ICEAsyncResult>)result;
+@end
+
+ICE_API @interface ICEObjectPrx : NSObject<ICEObjectPrx>
+{
+ void* objectPrx__;
+ id<ICECommunicator> communicator__;
+}
++(id) uncheckedCast:(id<ICEObjectPrx>)proxy;
++(id) uncheckedCast:(id<ICEObjectPrx>)proxy facet:(NSString*)facet;
++(id) checkedCast:(id<ICEObjectPrx>)proxy;
++(id) checkedCast:(id<ICEObjectPrx>)proxy facet:(NSString*)facet;
++(id) checkedCast:(id<ICEObjectPrx>)proxy context:(ICEContext*)context;
++(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
+ 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;
+@end
diff --git a/objective-c/include/objc/Ice/SlicedData.h b/objective-c/include/objc/Ice/SlicedData.h
new file mode 100644
index 00000000000..8124e47a53b
--- /dev/null
+++ b/objective-c/include/objc/Ice/SlicedData.h
@@ -0,0 +1,25 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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>
+
+ICE_API @protocol ICESlicedData<NSObject>
+@end
+
+ICE_API @interface ICEUnknownSlicedObject : ICEObject
+{
+@private
+ NSString* unknownTypeId_;
+ id<ICESlicedData> slicedData_;
+}
+-(NSString*) getUnknownTypeId;
+-(id<ICESlicedData>) getSlicedData;
+@end
diff --git a/objective-c/include/objc/Ice/Stream.h b/objective-c/include/objc/Ice/Stream.h
new file mode 100644
index 00000000000..71dd4c87b2b
--- /dev/null
+++ b/objective-c/include/objc/Ice/Stream.h
@@ -0,0 +1,374 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/Format.h> // for ICEFormatType
+
+#import <Foundation/NSData.h>
+
+//
+// Forward declarations
+//
+@class ICEObject;
+@protocol ICEObjectPrx;
+@protocol ICECommunicator;
+@protocol ICESlicedData;
+@class ICEUserException;
+@class ICEEncodingVersion;
+
+ICE_API @interface ICEInternalPrefixTable : NSObject
+@end
+
+typedef enum
+{
+ ICEOptionalFormatF1 = 0,
+ ICEOptionalFormatF2 = 1,
+ ICEOptionalFormatF4 = 2,
+ ICEOptionalFormatF8 = 3,
+ ICEOptionalFormatSize = 4,
+ ICEOptionalFormatVSize = 5,
+ ICEOptionalFormatFSize = 6,
+ ICEOptionalFormatClass = 7
+} ICEOptionalFormat;
+
+ICE_API @protocol ICEReadObjectCallback <NSObject>
+-(void)invoke:(ICEObject*)obj;
+@end
+
+//
+// ICENone singleton to specify not set optionals.
+//
+extern id ICENone;
+
+typedef struct
+{
+ Class key;
+ Class value;
+} ICEKeyValueTypeHelper;
+
+ICE_API @protocol ICEInputStream <NSObject>
+
+-(id<ICECommunicator>) communicator;
+
+-(void) sliceObjects:(BOOL)b;
+
+-(BOOL) readBool;
+-(NSMutableData*) newBoolSeq;
+-(NSMutableData*) readBoolSeq;
+
+-(ICEByte) readByte;
+-(NSMutableData*) newByteSeq;
+-(NSMutableData*) readByteSeq;
+-(NSData*) readByteSeqNoCopy;
+
+-(ICEShort) readShort;
+-(NSMutableData*) newShortSeq;
+-(NSMutableData*) readShortSeq;
+
+-(ICEInt) readInt;
+-(NSMutableData*) newIntSeq;
+-(NSMutableData*) readIntSeq;
+
+-(ICELong) readLong;
+-(NSMutableData*) newLongSeq;
+-(NSMutableData*) readLongSeq;
+
+-(ICEFloat) readFloat;
+-(NSMutableData*) newFloatSeq;
+-(NSMutableData*) readFloatSeq;
+
+-(ICEDouble) readDouble;
+-(NSMutableData*) newDoubleSeq;
+-(NSMutableData*) readDoubleSeq;
+
+-(NSMutableString*) newString;
+-(NSMutableString*) readString;
+-(NSMutableArray*) newStringSeq;
+-(NSMutableArray*) readStringSeq;
+
+-(ICEInt) readEnumerator:(ICEInt)min max:(ICEInt)max;
+-(NSMutableData*) newEnumSeq:(ICEInt)min max:(ICEInt)max;
+-(NSMutableData*) readEnumSeq:(ICEInt)min max:(ICEInt)max;
+
+-(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;
+
+-(NSMutableArray*) newSequence:(Class)type;
+-(NSMutableArray*) readSequence:(Class)type;
+-(NSMutableDictionary*) newDictionary:(ICEKeyValueTypeHelper)type;
+-(NSMutableDictionary*) readDictionary:(ICEKeyValueTypeHelper)type;
+
+-(BOOL) readOptional:(ICEInt)tag format:(ICEOptionalFormat)format;
+
+-(ICEInt) readSize;
+-(ICEInt) readAndCheckSeqSize:(ICEInt)minSize;
+
+-(void) throwException;
+
+-(void) startObject;
+-(id<ICESlicedData>) endObject:(BOOL)preserve NS_RETURNS_RETAINED;
+
+-(void) startException;
+-(id<ICESlicedData>) endException:(BOOL)preserve NS_RETURNS_RETAINED;
+
+-(void) startSlice;
+-(void) endSlice;
+-(void) skipSlice;
+
+-(ICEEncodingVersion*) startEncapsulation;
+-(void) endEncapsulation;
+-(ICEEncodingVersion*) skipEncapsulation;
+
+-(ICEEncodingVersion*) getEncoding;
+
+-(void) readPendingObjects;
+
+-(void) rewind;
+
+-(void) skip:(ICEInt)sz;
+-(void) skipSize;
+@end
+
+ICE_API @protocol ICEOutputStream <NSObject>
+
+-(id<ICECommunicator>) communicator;
+
+-(void) writeBool:(BOOL)v;
+-(void) writeBoolSeq:(NSData*)v;
+
+-(void) writeByte:(ICEByte)v;
+-(void) writeByteSeq:(NSData*)v;
+
+-(void) writeShort:(ICEShort)v;
+-(void) writeShortSeq:(NSData*)v;
+
+-(void) writeInt:(ICEInt)v;
+-(void) writeIntSeq:(NSData*)v;
+
+-(void) writeLong:(ICELong)v;
+-(void) writeLongSeq:(NSData*)v;
+
+-(void) writeFloat:(ICEFloat)v;
+-(void) writeFloatSeq:(NSData*)v;
+
+-(void) writeDouble:(ICEDouble)v;
+-(void) writeDoubleSeq:(NSData*)v;
+
+-(void) writeString:(NSString*)v;
+-(void) writeStringSeq:(NSArray*)v;
+
+-(void) writeEnumerator:(ICEInt)v min:(ICEInt)min max:(ICEInt)max;
+-(void) writeEnumSeq:(NSData*)v min:(ICEInt)min max:(ICEInt)max;
+
+-(void) writeProxy:(id<ICEObjectPrx>)v;
+
+-(void) writeObject:(ICEObject*)v;
+-(void) writeObjectSeq:(NSArray*)v;
+-(void) writeObjectDict:(NSDictionary*)v helper:(Class)helper;
+
+-(void) writeSequence:(NSArray*)arr helper:(Class)helper;
+-(void) writeDictionary:(NSDictionary*)dictionary helper:(ICEKeyValueTypeHelper)helper;
+
+-(BOOL) writeOptional:(ICEInt)tag format:(ICEOptionalFormat)format;
+
+-(void) writeSize:(ICEInt)v;
+
+-(void) writeException:(ICEUserException*)v;
+
+-(void) startObject:(id<ICESlicedData>)slicedData;
+-(void) endObject;
+
+-(void) startException:(id<ICESlicedData>)slicedData;
+-(void) endException;
+
+-(void) startSlice:(NSString*)typeId compactId:(ICEInt)compactId lastSlice:(BOOL)lastSlice;
+-(void) endSlice;
+
+-(void) startEncapsulation;
+-(void) startEncapsulation:(ICEEncodingVersion*)encoding format:(ICEFormatType)format;
+-(void) endEncapsulation;
+
+-(ICEEncodingVersion*) getEncoding;
+
+-(void) writePendingObjects;
+
+-(NSMutableData*) finished;
+-(NSData*) finishedNoCopy;
+
+-(void) reset:(BOOL)clearBuffer;
+@end
+
+//
+// Helper protocol implemented by helpers for marshaling/un-marshaling
+// Slice types.
+//
+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;
++(ICEInt) minWireSize;
+@end
+
+ICE_API @interface ICEStreamHelper : NSObject<ICEStreamHelper>
+@end
+
+//
+// Helper classes for streaming Slice types
+//
+ICE_API @interface ICEBoolHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICEByteHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICEShortHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICEIntHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICELongHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICEFloatHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICEDoubleHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICEStringHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICEObjectHelper : ICEStreamHelper
++(void)read:(ICEObject**)v stream:(id<ICEInputStream>)stream;
++(void)readOpt:(id*)v stream:(id<ICEInputStream>)stream tag:(ICEInt)tag;
+@end
+
+ICE_API @interface ICEProxyHelper : ICEStreamHelper
+@end
+
+ICE_API @interface ICEEnumHelper : ICEStreamHelper
++(ICEInt) getMinValue;
++(ICEInt) getMaxValue;
+@end
+
+ICE_API @interface ICEStructHelper : ICEStreamHelper
++(id) readRetained:(id<ICEInputStream>)stream value:(id)v NS_RETURNS_RETAINED;
++(id) read:(id<ICEInputStream>)stream value:(id)v;
++(Class) getOptionalHelper;
+@end
+
+ICE_API @protocol ICESequenceStreamHelper<ICEStreamHelper>
++(Class) getElementHelper;
++(ICEInt) count:(id)obj;
+@end
+
+ICE_API @interface ICEArraySequenceHelper : ICEStreamHelper<ICESequenceStreamHelper>
++(Class) getOptionalHelper;
+@end
+
+ICE_API @interface ICEDataSequenceHelper : ICEStreamHelper<ICESequenceStreamHelper>
+@end
+
+ICE_API @interface ICEBoolSequenceHelper : ICEDataSequenceHelper
+@end
+
+ICE_API @interface ICEByteSequenceHelper : ICEDataSequenceHelper
+@end
+
+ICE_API @interface ICEShortSequenceHelper : ICEDataSequenceHelper
+@end
+
+ICE_API @interface ICEIntSequenceHelper : ICEDataSequenceHelper
+@end
+
+ICE_API @interface ICELongSequenceHelper : ICEDataSequenceHelper
+@end
+
+ICE_API @interface ICEFloatSequenceHelper : ICEDataSequenceHelper
+@end
+
+ICE_API @interface ICEDoubleSequenceHelper : ICEDataSequenceHelper
+@end
+
+ICE_API @interface ICEEnumSequenceHelper : ICEDataSequenceHelper
+@end
+
+ICE_API @interface ICEStringSequenceHelper : ICEArraySequenceHelper
+@end
+
+ICE_API @interface ICEObjectSequenceHelper : ICEArraySequenceHelper
+@end
+
+ICE_API @interface ICEProxySequenceHelper : ICEArraySequenceHelper
+@end
+
+ICE_API @protocol ICEDictionaryStreamHelper<ICEStreamHelper>
++(ICEInt) count:(id)obj;
+@end
+
+ICE_API @interface ICEDictionaryHelper : ICEStreamHelper<ICEDictionaryStreamHelper>
++(Class) getOptionalHelper;
+@end
+
+ICE_API @interface ICEObjectDictionaryHelper : ICEDictionaryHelper
+@end
+
+//
+// Helper for optionals
+//
+ICE_API @protocol ICEOptionalStreamHelper
++(id) readRetained:(id<ICEInputStream>)stream helper:(Class)helper NS_RETURNS_RETAINED;
++(void) write:(id)obj stream:(id<ICEOutputStream>)stream helper:(Class)helper;
++(ICEOptionalFormat) optionalFormat;
+@end
+
+ICE_API @interface ICEFixedLengthOptionalHelper : NSObject<ICEOptionalStreamHelper>
+@end
+
+ICE_API @interface ICEVarLengthOptionalHelper : NSObject<ICEOptionalStreamHelper>
+@end
+
+ICE_API @interface ICEFixedSequenceOptionalHelper : NSObject<ICEOptionalStreamHelper>
+@end
+
+ICE_API @interface ICEFixedSize1SequenceOptionalHelper : NSObject<ICEOptionalStreamHelper>
+@end
+
+ICE_API @interface ICEFixedDictionaryOptionalHelper : NSObject<ICEOptionalStreamHelper>
+@end
+
+ICE_API @interface CompactIdMapHelper : NSObject
++(void) initialize;
++(void) registerClass:(NSString*)type value:(ICEInt)value;
+@end
+
+ICE_API @interface ICEOptionalGetter : NSObject
++(BOOL) get:(id)value value:(id ICE_STRONG_QUALIFIER*)v type:(Class)cl;
++(BOOL) getRetained:(id)value value:(id ICE_STRONG_QUALIFIER*)v type:(Class)cl;
++(BOOL) getByte:(id)value value:(ICEByte*)v;
++(BOOL) getBool:(id)value value:(BOOL*)v;
++(BOOL) getShort:(id)value value:(ICEShort*)v;
++(BOOL) getInt:(id)value value:(ICEInt*)v;
++(BOOL) getLong:(id)value value:(ICELong*)v;
++(BOOL) getFloat:(id)value value:(ICEFloat*)v;
++(BOOL) getDouble:(id)value value:(ICEDouble*)v;
+@end
diff --git a/objective-c/include/objc/IceGrid.h b/objective-c/include/objc/IceGrid.h
new file mode 100644
index 00000000000..c52b9c6a63b
--- /dev/null
+++ b/objective-c/include/objc/IceGrid.h
@@ -0,0 +1,10 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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 "IceGrid/IceGrid.h"
diff --git a/objective-c/include/objc/IceGrid/.gitignore b/objective-c/include/objc/IceGrid/.gitignore
new file mode 100644
index 00000000000..41f5d685b02
--- /dev/null
+++ b/objective-c/include/objc/IceGrid/.gitignore
@@ -0,0 +1,15 @@
+// Generated by makegitignore.py
+
+// IMPORTANT: Do not edit this file -- any edits made here will be lost!
+Admin.h
+Descriptor.h
+Discovery.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
new file mode 100644
index 00000000000..6d3772b231d
--- /dev/null
+++ b/objective-c/include/objc/IceGrid/IceGrid.h
@@ -0,0 +1,19 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/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
new file mode 100644
index 00000000000..7913d2f0189
--- /dev/null
+++ b/objective-c/include/objc/IceGrid/Makefile
@@ -0,0 +1,26 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2015 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
new file mode 100644
index 00000000000..a41037e506e
--- /dev/null
+++ b/objective-c/include/objc/IceSSL.h
@@ -0,0 +1,10 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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 "IceSSL/IceSSL.h"
diff --git a/objective-c/include/objc/IceSSL/.gitignore b/objective-c/include/objc/IceSSL/.gitignore
new file mode 100644
index 00000000000..f53e54c68e3
--- /dev/null
+++ b/objective-c/include/objc/IceSSL/.gitignore
@@ -0,0 +1,5 @@
+// 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/IceSSL.h b/objective-c/include/objc/IceSSL/IceSSL.h
new file mode 100644
index 00000000000..9d68b586603
--- /dev/null
+++ b/objective-c/include/objc/IceSSL/IceSSL.h
@@ -0,0 +1,11 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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/IceSSL/EndpointInfo.h>
+#import <objc/IceSSL/ConnectionInfo.h>
diff --git a/objective-c/include/objc/IceSSL/Makefile b/objective-c/include/objc/IceSSL/Makefile
new file mode 100644
index 00000000000..05cf5812ee6
--- /dev/null
+++ b/objective-c/include/objc/IceSSL/Makefile
@@ -0,0 +1,26 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2015 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
new file mode 100644
index 00000000000..1cd594d785b
--- /dev/null
+++ b/objective-c/include/objc/IceStorm.h
@@ -0,0 +1,10 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2015 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 "IceStorm/IceStorm.h"
diff --git a/objective-c/include/objc/IceStorm/.gitignore b/objective-c/include/objc/IceStorm/.gitignore
new file mode 100644
index 00000000000..bb5bf8a8dc7
--- /dev/null
+++ b/objective-c/include/objc/IceStorm/.gitignore
@@ -0,0 +1,5 @@
+// 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
new file mode 100644
index 00000000000..500b08e2668
--- /dev/null
+++ b/objective-c/include/objc/IceStorm/Makefile
@@ -0,0 +1,26 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2015 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
new file mode 100644
index 00000000000..f2d331fd0c2
--- /dev/null
+++ b/objective-c/include/objc/Makefile
@@ -0,0 +1,21 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2015 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