Client.cc Client.h \
MetaSnapper.cc MetaSnapper.h \
Background.cc Background.h \
- Types.cc Types.h
+ Types.cc Types.h \
+ RefCounter.cc RefCounter.h
snapperd_LDADD = ../snapper/libsnapper.la ../dbus/libdbus.la -lrt
snapperd_LDFLAGS = -lboost_system -lboost_thread -lpthread
MetaSnappers meta_snappers;
-RefCounter::RefCounter()
- : last_used(steady_clock::now())
-{
-}
-
-
-int
-RefCounter::inc_use_count()
-{
- boost::lock_guard<boost::mutex> lock(mutex);
-
- return ++counter;
-}
-
-
-int
-RefCounter::dec_use_count()
-{
- boost::lock_guard<boost::mutex> lock(mutex);
-
- assert(counter > 0);
-
- if (--counter == 0)
- last_used = steady_clock::now();
-
- return counter;
-}
-
-
-void
-RefCounter::update_use_time()
-{
- boost::lock_guard<boost::mutex> lock(mutex);
-
- last_used = steady_clock::now();
-}
-
-
-int
-RefCounter::use_count() const
-{
- boost::lock_guard<boost::mutex> lock(mutex);
-
- return counter;
-}
-
-
-milliseconds
-RefCounter::unused_for() const
-{
- boost::lock_guard<boost::mutex> lock(mutex);
-
- if (counter != 0)
- return milliseconds(0);
-
- return duration_cast<milliseconds>(steady_clock::now() - last_used);
-}
-
-
MetaSnapper::MetaSnapper(ConfigInfo& config_info)
: config_info(config_info)
{
#define SNAPPER_META_SNAPPER_H
-#include <chrono>
#include <boost/thread.hpp>
#include <snapper/Snapper.h>
+#include "RefCounter.h"
+
using namespace std;
-using namespace std::chrono;
using namespace snapper;
-class RefCounter : private boost::noncopyable
-{
-public:
-
- RefCounter();
-
- int inc_use_count();
- int dec_use_count();
- void update_use_time();
-
- int use_count() const;
- milliseconds unused_for() const;
-
-private:
-
- mutable boost::mutex mutex;
-
- int counter = 0;
-
- steady_clock::time_point last_used;
-
-};
-
-
-class RefHolder
-{
-public:
-
- RefHolder(RefCounter& ref) : ref(ref)
- { ref.inc_use_count(); }
- ~RefHolder()
- { ref.dec_use_count(); }
-
-private:
-
- RefCounter& ref;
-
-};
-
-
struct UnknownConfig : public Exception
{
explicit UnknownConfig() : Exception("unknown config") {}
--- /dev/null
+/*
+ * Copyright (c) [2012-2015] Novell, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, contact Novell, Inc.
+ *
+ * To contact Novell about this file by physical or electronic mail, you may
+ * find current contact information at www.novell.com.
+ */
+
+
+#include "RefCounter.h"
+
+
+RefCounter::RefCounter()
+ : last_used(steady_clock::now())
+{
+}
+
+
+int
+RefCounter::inc_use_count()
+{
+ boost::lock_guard<boost::mutex> lock(mutex);
+
+ return ++counter;
+}
+
+
+int
+RefCounter::dec_use_count()
+{
+ boost::lock_guard<boost::mutex> lock(mutex);
+
+ assert(counter > 0);
+
+ if (--counter == 0)
+ last_used = steady_clock::now();
+
+ return counter;
+}
+
+
+void
+RefCounter::update_use_time()
+{
+ boost::lock_guard<boost::mutex> lock(mutex);
+
+ last_used = steady_clock::now();
+}
+
+
+int
+RefCounter::use_count() const
+{
+ boost::lock_guard<boost::mutex> lock(mutex);
+
+ return counter;
+}
+
+
+milliseconds
+RefCounter::unused_for() const
+{
+ boost::lock_guard<boost::mutex> lock(mutex);
+
+ if (counter != 0)
+ return milliseconds(0);
+
+ return duration_cast<milliseconds>(steady_clock::now() - last_used);
+}
--- /dev/null
+/*
+ * Copyright (c) [2012-2015] Novell, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as published
+ * by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, contact Novell, Inc.
+ *
+ * To contact Novell about this file by physical or electronic mail, you may
+ * find current contact information at www.novell.com.
+ */
+
+#ifndef SNAPPER_REF_COUNTER_H
+#define SNAPPER_REF_COUNTER_H
+
+
+#include <chrono>
+#include <boost/thread.hpp>
+#include <boost/noncopyable.hpp>
+
+
+using namespace std::chrono;
+
+
+class RefCounter : private boost::noncopyable
+{
+public:
+
+ RefCounter();
+
+ int inc_use_count();
+ int dec_use_count();
+ void update_use_time();
+
+ int use_count() const;
+ milliseconds unused_for() const;
+
+private:
+
+ mutable boost::mutex mutex;
+
+ int counter = 0;
+
+ steady_clock::time_point last_used;
+
+};
+
+
+class RefHolder
+{
+public:
+
+ RefHolder(RefCounter& ref) : ref(ref)
+ { ref.inc_use_count(); }
+
+ ~RefHolder()
+ { ref.dec_use_count(); }
+
+private:
+
+ RefCounter& ref;
+
+};
+
+
+#endif
#include <dbus/dbus.h>
#include <string>
-#include <list>
#include <snapper/Snapper.h>
#include <snapper/Snapshot.h>
using std::string;
-using std::list;
using namespace snapper;
AM_CPPFLAGS = $(DBUS_CFLAGS) $(XML2_CFLAGS) $(JSONC_CFLAGS)
snapper_zypp_plugin_SOURCES = \
- snapper_zypp_plugin.cc \
- solvable_matcher.cc solvable_matcher.h \
- zypp_commit_plugin.cc zypp_commit_plugin.h \
- zypp_plugin.cc zypp_plugin.h
+ snapper_zypp_plugin.cc \
+ solvable_matcher.cc solvable_matcher.h \
+ zypp_commit_plugin.cc zypp_commit_plugin.h \
+ zypp_plugin.cc zypp_plugin.h
snapper_zypp_plugin_LDADD = \
- ../client/libclient.la \
- ../snapper/libsnapper.la \
- ../dbus/libdbus.la \
- $(JSONC_LIBS)
+ ../client/libclient.la \
+ ../snapper/libsnapper.la \
+ ../dbus/libdbus.la \
+ $(JSONC_LIBS)
check_PROGRAMS = solvable_matcher.test forwarding-zypp-plugin
forwarding_zypp_plugin_SOURCES = \
- forwarding_zypp_plugin.cc \
- zypp_plugin.cc zypp_plugin.h
+ forwarding_zypp_plugin.cc \
+ zypp_plugin.cc zypp_plugin.h
forwarding_zypp_plugin_LDADD = \
- ../snapper/libsnapper.la \
- -lboost_system \
- -lpthread
+ ../snapper/libsnapper.la \
+ -lboost_system \
+ -lpthread
TESTS = solvable_matcher.test
-solvable_matcher_test_SOURCES = solvable_matcher_test.cc \
- solvable_matcher.cc solvable_matcher.h
+solvable_matcher_test_SOURCES = \
+ solvable_matcher_test.cc \
+ solvable_matcher.cc solvable_matcher.h
solvable_matcher_test_LDADD = \
- ../snapper/libsnapper.la \
- $(XML2_LIBS) \
- -lboost_unit_test_framework
+ ../snapper/libsnapper.la \
+ $(XML2_LIBS) \
+ -lboost_unit_test_framework
endif