Skip to content
Snippets Groups Projects
Verified Commit 8e9a0620 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

Cleanup debugging changes

parent afcf530c
Branches
Tags
3 merge requests!33Release 0.1,!31F logging segfaults,!30Debug build
......@@ -39,24 +39,24 @@ const std::string logger_name = "caosdb::logging";
typedef boost::log::sources::severity_channel_logger_mt<int, std::string> boost_logger_class;
class _logger {
class logger {
public:
static boost_logger_class &get() { return *_logger::GetInstance()._logger_instance; }
static boost_logger_class &get() { return *logger::GetInstance()._logger_instance; }
static void destroy() {
auto &instance = _logger::GetInstance();
auto &instance = logger::GetInstance();
delete instance._logger_instance;
}
private:
_logger() { this->_logger_instance = new boost_logger_class(); };
static _logger &GetInstance() {
static _logger instance;
logger() { this->_logger_instance = new boost_logger_class(); };
static logger &GetInstance() {
static logger instance;
return instance;
}
boost_logger_class *_logger_instance;
};
auto inline get_logger() -> boost_logger_class & { return _logger::get(); }
auto inline get_logger() -> boost_logger_class & { return logger::get(); }
/**
* This class stores the integer log level.
......
......@@ -45,13 +45,11 @@
#include <vector>
void __attribute__((constructor)) startup() {
std::cout << "LOADING CAOSDB 1" << std::endl;
boost::log::core::get()->set_logging_enabled(false);
std::cout << "LOADING CAOSDB 2" << std::endl;
std::cout << "LOADING CAOSDB" << std::endl;
}
void __attribute__((destructor)) shutdown() {
std::cout << "UNLOADING CAOSDB 1" << std::endl;
caosdb::logging::_logger::destroy();
std::cout << "UNLOADING CAOSDB" << std::endl;
caosdb::logging::logger::destroy();
}
namespace caosdb::logging {
......
/*
*
* This file is a part of the CaosDB Project.
*
* Copyright (C) 2021 Timm Fitschen <t.fitschen@indiscale.com>
* Copyright (C) 2021 IndiScale GmbH <info@indiscale.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#include <gtest/gtest-message.h> // for Message
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl
#include <gtest/gtest_pred_impl.h> // for Test, TestInfo, EXPECT_EQ, TEST
#include <iostream> // for cout, <<
#include <string> // for string
#include <utility> // for move
namespace caosdb {
class TestClass {
public:
~TestClass() = default;
TestClass(TestClass &&other) = default;
TestClass(const TestClass &other);
TestClass();
explicit TestClass(std::string member);
auto operator=(const TestClass &other) -> TestClass &;
auto operator=(TestClass &&other) -> TestClass & = default;
[[nodiscard]] auto ToString() const -> std::string;
std::string member;
};
TestClass::TestClass() { std::cout << "Constructor TestClass(): " << ToString() << "\n"; }
TestClass::TestClass(std::string member) : member(std::move(member)) {
std::cout << "Constructor TestClass(const std:string &): " << ToString() << "\n";
}
TestClass::TestClass(const TestClass &other) : member(other.member) {
std::cout << "Copy Constructor TestClass(const TestClass &): " << ToString() << "\n";
}
auto TestClass::operator=(const TestClass &other) -> TestClass & {
std::cout << "Copy assignment (" << ToString() << "->";
if (this != &other) {
this->member = other.member;
}
std::cout << ToString() << ")\n";
return *this;
}
auto TestClass::ToString() const -> std::string { return "TestClass(" + member + ")"; }
TEST(test_misc, test_move) {
TestClass test_class1;
std::cout << "test_class1: " << test_class1.ToString() << "\n";
TestClass test_class2 = test_class1;
std::cout << "test_class2: " << test_class2.ToString() << "\n";
const TestClass test_class3("member3");
std::cout << "test_class3: " << test_class3.ToString() << "\n";
TestClass test_class4 = test_class3;
std::cout << "test_class4: " << test_class4.ToString() << "\n";
}
} // namespace caosdb
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment