summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Slice/.depend23
-rw-r--r--cpp/src/Slice/JavaUtil.cpp2
-rw-r--r--cpp/src/Slice/Makefile3
-rw-r--r--cpp/src/Slice/Makefile.mak3
-rw-r--r--cpp/src/Slice/Preprocessor.cpp2
-rw-r--r--cpp/src/Slice/SignalHandler.cpp53
-rwxr-xr-xcpp/src/slice2cpp/Gen.cpp5
-rw-r--r--cpp/src/slice2cpp/Main.cpp3
-rw-r--r--cpp/src/slice2cppe/Gen.cpp5
-rw-r--r--cpp/src/slice2cppe/Main.cpp3
-rwxr-xr-xcpp/src/slice2cs/Gen.cpp3
-rw-r--r--cpp/src/slice2cs/Main.cpp3
-rw-r--r--cpp/src/slice2docbook/Main.cpp7
-rw-r--r--cpp/src/slice2freeze/Main.cpp7
-rw-r--r--cpp/src/slice2freezej/Main.cpp8
-rw-r--r--cpp/src/slice2html/Gen.cpp3
-rw-r--r--cpp/src/slice2html/Main.cpp3
-rw-r--r--cpp/src/slice2java/Main.cpp3
-rw-r--r--cpp/src/slice2javae/Main.cpp3
-rw-r--r--cpp/src/slice2py/Main.cpp5
-rw-r--r--cpp/src/slice2rb/Main.cpp5
-rwxr-xr-xcpp/src/slice2sl/Gen.cpp3
-rw-r--r--cpp/src/slice2sl/Main.cpp3
23 files changed, 144 insertions, 14 deletions
diff --git a/cpp/src/Slice/.depend b/cpp/src/Slice/.depend
index 8b30734dd24..89b328b78c2 100644
--- a/cpp/src/Slice/.depend
+++ b/cpp/src/Slice/.depend
@@ -1,14 +1,15 @@
-Scanner$(OBJEXT): Scanner.cpp ../../include/IceUtil/Config.h ../Slice/GrammarUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../Slice/Grammar.h
-Grammar$(OBJEXT): Grammar.cpp ../Slice/GrammarUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/UUID.h
-Parser$(OBJEXT): Parser.cpp ../../include/IceUtil/Functional.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/InputUtil.h ../Slice/GrammarUtil.h
-CPlusPlusUtil$(OBJEXT): CPlusPlusUtil.cpp ../../include/Slice/CPlusPlusUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h
-CsUtil$(OBJEXT): CsUtil.cpp ../../include/Slice/CsUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/DotNetNames.h ../../include/IceUtil/Functional.h
-VbUtil$(OBJEXT): VbUtil.cpp ../../include/Slice/VbUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/DotNetNames.h ../../include/IceUtil/Functional.h
-JavaUtil$(OBJEXT): JavaUtil.cpp ../../include/Slice/JavaUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/IceUtil/Functional.h
-Preprocessor$(OBJEXT): Preprocessor.cpp ../../include/Slice/Preprocessor.h ../../include/IceUtil/Config.h ../../include/IceUtil/StringUtil.h
-Checksum$(OBJEXT): Checksum.cpp ../../include/Slice/Checksum.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../Slice/MD5.h
-PythonUtil$(OBJEXT): PythonUtil.cpp ../../include/Slice/PythonUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/Checksum.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Time.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Timer.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h
+Scanner$(OBJEXT): Scanner.cpp ../../include/IceUtil/Config.h ../Slice/GrammarUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../Slice/Grammar.h ../../include/IceUtil/InputUtil.h
+Grammar$(OBJEXT): Grammar.cpp ../Slice/GrammarUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/UUID.h
+Parser$(OBJEXT): Parser.cpp ../../include/IceUtil/Functional.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/Unicode.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../Slice/GrammarUtil.h ../Slice/Util.h
+CPlusPlusUtil$(OBJEXT): CPlusPlusUtil.cpp ../../include/Slice/CPlusPlusUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../Slice/Util.h
+CsUtil$(OBJEXT): CsUtil.cpp ../../include/Slice/CsUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/DotNetNames.h ../../include/IceUtil/Functional.h
+JavaUtil$(OBJEXT): JavaUtil.cpp ../../include/Slice/JavaUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/SignalHandler.h ../../include/IceUtil/Functional.h
+Preprocessor$(OBJEXT): Preprocessor.cpp ../../include/IceUtil/DisableWarnings.h ../../include/Slice/Preprocessor.h ../../include/IceUtil/Config.h ../Slice/Util.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h
+Checksum$(OBJEXT): Checksum.cpp ../../include/Slice/Checksum.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../Slice/MD5.h
+PythonUtil$(OBJEXT): PythonUtil.cpp ../../include/Slice/PythonUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/Checksum.h ../Slice/Util.h ../../include/IceUtil/IceUtil.h ../../include/IceUtil/AbstractMutex.h ../../include/IceUtil/Lock.h ../../include/IceUtil/ThreadException.h ../../include/IceUtil/Time.h ../../include/IceUtil/Cache.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/CountDownLatch.h ../../include/IceUtil/Cond.h ../../include/IceUtil/CtrlCHandler.h ../../include/IceUtil/Functional.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/RWRecMutex.h ../../include/IceUtil/Thread.h ../../include/IceUtil/RecMutex.h ../../include/IceUtil/StaticMutex.h ../../include/IceUtil/Timer.h ../../include/IceUtil/UUID.h ../../include/IceUtil/Unicode.h ../../include/IceUtil/StringUtil.h ../../include/IceUtil/InputUtil.h
DotNetNames$(OBJEXT): DotNetNames.cpp ../../include/Slice/DotNetNames.h
-RubyUtil$(OBJEXT): RubyUtil.cpp ../../include/Slice/RubyUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/InputUtil.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/Checksum.h ../../include/IceUtil/Functional.h
+RubyUtil$(OBJEXT): RubyUtil.cpp ../../include/Slice/RubyUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/OutputUtil.h ../../include/Slice/Checksum.h ../Slice/Util.h ../../include/IceUtil/Functional.h ../../include/IceUtil/InputUtil.h
+Util$(OBJEXT): Util.cpp ../Slice/Util.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Unicode.h
MD5$(OBJEXT): MD5.cpp ../Slice/MD5.h ../../include/IceUtil/Config.h ../Slice/MD5I.h
MD5I$(OBJEXT): MD5I.cpp ../Slice/MD5I.h
+SignalHandler$(OBJEXT): SignalHandler.cpp ../../include/Slice/SignalHandler.h
diff --git a/cpp/src/Slice/JavaUtil.cpp b/cpp/src/Slice/JavaUtil.cpp
index 294f2eba704..cb4874a2df8 100644
--- a/cpp/src/Slice/JavaUtil.cpp
+++ b/cpp/src/Slice/JavaUtil.cpp
@@ -8,6 +8,7 @@
// **********************************************************************
#include <Slice/JavaUtil.h>
+#include <Slice/SignalHandler.h>
#include <IceUtil/Functional.h>
#include <sys/types.h>
@@ -109,6 +110,7 @@ Slice::JavaOutput::openClass(const string& cls, const string& prefix)
path += "/";
}
path += file;
+ SignalHandler::addFile(path);
open(path.c_str());
if(isOpen())
diff --git a/cpp/src/Slice/Makefile b/cpp/src/Slice/Makefile
index dc6784c8ad0..d3a53013e25 100644
--- a/cpp/src/Slice/Makefile
+++ b/cpp/src/Slice/Makefile
@@ -28,7 +28,8 @@ OBJS = Scanner.o \
RubyUtil.o \
Util.o \
MD5.o \
- MD5I.o
+ MD5I.o \
+ SignalHandler.o
SRCS = $(OBJS:.o=.cpp)
diff --git a/cpp/src/Slice/Makefile.mak b/cpp/src/Slice/Makefile.mak
index 660bb0ffdd2..3b9898ac7b1 100644
--- a/cpp/src/Slice/Makefile.mak
+++ b/cpp/src/Slice/Makefile.mak
@@ -27,7 +27,8 @@ OBJS = Scanner.obj \
RubyUtil.obj \
Util.obj \
MD5.obj \
- MD5I.obj
+ MD5I.obj \
+ SignalHandler.obj
SRCS = $(OBJS:.obj=.cpp)
diff --git a/cpp/src/Slice/Preprocessor.cpp b/cpp/src/Slice/Preprocessor.cpp
index 7a6ee02ada6..d91bb1f069e 100644
--- a/cpp/src/Slice/Preprocessor.cpp
+++ b/cpp/src/Slice/Preprocessor.cpp
@@ -10,6 +10,7 @@
#include <IceUtil/DisableWarnings.h>
#include <Slice/Preprocessor.h>
#include <Slice/Util.h>
+#include <Slice/SignalHandler.h>
#include <IceUtil/StringUtil.h>
#include <IceUtil/UUID.h>
#include <IceUtil/Unicode.h>
@@ -148,6 +149,7 @@ Slice::Preprocessor::preprocess(bool keepComments)
char* buf = mcpp_get_mem_buffer(Out);
_cppFile = ".preprocess." + IceUtil::generateUUID();
+ SignalHandler::addFile(_cppFile);
#ifdef _WIN32
_cppHandle = ::_wfopen(IceUtil::stringToWstring(_cppFile).c_str(), IceUtil::stringToWstring("w+").c_str());
#else
diff --git a/cpp/src/Slice/SignalHandler.cpp b/cpp/src/Slice/SignalHandler.cpp
new file mode 100644
index 00000000000..69065fb6ed1
--- /dev/null
+++ b/cpp/src/Slice/SignalHandler.cpp
@@ -0,0 +1,53 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2007 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 <Slice/SignalHandler.h>
+#include <signal.h>
+#include <vector>
+
+using namespace std;
+
+//
+// Signal handler routine to unlink output files in case of translator
+// being interrupted.
+//
+static vector<string> _fileList;
+
+static void
+signalHandler(int signal)
+{
+ for(unsigned int i = 0; i < _fileList.size(); ++i)
+ {
+ unlink(_fileList[i].c_str());
+ }
+
+ exit(1);
+}
+
+Slice::SignalHandler::SignalHandler()
+{
+ sigset(SIGHUP, signalHandler);
+ sigset(SIGINT, signalHandler);
+ sigset(SIGQUIT, signalHandler);
+}
+
+Slice::SignalHandler::~SignalHandler()
+{
+ sigset(SIGHUP, SIG_DFL);
+ sigset(SIGINT, SIG_DFL);
+ sigset(SIGQUIT, SIG_DFL);
+
+ _fileList.clear();
+}
+
+void
+Slice::SignalHandler::addFile(const string& file)
+{
+ _fileList.push_back(file);
+}
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index d68c2f4d8c2..91473852683 100755
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -12,6 +12,7 @@
#include <IceUtil/Functional.h>
#include <IceUtil/Iterator.h>
#include <Slice/Checksum.h>
+#include <Slice/SignalHandler.h>
#include <limits>
#include <sys/stat.h>
@@ -72,6 +73,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte
fileImplH = dir + '/' + fileImplH;
fileImplC = dir + '/' + fileImplC;
}
+ SignalHandler::addFile(fileImplH);
+ SignalHandler::addFile(fileImplC);
struct stat st;
if(stat(fileImplH.c_str(), &st) == 0)
@@ -117,6 +120,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte
fileH = dir + '/' + fileH;
fileC = dir + '/' + fileC;
}
+ SignalHandler::addFile(fileH);
+ SignalHandler::addFile(fileC);
H.open(fileH.c_str());
if(!H)
diff --git a/cpp/src/slice2cpp/Main.cpp b/cpp/src/slice2cpp/Main.cpp
index 0edf14755d7..dddb8f16593 100644
--- a/cpp/src/slice2cpp/Main.cpp
+++ b/cpp/src/slice2cpp/Main.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
using namespace std;
@@ -150,6 +151,8 @@ main(int argc, char* argv[])
for(i = args.begin(); i != args.end(); ++i)
{
+ SignalHandler sigHandler;
+
if(depend)
{
Preprocessor icecpp(argv[0], *i, cppArgs);
diff --git a/cpp/src/slice2cppe/Gen.cpp b/cpp/src/slice2cppe/Gen.cpp
index 9146edd8111..89fcbd1e155 100644
--- a/cpp/src/slice2cppe/Gen.cpp
+++ b/cpp/src/slice2cppe/Gen.cpp
@@ -9,6 +9,7 @@
#include <Gen.h>
#include <Slice/CPlusPlusUtil.h>
+#include <Slice/SignalHandler.h>
#include <IceUtil/Functional.h>
#include <IceUtil/Iterator.h>
@@ -93,6 +94,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte
fileImplH = dir + '/' + fileImplH;
fileImplC = dir + '/' + fileImplC;
}
+ SignalHandler::addFile(fileImplH);
+ SignalHandler::addFile(fileImplC);
struct stat st;
if(stat(fileImplH.c_str(), &st) == 0)
@@ -138,6 +141,8 @@ Slice::Gen::Gen(const string& name, const string& base, const string& headerExte
fileH = dir + '/' + fileH;
fileC = dir + '/' + fileC;
}
+ SignalHandler::addFile(fileH);
+ SignalHandler::addFile(fileC);
H.open(fileH.c_str());
if(!H)
diff --git a/cpp/src/slice2cppe/Main.cpp b/cpp/src/slice2cppe/Main.cpp
index 12f630139ac..4b7ad83e54d 100644
--- a/cpp/src/slice2cppe/Main.cpp
+++ b/cpp/src/slice2cppe/Main.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
using namespace std;
@@ -141,6 +142,8 @@ main(int argc, char* argv[])
for(i = args.begin(); i != args.end(); ++i)
{
+ SignalHandler sigHandler;
+
if(depend)
{
Preprocessor icecpp(argv[0], *i, cppArgs);
diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp
index 37c05e7454c..a68b54f7da5 100755
--- a/cpp/src/slice2cs/Gen.cpp
+++ b/cpp/src/slice2cs/Gen.cpp
@@ -21,6 +21,7 @@
#include <IceUtil/UUID.h>
#include <Slice/Checksum.h>
#include <Slice/DotNetNames.h>
+#include <Slice/SignalHandler.h>
using namespace std;
using namespace Slice;
@@ -1072,6 +1073,8 @@ Slice::Gen::Gen(const string& name, const string& base, const vector<string>& in
file = dir + '/' + file;
fileImpl = dir + '/' + fileImpl;
}
+ SignalHandler::addFile(file);
+ SignalHandler::addFile(fileImpl);
_out.open(file.c_str());
if(!_out)
diff --git a/cpp/src/slice2cs/Main.cpp b/cpp/src/slice2cs/Main.cpp
index ef7f8033012..58db087c5c3 100644
--- a/cpp/src/slice2cs/Main.cpp
+++ b/cpp/src/slice2cs/Main.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
using namespace std;
@@ -145,6 +146,8 @@ main(int argc, char* argv[])
for(i = args.begin(); i != args.end(); ++i)
{
+ SignalHandler sigHandler;
+
if(depend)
{
Preprocessor icecpp(argv[0], *i, cppArgs);
diff --git a/cpp/src/slice2docbook/Main.cpp b/cpp/src/slice2docbook/Main.cpp
index 29be2a76123..2c11c94eabf 100644
--- a/cpp/src/slice2docbook/Main.cpp
+++ b/cpp/src/slice2docbook/Main.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
using namespace std;
@@ -149,6 +150,8 @@ main(int argc, char* argv[])
int status = EXIT_SUCCESS;
+ SignalHandler sigHandler;
+
for(vector<string>::size_type idx = 1; idx < args.size(); ++idx)
{
Preprocessor icecpp(argv[0], args[idx], cppArgs);
@@ -185,6 +188,8 @@ main(int argc, char* argv[])
if(status == EXIT_SUCCESS && !preprocess)
{
+ SignalHandler::addFile(docbook);
+
Gen gen(argv[0], docbook, standAlone, chapter, noIndex, sortFields);
if(!gen)
{
@@ -193,7 +198,7 @@ main(int argc, char* argv[])
}
gen.generate(p);
}
-
+
p->destroy();
return status;
diff --git a/cpp/src/slice2freeze/Main.cpp b/cpp/src/slice2freeze/Main.cpp
index 0b1d4420fa5..0790f7ff60e 100644
--- a/cpp/src/slice2freeze/Main.cpp
+++ b/cpp/src/slice2freeze/Main.cpp
@@ -12,6 +12,7 @@
#include <Slice/Preprocessor.h>
#include <Slice/CPlusPlusUtil.h>
#include <IceUtil/OutputUtil.h>
+#include <Slice/SignalHandler.h>
using namespace std;
using namespace IceUtil;
@@ -1685,6 +1686,8 @@ main(int argc, char* argv[])
int status = EXIT_SUCCESS;
+ SignalHandler sigHandler;
+
for(vector<string>::size_type idx = 1; idx < args.size(); ++idx)
{
Preprocessor icecpp(argv[0], args[idx], cppArgs);
@@ -1729,6 +1732,9 @@ main(int argc, char* argv[])
if(status == EXIT_SUCCESS && !preprocess)
{
+ SignalHandler::addFile(fileH);
+ SignalHandler::addFile(fileC);
+
u->mergeModules();
u->sort();
@@ -1874,6 +1880,7 @@ main(int argc, char* argv[])
H << "\n\n#endif\n";
C << '\n';
+
}
u->destroy();
diff --git a/cpp/src/slice2freezej/Main.cpp b/cpp/src/slice2freezej/Main.cpp
index e430c562a9e..a7a9e9c3625 100644
--- a/cpp/src/slice2freezej/Main.cpp
+++ b/cpp/src/slice2freezej/Main.cpp
@@ -10,6 +10,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
#include <Slice/JavaUtil.h>
+#include <Slice/SignalHandler.h>
#ifdef __BCPLUSPLUS__
# include <iterator>
@@ -57,6 +58,7 @@ class FreezeGenerator : public JavaGenerator
{
public:
FreezeGenerator(const string&, const string&);
+ virtual ~FreezeGenerator();
bool generate(UnitPtr&, const Dict&);
@@ -75,6 +77,10 @@ FreezeGenerator::FreezeGenerator(const string& prog, const string& dir)
{
}
+FreezeGenerator::~FreezeGenerator()
+{
+}
+
string
FreezeGenerator::varToObject(const TypePtr& type, const string& param)
{
@@ -1407,6 +1413,8 @@ main(int argc, char* argv[])
int status = EXIT_SUCCESS;
+ SignalHandler sigHandler;
+
for(vector<string>::size_type idx = 0; idx < args.size(); ++idx)
{
if(depend)
diff --git a/cpp/src/slice2html/Gen.cpp b/cpp/src/slice2html/Gen.cpp
index 467257c628c..e477449255d 100644
--- a/cpp/src/slice2html/Gen.cpp
+++ b/cpp/src/slice2html/Gen.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/DisableWarnings.h>
#include <IceUtil/Functional.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
#include <sys/types.h>
@@ -1192,6 +1193,8 @@ Slice::GeneratorBase::getLogoURL()
void
Slice::GeneratorBase::openStream(const string& path)
{
+ SignalHandler::addFile(path);
+
_out.open(path.c_str());
if(!_out.isOpen())
{
diff --git a/cpp/src/slice2html/Main.cpp b/cpp/src/slice2html/Main.cpp
index a74f7d92f90..6ca031ae35b 100644
--- a/cpp/src/slice2html/Main.cpp
+++ b/cpp/src/slice2html/Main.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
#include <stdlib.h>
@@ -172,6 +173,8 @@ main(int argc, char* argv[])
int status = EXIT_SUCCESS;
+ SignalHandler sigHandler;
+
for(vector<string>::size_type idx = 0; idx < args.size(); ++idx)
{
Preprocessor icecpp(argv[0], args[idx], cppArgs);
diff --git a/cpp/src/slice2java/Main.cpp b/cpp/src/slice2java/Main.cpp
index 6f814593cb6..9fd9860a1aa 100644
--- a/cpp/src/slice2java/Main.cpp
+++ b/cpp/src/slice2java/Main.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
#ifdef __BCPLUSPLUS__
@@ -157,6 +158,8 @@ main(int argc, char* argv[])
for(i = args.begin(); i != args.end(); ++i)
{
+ SignalHandler sigHandler;
+
if(depend)
{
Preprocessor icecpp(argv[0], *i, cppArgs);
diff --git a/cpp/src/slice2javae/Main.cpp b/cpp/src/slice2javae/Main.cpp
index ee32b1b5db3..8019d1d8034 100644
--- a/cpp/src/slice2javae/Main.cpp
+++ b/cpp/src/slice2javae/Main.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
using namespace std;
@@ -137,6 +138,8 @@ main(int argc, char* argv[])
for(i = args.begin(); i != args.end(); ++i)
{
+ SignalHandler sigHandler;
+
if(depend)
{
Preprocessor icecpp(argv[0], *i, cppArgs);
diff --git a/cpp/src/slice2py/Main.cpp b/cpp/src/slice2py/Main.cpp
index b18f391f309..521786ac6ce 100644
--- a/cpp/src/slice2py/Main.cpp
+++ b/cpp/src/slice2py/Main.cpp
@@ -13,6 +13,7 @@
#include <IceUtil/StringUtil.h>
#include <Slice/Preprocessor.h>
#include <Slice/PythonUtil.h>
+#include <Slice/SignalHandler.h>
#include <fstream>
@@ -475,6 +476,8 @@ main(int argc, char* argv[])
for(i = args.begin(); i != args.end(); ++i)
{
+ SignalHandler sigHandler;
+
Preprocessor icecpp(argv[0], *i, cppArgs);
FILE* cppHandle = icecpp.preprocess(false);
@@ -533,6 +536,7 @@ main(int argc, char* argv[])
{
file = output + '/' + file;
}
+ SignalHandler::addFile(file);
IceUtilInternal::Output out;
out.open(file.c_str());
@@ -559,6 +563,7 @@ main(int argc, char* argv[])
PackageVisitor visitor(argv[0], prefix + base + "_ice", output);
u->visit(&visitor, false);
}
+
}
u->destroy();
diff --git a/cpp/src/slice2rb/Main.cpp b/cpp/src/slice2rb/Main.cpp
index 67bae275a63..8250a4a49ca 100644
--- a/cpp/src/slice2rb/Main.cpp
+++ b/cpp/src/slice2rb/Main.cpp
@@ -11,6 +11,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
#include <Slice/RubyUtil.h>
+#include <Slice/SignalHandler.h>
#include <fstream>
@@ -137,6 +138,8 @@ main(int argc, char* argv[])
for(i = args.begin(); i != args.end(); ++i)
{
+ SignalHandler sigHandler;
+
Preprocessor icecpp(argv[0], *i, cppArgs);
FILE* cppHandle = icecpp.preprocess(false);
@@ -189,6 +192,7 @@ main(int argc, char* argv[])
{
file = output + '/' + file;
}
+ SignalHandler::addFile(file);
IceUtilInternal::Output out;
out.open(file.c_str());
@@ -206,6 +210,7 @@ main(int argc, char* argv[])
// Generate the Ruby mapping.
//
generate(u, all, checksum, includePaths, out);
+
}
u->destroy();
diff --git a/cpp/src/slice2sl/Gen.cpp b/cpp/src/slice2sl/Gen.cpp
index 24b72e6230c..604c6e0e5d3 100755
--- a/cpp/src/slice2sl/Gen.cpp
+++ b/cpp/src/slice2sl/Gen.cpp
@@ -20,6 +20,7 @@
#include <IceUtil/Iterator.h>
#include <IceUtil/UUID.h>
#include <Slice/DotNetNames.h>
+#include <Slice/SignalHandler.h>
using namespace std;
using namespace Slice;
@@ -501,6 +502,8 @@ Slice::Gen::Gen(const string& name, const string& base, const vector<string>& in
file = dir + '/' + file;
fileImpl = dir + '/' + fileImpl;
}
+ SignalHandler::addFile(file);
+ SignalHandler::addFile(fileImpl);
_out.open(file.c_str());
if(!_out)
diff --git a/cpp/src/slice2sl/Main.cpp b/cpp/src/slice2sl/Main.cpp
index 010944528fa..9390a1c90f0 100644
--- a/cpp/src/slice2sl/Main.cpp
+++ b/cpp/src/slice2sl/Main.cpp
@@ -9,6 +9,7 @@
#include <IceUtil/Options.h>
#include <Slice/Preprocessor.h>
+#include <Slice/SignalHandler.h>
#include <Gen.h>
using namespace std;
@@ -118,6 +119,8 @@ main(int argc, char* argv[])
for(i = args.begin(); i != args.end(); ++i)
{
+ SignalHandler sigHandler;
+
if(depend)
{
Preprocessor icecpp(argv[0], *i, cppArgs);