summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Service.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2009-11-10 05:30:26 +0100
committerJose <jose@zeroc.com>2009-11-10 05:30:26 +0100
commit4247c9e2c2612394a5f4d63a65ba538f975906d4 (patch)
tree96d3308681d9b0684ce5dd763f5a5d415eaf09d7 /cpp/src/Ice/Service.cpp
parentWin32 64 bits compilation error (diff)
downloadice-4247c9e2c2612394a5f4d63a65ba538f975906d4.tar.bz2
ice-4247c9e2c2612394a5f4d63a65ba538f975906d4.tar.xz
ice-4247c9e2c2612394a5f4d63a65ba538f975906d4.zip
Fixed 3962 - Berkeley DB, problems with unicode paths.
Diffstat (limited to 'cpp/src/Ice/Service.cpp')
-rw-r--r--cpp/src/Ice/Service.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/cpp/src/Ice/Service.cpp b/cpp/src/Ice/Service.cpp
index 1e92791064d..7aa1217673b 100644
--- a/cpp/src/Ice/Service.cpp
+++ b/cpp/src/Ice/Service.cpp
@@ -14,9 +14,11 @@
#include <IceUtil/Monitor.h>
#include <IceUtil/Mutex.h>
#include <IceUtil/ArgVector.h>
+#include <IceUtil/FileUtil.h>
#include <Ice/Service.h>
#include <Ice/LoggerI.h>
#include <Ice/Initialize.h>
+#include <Ice/StringConverter.h>
#include <Ice/Communicator.h>
#include <Ice/LocalException.h>
#include <Ice/Properties.h>
@@ -30,7 +32,6 @@
# include <sys/types.h>
# include <sys/stat.h>
# include <csignal>
-# include <fstream>
#endif
using namespace std;
@@ -835,6 +836,25 @@ Ice::Service::main(int& argc, char* argv[], const InitializationData& initializa
return run(argc, argv, initData);
}
+#ifdef _WIN32
+
+int
+Ice::Service::main(int& argc, wchar_t* argv[], const InitializationData& initializationData)
+{
+#ifdef __BCPLUSPLUS__ // COMPILER FIX
+ //
+ //BCC don't see the main overload if we don't create the temp args object here.
+ //
+ Ice::StringSeq args = Ice::argsToStringSeq(argc, argv, initializationData.stringConverter);
+ return main(args, initializationData);
+#else
+ return main(Ice::argsToStringSeq(argc, argv, initializationData.stringConverter), initializationData);
+#endif
+
+}
+
+#endif
+
int
Ice::Service::main(StringSeq& args, const InitializationData& initData)
{
@@ -2125,7 +2145,7 @@ Ice::Service::runDaemon(int argc, char* argv[], const InitializationData& initDa
//
if(_pidFile.size() > 0)
{
- ofstream of(_pidFile.c_str());
+ IceUtilInternal::ofstream of(Ice::nativeToUTF8(_communicator, _pidFile));
of << getpid() << endl;
if(!of)