Daemon class moved to Utils/Daemon into libUtils_Daemon library
g0dil [Tue, 13 Nov 2007 16:41:12 +0000 (16:41 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@514 270642c3-0616-0410-b53a-bc976706d245

Utils/Daemon/Daemon.cc [moved from Scheduler/Daemon.cc with 99% similarity]
Utils/Daemon/Daemon.hh [moved from Scheduler/Daemon.hh with 100% similarity]
Utils/Daemon/Daemon.ih [moved from Scheduler/Daemon.ih with 98% similarity]
Utils/Daemon/Daemon.test.cc [moved from Scheduler/Daemon.test.cc with 100% similarity]
Utils/Daemon/Doxyfile [new file with mode: 0644]
Utils/Daemon/SConscript [new file with mode: 0644]
Utils/Daemon/main.test.cc [moved from Utils/DaemonTools.cc with 52% similarity]
Utils/DaemonTools.hh [deleted file]

similarity index 99%
rename from Scheduler/Daemon.cc
rename to Utils/Daemon/Daemon.cc
index 3782974..34f476a 100644 (file)
@@ -38,8 +38,8 @@
 #include <algorithm>
 #include <boost/algorithm/string/predicate.hpp>
 #include <boost/algorithm/string/trim.hpp>
-#include "../Utils/Exception.hh"
-#include "../Utils/membind.hh"
+#include "../Exception.hh"
+#include "../membind.hh"
 
 //#include "Daemon.mpp"
 #define prefix_
similarity index 100%
rename from Scheduler/Daemon.hh
rename to Utils/Daemon/Daemon.hh
similarity index 98%
rename from Scheduler/Daemon.ih
rename to Utils/Daemon/Daemon.ih
index 5988bca..ce8b7e3 100644 (file)
@@ -31,7 +31,7 @@
 #include <list>
 #include <boost/utility.hpp>
 #include <boost/function.hpp>
-#include "../Scheduler/Scheduler.hh"
+#include "../../Scheduler/Scheduler.hh"
 
 ///////////////////////////////ih.p////////////////////////////////////////
 
diff --git a/Utils/Daemon/Doxyfile b/Utils/Daemon/Doxyfile
new file mode 100644 (file)
index 0000000..86ac1b9
--- /dev/null
@@ -0,0 +1,5 @@
+@INCLUDE = "$(TOPDIR)/doclib/Doxyfile.global"
+
+PROJECT_NAME = libUtils_Daemon
+GENERATE_TAGFILE = doc/Daemon.tag
+ALPHABETICAL_INDEX = NO
diff --git a/Utils/Daemon/SConscript b/Utils/Daemon/SConscript
new file mode 100644 (file)
index 0000000..d7d4586
--- /dev/null
@@ -0,0 +1,17 @@
+# -*- python -*-
+
+Import('env')
+import SENFSCons, glob
+
+###########################################################################
+
+SENFSCons.StandardTargets(env)
+
+sources = SENFSCons.GlobSources()
+
+SENFSCons.Lib( env,
+               library = 'Utils_Daemon',
+               sources = sources,
+               LIBS = [ 'Scheduler', 'Utils' ] )
+
+SENFSCons.Doxygen(env)
similarity index 52%
rename from Utils/DaemonTools.cc
rename to Utils/Daemon/main.test.cc
index 1d33a6e..d3f3be2 100644 (file)
@@ -1,6 +1,9 @@
-// $Id$
+// $Id: main.test.cc 369 2007-08-01 07:51:36Z tho $
 //
-// Copyright (C) 2006 Stefan Bund <g0dil@senf.berlios.de>
+// Copyright (C) 2006
+// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
+// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+//     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
-/** \file
-    \brief DaemonTools  non-inline non-template implementation */
+// Definition of non-inline non-template functions
 
-#include "DaemonTools.hh"
-//#include "DaemonTools.ih"
+//#include "test.hh"
+//#include "test.ih"
 
 // Custom includes
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include "Exception.hh"
+#define BOOST_AUTO_TEST_MAIN
+#include "../../Utils/auto_unit_test.hh"
+#include <boost/test/test_tools.hpp>
 
-//#include "DaemonTools.mpp"
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
 
-prefix_ void senf::daemonize()
-{
-    int pid = fork();
-    if (pid < 0)
-        throw senf::SystemException("fork",errno);
-    if (pid > 0)
-        ::_exit(0);
-    if (::setsid() < 0)
-        throw senf::SystemException("setsid",errno);
-}
-
-prefix_ void senf::redirect_stdio(std::string const & path)
-{
-    int fd = ::open(path.c_str(),O_RDWR);
-    if (fd < 0) throw senf::SystemException("open",errno);
-    if (dup2(fd,0) < 0) throw senf::SystemException("dup2",errno);
-    if (dup2(fd,1) < 0) throw senf::SystemException("dup2",errno);
-    if (dup2(fd,2) < 0) throw senf::SystemException("dup2",errno);
-    if (::close(fd) < 0) throw senf::SystemException("close",errno);
-}
 
 ///////////////////////////////cc.e////////////////////////////////////////
 #undef prefix_
-//#include "DaemonTools.mpp"
 
 \f
 // Local Variables:
diff --git a/Utils/DaemonTools.hh b/Utils/DaemonTools.hh
deleted file mode 100644 (file)
index 466e592..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// $Id$
-//
-// Copyright (C) 2006 Stefan Bund <g0dil@senf.berlios.de>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the
-// Free Software Foundation, Inc.,
-// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-
-/** \file
-    \brief DaemonTools public header */
-
-/** \defgroup process Process Management
-
-    Future features:
-
-    \li Daemon manager watching the real daemon. Auto-restart, when the daemon fails
-
-    \li Provide access to the config console indirectly via the daemon manager. This allows to
-        connect to the daemon manager console even if the app is not running
-    
-    \li For this to be efficient, the daemon manager must be it's own executable (e.g. senf-launch)
-
-    \li auto-detect whether called from senf-launch or not
-
-    \li when daemon is running, the console is transparently forwarded to the daemon. The daemon
-        however can still access the daemon manager as a subgroup
-    
-    \li No idea, whether this is sensible: Make the daemon manager completely self-contained (not
-        dependent on any external OS support) by providing our own log-file rotation support.
-
-    This collection of utilities provides help in managing daemon processes.
-
-    \idea A closeall()/closemost() function which is useful when starting child processes. We'll use
-        getrlimit to now the biggest filehandle and close all of em. closemost() takes a number of
-        file handles as arg and will keep those open.
-
-    \idea We might want to add other oft used utitlities: chroot(), setreuid(), pipes() / IPC ...
- */
-
-#ifndef HH_DaemonTools_
-#define HH_DaemonTools_ 1
-
-// Custom includes
-#include <string>
-
-//#include "DaemonTools.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
-
-namespace senf {
-
-    /// \addtogroup process
-    /// @{
-
-    void daemonize();                   ///< Make the current process a daemon process
-                                        /**< daemonize() will fork, detach from the controlling
-                                             terminal and start a new process group. */
-    void redirect_stdio(std::string const & path = "/dev/null"); ///< Redirect STDIN, STDOUT and STDERR
-                                        /**< All standard file-descriptors will be redirected to the
-                                             given path defaulting to <tt>/dev/null</tt>
-                                             \param[in] path path to redirect to */
-
-    /// @}
-}
-
-///////////////////////////////hh.e////////////////////////////////////////
-//#include "DaemonTools.cci"
-//#include "DaemonTools.ct"
-//#include "DaemonTools.cti"
-//#include "DaemonTools.mpp"
-#endif
-
-\f
-// Local Variables:
-// mode: c++
-// fill-column: 100
-// c-file-style: "senf"
-// indent-tabs-mode: nil
-// ispell-local-dictionary: "american"
-// compile-command: "scons -u test"
-// comment-column: 40
-// End: