summaryrefslogtreecommitdiff
path: root/ruby/src/IceRuby/Init.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/src/IceRuby/Init.cpp')
-rw-r--r--ruby/src/IceRuby/Init.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/ruby/src/IceRuby/Init.cpp b/ruby/src/IceRuby/Init.cpp
new file mode 100644
index 00000000000..2086f163383
--- /dev/null
+++ b/ruby/src/IceRuby/Init.cpp
@@ -0,0 +1,59 @@
+// **********************************************************************
+//
+// 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.
+//
+// **********************************************************************
+
+#include <Communicator.h>
+#include <ImplicitContext.h>
+#include <Logger.h>
+#include <Operation.h>
+#include <Properties.h>
+#include <Proxy.h>
+#include <Slice.h>
+#include <Types.h>
+#include <Connection.h>
+#include <Endpoint.h>
+
+using namespace std;
+using namespace IceRuby;
+
+static VALUE iceModule;
+
+extern "C"
+{
+
+#ifdef ICE_STATIC_LIBS
+Ice::Plugin* createIceSSL(const Ice::CommunicatorPtr&, const std::string&, const Ice::StringSeq&);
+Ice::Plugin* createIceDiscovery(const Ice::CommunicatorPtr&, const string&, const Ice::StringSeq&);
+Ice::Plugin* createIceLocatorDiscovery(const Ice::CommunicatorPtr&, const string&, const Ice::StringSeq&);
+#endif
+
+void
+ICE_DECLSPEC_EXPORT Init_IceRuby()
+{
+#ifdef ICE_STATIC_LIBS
+ // Register the plugins manually if we're building with static libraries.
+ Ice::registerPluginFactory("IceSSL", createIceSSL, false);
+ Ice::registerPluginFactory("IceDiscovery", createIceDiscovery, false);
+ Ice::registerPluginFactory("IceLocatorDiscovery", createIceLocatorDiscovery, false);
+#endif
+
+ iceModule = rb_define_module("Ice");
+ initCommunicator(iceModule);
+ initLogger(iceModule);
+ initOperation(iceModule);
+ initProperties(iceModule);
+ initProxy(iceModule);
+ initSlice(iceModule);
+ initTypes(iceModule);
+ initImplicitContext(iceModule);
+ initUtil(iceModule);
+ initConnection(iceModule);
+ initEndpoint(iceModule);
+}
+
+}