summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-05-18 19:53:51 +0200
committerMatthias Schiffer <matthias@gamezock.de>2009-05-18 19:53:51 +0200
commitfc3c50063f659584b2145addab8236a479a031b7 (patch)
tree0aa7057cb9fa7523ace98e0776d46609de58954e
parenta3e566c4d3631076e29f3651554603184b6351a7 (diff)
downloadmad-fc3c50063f659584b2145addab8236a479a031b7.tar
mad-fc3c50063f659584b2145addab8236a479a031b7.zip
Von sigc++ auf boost-signals migriert
-rw-r--r--Makefile.in4
-rw-r--r--aclocal.m41
-rw-r--r--config.h.in3
-rwxr-xr-xconfigure441
-rw-r--r--configure.ac4
-rw-r--r--libltdl/Makefile.in4
-rw-r--r--m4/ax_boost_signals.m4108
-rw-r--r--src/Client/CommandManager.h6
-rw-r--r--src/Client/CommandParser.cpp21
-rw-r--r--src/Client/InformationManager.cpp6
-rw-r--r--src/Client/Makefile.in4
-rw-r--r--src/Client/Requests/Makefile.in4
-rw-r--r--src/Common/ActionManager.cpp8
-rw-r--r--src/Common/ActionManager.h6
-rw-r--r--src/Common/Base64Encoder.cpp12
-rw-r--r--src/Common/ClientConnection.cpp2
-rw-r--r--src/Common/Connection.cpp2
-rw-r--r--src/Common/Connection.h6
-rw-r--r--src/Common/Makefile.in4
-rw-r--r--src/Common/Request.h9
-rw-r--r--src/Common/RequestHandler.h5
-rw-r--r--src/Common/RequestHandlers/DisconnectRequestHandler.cpp4
-rw-r--r--src/Common/RequestHandlers/FSInfoRequestHandler.cpp10
-rw-r--r--src/Common/RequestHandlers/Makefile.in4
-rw-r--r--src/Common/RequestHandlers/StatusRequestHandler.cpp12
-rw-r--r--src/Common/RequestManager.cpp7
-rw-r--r--src/Common/Requests/Makefile.in4
-rw-r--r--src/Common/SystemBackend.h12
-rw-r--r--src/Common/SystemManager.cpp12
-rw-r--r--src/Common/SystemManager.h14
-rw-r--r--src/Daemon/Backends/Makefile.in4
-rw-r--r--src/Daemon/Backends/NetworkLogger.h4
-rw-r--r--src/Daemon/Makefile.in4
-rw-r--r--src/Daemon/RequestHandlers/CommandRequestHandler.cpp12
-rw-r--r--src/Daemon/RequestHandlers/Makefile.in4
-rw-r--r--src/Daemon/Requests/Makefile.in4
-rw-r--r--src/Makefile.am6
-rw-r--r--src/Makefile.in10
-rw-r--r--src/Net/ClientConnection.cpp4
-rw-r--r--src/Net/Connection.cpp18
-rw-r--r--src/Net/Connection.h18
-rw-r--r--src/Net/FdManager.cpp11
-rw-r--r--src/Net/FdManager.h6
-rw-r--r--src/Net/Listener.cpp14
-rw-r--r--src/Net/Listener.h8
-rw-r--r--src/Net/Makefile.in4
-rw-r--r--src/Net/ServerConnection.cpp2
-rw-r--r--src/Net/ServerConnection.h2
-rw-r--r--src/Net/ThreadManager.cpp6
-rw-r--r--src/Net/ThreadManager.h6
-rw-r--r--src/Server/ConnectionManager.cpp12
-rw-r--r--src/Server/ConnectionManager.h3
-rw-r--r--src/Server/Makefile.in4
-rw-r--r--src/Server/RequestHandlers/DaemonCommandRequestHandler.cpp6
-rw-r--r--src/Server/RequestHandlers/DaemonFSInfoRequestHandler.cpp6
-rw-r--r--src/Server/RequestHandlers/DaemonListRequestHandler.cpp4
-rw-r--r--src/Server/RequestHandlers/DaemonStatusRequestHandler.cpp6
-rw-r--r--src/Server/RequestHandlers/GSSAPIAuthRequestHandler.cpp4
-rw-r--r--src/Server/RequestHandlers/IdentifyRequestHandler.cpp4
-rw-r--r--src/Server/RequestHandlers/LogRequestHandler.cpp4
-rw-r--r--src/Server/RequestHandlers/Makefile.in4
-rw-r--r--src/Server/RequestHandlers/UserInfoRequestHandler.cpp10
-rw-r--r--src/Server/RequestHandlers/UserListRequestHandler.cpp10
-rw-r--r--src/Server/Requests/Makefile.in4
-rw-r--r--src/Server/UserBackend.h10
-rw-r--r--src/Server/UserManager.cpp8
-rw-r--r--src/Server/UserManager.h10
-rw-r--r--src/mad.cpp2
-rw-r--r--src/madc.cpp4
-rw-r--r--src/modules/Makefile.in8
-rw-r--r--src/modules/SystemBackendPosix.cpp30
-rw-r--r--src/modules/SystemBackendPosix.h22
-rw-r--r--src/modules/SystemBackendProc.cpp14
-rw-r--r--src/modules/SystemBackendProc.h6
-rw-r--r--src/modules/UserBackendMysql.cpp12
-rw-r--r--src/modules/UserBackendMysql.h4
76 files changed, 744 insertions, 353 deletions
diff --git a/Makefile.in b/Makefile.in
index eff5713..5222c19 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -42,6 +42,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -89,6 +90,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -220,8 +222,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/aclocal.m4 b/aclocal.m4
index 73bc5c1..7c64eba 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -908,6 +908,7 @@ AC_SUBST([am__untar])
m4_include([m4/argz.m4])
m4_include([m4/ax_boost_base.m4])
+m4_include([m4/ax_boost_signals.m4])
m4_include([m4/ax_boost_thread.m4])
m4_include([m4/ax_lib_mysql.m4])
m4_include([m4/libtool.m4])
diff --git a/config.h.in b/config.h.in
index 914c020..c3fa2b5 100644
--- a/config.h.in
+++ b/config.h.in
@@ -30,6 +30,9 @@
/* define if the Boost library is available */
#undef HAVE_BOOST
+/* define if the Boost::Signals library is available */
+#undef HAVE_BOOST_SIGNALS
+
/* define if the Boost::Thread library is available */
#undef HAVE_BOOST_THREAD
diff --git a/configure b/configure
index 3704fc7..f6f2042 100755
--- a/configure
+++ b/configure
@@ -800,6 +800,7 @@ SYSTEMBACKEND_POSIX_TRUE
LIBOBJS
READLINE_LIBS
GSSAPI_LIBS
+BOOST_SIGNALS_LIB
BOOST_THREAD_LIB
BOOST_LDFLAGS
BOOST_CPPFLAGS
@@ -809,8 +810,6 @@ MYSQL_VERSION
MYSQL_CONFIG
pcrecpp_LIBS
pcrecpp_CFLAGS
-sigc_LIBS
-sigc_CFLAGS
GnuTLS_LIBS
GnuTLS_CFLAGS
libxml2_LIBS
@@ -969,6 +968,7 @@ with_mysql
with_boost
with_boost_libdir
with_boost_thread
+with_boost_signals
with_systembackend_posix
with_systembackend_proc
with_userbackend_mysql
@@ -991,8 +991,6 @@ libxml2_CFLAGS
libxml2_LIBS
GnuTLS_CFLAGS
GnuTLS_LIBS
-sigc_CFLAGS
-sigc_LIBS
pcrecpp_CFLAGS
pcrecpp_LIBS'
@@ -1659,6 +1657,10 @@ Optional Packages:
use the Thread library from boost - it is possible
to specify a certain library for the linker e.g.
--with-boost-thread=boost_thread-gcc-mt
+ --with-boost-signals[=special-lib]
+ use the Signals library from boost - it is possible
+ to specify a certain library for the linker e.g.
+ --with-boost-signals=boost_signals-gcc-mt-d
--with-systembackend-posix
enable POSIX system backend [default=yes]
--with-systembackend-proc
@@ -1686,8 +1688,6 @@ Some influential environment variables:
GnuTLS_CFLAGS
C compiler flags for GnuTLS, overriding pkg-config
GnuTLS_LIBS linker flags for GnuTLS, overriding pkg-config
- sigc_CFLAGS C compiler flags for sigc, overriding pkg-config
- sigc_LIBS linker flags for sigc, overriding pkg-config
pcrecpp_CFLAGS
C compiler flags for pcrecpp, overriding pkg-config
pcrecpp_LIBS
@@ -17775,81 +17775,6 @@ $as_echo "yes" >&6; }
fi
pkg_failed=no
-{ $as_echo "$as_me:$LINENO: checking for sigc" >&5
-$as_echo_n "checking for sigc... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
- if test -n "$sigc_CFLAGS"; then
- pkg_cv_sigc_CFLAGS="$sigc_CFLAGS"
- else
- if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"sigc++-2.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "sigc++-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_sigc_CFLAGS=`$PKG_CONFIG --cflags "sigc++-2.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
- if test -n "$sigc_LIBS"; then
- pkg_cv_sigc_LIBS="$sigc_LIBS"
- else
- if test -n "$PKG_CONFIG" && \
- { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"sigc++-2.0\"") >&5
- ($PKG_CONFIG --exists --print-errors "sigc++-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- pkg_cv_sigc_LIBS=`$PKG_CONFIG --libs "sigc++-2.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- fi
-else
- pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- sigc_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sigc++-2.0"`
- else
- sigc_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sigc++-2.0"`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$sigc_PKG_ERRORS" >&5
-
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- { { $as_echo "$as_me:$LINENO: error: Test for SigC++ 2.0 failed." >&5
-$as_echo "$as_me: error: Test for SigC++ 2.0 failed." >&2;}
- { (exit 1); exit 1; }; }
-elif test $pkg_failed = untried; then
- { { $as_echo "$as_me:$LINENO: error: Test for SigC++ 2.0 failed." >&5
-$as_echo "$as_me: error: Test for SigC++ 2.0 failed." >&2;}
- { (exit 1); exit 1; }; }
-else
- sigc_CFLAGS=$pkg_cv_sigc_CFLAGS
- sigc_LIBS=$pkg_cv_sigc_LIBS
- { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
- :
-fi
-
-pkg_failed=no
{ $as_echo "$as_me:$LINENO: checking for pcrecpp" >&5
$as_echo_n "checking for pcrecpp... " >&6; }
@@ -18755,7 +18680,359 @@ $as_echo "$as_me: error: Could not link against $ax_lib !" >&2;}
fi
-CPPFLAGS='-I$(top_builddir)/lib -I$(top_srcdir)/lib -I${top_srcdir}/src '"$libxml2_CFLAGS $GnuTLS_CFLAGS $sigc_CFLAGS $pcrecpp_CFLAGS $MYSQL_CFLAGS $BOOST_CPPFLAGS $INCLTDL $CPPFLAGS"
+
+# Check whether --with-boost-signals was given.
+if test "${with_boost_signals+set}" = set; then
+ withval=$with_boost_signals;
+ if test "$withval" = "no"; then
+ want_boost="no"
+ elif test "$withval" = "yes"; then
+ want_boost="yes"
+ ax_boost_user_signals_lib=""
+ else
+ want_boost="yes"
+ ax_boost_user_signals_lib="$withval"
+ fi
+
+else
+ want_boost="yes"
+
+fi
+
+
+ if test "x$want_boost" = "xyes"; then
+
+ CPPFLAGS_SAVED="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+ export CPPFLAGS
+
+ LDFLAGS_SAVED="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
+ { $as_echo "$as_me:$LINENO: checking whether the Boost::Signals library is available" >&5
+$as_echo_n "checking whether the Boost::Signals library is available... " >&6; }
+if test "${ax_cv_boost_signals+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <boost/signal.hpp>
+
+int
+main ()
+{
+boost::signal<void ()> sig;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ax_cv_boost_signals=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ax_cv_boost_signals=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ax_cv_boost_signals" >&5
+$as_echo "$ax_cv_boost_signals" >&6; }
+ if test "x$ax_cv_boost_signals" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_BOOST_SIGNALS /**/
+_ACEOF
+
+ BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/[^\/]*//'`
+ if test "x$ax_boost_user_signals_lib" = "x"; then
+ for libextension in `ls $BOOSTLIBDIR/libboost_signals*.{so,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_signals.*\)\.so.*$;\1;' -e 's;^lib\(boost_signals.*\)\.a*$;\1;'` ; do
+ ax_lib=${libextension}
+ as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for exit in -l$ax_lib" >&5
+$as_echo_n "checking for exit in -l$ax_lib... " >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$ax_lib $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char exit ();
+int
+main ()
+{
+return exit ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_Lib=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_Lib=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval 'as_val=${'$as_ac_Lib'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Lib'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ BOOST_SIGNALS_LIB="-l$ax_lib"; link_signals="yes"; break
+else
+ link_signals="no"
+fi
+
+ done
+ if test "x$link_signals" != "xyes"; then
+ for libextension in `ls $BOOSTLIBDIR/boost_signals*.{dll,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_signals.*\)\.dll.*$;\1;' -e 's;^\(boost_signals.*\)\.a*$;\1;'` ; do
+ ax_lib=${libextension}
+ as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_exit" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for exit in -l$ax_lib" >&5
+$as_echo_n "checking for exit in -l$ax_lib... " >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$ax_lib $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char exit ();
+int
+main ()
+{
+return exit ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_Lib=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_Lib=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval 'as_val=${'$as_ac_Lib'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Lib'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ BOOST_SIGNALS_LIB="-l$ax_lib"; link_signals="yes"; break
+else
+ link_signals="no"
+fi
+
+ done
+ fi
+
+ else
+ for ax_lib in $ax_boost_user_signals_lib boost_signals-$ax_boost_user_signals_lib; do
+ as_ac_Lib=`$as_echo "ac_cv_lib_$ax_lib''_main" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for main in -l$ax_lib" >&5
+$as_echo_n "checking for main in -l$ax_lib... " >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$ax_lib $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+
+int
+main ()
+{
+return main ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_Lib=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_Lib=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval 'as_val=${'$as_ac_Lib'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Lib'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ BOOST_SIGNALS_LIB="-l$ax_lib"; link_signals="yes"; break
+else
+ link_signals="no"
+fi
+
+ done
+
+ fi
+ if test "x$link_signals" != "xyes"; then
+ { { $as_echo "$as_me:$LINENO: error: Could not link against $ax_lib !" >&5
+$as_echo "$as_me: error: Could not link against $ax_lib !" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+ fi
+
+
+CPPFLAGS='-I$(top_builddir)/lib -I$(top_srcdir)/lib -I${top_srcdir}/src '"$libxml2_CFLAGS $GnuTLS_CFLAGS $pcrecpp_CFLAGS $MYSQL_CFLAGS $BOOST_CPPFLAGS $INCLTDL $CPPFLAGS"
{ $as_echo "$as_me:$LINENO: checking for gss_init_sec_context in -lgssapi_krb5" >&5
$as_echo_n "checking for gss_init_sec_context in -lgssapi_krb5... " >&6; }
diff --git a/configure.ac b/configure.ac
index b0cda0e..8387ba6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,14 +31,14 @@ AM_CONDITIONAL(INCLUDED_LTDL, test "x$with_included_ltdl" = xyes)
# Checks for libraries.
PKG_CHECK_MODULES(libxml2, libxml-2.0, , AC_MSG_ERROR(Test for libxml 2.0 failed.))
PKG_CHECK_MODULES(GnuTLS, gnutls, , AC_MSG_ERROR(Test for GnuTLS failed.))
-PKG_CHECK_MODULES(sigc, sigc++-2.0, , AC_MSG_ERROR(Test for SigC++ 2.0 failed.))
PKG_CHECK_MODULES(pcrecpp, libpcrecpp, , have_pcrecpp=no)
AX_LIB_MYSQL
AX_BOOST_BASE
AX_BOOST_THREAD
+AX_BOOST_SIGNALS
-CPPFLAGS='-I$(top_builddir)/lib -I$(top_srcdir)/lib -I${top_srcdir}/src '"$libxml2_CFLAGS $GnuTLS_CFLAGS $sigc_CFLAGS $pcrecpp_CFLAGS $MYSQL_CFLAGS $BOOST_CPPFLAGS $INCLTDL $CPPFLAGS"
+CPPFLAGS='-I$(top_builddir)/lib -I$(top_srcdir)/lib -I${top_srcdir}/src '"$libxml2_CFLAGS $GnuTLS_CFLAGS $pcrecpp_CFLAGS $MYSQL_CFLAGS $BOOST_CPPFLAGS $INCLTDL $CPPFLAGS"
AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context, AC_SUBST(GSSAPI_LIBS, -lgssapi_krb5), AC_CHECK_LIB(gssapi, gss_init_sec_context, GSSAPI_LIBS=-lgssapi, AC_MSG_ERROR(Test for GSSAPI library failed.)))
AC_CHECK_LIB(readline, readline, AC_SUBST(READLINE_LIBS, -lreadline), AC_MSG_ERROR(Test for GNU readline library failed.))
diff --git a/libltdl/Makefile.in b/libltdl/Makefile.in
index d8f988f..55cab99 100644
--- a/libltdl/Makefile.in
+++ b/libltdl/Makefile.in
@@ -45,6 +45,7 @@ DIST_COMMON = README $(am__include_HEADERS_DIST) \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -160,6 +161,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -291,8 +293,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/m4/ax_boost_signals.m4 b/m4/ax_boost_signals.m4
new file mode 100644
index 0000000..11e9c63
--- /dev/null
+++ b/m4/ax_boost_signals.m4
@@ -0,0 +1,108 @@
+# ===========================================================================
+# http://www.nongnu.org/autoconf-archive/ax_boost_signals.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_BOOST_SIGNALS
+#
+# DESCRIPTION
+#
+# Test for Signals library from the Boost C++ libraries. The macro
+# requires a preceding call to AX_BOOST_BASE. Further documentation is
+# available at <http://randspringer.de/boost/index.html>.
+#
+# This macro calls:
+#
+# AC_SUBST(BOOST_SIGNALS_LIB)
+#
+# And sets:
+#
+# HAVE_BOOST_SIGNALS
+#
+# LICENSE
+#
+# Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
+# Copyright (c) 2008 Michael Tindal
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved.
+
+AC_DEFUN([AX_BOOST_SIGNALS],
+[
+ AC_ARG_WITH([boost-signals],
+ AS_HELP_STRING([--with-boost-signals@<:@=special-lib@:>@],
+ [use the Signals library from boost - it is possible to specify a certain library for the linker
+ e.g. --with-boost-signals=boost_signals-gcc-mt-d ]),
+ [
+ if test "$withval" = "no"; then
+ want_boost="no"
+ elif test "$withval" = "yes"; then
+ want_boost="yes"
+ ax_boost_user_signals_lib=""
+ else
+ want_boost="yes"
+ ax_boost_user_signals_lib="$withval"
+ fi
+ ],
+ [want_boost="yes"]
+ )
+
+ if test "x$want_boost" = "xyes"; then
+ AC_REQUIRE([AC_PROG_CC])
+ CPPFLAGS_SAVED="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+ export CPPFLAGS
+
+ LDFLAGS_SAVED="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
+ AC_CACHE_CHECK(whether the Boost::Signals library is available,
+ ax_cv_boost_signals,
+ [AC_LANG_PUSH([C++])
+ AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[@%:@include <boost/signal.hpp>
+ ]],
+ [[boost::signal<void ()> sig;
+ return 0;
+ ]]),
+ ax_cv_boost_signals=yes, ax_cv_boost_signals=no)
+ AC_LANG_POP([C++])
+ ])
+ if test "x$ax_cv_boost_signals" = "xyes"; then
+ AC_DEFINE(HAVE_BOOST_SIGNALS,,[define if the Boost::Signals library is available])
+ BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
+ if test "x$ax_boost_user_signals_lib" = "x"; then
+ for libextension in `ls $BOOSTLIBDIR/libboost_signals*.{so,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_signals.*\)\.so.*$;\1;' -e 's;^lib\(boost_signals.*\)\.a*$;\1;'` ; do
+ ax_lib=${libextension}
+ AC_CHECK_LIB($ax_lib, exit,
+ [BOOST_SIGNALS_LIB="-l$ax_lib"; AC_SUBST(BOOST_SIGNALS_LIB) link_signals="yes"; break],
+ [link_signals="no"])
+ done
+ if test "x$link_signals" != "xyes"; then
+ for libextension in `ls $BOOSTLIBDIR/boost_signals*.{dll,a}* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_signals.*\)\.dll.*$;\1;' -e 's;^\(boost_signals.*\)\.a*$;\1;'` ; do
+ ax_lib=${libextension}
+ AC_CHECK_LIB($ax_lib, exit,
+ [BOOST_SIGNALS_LIB="-l$ax_lib"; AC_SUBST(BOOST_SIGNALS_LIB) link_signals="yes"; break],
+ [link_signals="no"])
+ done
+ fi
+
+ else
+ for ax_lib in $ax_boost_user_signals_lib boost_signals-$ax_boost_user_signals_lib; do
+ AC_CHECK_LIB($ax_lib, main,
+ [BOOST_SIGNALS_LIB="-l$ax_lib"; AC_SUBST(BOOST_SIGNALS_LIB) link_signals="yes"; break],
+ [link_signals="no"])
+ done
+
+ fi
+ if test "x$link_signals" != "xyes"; then
+ AC_MSG_ERROR(Could not link against $ax_lib !)
+ fi
+ fi
+
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+ fi
+])
diff --git a/src/Client/CommandManager.h b/src/Client/CommandManager.h
index f1689b1..7635542 100644
--- a/src/Client/CommandManager.h
+++ b/src/Client/CommandManager.h
@@ -20,7 +20,7 @@
#ifndef MAD_CLIENT_COMMANDMANAGER_H_
#define MAD_CLIENT_COMMANDMANAGER_H_
-#include <sigc++/signal.h>
+#include <boost/signal.hpp>
namespace Mad {
@@ -39,7 +39,7 @@ class CommandManager {
unsigned int activeRequests;
- sigc::signal<void> finished;
+ boost::signal0<void> finished;
bool disconnect;
@@ -71,7 +71,7 @@ class CommandManager {
bool requestsActive() {return (activeRequests > 0);}
bool willDisconnect() {return disconnect;}
- sigc::signal<void> signalFinished() const {return finished;}
+ boost::signal0<void>& signalFinished() {return finished;}
};
}
diff --git a/src/Client/CommandParser.cpp b/src/Client/CommandParser.cpp
index 1b40046..78b3570 100644
--- a/src/Client/CommandParser.cpp
+++ b/src/Client/CommandParser.cpp
@@ -33,7 +33,8 @@
#include <iostream>
#include <cstdio>
-#include <sigc++/bind.h>
+
+#include <boost/bind.hpp>
namespace Mad {
namespace Client {
@@ -111,9 +112,9 @@ std::map<std::string, Common::HostInfo> CommandParser::parseHostList(const std::
void CommandParser::fsinfoCommand(const std::vector<std::string> &args) {
if(args.size() == 1)
- Common::RequestManager::get()->sendRequest<Common::Requests::FSInfoRequest>(connection, sigc::mem_fun(CommandManager::get(), &CommandManager::fsInfoRequestFinished));
+ Common::RequestManager::get()->sendRequest<Common::Requests::FSInfoRequest>(connection, boost::bind(&CommandManager::fsInfoRequestFinished, CommandManager::get(), _1));
else if(args.size() == 2)
- Common::RequestManager::get()->sendRequest<Requests::DaemonFSInfoRequest>(connection, sigc::mem_fun(CommandManager::get(), &CommandManager::daemonFSInfoRequestFinished), args[1]);
+ Common::RequestManager::get()->sendRequest<Requests::DaemonFSInfoRequest>(connection, boost::bind(&CommandManager::daemonFSInfoRequestFinished, CommandManager::get(), _1), args[1]);
else {
Common::Logger::logf(Common::Logger::ERROR, "%s: Too many arguments.", args[0].c_str());
printUsage("fsinfo");
@@ -215,7 +216,7 @@ void CommandParser::rebootCommand(const std::vector<std::string> &args) {
for(std::map<std::string, Common::HostInfo>::iterator host = hosts.begin(); host != hosts.end(); ++host) {
Common::RequestManager::get()->sendRequest<Requests::DaemonCommandRequest>(connection,
- sigc::mem_fun(CommandManager::get(), &CommandManager::daemonCommandRequestFinished), host->first, true
+ boost::bind(&CommandManager::daemonCommandRequestFinished, CommandManager::get(), _1), host->first, true
);
++CommandManager::get()->activeRequests;
@@ -233,7 +234,7 @@ void CommandParser::shutdownCommand(const std::vector<std::string> &args) {
for(std::map<std::string, Common::HostInfo>::iterator host = hosts.begin(); host != hosts.end(); ++host) {
Common::RequestManager::get()->sendRequest<Requests::DaemonCommandRequest>(connection,
- sigc::mem_fun(CommandManager::get(), &CommandManager::daemonCommandRequestFinished), host->first, false
+ boost::bind(&CommandManager::daemonCommandRequestFinished, CommandManager::get(), _1), host->first, false
);
++CommandManager::get()->activeRequests;
@@ -243,10 +244,10 @@ void CommandParser::shutdownCommand(const std::vector<std::string> &args) {
void CommandParser::statusCommand(const std::vector<std::string> &args) {
if(args.size() == 1)
Common::RequestManager::get()->sendRequest<Common::Requests::StatusRequest>(connection,
- sigc::mem_fun(CommandManager::get(), &CommandManager::statusRequestFinished));
+ boost::bind(&CommandManager::statusRequestFinished, CommandManager::get(), _1));
else if(args.size() == 2)
Common::RequestManager::get()->sendRequest<Requests::DaemonStatusRequest>(connection,
- sigc::mem_fun(CommandManager::get(), &CommandManager::daemonStatusRequestFinished), args[1]);
+ boost::bind(&CommandManager::daemonStatusRequestFinished, CommandManager::get(), _1), args[1]);
else {
Common::Logger::logf(Common::Logger::ERROR, "%s: Too many arguments.", args[0].c_str());
printUsage("status");
@@ -279,21 +280,21 @@ void CommandParser::userInfoCommand(const std::vector<std::string> &args) {
++CommandManager::get()->activeRequests;
Common::RequestManager::get()->sendRequest<Common::Requests::UserInfoRequest>(connection,
- sigc::mem_fun(CommandManager::get(), &CommandManager::userInfoRequestFinished), uid);
+ boost::bind(&CommandManager::userInfoRequestFinished, CommandManager::get(), _1), uid);
}
void CommandParser::listUsersCommand(const std::vector<std::string>&) {
++CommandManager::get()->activeRequests;
Common::RequestManager::get()->sendRequest<Common::Requests::UserListRequest>(connection,
- sigc::mem_fun(CommandManager::get(), &CommandManager::userListRequestFinished));
+ boost::bind(&CommandManager::userListRequestFinished, CommandManager::get(), _1));
}
void CommandParser::exitCommand(const std::vector<std::string>&) {
++CommandManager::get()->activeRequests;
Common::RequestManager::get()->sendRequest<Common::Requests::DisconnectRequest>(connection,
- sigc::mem_fun(CommandManager::get(), &CommandManager::disconnectRequestFinished));
+ boost::bind(&CommandManager::disconnectRequestFinished, CommandManager::get(), _1));
}
bool CommandParser::parse(const std::string &cmd) {
diff --git a/src/Client/InformationManager.cpp b/src/Client/InformationManager.cpp
index 6c36495..f1627f4 100644
--- a/src/Client/InformationManager.cpp
+++ b/src/Client/InformationManager.cpp
@@ -39,7 +39,7 @@ void InformationManager::DaemonStateUpdateRequestHandler::handlePacket(const Com
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -55,7 +55,7 @@ void InformationManager::DaemonStateUpdateRequestHandler::handlePacket(const Com
ret.setType("OK");
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
@@ -72,7 +72,7 @@ void InformationManager::updateDaemonList(Common::Connection *con) {
return;
Common::RequestManager::get()->sendRequest<Requests::DaemonListRequest>(con,
- sigc::mem_fun(this, &InformationManager::daemonListRequestFinished));
+ boost::bind(&InformationManager::daemonListRequestFinished, this, _1));
updating = true;
}
diff --git a/src/Client/Makefile.in b/src/Client/Makefile.in
index 94a059f..29cec75 100644
--- a/src/Client/Makefile.in
+++ b/src/Client/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -93,6 +94,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -224,8 +226,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Client/Requests/Makefile.in b/src/Client/Requests/Makefile.in
index 820cb4d..01665de 100644
--- a/src/Client/Requests/Makefile.in
+++ b/src/Client/Requests/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -83,6 +84,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -214,8 +216,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Common/ActionManager.cpp b/src/Common/ActionManager.cpp
index 166001a..fc3c034 100644
--- a/src/Common/ActionManager.cpp
+++ b/src/Common/ActionManager.cpp
@@ -23,8 +23,6 @@
#include <fcntl.h>
#include <signal.h>
-#include <sigc++/adaptors/hide.h>
-
namespace Mad {
namespace Common {
@@ -39,7 +37,7 @@ void ActionManager::doInit() {
fcntl(notifyPipe[0], F_SETFL, fcntl(notifyPipe[0], F_GETFL) | O_NONBLOCK);
fcntl(notifyPipe[1], F_SETFL, fcntl(notifyPipe[1], F_GETFL) | O_NONBLOCK);
- Net::FdManager::get()->registerFd(notifyPipe[0], sigc::hide(sigc::mem_fun(this, &ActionManager::run)), POLLIN);
+ Net::FdManager::get()->registerFd(notifyPipe[0], boost::bind(&ActionManager::run, this), POLLIN);
}
void ActionManager::doDeinit() {
@@ -65,7 +63,7 @@ void ActionManager::run() {
return;
}
- sigc::slot<void> action = actions.front();
+ boost::function0<void> action = actions.front();
actions.pop();
sigprocmask(SIG_SETMASK, &oldset, 0);
@@ -74,7 +72,7 @@ void ActionManager::run() {
}
}
-void ActionManager::add(const sigc::slot<void> &action) {
+void ActionManager::add(const boost::function0<void> &action) {
sigset_t set, oldset;
sigfillset(&set);
sigprocmask(SIG_SETMASK, &set, &oldset);
diff --git a/src/Common/ActionManager.h b/src/Common/ActionManager.h
index e47652e..5d3dc15 100644
--- a/src/Common/ActionManager.h
+++ b/src/Common/ActionManager.h
@@ -25,14 +25,14 @@
#include <queue>
#include <unistd.h>
-#include <sigc++/slot.h>
+#include <boost/function.hpp>
namespace Mad {
namespace Common {
class ActionManager : public Initializable {
private:
- std::queue<sigc::slot<void> > actions;
+ std::queue<boost::function0<void> > actions;
int notifyPipe[2];
static ActionManager actionManager;
@@ -45,7 +45,7 @@ class ActionManager : public Initializable {
public:
void run();
- void add(const sigc::slot<void> &action);
+ void add(const boost::function0<void> &action);
static ActionManager *get() {
if(!actionManager.isInitialized())
diff --git a/src/Common/Base64Encoder.cpp b/src/Common/Base64Encoder.cpp
index 9607ec9..a2795d6 100644
--- a/src/Common/Base64Encoder.cpp
+++ b/src/Common/Base64Encoder.cpp
@@ -189,18 +189,18 @@ std::vector<boost::uint8_t> Base64Encoder::decode(const std::string &data) {
boost::uint8_t *ptr = buf.get();
for(size_t in = 0; in < data.length()-1; in += 4) {
- if(b64[data[in]] >= 64 || b64[data[in+1]] >= 64)
+ if(b64[(size_t)data[in]] >= 64 || b64[(size_t)data[in+1]] >= 64)
break;
- *ptr++ = (b64[data[in]] << 2) + (b64[data[in+1]] >> 4);
- if(in >= data.length()-2 || b64[data[in+2]] >= 64)
+ *ptr++ = (b64[(size_t)data[in]] << 2) + (b64[(size_t)data[in+1]] >> 4);
+ if(in >= data.length()-2 || b64[(size_t)data[in+2]] >= 64)
break;
- *ptr++ = (b64[data[in+1]] << 4) + (b64[data[in+2]] >> 2);
- if(in >= data.length()-3 || b64[data[in+3]] >= 64)
+ *ptr++ = (b64[(size_t)data[in+1]] << 4) + (b64[(size_t)data[in+2]] >> 2);
+ if(in >= data.length()-3 || b64[(size_t)data[in+3]] >= 64)
break;
- *ptr++ = (b64[data[in+2]] << 6) + b64[data[in+3]];
+ *ptr++ = (b64[(size_t)data[in+2]] << 6) + b64[(size_t)data[in+3]];
}
return std::vector<boost::uint8_t>(buf.get(), ptr);
diff --git a/src/Common/ClientConnection.cpp b/src/Common/ClientConnection.cpp
index 7b33fb2..381f822 100644
--- a/src/Common/ClientConnection.cpp
+++ b/src/Common/ClientConnection.cpp
@@ -26,7 +26,7 @@ namespace Mad {
namespace Common {
ClientConnection::ClientConnection() : connection(new Net::ClientConnection) {
- connection->signalReceive().connect(sigc::mem_fun(this, &ClientConnection::receive));
+ connection->signalReceive().connect(boost::bind(&ClientConnection::receive, this, _1));
}
bool ClientConnection::send(const Net::Packet &packet) {
diff --git a/src/Common/Connection.cpp b/src/Common/Connection.cpp
index 510731f..f476a68 100644
--- a/src/Common/Connection.cpp
+++ b/src/Common/Connection.cpp
@@ -20,8 +20,6 @@
#include "Connection.h"
#include "XmlPacket.h"
-#include <sigc++/bind.h>
-
namespace Mad {
namespace Common {
diff --git a/src/Common/Connection.h b/src/Common/Connection.h
index 860c044..ea90c4c 100644
--- a/src/Common/Connection.h
+++ b/src/Common/Connection.h
@@ -23,7 +23,7 @@
#include <stdint.h>
#include <sys/types.h>
-#include <sigc++/signal.h>
+#include <boost/signal.hpp>
namespace Mad {
@@ -39,7 +39,7 @@ class Connection {
private:
bool authenticated;
- sigc::signal<void, const XmlPacket&, uint16_t> signal;
+ boost::signal2<void, const XmlPacket&, uint16_t> signal;
// Prevent shallow copy
Connection(const Connection &o);
@@ -57,7 +57,7 @@ class Connection {
bool sendPacket(const XmlPacket &packet, uint16_t requestId);
- sigc::signal<void, const XmlPacket&, uint16_t> signalReceive() const {
+ boost::signal2<void, const XmlPacket&, uint16_t>& signalReceive() {
return signal;
}
diff --git a/src/Common/Makefile.in b/src/Common/Makefile.in
index ef3993d..8b66f20 100644
--- a/src/Common/Makefile.in
+++ b/src/Common/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -97,6 +98,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -228,8 +230,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Common/Request.h b/src/Common/Request.h
index 7ab2816..3979e0c 100644
--- a/src/Common/Request.h
+++ b/src/Common/Request.h
@@ -24,7 +24,8 @@
#include <Net/Exception.h>
#include <memory>
-#include <sigc++/adaptors/hide.h>
+
+#include <boost/bind.hpp>
namespace Mad {
namespace Common {
@@ -33,19 +34,19 @@ class Request : public RequestHandler {
private:
friend class RequestManager;
- sigc::signal<void,const Request&> finished;
+ boost::signal1<void, const Request&> finished;
std::auto_ptr<XmlPacket> res;
Net::Exception exp;
public:
- typedef sigc::slot<void,const Request&> slot_type;
+ typedef boost::function1<void, const Request&> slot_type;
protected:
Request(Connection *connection, uint16_t requestId, slot_type slot)
: RequestHandler(connection, requestId), exp(Net::Exception::NOT_FINISHED) {
finished.connect(slot);
- finished.connect(sigc::hide(signalFinished().make_slot()));
+ finished.connect(boost::bind((void(boost::signal0<void>::*)())&boost::signal0<void>::operator(), &signalFinished()));
}
void finish(std::auto_ptr<XmlPacket> result) {res = result; finished(*this);}
diff --git a/src/Common/RequestHandler.h b/src/Common/RequestHandler.h
index e3ac19f..9c50345 100644
--- a/src/Common/RequestHandler.h
+++ b/src/Common/RequestHandler.h
@@ -23,7 +23,6 @@
#include "Connection.h"
#include "XmlPacket.h"
-#include <sigc++/signal.h>
#include <stdint.h>
namespace Mad {
@@ -34,7 +33,7 @@ class RequestManager;
class RequestHandler {
private:
- sigc::signal<void> finished;
+ boost::signal0<void> finished;
Connection *connection;
uint16_t requestId;
@@ -46,7 +45,7 @@ class RequestHandler {
protected:
RequestHandler(Connection *connection0, uint16_t requestId0) : connection(connection0), requestId(requestId0) {}
- sigc::signal<void> signalFinished() {return finished;}
+ boost::signal0<void>& signalFinished() {return finished;}
Connection* getConnection() const {
return connection;
diff --git a/src/Common/RequestHandlers/DisconnectRequestHandler.cpp b/src/Common/RequestHandlers/DisconnectRequestHandler.cpp
index fa2ad88..163aa75 100644
--- a/src/Common/RequestHandlers/DisconnectRequestHandler.cpp
+++ b/src/Common/RequestHandlers/DisconnectRequestHandler.cpp
@@ -35,7 +35,7 @@ void DisconnectRequestHandler::handlePacket(const XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -47,7 +47,7 @@ void DisconnectRequestHandler::handlePacket(const XmlPacket &packet) {
getConnection()->disconnect();
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Common/RequestHandlers/FSInfoRequestHandler.cpp b/src/Common/RequestHandlers/FSInfoRequestHandler.cpp
index fc98730..ed70a8b 100644
--- a/src/Common/RequestHandlers/FSInfoRequestHandler.cpp
+++ b/src/Common/RequestHandlers/FSInfoRequestHandler.cpp
@@ -21,6 +21,8 @@
#include <Net/Exception.h>
#include "../Logger.h"
+#include <boost/bind.hpp>
+
namespace Mad {
namespace Common {
namespace RequestHandlers {
@@ -35,20 +37,20 @@ void FSInfoRequestHandler::handlePacket(const XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
// TODO Require authentication
- if(!SystemManager::get()->getFSInfo(sigc::mem_fun(this, &FSInfoRequestHandler::fsInfoHandler))) {
+ if(!SystemManager::get()->getFSInfo(boost::bind(&FSInfoRequestHandler::fsInfoHandler, this, _1))) {
XmlPacket ret;
ret.setType("Error");
ret.add("ErrorCode", Net::Exception::NOT_IMPLEMENTED);
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
}
@@ -69,7 +71,7 @@ void FSInfoRequestHandler::fsInfoHandler(const std::vector<SystemManager::FSInfo
}
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Common/RequestHandlers/Makefile.in b/src/Common/RequestHandlers/Makefile.in
index e5cce2c..22ff596 100644
--- a/src/Common/RequestHandlers/Makefile.in
+++ b/src/Common/RequestHandlers/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -83,6 +84,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -214,8 +216,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Common/RequestHandlers/StatusRequestHandler.cpp b/src/Common/RequestHandlers/StatusRequestHandler.cpp
index 0cfe025..0c13bd9 100644
--- a/src/Common/RequestHandlers/StatusRequestHandler.cpp
+++ b/src/Common/RequestHandlers/StatusRequestHandler.cpp
@@ -22,6 +22,8 @@
#include "../SystemBackend.h"
#include "../Logger.h"
+#include <boost/bind.hpp>
+
namespace Mad {
namespace Common {
namespace RequestHandlers {
@@ -36,17 +38,17 @@ void StatusRequestHandler::handlePacket(const XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
// TODO Require authentication
- if(!SystemManager::get()->getUptimeInfo(sigc::mem_fun(this, &StatusRequestHandler::uptimeHandler)))
+ if(!SystemManager::get()->getUptimeInfo(boost::bind(&StatusRequestHandler::uptimeHandler, this, _1, _2)))
needUptime = false;
- if(!SystemManager::get()->getMemoryInfo(sigc::mem_fun(this, &StatusRequestHandler::memoryHandler)))
+ if(!SystemManager::get()->getMemoryInfo(boost::bind(&StatusRequestHandler::memoryHandler, this, _1, _2, _3, _4)))
needMemory = false;
- if(!SystemManager::get()->getLoadInfo(sigc::mem_fun(this, &StatusRequestHandler::loadHandler)))
+ if(!SystemManager::get()->getLoadInfo(boost::bind(&StatusRequestHandler::loadHandler, this, _1, _2, _3, _4, _5)))
needLoad = false;
send();
@@ -76,7 +78,7 @@ void StatusRequestHandler::send() {
sent = true;
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Common/RequestManager.cpp b/src/Common/RequestManager.cpp
index 08be0a9..c36bd76 100644
--- a/src/Common/RequestManager.cpp
+++ b/src/Common/RequestManager.cpp
@@ -21,8 +21,7 @@
#include "RequestHandlers/DisconnectRequestHandler.h"
#include "Logger.h"
-#include <sigc++/bind.h>
-#include <sigc++/retype_return.h>
+#include <boost/bind.hpp>
namespace Mad {
namespace Common {
@@ -39,7 +38,7 @@ bool RequestManager::RequestMap::addRequest(uint16_t id, RequestHandler *info) {
if(!insert(std::make_pair(id, info)).second)
return false;
- info->signalFinished().connect(sigc::hide_return(sigc::bind(sigc::mem_fun(this, &RequestManager::RequestMap::deleteRequest), id)));
+ info->signalFinished().connect(boost::bind(&RequestManager::RequestMap::deleteRequest, this, id));
return true;
}
@@ -121,7 +120,7 @@ RequestManager::RequestMap* RequestManager::getUnusedRequestId(Connection *conne
void RequestManager::registerConnection(Connection *connection) {
requestMaps.insert(std::make_pair(connection, new RequestMap()));
- connection->signalReceive().connect(sigc::bind<0>(sigc::mem_fun(this, &RequestManager::receiveHandler), connection));
+ connection->signalReceive().connect(boost::bind(&RequestManager::receiveHandler, this, connection, _1, _2));
}
void RequestManager::unregisterConnection(Connection *connection) {
diff --git a/src/Common/Requests/Makefile.in b/src/Common/Requests/Makefile.in
index c809e3c..b36e5b8 100644
--- a/src/Common/Requests/Makefile.in
+++ b/src/Common/Requests/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -83,6 +84,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -214,8 +216,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Common/SystemBackend.h b/src/Common/SystemBackend.h
index 9c3eaa2..ed553c2 100644
--- a/src/Common/SystemBackend.h
+++ b/src/Common/SystemBackend.h
@@ -31,27 +31,27 @@ class SystemBackend {
protected:
friend class SystemManager;
- virtual bool getUptimeInfo(const sigc::slot<void, unsigned long, unsigned long> &callback _UNUSED_PARAMETER_) {
+ virtual bool getUptimeInfo(const boost::function2<void, unsigned long, unsigned long> &callback _UNUSED_PARAMETER_) {
return false;
}
- virtual bool getMemoryInfo(const sigc::slot<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback _UNUSED_PARAMETER_) {
+ virtual bool getMemoryInfo(const boost::function4<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback _UNUSED_PARAMETER_) {
return false;
}
- virtual bool getLoadInfo(const sigc::slot<void, unsigned long, unsigned long, float, float, float> &callback _UNUSED_PARAMETER_) {
+ virtual bool getLoadInfo(const boost::function5<void, unsigned long, unsigned long, float, float, float> &callback _UNUSED_PARAMETER_) {
return false;
}
- virtual bool getFSInfo(const sigc::slot<void, const std::vector<SystemManager::FSInfo>& > &callback _UNUSED_PARAMETER_) {
+ virtual bool getFSInfo(const boost::function1<void, const std::vector<SystemManager::FSInfo>& > &callback _UNUSED_PARAMETER_) {
return false;
}
- virtual bool shutdown(const sigc::slot<void> &callback _UNUSED_PARAMETER_) {
+ virtual bool shutdown(const boost::function0<void> &callback _UNUSED_PARAMETER_) {
return false;
}
- virtual bool reboot(const sigc::slot<void> &callback _UNUSED_PARAMETER_) {
+ virtual bool reboot(const boost::function0<void> &callback _UNUSED_PARAMETER_) {
return false;
}
diff --git a/src/Common/SystemManager.cpp b/src/Common/SystemManager.cpp
index a037bd6..4a549b7 100644
--- a/src/Common/SystemManager.cpp
+++ b/src/Common/SystemManager.cpp
@@ -34,7 +34,7 @@ bool SystemManager::Compare::operator() (const SystemBackend *b1, const SystemBa
}
-bool SystemManager::getUptimeInfo(const sigc::slot<void, unsigned long, unsigned long> &callback) {
+bool SystemManager::getUptimeInfo(const boost::function2<void, unsigned long, unsigned long> &callback) {
for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->getUptimeInfo(callback))
return true;
@@ -43,7 +43,7 @@ bool SystemManager::getUptimeInfo(const sigc::slot<void, unsigned long, unsigned
return false;
}
-bool SystemManager::getMemoryInfo(const sigc::slot<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback) {
+bool SystemManager::getMemoryInfo(const boost::function4<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback) {
for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->getMemoryInfo(callback))
return true;
@@ -52,7 +52,7 @@ bool SystemManager::getMemoryInfo(const sigc::slot<void, unsigned long, unsigned
return false;
}
-bool SystemManager::getLoadInfo(const sigc::slot<void, unsigned long, unsigned long, float, float, float> &callback) {
+bool SystemManager::getLoadInfo(const boost::function5<void, unsigned long, unsigned long, float, float, float> &callback) {
for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->getLoadInfo(callback))
return true;
@@ -61,7 +61,7 @@ bool SystemManager::getLoadInfo(const sigc::slot<void, unsigned long, unsigned l
return false;
}
-bool SystemManager::getFSInfo(const sigc::slot<void, const std::vector<FSInfo>& > &callback) {
+bool SystemManager::getFSInfo(const boost::function1<void, const std::vector<FSInfo>& > &callback) {
for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->getFSInfo(callback))
return true;
@@ -70,7 +70,7 @@ bool SystemManager::getFSInfo(const sigc::slot<void, const std::vector<FSInfo>&
return false;
}
-bool SystemManager::shutdown(const sigc::slot<void> &callback) {
+bool SystemManager::shutdown(const boost::function0<void> &callback) {
for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->shutdown(callback))
return true;
@@ -79,7 +79,7 @@ bool SystemManager::shutdown(const sigc::slot<void> &callback) {
return false;
}
-bool SystemManager::reboot(const sigc::slot<void> &callback) {
+bool SystemManager::reboot(const boost::function0<void> &callback) {
for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->reboot(callback))
return true;
diff --git a/src/Common/SystemManager.h b/src/Common/SystemManager.h
index 5de7180..20d3c05 100644
--- a/src/Common/SystemManager.h
+++ b/src/Common/SystemManager.h
@@ -24,7 +24,7 @@
#include <string>
#include <vector>
-#include <sigc++/slot.h>
+#include <boost/function.hpp>
namespace Mad {
namespace Common {
@@ -62,14 +62,14 @@ class SystemManager {
backends.erase(backend);
}
- bool getUptimeInfo(const sigc::slot<void, unsigned long, unsigned long> &callback);
- bool getMemoryInfo(const sigc::slot<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback);
- bool getLoadInfo(const sigc::slot<void, unsigned long, unsigned long, float, float, float> &callback);
+ bool getUptimeInfo(const boost::function2<void, unsigned long, unsigned long> &callback);
+ bool getMemoryInfo(const boost::function4<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback);
+ bool getLoadInfo(const boost::function5<void, unsigned long, unsigned long, float, float, float> &callback);
- bool getFSInfo(const sigc::slot<void, const std::vector<FSInfo>& > &callback);
+ bool getFSInfo(const boost::function1<void, const std::vector<FSInfo>& > &callback);
- bool shutdown(const sigc::slot<void> &callback);
- bool reboot(const sigc::slot<void> &callback);
+ bool shutdown(const boost::function0<void> &callback);
+ bool reboot(const boost::function0<void> &callback);
static SystemManager *get() {
return &systemManager;
diff --git a/src/Daemon/Backends/Makefile.in b/src/Daemon/Backends/Makefile.in
index 31017c9..0500e0c 100644
--- a/src/Daemon/Backends/Makefile.in
+++ b/src/Daemon/Backends/Makefile.in
@@ -38,6 +38,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -65,6 +66,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -196,8 +198,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Daemon/Backends/NetworkLogger.h b/src/Daemon/Backends/NetworkLogger.h
index 492fd87..a6b6c21 100644
--- a/src/Daemon/Backends/NetworkLogger.h
+++ b/src/Daemon/Backends/NetworkLogger.h
@@ -32,9 +32,11 @@ class NetworkLogger : public Common::Logger {
private:
Common::Connection *connection;
+ void requestFinished(const Common::Request&) {}
+
protected:
virtual void logMessage(Common::Logger::MessageCategory category, Common::Logger::MessageLevel level, time_t messageTimestamp, const std::string &message) {
- Common::RequestManager::get()->sendRequest<Requests::LogRequest>(connection, Common::Request::slot_type(),
+ Common::RequestManager::get()->sendRequest<Requests::LogRequest>(connection, boost::bind(&NetworkLogger::requestFinished, this, _1),
category, level, messageTimestamp, message);
}
diff --git a/src/Daemon/Makefile.in b/src/Daemon/Makefile.in
index a9faebf..4a1ef14 100644
--- a/src/Daemon/Makefile.in
+++ b/src/Daemon/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -91,6 +92,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -222,8 +224,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Daemon/RequestHandlers/CommandRequestHandler.cpp b/src/Daemon/RequestHandlers/CommandRequestHandler.cpp
index 939f1f0..f7f21de 100644
--- a/src/Daemon/RequestHandlers/CommandRequestHandler.cpp
+++ b/src/Daemon/RequestHandlers/CommandRequestHandler.cpp
@@ -22,6 +22,8 @@
#include <Common/Logger.h>
#include <Common/SystemManager.h>
+#include <boost/bind.hpp>
+
namespace Mad {
namespace Daemon {
namespace RequestHandlers {
@@ -36,7 +38,7 @@ void CommandRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -46,11 +48,11 @@ void CommandRequestHandler::handlePacket(const Common::XmlPacket &packet) {
std::string command = packet["command"];
if(command == "reboot") {
- if(Common::SystemManager::get()->shutdown(sigc::mem_fun(this, &CommandRequestHandler::sendReply)))
+ if(Common::SystemManager::get()->shutdown(boost::bind(&CommandRequestHandler::sendReply, this)))
return;
}
else {
- if(Common::SystemManager::get()->reboot(sigc::mem_fun(this, &CommandRequestHandler::sendReply)))
+ if(Common::SystemManager::get()->reboot(boost::bind(&CommandRequestHandler::sendReply, this)))
return;
}
@@ -60,7 +62,7 @@ void CommandRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
void CommandRequestHandler::sendReply() {
@@ -69,7 +71,7 @@ void CommandRequestHandler::sendReply() {
sendPacket(packet);
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Daemon/RequestHandlers/Makefile.in b/src/Daemon/RequestHandlers/Makefile.in
index 3de4cbe..8b34d1a 100644
--- a/src/Daemon/RequestHandlers/Makefile.in
+++ b/src/Daemon/RequestHandlers/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -82,6 +83,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -213,8 +215,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Daemon/Requests/Makefile.in b/src/Daemon/Requests/Makefile.in
index 0f16855..1492ca6 100644
--- a/src/Daemon/Requests/Makefile.in
+++ b/src/Daemon/Requests/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -82,6 +83,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -213,8 +215,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Makefile.am b/src/Makefile.am
index 3b9607f..7e16736 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,14 +21,14 @@ bin_PROGRAMS = mad madc mad-server
mad_SOURCES = mad.cpp
mad_LDADD = Daemon/libdaemon.la Common/libcommon.la Net/libnet.la \
- $(libxml2_LIBS) $(sigc_LIBS) $(GnuTLS_LIBS) @LIBLTDL@ $(daemon_modules)
+ $(BOOST_SIGNALS_LIB) $(libxml2_LIBS) $(GnuTLS_LIBS) @LIBLTDL@ $(daemon_modules)
mad_LDFLAGS = -export-dynamic
madc_SOURCES = madc.cpp
madc_LDADD = Client/libclient.la Common/libcommon.la Net/libnet.la \
- $(libxml2_LIBS) $(sigc_LIBS) $(GnuTLS_LIBS) $(READLINE_LIBS)
+ $(BOOST_SIGNALS_LIB) $(libxml2_LIBS) $(GnuTLS_LIBS) $(READLINE_LIBS)
mad_server_SOURCES = mad-server.cpp
mad_server_LDADD = Server/libserver.la Common/libcommon.la Net/libnet.la \
- $(libxml2_LIBS) $(sigc_LIBS) $(GnuTLS_LIBS) $(GSSAPI_LIBS) @LIBLTDL@ $(server_modules)
+ $(BOOST_SIGNALS_LIB) $(libxml2_LIBS) $(GnuTLS_LIBS) $(GSSAPI_LIBS) @LIBLTDL@ $(server_modules)
mad_server_LDFLAGS = -export-dynamic
diff --git a/src/Makefile.in b/src/Makefile.in
index a6e80f2..e0b62dd 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -43,6 +43,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -127,6 +128,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -258,8 +260,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
@@ -274,16 +274,16 @@ server_modules = -dlpreopen modules/FileLogger.la $(am__append_2) \
$(am__append_4) $(am__append_5)
mad_SOURCES = mad.cpp
mad_LDADD = Daemon/libdaemon.la Common/libcommon.la Net/libnet.la \
- $(libxml2_LIBS) $(sigc_LIBS) $(GnuTLS_LIBS) @LIBLTDL@ $(daemon_modules)
+ $(BOOST_SIGNALS_LIB) $(libxml2_LIBS) $(GnuTLS_LIBS) @LIBLTDL@ $(daemon_modules)
mad_LDFLAGS = -export-dynamic
madc_SOURCES = madc.cpp
madc_LDADD = Client/libclient.la Common/libcommon.la Net/libnet.la \
- $(libxml2_LIBS) $(sigc_LIBS) $(GnuTLS_LIBS) $(READLINE_LIBS)
+ $(BOOST_SIGNALS_LIB) $(libxml2_LIBS) $(GnuTLS_LIBS) $(READLINE_LIBS)
mad_server_SOURCES = mad-server.cpp
mad_server_LDADD = Server/libserver.la Common/libcommon.la Net/libnet.la \
- $(libxml2_LIBS) $(sigc_LIBS) $(GnuTLS_LIBS) $(GSSAPI_LIBS) @LIBLTDL@ $(server_modules)
+ $(BOOST_SIGNALS_LIB) $(libxml2_LIBS) $(GnuTLS_LIBS) $(GSSAPI_LIBS) @LIBLTDL@ $(server_modules)
mad_server_LDFLAGS = -export-dynamic
all: all-recursive
diff --git a/src/Net/ClientConnection.cpp b/src/Net/ClientConnection.cpp
index 688dbc7..087d95f 100644
--- a/src/Net/ClientConnection.cpp
+++ b/src/Net/ClientConnection.cpp
@@ -54,7 +54,7 @@ void ClientConnection::connectionHeader() {
ConnectionHeader header = {'M', 'A', 'D', daemon ? 'D' : 'C', 0, 1, 1, 1};
rawSend((uint8_t*)&header, sizeof(header));
- rawReceive(sizeof(ConnectionHeader), sigc::mem_fun(this, &ClientConnection::connectionHeaderReceiveHandler));
+ rawReceive(sizeof(ConnectionHeader), boost::bind(&ClientConnection::connectionHeaderReceiveHandler, this, _1, _2));
}
void ClientConnection::connect(const IPAddress &address, bool daemon0) throw(Exception) {
@@ -104,7 +104,7 @@ void ClientConnection::connect(const IPAddress &address, bool daemon0) throw(Exc
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t)sock);
- FdManager::get()->registerFd(sock, sigc::mem_fun(this, &ClientConnection::sendReceive));
+ FdManager::get()->registerFd(sock, boost::bind(&ClientConnection::sendReceive, this, _1));
state = CONNECT;
diff --git a/src/Net/Connection.cpp b/src/Net/Connection.cpp
index cf675c9..4e5029f 100644
--- a/src/Net/Connection.cpp
+++ b/src/Net/Connection.cpp
@@ -25,7 +25,7 @@
#include <cstring>
#include <sys/socket.h>
-#include <sigc++/bind.h>
+#include <boost/bind.hpp>
namespace Mad {
namespace Net {
@@ -125,12 +125,12 @@ void Connection::enterReceiveLoop() {
return;
if(_isConnecting())
- ThreadManager::get()->pushWork(sigc::mem_fun(connectedSignal, &sigc::signal<void>::emit));
+ ThreadManager::get()->pushWork(boost::bind((void (boost::signal0<void>::*)())&boost::signal0<void>::operator(), &connectedSignal));
state = PACKET_HEADER;
lock.unlock();
- rawReceive(sizeof(Packet::Data), sigc::mem_fun(this, &Connection::packetHeaderReceiveHandler));
+ rawReceive(sizeof(Packet::Data), boost::bind(&Connection::packetHeaderReceiveHandler, this, _1, _2));
}
void Connection::packetHeaderReceiveHandler(const void *data, unsigned long length) {
@@ -146,13 +146,13 @@ void Connection::packetHeaderReceiveHandler(const void *data, unsigned long leng
header = *(const Packet::Data*)data;
if(header.length == 0) {
- ThreadManager::get()->pushWork(sigc::bind(sigc::mem_fun(receiveSignal, &sigc::signal<void,const Packet&>::emit), Packet(ntohs(header.requestId))));
+ ThreadManager::get()->pushWork(boost::bind((void (boost::signal1<void, const Packet&>::*)(const Packet&))&boost::signal1<void, const Packet&>::operator(), &receiveSignal, Packet(ntohs(header.requestId))));
enterReceiveLoop();
}
else {
state = PACKET_DATA;
- rawReceive(ntohs(header.length), sigc::mem_fun(this, &Connection::packetDataReceiveHandler));
+ rawReceive(ntohs(header.length), boost::bind(&Connection::packetDataReceiveHandler, this, _1, _2));
}
}
@@ -166,7 +166,7 @@ void Connection::packetDataReceiveHandler(const void *data, unsigned long length
return;
}
- ThreadManager::get()->pushWork(sigc::bind(sigc::mem_fun(receiveSignal, &sigc::signal<void,const Packet&>::emit), Packet(ntohs(header.requestId), data, length)));
+ ThreadManager::get()->pushWork(boost::bind((void (boost::signal1<void, const Packet&>::*)(const Packet&))&boost::signal1<void, const Packet&>::operator(), &receiveSignal, Packet(ntohs(header.requestId), data, length)));
enterReceiveLoop();
}
@@ -213,7 +213,7 @@ void Connection::doReceive() {
}
bool Connection::rawReceive(unsigned long length,
- const sigc::slot<void,const void*,unsigned long> &notify)
+ const boost::function2<void,const void*,unsigned long> &notify)
{
if(!isConnected())
return false;
@@ -271,7 +271,7 @@ bool Connection::rawSend(const uint8_t *data, unsigned long length) {
if(!isConnected())
return false;
- Transmission trans = {length, 0, new uint8_t[length], sigc::slot<void,const void*,unsigned long>()};
+ Transmission trans = {length, 0, new uint8_t[length], boost::function2<void,const void*,unsigned long>()};
std::memcpy(trans.data, data, length);
sendLock.lock();
@@ -350,7 +350,7 @@ void Connection::doDisconnect() {
gnutls_deinit(session);
- ThreadManager::get()->pushWork(sigc::mem_fun(disconnectedSignal, &sigc::signal<void>::emit));
+ ThreadManager::get()->pushWork(boost::bind((void (boost::signal0<void>::*)())&boost::signal0<void>::operator(), &disconnectedSignal));
state = DISCONNECTED;
}
diff --git a/src/Net/Connection.h b/src/Net/Connection.h
index 1a3e72b..a0b95ea 100644
--- a/src/Net/Connection.h
+++ b/src/Net/Connection.h
@@ -27,9 +27,9 @@
#include <queue>
#include <string>
#include <gnutls/gnutls.h>
-#include <sigc++/signal.h>
#include <poll.h>
+#include <boost/signal.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/shared_mutex.hpp>
@@ -61,7 +61,7 @@ class Connection {
uint8_t *data;
- sigc::slot<void,const void*,unsigned long> notify;
+ boost::function2<void,const void*,unsigned long> notify;
};
boost::mutex receiveLock;
@@ -72,9 +72,9 @@ class Connection {
Packet::Data header;
- sigc::signal<void,const Packet&> receiveSignal;
- sigc::signal<void> connectedSignal;
- sigc::signal<void> disconnectedSignal;
+ boost::signal1<void,const Packet&> receiveSignal;
+ boost::signal0<void> connectedSignal;
+ boost::signal0<void> disconnectedSignal;
void doHandshake();
@@ -129,7 +129,7 @@ class Connection {
virtual void connectionHeader() = 0;
- bool rawReceive(unsigned long length, const sigc::slot<void,const void*,unsigned long> &notify);
+ bool rawReceive(unsigned long length, const boost::function2<void,const void*,unsigned long> &notify);
bool rawSend(const uint8_t *data, unsigned long length);
void enterReceiveLoop();
@@ -190,9 +190,9 @@ class Connection {
bool send(const Packet &packet);
- sigc::signal<void,const Packet&> signalReceive() const {return receiveSignal;}
- sigc::signal<void> signalConnected() const {return connectedSignal;}
- sigc::signal<void> signalDisconnected() const {return disconnectedSignal;}
+ boost::signal1<void,const Packet&>& signalReceive() {return receiveSignal;}
+ boost::signal0<void>& signalConnected() {return connectedSignal;}
+ boost::signal0<void>& signalDisconnected() {return disconnectedSignal;}
};
}
diff --git a/src/Net/FdManager.cpp b/src/Net/FdManager.cpp
index c7abe73..d8faef4 100644
--- a/src/Net/FdManager.cpp
+++ b/src/Net/FdManager.cpp
@@ -24,9 +24,6 @@
#include <unistd.h>
#include <sys/fcntl.h>
-#include <sigc++/adaptors/hide.h>
-#include <sigc++/bind.h>
-
namespace Mad {
namespace Net {
@@ -43,7 +40,7 @@ FdManager::FdManager() : running(false) {
flags = fcntl(interruptPipe[1], F_GETFL, 0);
fcntl(interruptPipe[1], F_SETFL, flags | O_NONBLOCK);
- registerFd(interruptPipe[0], sigc::hide(sigc::mem_fun(this, &FdManager::readInterrupt)), POLLIN);
+ registerFd(interruptPipe[0], boost::bind(&FdManager::readInterrupt, this), POLLIN);
}
FdManager::~FdManager() {
@@ -54,7 +51,7 @@ FdManager::~FdManager() {
}
-bool FdManager::registerFd(int fd, const sigc::slot<void, short> &handler, short events) {
+bool FdManager::registerFd(int fd, const boost::function1<void, short> &handler, short events) {
struct pollfd pollfd = {fd, events, 0};
boost::lock(handlerLock, eventLock);
@@ -149,11 +146,11 @@ void FdManager::ioThread() {
if(poll(fdarray, count, -1) > 0) {
handlerLock.lock_shared();
- std::queue<sigc::slot<void> > calls;
+ std::queue<boost::function0<void> > calls;
for(size_t n = 0; n < count; ++n) {
if(fdarray[n].revents)
- calls.push(sigc::bind(handlers[fdarray[n].fd], fdarray[n].revents));
+ calls.push(boost::bind(handlers[fdarray[n].fd], fdarray[n].revents));
}
handlerLock.unlock_shared();
diff --git a/src/Net/FdManager.h b/src/Net/FdManager.h
index 406110d..1cb95bc 100644
--- a/src/Net/FdManager.h
+++ b/src/Net/FdManager.h
@@ -22,8 +22,8 @@
#include <map>
#include <poll.h>
-#include <sigc++/signal.h>
+#include <boost/function.hpp>
#include <boost/thread/shared_mutex.hpp>
namespace Mad {
@@ -41,7 +41,7 @@ class FdManager {
bool running;
std::map<int, struct pollfd> pollfds;
- std::map<int, sigc::slot<void, short> > handlers;
+ std::map<int, boost::function1<void, short> > handlers;
int interruptPipe[2];
@@ -64,7 +64,7 @@ class FdManager {
static FdManager *get() {return &fdManager;}
- bool registerFd(int fd, const sigc::slot<void, short> &handler, short events = 0);
+ bool registerFd(int fd, const boost::function1<void, short> &handler, short events = 0);
bool unregisterFd(int fd);
bool setFdEvents(int fd, short events);
diff --git a/src/Net/Listener.cpp b/src/Net/Listener.cpp
index 5bcc353..11cbaf5 100644
--- a/src/Net/Listener.cpp
+++ b/src/Net/Listener.cpp
@@ -27,8 +27,6 @@
#include <cstring>
#include <fcntl.h>
-#include <sigc++/bind.h>
-
namespace Mad {
namespace Net {
@@ -40,8 +38,8 @@ void Listener::acceptHandler(int) {
while((sd = accept(sock, (struct sockaddr*)&sa, &addrlen)) >= 0) {
ServerConnection *con = new ServerConnection(sd, IPAddress(sa), dh_params, x905CertFile, x905KeyFile);
- sigc::connection con1 = con->signalConnected().connect(sigc::bind(sigc::mem_fun(this, &Listener::connectHandler), con));
- sigc::connection con2 = con->signalDisconnected().connect(sigc::bind(sigc::mem_fun(this, &Listener::disconnectHandler), con));
+ boost::signals::connection con1 = con->signalConnected().connect(boost::bind(&Listener::connectHandler, this, con));
+ boost::signals::connection con2 = con->signalDisconnected().connect(boost::bind(&Listener::disconnectHandler, this, con));
connections.insert(std::make_pair(con, std::make_pair(con1, con2)));
@@ -51,7 +49,7 @@ void Listener::acceptHandler(int) {
void Listener::connectHandler(ServerConnection *con) {
- std::map<ServerConnection*, std::pair<sigc::connection, sigc::connection> >::iterator it = connections.find(con);
+ std::map<ServerConnection*, std::pair<boost::signals::connection, boost::signals::connection> >::iterator it = connections.find(con);
if(it == connections.end())
return;
@@ -65,7 +63,7 @@ void Listener::connectHandler(ServerConnection *con) {
}
void Listener::disconnectHandler(ServerConnection *con) {
- std::map<ServerConnection*, std::pair<sigc::connection, sigc::connection> >::iterator it = connections.find(con);
+ std::map<ServerConnection*, std::pair<boost::signals::connection, boost::signals::connection> >::iterator it = connections.find(con);
if(it == connections.end())
return;
@@ -112,11 +110,11 @@ Listener::Listener(const std::string &x905CertFile0, const std::string &x905KeyF
throw Exception("listen()", Exception::INTERNAL_ERRNO, errno);
}
- FdManager::get()->registerFd(sock, sigc::mem_fun(this, &Listener::acceptHandler), POLLIN);
+ FdManager::get()->registerFd(sock, boost::bind(&Listener::acceptHandler, this, _1), POLLIN);
}
Listener::~Listener() {
- for(std::map<ServerConnection*,std::pair<sigc::connection, sigc::connection> >::iterator con = connections.begin(); con != connections.end(); ++con) {
+ for(std::map<ServerConnection*,std::pair<boost::signals::connection, boost::signals::connection> >::iterator con = connections.begin(); con != connections.end(); ++con) {
con->first->disconnect();
delete con->first;
}
diff --git a/src/Net/Listener.h b/src/Net/Listener.h
index 3805403..26dffab 100644
--- a/src/Net/Listener.h
+++ b/src/Net/Listener.h
@@ -26,7 +26,7 @@
#include <map>
#include <string>
-#include <sigc++/connection.h>
+#include <boost/signal.hpp>
namespace Mad {
namespace Net {
@@ -42,9 +42,9 @@ class Listener {
gnutls_dh_params_t dh_params;
- std::map<ServerConnection*, std::pair<sigc::connection, sigc::connection> > connections;
+ std::map<ServerConnection*, std::pair<boost::signals::connection, boost::signals::connection> > connections;
- sigc::signal<void, ServerConnection*> signal;
+ boost::signal1<void, ServerConnection*> signal;
void acceptHandler(int);
@@ -59,7 +59,7 @@ class Listener {
Listener(const std::string &x905CertFile0, const std::string &x905KeyFile0, const IPAddress &address0 = IPAddress()) throw(Exception);
virtual ~Listener();
- sigc::signal<void, ServerConnection*> signalNewConnection() const {return signal;}
+ boost::signal1<void, ServerConnection*>& signalNewConnection() {return signal;}
};
}
diff --git a/src/Net/Makefile.in b/src/Net/Makefile.in
index c51039d..36b924e 100644
--- a/src/Net/Makefile.in
+++ b/src/Net/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -88,6 +89,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -219,8 +221,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Net/ServerConnection.cpp b/src/Net/ServerConnection.cpp
index c415cb3..1f01ce5 100644
--- a/src/Net/ServerConnection.cpp
+++ b/src/Net/ServerConnection.cpp
@@ -77,7 +77,7 @@ ServerConnection::ServerConnection(int sock0, const IPAddress &address, gnutls_d
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t)sock);
- FdManager::get()->registerFd(sock, sigc::mem_fun(this, &ServerConnection::sendReceive));
+ FdManager::get()->registerFd(sock, boost::bind(&ServerConnection::sendReceive, this, _1));
state = CONNECT;
diff --git a/src/Net/ServerConnection.h b/src/Net/ServerConnection.h
index 0870143..d52cd7c 100644
--- a/src/Net/ServerConnection.h
+++ b/src/Net/ServerConnection.h
@@ -44,7 +44,7 @@ class ServerConnection : public Connection {
ServerConnection(int sock0, const IPAddress &address, gnutls_dh_params_t dh_params, const std::string &x905certFile, const std::string &x905keyFile);
virtual void connectionHeader() {
- rawReceive(sizeof(ConnectionHeader), sigc::mem_fun(this, &ServerConnection::connectionHeaderReceiveHandler));
+ rawReceive(sizeof(ConnectionHeader), boost::bind(&ServerConnection::connectionHeaderReceiveHandler, this, _1, _2));
}
public:
diff --git a/src/Net/ThreadManager.cpp b/src/Net/ThreadManager.cpp
index b1f4d4b..71a754e 100644
--- a/src/Net/ThreadManager.cpp
+++ b/src/Net/ThreadManager.cpp
@@ -24,8 +24,6 @@
#include <Common/LogManager.h>
#include <fcntl.h>
-#include <sigc++/bind.h>
-#include <sigc++/hide.h>
namespace Mad {
namespace Net {
@@ -50,7 +48,7 @@ void ThreadManager::workerFunc() {
return;
}
- sigc::slot<void> nextWork = work.front();
+ boost::function0<void> nextWork = work.front();
work.pop();
lock2.unlock();
@@ -85,7 +83,7 @@ void ThreadManager::detach() {
threadLock.unlock();
}
-void ThreadManager::pushWork(const sigc::slot<void> &newWork) {
+void ThreadManager::pushWork(const boost::function0<void> &newWork) {
workLock.lock();
work.push(newWork);
workLock.unlock();
diff --git a/src/Net/ThreadManager.h b/src/Net/ThreadManager.h
index 9394329..fd903af 100644
--- a/src/Net/ThreadManager.h
+++ b/src/Net/ThreadManager.h
@@ -26,8 +26,8 @@
#include <queue>
#include <set>
-#include <sigc++/slot.h>
+#include <boost/function.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/condition_variable.hpp>
#include <boost/thread/locks.hpp>
@@ -48,7 +48,7 @@ class ThreadManager : public Common::Initializable {
boost::mutex workLock;
boost::condition_variable workCond;
- std::queue<sigc::slot<void> > work;
+ std::queue<boost::function0<void> > work;
static ThreadManager threadManager;
@@ -81,7 +81,7 @@ class ThreadManager : public Common::Initializable {
void detach();
- void pushWork(const sigc::slot<void> &newWork);
+ void pushWork(const boost::function0<void> &newWork);
static ThreadManager* get() {
return &threadManager;
diff --git a/src/Server/ConnectionManager.cpp b/src/Server/ConnectionManager.cpp
index 99f5680..6ef918a 100644
--- a/src/Server/ConnectionManager.cpp
+++ b/src/Server/ConnectionManager.cpp
@@ -41,8 +41,6 @@
#include <unistd.h>
#include <algorithm>
-#include <sigc++/bind.h>
-
namespace Mad {
namespace Server {
@@ -54,7 +52,7 @@ bool ConnectionManager::Connection::send(const Net::Packet &packet) {
ConnectionManager::Connection::Connection(Net::ServerConnection *connection0)
: connection(connection0), type(connection0->isDaemonConnection() ? DAEMON : CLIENT), hostInfo(0) {
- connection->signalReceive().connect(sigc::mem_fun(this, &Connection::receive));
+ connection->signalReceive().connect(boost::bind(&Connection::receive, this, _1));
}
ConnectionManager::Connection::~Connection() {
@@ -90,7 +88,7 @@ void ConnectionManager::updateState(Common::HostInfo *hostInfo, Common::HostInfo
for(std::set<Connection*>::iterator con = connections.begin(); con != connections.end(); ++con) {
if((*con)->getConnectionType() == Connection::CLIENT)
- Common::RequestManager::get()->sendRequest<Requests::DaemonStateUpdateRequest>(*con, Common::Request::slot_type(), hostInfo->getName(), state);
+ Common::RequestManager::get()->sendRequest<Requests::DaemonStateUpdateRequest>(*con, boost::bind(&ConnectionManager::updateStateFinished, this, _1), hostInfo->getName(), state);
}
}
@@ -150,7 +148,7 @@ void ConnectionManager::configFinished() {
if(listenerAddresses.empty()) {
try {
Net::Listener *listener = new Net::Listener(x509CertFile, x509KeyFile);
- listener->signalNewConnection().connect(sigc::mem_fun(this, &ConnectionManager::newConnectionHandler));
+ listener->signalNewConnection().connect(boost::bind(&ConnectionManager::newConnectionHandler, this, _1));
listeners.push_back(listener);
}
catch(Net::Exception &e) {
@@ -161,7 +159,7 @@ void ConnectionManager::configFinished() {
for(std::vector<Net::IPAddress>::const_iterator address = listenerAddresses.begin(); address != listenerAddresses.end(); ++address) {
try {
Net::Listener *listener = new Net::Listener(x509CertFile, x509KeyFile, *address);
- listener->signalNewConnection().connect(sigc::mem_fun(this, &ConnectionManager::newConnectionHandler));
+ listener->signalNewConnection().connect(boost::bind(&ConnectionManager::newConnectionHandler, this, _1));
listeners.push_back(listener);
}
catch(Net::Exception &e) {
@@ -173,7 +171,7 @@ void ConnectionManager::configFinished() {
void ConnectionManager::newConnectionHandler(Net::ServerConnection *con) {
Connection *connection = new Connection(con);
- con->signalDisconnected().connect(sigc::bind(sigc::mem_fun(this, &ConnectionManager::disconnectHandler), connection));
+ con->signalDisconnected().connect(boost::bind(&ConnectionManager::disconnectHandler, this, connection));
connections.insert(connection);
Common::RequestManager::get()->registerConnection(connection);
diff --git a/src/Server/ConnectionManager.h b/src/Server/ConnectionManager.h
index 691d51f..7d97edc 100644
--- a/src/Server/ConnectionManager.h
+++ b/src/Server/ConnectionManager.h
@@ -101,6 +101,9 @@ class ConnectionManager : public Common::Configurable, public Common::Initializa
ConnectionManager& operator=(const ConnectionManager &o);
void updateState(Common::HostInfo *hostInfo, Common::HostInfo::State state);
+ void updateStateFinished(const Common::Request&) {
+ // TODO Error handling (updateStateFinished)
+ }
ConnectionManager() {}
diff --git a/src/Server/Makefile.in b/src/Server/Makefile.in
index 66a02a0..7389540 100644
--- a/src/Server/Makefile.in
+++ b/src/Server/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -93,6 +94,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -224,8 +226,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Server/RequestHandlers/DaemonCommandRequestHandler.cpp b/src/Server/RequestHandlers/DaemonCommandRequestHandler.cpp
index 314aa97..17a7e5d 100644
--- a/src/Server/RequestHandlers/DaemonCommandRequestHandler.cpp
+++ b/src/Server/RequestHandlers/DaemonCommandRequestHandler.cpp
@@ -37,7 +37,7 @@ void DaemonCommandRequestHandler::handlePacket(const Common::XmlPacket &packet)
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -48,7 +48,7 @@ void DaemonCommandRequestHandler::handlePacket(const Common::XmlPacket &packet)
try {
Common::Connection *daemonCon = ConnectionManager::get()->getDaemonConnection(packet["daemon"]);
Common::RequestManager::get()->sendRequest<Requests::CommandRequest>(daemonCon,
- sigc::mem_fun(this, &DaemonCommandRequestHandler::requestFinished), command == "reboot");
+ boost::bind(&DaemonCommandRequestHandler::requestFinished, this, _1), command == "reboot");
}
catch(Net::Exception &e) {
Common::XmlPacket ret;
@@ -77,7 +77,7 @@ void DaemonCommandRequestHandler::requestFinished(const Common::Request &request
sendPacket(ret);
}
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/RequestHandlers/DaemonFSInfoRequestHandler.cpp b/src/Server/RequestHandlers/DaemonFSInfoRequestHandler.cpp
index eadc0d5..df57a94 100644
--- a/src/Server/RequestHandlers/DaemonFSInfoRequestHandler.cpp
+++ b/src/Server/RequestHandlers/DaemonFSInfoRequestHandler.cpp
@@ -37,7 +37,7 @@ void DaemonFSInfoRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -46,7 +46,7 @@ void DaemonFSInfoRequestHandler::handlePacket(const Common::XmlPacket &packet) {
try {
Common::Connection *daemonCon = ConnectionManager::get()->getDaemonConnection(packet["daemon"]);
Common::RequestManager::get()->sendRequest<Common::Requests::FSInfoRequest>(daemonCon,
- sigc::mem_fun(this, &DaemonFSInfoRequestHandler::requestFinished));
+ boost::bind(&DaemonFSInfoRequestHandler::requestFinished, this, _1));
}
catch(Net::Exception &e) {
Common::XmlPacket ret;
@@ -75,7 +75,7 @@ void DaemonFSInfoRequestHandler::requestFinished(const Common::Request &request)
sendPacket(ret);
}
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/RequestHandlers/DaemonListRequestHandler.cpp b/src/Server/RequestHandlers/DaemonListRequestHandler.cpp
index 2b21a29..541148d 100644
--- a/src/Server/RequestHandlers/DaemonListRequestHandler.cpp
+++ b/src/Server/RequestHandlers/DaemonListRequestHandler.cpp
@@ -35,7 +35,7 @@ void DaemonListRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -57,7 +57,7 @@ void DaemonListRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/RequestHandlers/DaemonStatusRequestHandler.cpp b/src/Server/RequestHandlers/DaemonStatusRequestHandler.cpp
index 9e21127..3d99c57 100644
--- a/src/Server/RequestHandlers/DaemonStatusRequestHandler.cpp
+++ b/src/Server/RequestHandlers/DaemonStatusRequestHandler.cpp
@@ -37,7 +37,7 @@ void DaemonStatusRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -48,7 +48,7 @@ void DaemonStatusRequestHandler::handlePacket(const Common::XmlPacket &packet) {
try {
Common::Connection *daemonCon = ConnectionManager::get()->getDaemonConnection(daemonName);
Common::RequestManager::get()->sendRequest<Common::Requests::StatusRequest>(daemonCon,
- sigc::mem_fun(this, &DaemonStatusRequestHandler::requestFinished));
+ boost::bind(&DaemonStatusRequestHandler::requestFinished, this, _1));
}
catch(Net::Exception &e) {
Common::XmlPacket ret;
@@ -77,7 +77,7 @@ void DaemonStatusRequestHandler::requestFinished(const Common::Request &request)
sendPacket(ret);
}
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/RequestHandlers/GSSAPIAuthRequestHandler.cpp b/src/Server/RequestHandlers/GSSAPIAuthRequestHandler.cpp
index 5272d7a..ade8329 100644
--- a/src/Server/RequestHandlers/GSSAPIAuthRequestHandler.cpp
+++ b/src/Server/RequestHandlers/GSSAPIAuthRequestHandler.cpp
@@ -39,7 +39,7 @@ void GSSAPIAuthRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -118,7 +118,7 @@ void GSSAPIAuthRequestHandler::handlePacket(const Common::XmlPacket &packet) {
if(majStat != GSS_S_COMPLETE)
return;
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/RequestHandlers/IdentifyRequestHandler.cpp b/src/Server/RequestHandlers/IdentifyRequestHandler.cpp
index ac8bb42..f69b3f5 100644
--- a/src/Server/RequestHandlers/IdentifyRequestHandler.cpp
+++ b/src/Server/RequestHandlers/IdentifyRequestHandler.cpp
@@ -36,7 +36,7 @@ void IdentifyRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -59,7 +59,7 @@ void IdentifyRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
}
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/RequestHandlers/LogRequestHandler.cpp b/src/Server/RequestHandlers/LogRequestHandler.cpp
index 557a97c..f4547e4 100644
--- a/src/Server/RequestHandlers/LogRequestHandler.cpp
+++ b/src/Server/RequestHandlers/LogRequestHandler.cpp
@@ -36,7 +36,7 @@ void LogRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
@@ -55,7 +55,7 @@ void LogRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/RequestHandlers/Makefile.in b/src/Server/RequestHandlers/Makefile.in
index 4d0d9ce..3ee761b 100644
--- a/src/Server/RequestHandlers/Makefile.in
+++ b/src/Server/RequestHandlers/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -86,6 +87,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -217,8 +219,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Server/RequestHandlers/UserInfoRequestHandler.cpp b/src/Server/RequestHandlers/UserInfoRequestHandler.cpp
index 39fa63e..740c2a9 100644
--- a/src/Server/RequestHandlers/UserInfoRequestHandler.cpp
+++ b/src/Server/RequestHandlers/UserInfoRequestHandler.cpp
@@ -22,6 +22,8 @@
#include <Net/Exception.h>
#include <Common/Logger.h>
+#include <boost/bind.hpp>
+
namespace Mad {
namespace Server {
namespace RequestHandlers {
@@ -36,19 +38,19 @@ void UserInfoRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
// TODO Require authentication
- if(!UserManager::get()->getUserInfo(packet["uid"], sigc::mem_fun(this, &UserInfoRequestHandler::userInfoHandler))) {
+ if(!UserManager::get()->getUserInfo(packet["uid"], boost::bind(&UserInfoRequestHandler::userInfoHandler, this, _1))) {
Common::XmlPacket ret;
ret.setType("Error");
ret.add("ErrorCode", Net::Exception::NOT_IMPLEMENTED);
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
}
@@ -62,7 +64,7 @@ void UserInfoRequestHandler::userInfoHandler(const Common::UserInfo &info) {
ret.add("fullName", info.getFullName());
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/RequestHandlers/UserListRequestHandler.cpp b/src/Server/RequestHandlers/UserListRequestHandler.cpp
index 66f67bd..cd05c12 100644
--- a/src/Server/RequestHandlers/UserListRequestHandler.cpp
+++ b/src/Server/RequestHandlers/UserListRequestHandler.cpp
@@ -22,6 +22,8 @@
#include <Net/Exception.h>
#include <Common/Logger.h>
+#include <boost/bind.hpp>
+
namespace Mad {
namespace Server {
namespace RequestHandlers {
@@ -36,19 +38,19 @@ void UserListRequestHandler::handlePacket(const Common::XmlPacket &packet) {
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
return;
}
// TODO Require authentication
- if(!UserManager::get()->getUserList(sigc::mem_fun(this, &UserListRequestHandler::userListHandler))) {
+ if(!UserManager::get()->getUserList(boost::bind(&UserListRequestHandler::userListHandler, this, _1))) {
Common::XmlPacket ret;
ret.setType("Error");
ret.add("ErrorCode", Net::Exception::NOT_IMPLEMENTED);
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
}
@@ -68,7 +70,7 @@ void UserListRequestHandler::userListHandler(const std::map<unsigned long, Commo
}
sendPacket(ret);
- signalFinished().emit();
+ signalFinished()();
}
}
diff --git a/src/Server/Requests/Makefile.in b/src/Server/Requests/Makefile.in
index 428400d..1fbdd8f 100644
--- a/src/Server/Requests/Makefile.in
+++ b/src/Server/Requests/Makefile.in
@@ -39,6 +39,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -83,6 +84,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -214,8 +216,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/Server/UserBackend.h b/src/Server/UserBackend.h
index cf88095..6aac7bc 100644
--- a/src/Server/UserBackend.h
+++ b/src/Server/UserBackend.h
@@ -27,7 +27,7 @@
#include <map>
#include <string>
-#include <sigc++/signal.h>
+#include <boost/signal.hpp>
namespace Mad {
@@ -41,19 +41,19 @@ class UserBackend {
UserBackend() {}
- virtual bool getUserList(const sigc::slot<void, const std::map<unsigned long, Common::UserInfo>& > &callback _UNUSED_PARAMETER_) {
+ virtual bool getUserList(const boost::function1<void, const std::map<unsigned long, Common::UserInfo>& > &callback _UNUSED_PARAMETER_) {
return false;
}
- virtual bool getUserInfo(unsigned long uid _UNUSED_PARAMETER_, const sigc::slot<void, const Common::UserInfo&> &callback _UNUSED_PARAMETER_) {
+ virtual bool getUserInfo(unsigned long uid _UNUSED_PARAMETER_, const boost::function1<void, const Common::UserInfo&> &callback _UNUSED_PARAMETER_) {
return false;
}
- virtual bool setPassword(unsigned long uid _UNUSED_PARAMETER_, const std::string&, const sigc::slot<void, bool> &callback _UNUSED_PARAMETER_) {
+ virtual bool setPassword(unsigned long uid _UNUSED_PARAMETER_, const std::string&, const boost::function1<void, bool> &callback _UNUSED_PARAMETER_) {
return false;
}
- virtual bool addUser(const Common::UserInfo &userInfo _UNUSED_PARAMETER_, const sigc::slot<void, bool> &callback _UNUSED_PARAMETER_) {
+ virtual bool addUser(const Common::UserInfo &userInfo _UNUSED_PARAMETER_, const boost::function1<void, bool> &callback _UNUSED_PARAMETER_) {
return false;
}
diff --git a/src/Server/UserManager.cpp b/src/Server/UserManager.cpp
index 2f58b7a..d763a8b 100644
--- a/src/Server/UserManager.cpp
+++ b/src/Server/UserManager.cpp
@@ -34,7 +34,7 @@ bool UserManager::Compare::operator() (const UserBackend *b1, const UserBackend
}
-bool UserManager::getUserList(const sigc::slot<void, const std::map<unsigned long, Common::UserInfo>& > &callback) {
+bool UserManager::getUserList(const boost::function1<void, const std::map<unsigned long, Common::UserInfo>& > &callback) {
for(std::set<UserBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->getUserList(callback))
return true;
@@ -43,7 +43,7 @@ bool UserManager::getUserList(const sigc::slot<void, const std::map<unsigned lon
return false;
}
-bool UserManager::getUserInfo(unsigned long uid, const sigc::slot<void, const Common::UserInfo&> &callback) {
+bool UserManager::getUserInfo(unsigned long uid, const boost::function1<void, const Common::UserInfo&> &callback) {
for(std::set<UserBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->getUserInfo(uid, callback))
return true;
@@ -52,7 +52,7 @@ bool UserManager::getUserInfo(unsigned long uid, const sigc::slot<void, const Co
return false;
}
-bool UserManager::setPassword(unsigned long uid, const std::string &password, const sigc::slot<void, bool> &callback) {
+bool UserManager::setPassword(unsigned long uid, const std::string &password, const boost::function1<void, bool> &callback) {
for(std::set<UserBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->setPassword(uid, password, callback))
return true;
@@ -61,7 +61,7 @@ bool UserManager::setPassword(unsigned long uid, const std::string &password, co
return false;
}
-bool UserManager::addUser(const Common::UserInfo &userInfo, const sigc::slot<void, bool> &callback) {
+bool UserManager::addUser(const Common::UserInfo &userInfo, const boost::function1<void, bool> &callback) {
for(std::set<UserBackend*>::iterator backend = backends.begin(); backend != backends.end(); ++backend) {
if((*backend)->addUser(userInfo, callback))
return true;
diff --git a/src/Server/UserManager.h b/src/Server/UserManager.h
index 3c4097b..d0e7074 100644
--- a/src/Server/UserManager.h
+++ b/src/Server/UserManager.h
@@ -25,7 +25,7 @@
#include <map>
#include <set>
-#include <sigc++/slot.h>
+#include <boost/function.hpp>
namespace Mad {
namespace Server {
@@ -54,12 +54,12 @@ class UserManager {
}
- bool getUserList(const sigc::slot<void, const std::map<unsigned long, Common::UserInfo>& > &callback);
- bool getUserInfo(unsigned long uid, const sigc::slot<void, const Common::UserInfo&> &callback);
+ bool getUserList(const boost::function1<void, const std::map<unsigned long, Common::UserInfo>& > &callback);
+ bool getUserInfo(unsigned long uid, const boost::function1<void, const Common::UserInfo&> &callback);
- bool setPassword(unsigned long uid, const std::string &password, const sigc::slot<void, bool> &callback);
+ bool setPassword(unsigned long uid, const std::string &password, const boost::function1<void, bool> &callback);
- bool addUser(const Common::UserInfo &userInfo, const sigc::slot<void, bool> &callback);
+ bool addUser(const Common::UserInfo &userInfo, const boost::function1<void, bool> &callback);
static UserManager *get() {
diff --git a/src/mad.cpp b/src/mad.cpp
index 1a504f6..035c0be 100644
--- a/src/mad.cpp
+++ b/src/mad.cpp
@@ -71,7 +71,7 @@ int main() {
//char hostname[256];
//gethostname(hostname, sizeof(hostname));
//Common::RequestManager::get()->sendRequest<Daemon::Requests::IdentifyRequest>(connection, sigc::ptr_fun(requestFinished), hostname);
- Common::RequestManager::get()->sendRequest<Daemon::Requests::IdentifyRequest>(connection, sigc::ptr_fun(requestFinished), "test");
+ Common::RequestManager::get()->sendRequest<Daemon::Requests::IdentifyRequest>(connection, &requestFinished, "test");
while(connection->isConnected())
usleep(100000);
diff --git a/src/madc.cpp b/src/madc.cpp
index 04f55b2..106617c 100644
--- a/src/madc.cpp
+++ b/src/madc.cpp
@@ -103,9 +103,9 @@ int main(int argc, char *argv[]) {
std::cerr << " done." << std::endl << std::endl;
Client::CommandParser::get()->setConnection(connection);
- Client::CommandManager::get()->signalFinished().connect(sigc::ptr_fun(activateReadline));
+ Client::CommandManager::get()->signalFinished().connect(&activateReadline);
- Net::FdManager::get()->registerFd(STDIN_FILENO, sigc::ptr_fun(charHandler));
+ Net::FdManager::get()->registerFd(STDIN_FILENO,&charHandler);
activateReadline();
diff --git a/src/modules/Makefile.in b/src/modules/Makefile.in
index 077c7bb..8dc9810 100644
--- a/src/modules/Makefile.in
+++ b/src/modules/Makefile.in
@@ -42,6 +42,7 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \
$(top_srcdir)/m4/ax_boost_base.m4 \
+ $(top_srcdir)/m4/ax_boost_signals.m4 \
$(top_srcdir)/m4/ax_boost_thread.m4 \
$(top_srcdir)/m4/ax_lib_mysql.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -68,8 +69,7 @@ FileLogger_la_OBJECTS = $(am_FileLogger_la_OBJECTS)
FileLogger_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(FileLogger_la_LDFLAGS) $(LDFLAGS) -o $@
-am__DEPENDENCIES_1 =
-SystemBackendPosix_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+SystemBackendPosix_la_DEPENDENCIES =
am_SystemBackendPosix_la_OBJECTS = SystemBackendPosix.lo
SystemBackendPosix_la_OBJECTS = $(am_SystemBackendPosix_la_OBJECTS)
SystemBackendPosix_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -83,6 +83,7 @@ SystemBackendProc_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(SystemBackendProc_la_LDFLAGS) $(LDFLAGS) -o $@
@SYSTEMBACKEND_PROC_TRUE@am_SystemBackendProc_la_rpath =
+am__DEPENDENCIES_1 =
UserBackendMysql_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am_UserBackendMysql_la_OBJECTS = UserBackendMysql.lo
@@ -123,6 +124,7 @@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
BOOST_LDFLAGS = @BOOST_LDFLAGS@
+BOOST_SIGNALS_LIB = @BOOST_SIGNALS_LIB@
BOOST_THREAD_LIB = @BOOST_THREAD_LIB@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -254,8 +256,6 @@ program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
-sigc_CFLAGS = @sigc_CFLAGS@
-sigc_LIBS = @sigc_LIBS@
srcdir = @srcdir@
sys_symbol_underscore = @sys_symbol_underscore@
sysconfdir = @sysconfdir@
diff --git a/src/modules/SystemBackendPosix.cpp b/src/modules/SystemBackendPosix.cpp
index 21e5c75..4969c6d 100644
--- a/src/modules/SystemBackendPosix.cpp
+++ b/src/modules/SystemBackendPosix.cpp
@@ -33,8 +33,6 @@
#include <sys/wait.h>
#include <unistd.h>
-#include <sigc++/bind.h>
-
#define init SystemBackendPosix_LTX_init
#define deinit SystemBackendPosix_LTX_deinit
@@ -43,8 +41,8 @@ namespace Modules {
SystemBackendPosix *SystemBackendPosix::backend = 0;
-std::map<pid_t, sigc::slot<void, int> > SystemBackendPosix::processes;
-std::map<pid_t, sigc::slot<void, int, const std::string&> > SystemBackendPosix::processesWithOutput;
+std::map<pid_t, boost::function1<void, int> > SystemBackendPosix::processes;
+std::map<pid_t, boost::function2<void, int, const std::string&> > SystemBackendPosix::processesWithOutput;
std::map<pid_t, int> SystemBackendPosix::processesWOHandles;
std::map<pid_t, std::string > SystemBackendPosix::processesWOOutput;
@@ -70,7 +68,7 @@ SystemBackendPosix::~SystemBackendPosix() {
}
-void SystemBackendPosix::fsInfoCallback(int, const std::string &output, const sigc::slot<void, const std::vector<Common::SystemManager::FSInfo>& > &callback) {
+void SystemBackendPosix::fsInfoCallback(int, const std::string &output, const boost::function1<void, const std::vector<Common::SystemManager::FSInfo>& > &callback) {
std::vector<Common::SystemManager::FSInfo> ret;
std::istringstream stream(output);
std::string str;
@@ -99,14 +97,14 @@ void SystemBackendPosix::fsInfoCallback(int, const std::string &output, const si
callback(ret);
}
-bool SystemBackendPosix::getFSInfo(const sigc::slot<void, const std::vector<Common::SystemManager::FSInfo>& > &callback) {
+bool SystemBackendPosix::getFSInfo(const boost::function1<void, const std::vector<Common::SystemManager::FSInfo>& > &callback) {
std::vector<std::string> argv;
argv.push_back("/bin/df");
argv.push_back("-P");
argv.push_back("-k");
- return execWithOutput(sigc::bind(sigc::mem_fun(this, &SystemBackendPosix::fsInfoCallback), callback), "/bin/df", argv);
+ return execWithOutput(boost::bind(&SystemBackendPosix::fsInfoCallback, this, _1, _2, callback), "/bin/df", argv);
}
@@ -115,14 +113,14 @@ void SystemBackendPosix::childHandler(int) {
pid_t pid;
while((pid = waitpid(-1, &status, WNOHANG)) > 0) {
- std::map<pid_t, sigc::slot<void, int> >::iterator it = processes.find(pid);
+ std::map<pid_t, boost::function1<void, int> >::iterator it = processes.find(pid);
if(it != processes.end()) {
- Common::ActionManager::get()->add(sigc::bind(it->second, status));
+ Common::ActionManager::get()->add(boost::bind(it->second, status));
processes.erase(it);
}
else {
- std::map<pid_t, sigc::slot<void, int, const std::string&> >::iterator it2 = processesWithOutput.find(pid);
+ std::map<pid_t, boost::function2<void, int, const std::string&> >::iterator it2 = processesWithOutput.find(pid);
if(it2 != processesWithOutput.end()) {
char buffer[1024];
@@ -133,10 +131,10 @@ void SystemBackendPosix::childHandler(int) {
while((n = read(handle, buffer, sizeof(buffer))) > 0)
output += std::string(buffer, n);
- Net::FdManager::get()->unregisterFd(handle);
- close(handle);
+ //Net::FdManager::get()->unregisterFd(handle);
+ //close(handle);
- Common::ActionManager::get()->add(sigc::bind(it2->second, status, output));
+ //Common::ActionManager::get()->add(boost::bind(it2->second, status, output));
processesWithOutput.erase(it2);
processesWOHandles.erase(pid);
processesWOOutput.erase(pid);
@@ -218,7 +216,7 @@ void SystemBackendPosix::destroyArgs(std::pair<char**, char**> args) {
}
}
-bool SystemBackendPosix::exec(const sigc::slot<void, int> &resultHandler, const std::string &filename, const std::vector<std::string> &argv, const std::vector<std::string> &env) {
+bool SystemBackendPosix::exec(const boost::function1<void, int> &resultHandler, const std::string &filename, const std::vector<std::string> &argv, const std::vector<std::string> &env) {
pid_t pid;
std::pair<char**, char**> args = makeArgs(filename, argv, env);
@@ -239,7 +237,7 @@ bool SystemBackendPosix::exec(const sigc::slot<void, int> &resultHandler, const
return ret;
}
-bool SystemBackendPosix::execWithOutput(const sigc::slot<void, int, const std::string&> &resultHandler, const std::string &filename, const std::vector<std::string> &argv, const std::vector<std::string> &env) {
+bool SystemBackendPosix::execWithOutput(const boost::function2<void, int, const std::string&> &resultHandler, const std::string &filename, const std::vector<std::string> &argv, const std::vector<std::string> &env) {
pid_t pid;
std::pair<char**, char**> args = makeArgs(filename, argv, env);
@@ -268,7 +266,7 @@ bool SystemBackendPosix::execWithOutput(const sigc::slot<void, int, const std::s
processesWOHandles.insert(std::make_pair(pid, pipeHandles[0]));
processesWOOutput.insert(std::make_pair(pid, std::string()));
- Net::FdManager::get()->registerFd(pipeHandles[0], sigc::bind(sigc::ptr_fun(&SystemBackendPosix::outputHandler), pid), POLLIN);
+ Net::FdManager::get()->registerFd(pipeHandles[0], boost::bind(&SystemBackendPosix::outputHandler, _1, pid), POLLIN);
}
dup2(saveStdout, STDOUT_FILENO); // restore old stdout
diff --git a/src/modules/SystemBackendPosix.h b/src/modules/SystemBackendPosix.h
index b12af6b..6d9b65f 100644
--- a/src/modules/SystemBackendPosix.h
+++ b/src/modules/SystemBackendPosix.h
@@ -27,18 +27,20 @@
#include <vector>
#include <sys/types.h>
-#include <sigc++/slot.h>
-#include <sigc++/adaptors/hide.h>
+
+#include <boost/bind.hpp>
namespace Mad {
namespace Modules {
+// TODO SystemBackendPosix doesn't work !!!
+
class SystemBackendPosix : private Common::SystemBackend {
private:
static SystemBackendPosix *backend;
- static std::map<pid_t, sigc::slot<void, int> > processes;
+ static std::map<pid_t, boost::function1<void, int> > processes;
- static std::map<pid_t, sigc::slot<void, int, const std::string&> > processesWithOutput;
+ static std::map<pid_t, boost::function2<void, int, const std::string&> > processesWithOutput;
static std::map<pid_t, int> processesWOHandles;
static std::map<pid_t, std::string > processesWOOutput;
@@ -55,13 +57,13 @@ class SystemBackendPosix : private Common::SystemBackend {
setChildHandler();
}
- void fsInfoCallback(int, const std::string &output, const sigc::slot<void, const std::vector<Common::SystemManager::FSInfo>& > &callback);
+ void fsInfoCallback(int, const std::string &output, const boost::function1<void, const std::vector<Common::SystemManager::FSInfo>& > &callback);
protected:
- virtual bool getFSInfo(const sigc::slot<void, const std::vector<Common::SystemManager::FSInfo>& > &callback);
+ virtual bool getFSInfo(const boost::function1<void, const std::vector<Common::SystemManager::FSInfo>& > &callback);
- virtual bool shutdown(const sigc::slot<void> &callback) {return exec(sigc::hide(callback), "/sbin/halt");}
- virtual bool reboot(const sigc::slot<void> &callback) {return exec(sigc::hide(callback), "/sbin/reboot");}
+ virtual bool shutdown(const boost::function0<void> &callback) {return exec(boost::bind(callback), "/sbin/halt");}
+ virtual bool reboot(const boost::function0<void> &callback) {return exec(boost::bind(callback), "/sbin/reboot");}
public:
~SystemBackendPosix();
@@ -83,10 +85,10 @@ class SystemBackendPosix : private Common::SystemBackend {
backend = 0;
}
- static bool exec(const sigc::slot<void, int> &resultHandler, const std::string &filename, const std::vector<std::string> &argv = std::vector<std::string>(),
+ static bool exec(const boost::function1<void, int> &resultHandler, const std::string &filename, const std::vector<std::string> &argv = std::vector<std::string>(),
const std::vector<std::string> &env = std::vector<std::string>());
- static bool execWithOutput(const sigc::slot<void, int, const std::string&> &resultHandler, const std::string &filename, const std::vector<std::string> &argv = std::vector<std::string>(),
+ static bool execWithOutput(const boost::function2<void, int, const std::string&> &resultHandler, const std::string &filename, const std::vector<std::string> &argv = std::vector<std::string>(),
const std::vector<std::string> &env = std::vector<std::string>());
};
diff --git a/src/modules/SystemBackendProc.cpp b/src/modules/SystemBackendProc.cpp
index 501f779..68f9cec 100644
--- a/src/modules/SystemBackendProc.cpp
+++ b/src/modules/SystemBackendProc.cpp
@@ -24,7 +24,7 @@
#include <cstdio>
#include <cstring>
-#include <sigc++/bind.h>
+#include <boost/bind.hpp>
#define init SystemBackendProc_LTX_init
#define deinit SystemBackendProc_LTX_deinit
@@ -34,7 +34,7 @@ namespace Modules {
SystemBackendProc *SystemBackendProc::backend = 0;
-bool SystemBackendProc::getUptimeInfo(const sigc::slot<void, unsigned long, unsigned long> &callback) {
+bool SystemBackendProc::getUptimeInfo(const boost::function2<void, unsigned long, unsigned long> &callback) {
unsigned long uptime = 0, idleTime = 0;
uptimeFile.seekg(0, std::ios::beg);
@@ -53,12 +53,12 @@ bool SystemBackendProc::getUptimeInfo(const sigc::slot<void, unsigned long, unsi
if(uptimeFile.good())
idleTime = (unsigned long)f;
- Common::ActionManager::get()->add(sigc::bind(callback, uptime, idleTime));
+ Common::ActionManager::get()->add(boost::bind(callback, uptime, idleTime));
return true;
}
-bool SystemBackendProc::getMemoryInfo(const sigc::slot<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback) {
+bool SystemBackendProc::getMemoryInfo(const boost::function4<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback) {
unsigned long totalMem = 0, freeMem = 0, totalSwap = 0, freeSwap = 0;
meminfoFile.seekg(0, std::ios::beg);
@@ -90,12 +90,12 @@ bool SystemBackendProc::getMemoryInfo(const sigc::slot<void, unsigned long, unsi
break;
}
- Common::ActionManager::get()->add(sigc::bind(callback, totalMem, freeMem, totalSwap, freeSwap));
+ Common::ActionManager::get()->add(boost::bind(callback, totalMem, freeMem, totalSwap, freeSwap));
return true;
}
-bool SystemBackendProc::getLoadInfo(const sigc::slot<void, unsigned long, unsigned long, float, float, float> &callback) {
+bool SystemBackendProc::getLoadInfo(const boost::function5<void, unsigned long, unsigned long, float, float, float> &callback) {
unsigned long currentLoad = 0, nProcesses = 0;
float loadAvg1 = 0, loadAvg5 = 0, loadAvg15 = 0;
@@ -112,7 +112,7 @@ bool SystemBackendProc::getLoadInfo(const sigc::slot<void, unsigned long, unsign
std::sscanf(line.c_str(), "%f %f %f %lu/%lu", &loadAvg1, &loadAvg5, &loadAvg15, &currentLoad, &nProcesses);
- Common::ActionManager::get()->add(sigc::bind(callback, currentLoad, nProcesses, loadAvg1, loadAvg5, loadAvg15));
+ Common::ActionManager::get()->add(boost::bind(callback, currentLoad, nProcesses, loadAvg1, loadAvg5, loadAvg15));
return true;
}
diff --git a/src/modules/SystemBackendProc.h b/src/modules/SystemBackendProc.h
index 7174551..bf19e22 100644
--- a/src/modules/SystemBackendProc.h
+++ b/src/modules/SystemBackendProc.h
@@ -38,9 +38,9 @@ class SystemBackendProc : private Common::SystemBackend {
SystemBackendProc() : uptimeFile("/proc/uptime"), meminfoFile("/proc/meminfo"), loadFile("/proc/loadavg") {}
protected:
- virtual bool getUptimeInfo(const sigc::slot<void, unsigned long, unsigned long> &callback);
- virtual bool getMemoryInfo(const sigc::slot<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback);
- virtual bool getLoadInfo(const sigc::slot<void, unsigned long, unsigned long, float, float, float> &callback);
+ virtual bool getUptimeInfo(const boost::function2<void, unsigned long, unsigned long> &callback);
+ virtual bool getMemoryInfo(const boost::function4<void, unsigned long, unsigned long, unsigned long, unsigned long> &callback);
+ virtual bool getLoadInfo(const boost::function5<void, unsigned long, unsigned long, float, float, float> &callback);
public:
static void registerBackend() {
diff --git a/src/modules/UserBackendMysql.cpp b/src/modules/UserBackendMysql.cpp
index daea626..da5126a 100644
--- a/src/modules/UserBackendMysql.cpp
+++ b/src/modules/UserBackendMysql.cpp
@@ -27,7 +27,7 @@
#include <sstream>
-#include <sigc++/bind.h>
+#include <boost/bind.hpp>
#include <pcrecpp.h>
#define init UserBackendMysql_LTX_init
@@ -135,7 +135,7 @@ void UserBackendMysql::configFinished() {
}
-bool UserBackendMysql::getUserList(const sigc::slot<void, const std::map<unsigned long, Common::UserInfo>& > &callback) {
+bool UserBackendMysql::getUserList(const boost::function1<void, const std::map<unsigned long, Common::UserInfo>& > &callback) {
mysql_ping(mysql);
mysql_real_query(mysql, queryListUsers.c_str(), queryListUsers.length());
@@ -155,12 +155,12 @@ bool UserBackendMysql::getUserList(const sigc::slot<void, const std::map<unsigne
users.insert(std::make_pair(user.getUid(), user));
}
- Common::ActionManager::get()->add(sigc::bind(callback, users));
+ Common::ActionManager::get()->add(boost::bind(callback, users));
return true;
}
-bool UserBackendMysql::getUserInfo(unsigned long uid, const sigc::slot<void, const Common::UserInfo&> &callback) {
+bool UserBackendMysql::getUserInfo(unsigned long uid, const boost::function1<void, const Common::UserInfo&> &callback) {
mysql_ping(mysql);
std::string query = queryUserById;
@@ -186,12 +186,12 @@ bool UserBackendMysql::getUserInfo(unsigned long uid, const sigc::slot<void, con
user.setGid(strtoul(row[1], 0, 10));
user.setFullName(row[3]);
- Common::ActionManager::get()->add(sigc::bind(callback, user));
+ Common::ActionManager::get()->add(boost::bind(callback, user));
while((row = mysql_fetch_row(result)) != 0) {}
}
else {
- Common::ActionManager::get()->add(sigc::bind(callback, Common::UserInfo()));
+ Common::ActionManager::get()->add(boost::bind(callback, Common::UserInfo()));
}
return true;
diff --git a/src/modules/UserBackendMysql.h b/src/modules/UserBackendMysql.h
index ddd4252..2e4f1ff 100644
--- a/src/modules/UserBackendMysql.h
+++ b/src/modules/UserBackendMysql.h
@@ -50,8 +50,8 @@ class UserBackendMysql : private Server::UserBackend, private Common::Configurab
virtual bool handleConfigEntry(const Common::ConfigEntry &entry, bool);
virtual void configFinished();
- virtual bool getUserList(const sigc::slot<void, const std::map<unsigned long, Common::UserInfo>& > &callback);
- virtual bool getUserInfo(unsigned long uid, const sigc::slot<void, const Common::UserInfo&> &callback);
+ virtual bool getUserList(const boost::function1<void, const std::map<unsigned long, Common::UserInfo>& > &callback);
+ virtual bool getUserInfo(unsigned long uid, const boost::function1<void, const Common::UserInfo&> &callback);
public:
virtual ~UserBackendMysql() {