Begining with the new VS structure

This commit is contained in:
WolverinDEV 2020-03-04 16:24:29 +01:00
parent ece70e4df4
commit ae4751ee6f
10 changed files with 2508 additions and 2487 deletions

View File

@ -117,7 +117,7 @@ set(SOURCE_FILES
src/protocol/Packet.cpp
src/protocol/buffers.cpp
src/protocol/buffers_allocator_c.cpp
src/PermissionManager.cpp
src/PermissionRegister.cpp
src/Properties.cpp
src/BasicChannel.cpp
src/Error.cpp
@ -153,7 +153,7 @@ set(HEADER_FILES
src/log/translation.h
src/log/LogUtils.h
src/PermissionManager.h
src/PermissionRegister.h
src/protocol/buffers.h
src/protocol/Packet.h
src/Properties.h

View File

@ -21,7 +21,7 @@ BasicChannel::BasicChannel(ChannelId parentId, ChannelId channelId) {
this->properties()[property::CHANNEL_PID] = parentId;
}
void BasicChannel::setPermissionManager(const std::shared_ptr<permission::v2::PermissionManager>& manager) {
void BasicChannel::setPermissionManager(const std::shared_ptr<permission::v2::PermissionRegister>& manager) {
this->_permissions = manager;
this->update_properties_from_permissions();
}

View File

@ -6,7 +6,7 @@
#include "channel/TreeView.h"
#include "Definitions.h"
#include "Properties.h"
#include "PermissionManager.h"
#include "PermissionRegister.h"
namespace ts {
@ -74,8 +74,8 @@ namespace ts {
return this->permission_granted(permission::i_client_needed_talk_power, granted_value, false);
}
ts_always_inline std::shared_ptr<permission::v2::PermissionManager> permissions(){ return this->_permissions; }
virtual void setPermissionManager(const std::shared_ptr<permission::v2::PermissionManager>&);
ts_always_inline std::shared_ptr<permission::v2::PermissionRegister> permissions(){ return this->_permissions; }
virtual void setPermissionManager(const std::shared_ptr<permission::v2::PermissionRegister>&);
virtual void setProperties(const std::shared_ptr<Properties>&);
private:
ts_always_inline
@ -98,7 +98,7 @@ namespace ts {
protected:
std::weak_ptr<TreeView::LinkedTreeEntry> _link;
std::shared_ptr<Properties> _properties;
std::shared_ptr<permission::v2::PermissionManager> _permissions;
std::shared_ptr<permission::v2::PermissionRegister> _permissions;
ChannelId _channel_order = 0;
ChannelId _channel_id = 0;

View File

@ -94,7 +94,9 @@ namespace ts {
CLIENT_WEB,
CLIENT_MUSIC,
CLIENT_TEASPEAK,
MAX
MAX,
UNKNOWN = 0xFF
};
enum ConnectionState {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -194,14 +194,33 @@ namespace ts {
typedef rw_mutex_impl<rw_mutex_options<true>, mutex_action_validator> rw_unsafe_mutex;
typedef rw_safe_mutex rw_mutex;
struct rw_lock_defered_t {};
struct rw_lock_shared_t {};
struct rw_lock_exclusive_t {};
constexpr rw_lock_defered_t rw_lock_defered{};
constexpr rw_lock_shared_t rw_lock_shared{};
constexpr rw_lock_exclusive_t rw_lock_exclusive{};
template <typename lock_t>
struct rwshared_lock {
public:
explicit rwshared_lock(lock_t& lock) : lock_{lock} {
explicit rwshared_lock(lock_t& lock) : rwshared_lock{lock, rw_lock_shared} {}
explicit rwshared_lock(lock_t& lock, const rw_lock_defered_t&) : lock_{lock} {
this->lock_type_ = unlocked;
}
explicit rwshared_lock(lock_t& lock, const rw_lock_shared_t&) : lock_{lock} {
this->lock_.lock_shared();
this->lock_type_ = locked_shared;
}
explicit rwshared_lock(lock_t& lock, const rw_lock_exclusive_t&) : lock_{lock} {
this->lock_.lock();
this->lock_type_ = locked_exclusive;
}
~rwshared_lock() {
if(this->lock_type_ == locked_shared) {
this->lock_.unlock_shared();

View File

@ -13,7 +13,7 @@
#include <misc/lambda.h>
#define ALLOW_STACK_ALLOCATION
#define LOG_SQL_CMD [](const sql::result &res){ if(!res) logCritical(LOG_GENERAL, "Failed to execute sql command: " + std::to_string(res.code()) + "/" + res.msg() + " (" __FILE__ + ":" + to_string(__LINE__) + ")"); }
#define LOG_SQL_CMD [](const sql::result &res){ if(!res) logCritical(LOG_GENERAL, "Failed to execute sql command: " + std::to_string(res.code()) + "/" + res.msg() + " (" __FILE__ + ":" + std::to_string(__LINE__) + ")"); }
namespace sql {
class result;
class SqlManager;

View File

@ -8,7 +8,7 @@
#include <src/License.h>
#include <functional>
#include <src/query/Command.h>
#include "PermissionManager.h"
#include "PermissionRegister.h"
#include "src/query/command_handler.h"
#include "src/query/command_constants.h"

View File

@ -2,14 +2,14 @@
// Created by wolverindev on 15.07.19.
//
#include "PermissionManager.h"
#include "PermissionRegister.h"
#include <iostream>
using namespace std;
using namespace ts::permission::v2;
using PermissionType = ts::permission::PermissionType;
void print_permissions(PermissionManager& manager) {
void print_permissions(PermissionRegister& manager) {
{
auto permissions = manager.permissions();
cout << "Permissions: " << permissions.size() << endl;
@ -22,7 +22,7 @@ void print_permissions(PermissionManager& manager) {
cout << "Used memory: " << manager.used_memory() << endl;
}
void print_updates(PermissionManager& manager) {
void print_updates(PermissionRegister& manager) {
const auto updates = manager.flush_db_updates();
cout << "Permission updates: " << updates.size() << endl;
for(auto& update : updates) {
@ -40,12 +40,12 @@ Structure size of PermissionManager: 176
Structure size of PermissionContainerBulk<16>: 192
Structure size of PermissionContainer: 12
*/
cout << "Structure size of PermissionManager: " << sizeof(PermissionManager) << endl;
cout << "Structure size of PermissionManager: " << sizeof(PermissionRegister) << endl;
cout << "Structure size of PermissionContainerBulk<16>: " << sizeof(PermissionContainerBulk<16>) << endl;
cout << "Structure size of PermissionContainer: " << sizeof(PermissionContainer) << endl;
cout << "Permissions/bulk: " << PermissionManager::PERMISSIONS_BULK_ENTRY_COUNT << ". Bulks: " << PermissionManager::BULK_COUNT << " (Max permissions: " << (PermissionManager::PERMISSIONS_BULK_ENTRY_COUNT * PermissionManager::BULK_COUNT) << "; Avl: " << (uint32_t) PermissionType::permission_id_max << ")" << endl;
cout << "Permissions/bulk: " << PermissionRegister::PERMISSIONS_BULK_ENTRY_COUNT << ". Bulks: " << PermissionRegister::BULK_COUNT << " (Max permissions: " << (PermissionRegister::PERMISSIONS_BULK_ENTRY_COUNT * PermissionRegister::BULK_COUNT) << "; Avl: " << (uint32_t) PermissionType::permission_id_max << ")" << endl;
PermissionManager manager{};
PermissionRegister manager{};
print_permissions(manager);
manager.set_permission(PermissionType::b_client_ban_ip, {1, 0}, PermissionUpdateType::set_value, PermissionUpdateType::do_nothing);
manager.set_channel_permission(PermissionType::b_client_ban_ip, 2, {1, 0}, PermissionUpdateType::set_value, PermissionUpdateType::do_nothing);