summaryrefslogtreecommitdiff
path: root/cpp/src/IceStorm/Service.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceStorm/Service.h')
-rw-r--r--cpp/src/IceStorm/Service.h38
1 files changed, 29 insertions, 9 deletions
diff --git a/cpp/src/IceStorm/Service.h b/cpp/src/IceStorm/Service.h
index b9866e56beb..a48329f9c6f 100644
--- a/cpp/src/IceStorm/Service.h
+++ b/cpp/src/IceStorm/Service.h
@@ -13,10 +13,30 @@
#include <IceBox/IceBox.h>
#include <IceStorm/IceStorm.h>
-#ifndef ICE_STORM_API
-# define ICE_STORM_API ICE_DECLSPEC_IMPORT
+#ifdef _MSC_VER
+//
+// Automatically link with IceStormService[D].lib
+//
+# if defined(ICE_STATIC_LIBS)
+# pragma comment(lib, "IceStormService.lib")
+# elif !defined(ICE_STORM_SERVICE_API_EXPORTS)
+# if defined(_DEBUG)
+# pragma comment(lib, "IceStormServiceD.lib")
+# else
+# pragma comment(lib, "IceStormService.lib")
+# endif
+# endif
#endif
+#ifndef ICE_STORM_SERVICE_API
+# ifdef ICE_STORM_SERVICE_API_EXPORTS
+# define ICE_STORM_SERVICE_API ICE_DECLSPEC_EXPORT
+# else
+# define ICE_STORM_SERVICE_API ICE_DECLSPEC_IMPORT
+# endif
+#endif
+
+
// This API is internal to Ice, and should not be used by external
// applications.
namespace IceStormInternal
@@ -29,16 +49,16 @@ class Service : public ::IceBox::Service
{
public:
- ICE_STORM_API static ServicePtr create(const Ice::CommunicatorPtr&,
- const Ice::ObjectAdapterPtr&,
- const Ice::ObjectAdapterPtr&,
- const std::string&,
- const Ice::Identity&,
- const std::string&);
+ ICE_STORM_SERVICE_API static ServicePtr create(const Ice::CommunicatorPtr&,
+ const Ice::ObjectAdapterPtr&,
+ const Ice::ObjectAdapterPtr&,
+ const std::string&,
+ const Ice::Identity&,
+ const std::string&);
virtual void start(const std::string&, const Ice::CommunicatorPtr&, const Ice::StringSeq&) = 0;
- ICE_STORM_API virtual IceStorm::TopicManagerPrx getTopicManager() const = 0;
+ ICE_STORM_SERVICE_API virtual IceStorm::TopicManagerPrx getTopicManager() const = 0;
virtual void stop() = 0;
};