summaryrefslogtreecommitdiff
path: root/csharp/src/Ice/ProtocolPluginFacade.cs
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-21 15:35:40 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-21 15:35:40 -0230
commit630a37d2fe66f24518299e705f958b571803c522 (patch)
tree969723791bdc4d73bb099c19d45554d0ca241ad9 /csharp/src/Ice/ProtocolPluginFacade.cs
parentFix some README.md markdown formatting (diff)
downloadice-630a37d2fe66f24518299e705f958b571803c522.tar.bz2
ice-630a37d2fe66f24518299e705f958b571803c522.tar.xz
ice-630a37d2fe66f24518299e705f958b571803c522.zip
py -> python
rb -> ruby objc -> objective-c cs -> csharp
Diffstat (limited to 'csharp/src/Ice/ProtocolPluginFacade.cs')
-rw-r--r--csharp/src/Ice/ProtocolPluginFacade.cs80
1 files changed, 80 insertions, 0 deletions
diff --git a/csharp/src/Ice/ProtocolPluginFacade.cs b/csharp/src/Ice/ProtocolPluginFacade.cs
new file mode 100644
index 00000000000..3d924e4c186
--- /dev/null
+++ b/csharp/src/Ice/ProtocolPluginFacade.cs
@@ -0,0 +1,80 @@
+// **********************************************************************
+//
+// 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.
+//
+// **********************************************************************
+
+namespace IceInternal
+{
+ public interface ProtocolPluginFacade
+ {
+ //
+ // Get the Communicator instance with which this facade is
+ // associated.
+ //
+ Ice.Communicator getCommunicator();
+
+ //
+ // Register an EndpointFactory.
+ //
+ void addEndpointFactory(EndpointFactory factory);
+
+ //
+ // Get an EndpointFactory.
+ //
+ EndpointFactory getEndpointFactory(short type);
+
+ //
+ // Obtain the type for a name.
+ //
+ System.Type findType(string name);
+ }
+
+ public sealed class ProtocolPluginFacadeI : ProtocolPluginFacade
+ {
+ public ProtocolPluginFacadeI(Ice.Communicator communicator)
+ {
+ _communicator = communicator;
+ _instance = IceInternal.Util.getInstance(communicator);
+ }
+
+ //
+ // Get the Communicator instance with which this facade is
+ // associated.
+ //
+ public Ice.Communicator getCommunicator()
+ {
+ return _communicator;
+ }
+
+ //
+ // Register an EndpointFactory.
+ //
+ public void addEndpointFactory(EndpointFactory factory)
+ {
+ _instance.endpointFactoryManager().add(factory);
+ }
+
+ //
+ // Get an EndpointFactory.
+ //
+ public EndpointFactory getEndpointFactory(short type)
+ {
+ return _instance.endpointFactoryManager().get(type);
+ }
+
+ //
+ // Obtain the type for a name.
+ //
+ public System.Type findType(string name)
+ {
+ return AssemblyUtil.findType(_instance, name);
+ }
+
+ private Instance _instance;
+ private Ice.Communicator _communicator;
+ }
+}