Begining with the new VS structure
This commit is contained in:
parent
ece70e4df4
commit
ae4751ee6f
@ -117,7 +117,7 @@ set(SOURCE_FILES
|
|||||||
src/protocol/Packet.cpp
|
src/protocol/Packet.cpp
|
||||||
src/protocol/buffers.cpp
|
src/protocol/buffers.cpp
|
||||||
src/protocol/buffers_allocator_c.cpp
|
src/protocol/buffers_allocator_c.cpp
|
||||||
src/PermissionManager.cpp
|
src/PermissionRegister.cpp
|
||||||
src/Properties.cpp
|
src/Properties.cpp
|
||||||
src/BasicChannel.cpp
|
src/BasicChannel.cpp
|
||||||
src/Error.cpp
|
src/Error.cpp
|
||||||
@ -153,7 +153,7 @@ set(HEADER_FILES
|
|||||||
src/log/translation.h
|
src/log/translation.h
|
||||||
src/log/LogUtils.h
|
src/log/LogUtils.h
|
||||||
|
|
||||||
src/PermissionManager.h
|
src/PermissionRegister.h
|
||||||
src/protocol/buffers.h
|
src/protocol/buffers.h
|
||||||
src/protocol/Packet.h
|
src/protocol/Packet.h
|
||||||
src/Properties.h
|
src/Properties.h
|
||||||
|
@ -21,7 +21,7 @@ BasicChannel::BasicChannel(ChannelId parentId, ChannelId channelId) {
|
|||||||
this->properties()[property::CHANNEL_PID] = parentId;
|
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->_permissions = manager;
|
||||||
this->update_properties_from_permissions();
|
this->update_properties_from_permissions();
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#include "channel/TreeView.h"
|
#include "channel/TreeView.h"
|
||||||
#include "Definitions.h"
|
#include "Definitions.h"
|
||||||
#include "Properties.h"
|
#include "Properties.h"
|
||||||
#include "PermissionManager.h"
|
#include "PermissionRegister.h"
|
||||||
|
|
||||||
namespace ts {
|
namespace ts {
|
||||||
|
|
||||||
@ -74,8 +74,8 @@ namespace ts {
|
|||||||
return this->permission_granted(permission::i_client_needed_talk_power, granted_value, false);
|
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; }
|
ts_always_inline std::shared_ptr<permission::v2::PermissionRegister> permissions(){ return this->_permissions; }
|
||||||
virtual void setPermissionManager(const std::shared_ptr<permission::v2::PermissionManager>&);
|
virtual void setPermissionManager(const std::shared_ptr<permission::v2::PermissionRegister>&);
|
||||||
virtual void setProperties(const std::shared_ptr<Properties>&);
|
virtual void setProperties(const std::shared_ptr<Properties>&);
|
||||||
private:
|
private:
|
||||||
ts_always_inline
|
ts_always_inline
|
||||||
@ -98,7 +98,7 @@ namespace ts {
|
|||||||
protected:
|
protected:
|
||||||
std::weak_ptr<TreeView::LinkedTreeEntry> _link;
|
std::weak_ptr<TreeView::LinkedTreeEntry> _link;
|
||||||
std::shared_ptr<Properties> _properties;
|
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_order = 0;
|
||||||
ChannelId _channel_id = 0;
|
ChannelId _channel_id = 0;
|
||||||
|
@ -94,7 +94,9 @@ namespace ts {
|
|||||||
CLIENT_WEB,
|
CLIENT_WEB,
|
||||||
CLIENT_MUSIC,
|
CLIENT_MUSIC,
|
||||||
CLIENT_TEASPEAK,
|
CLIENT_TEASPEAK,
|
||||||
MAX
|
MAX,
|
||||||
|
|
||||||
|
UNKNOWN = 0xFF
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ConnectionState {
|
enum ConnectionState {
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -194,14 +194,33 @@ namespace ts {
|
|||||||
typedef rw_mutex_impl<rw_mutex_options<true>, mutex_action_validator> rw_unsafe_mutex;
|
typedef rw_mutex_impl<rw_mutex_options<true>, mutex_action_validator> rw_unsafe_mutex;
|
||||||
typedef rw_safe_mutex rw_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>
|
template <typename lock_t>
|
||||||
struct rwshared_lock {
|
struct rwshared_lock {
|
||||||
public:
|
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_.lock_shared();
|
||||||
this->lock_type_ = locked_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() {
|
~rwshared_lock() {
|
||||||
if(this->lock_type_ == locked_shared) {
|
if(this->lock_type_ == locked_shared) {
|
||||||
this->lock_.unlock_shared();
|
this->lock_.unlock_shared();
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#include <misc/lambda.h>
|
#include <misc/lambda.h>
|
||||||
|
|
||||||
#define ALLOW_STACK_ALLOCATION
|
#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 {
|
namespace sql {
|
||||||
class result;
|
class result;
|
||||||
class SqlManager;
|
class SqlManager;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include <src/License.h>
|
#include <src/License.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <src/query/Command.h>
|
#include <src/query/Command.h>
|
||||||
#include "PermissionManager.h"
|
#include "PermissionRegister.h"
|
||||||
|
|
||||||
#include "src/query/command_handler.h"
|
#include "src/query/command_handler.h"
|
||||||
#include "src/query/command_constants.h"
|
#include "src/query/command_constants.h"
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
// Created by wolverindev on 15.07.19.
|
// Created by wolverindev on 15.07.19.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "PermissionManager.h"
|
#include "PermissionRegister.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace ts::permission::v2;
|
using namespace ts::permission::v2;
|
||||||
using PermissionType = ts::permission::PermissionType;
|
using PermissionType = ts::permission::PermissionType;
|
||||||
|
|
||||||
void print_permissions(PermissionManager& manager) {
|
void print_permissions(PermissionRegister& manager) {
|
||||||
{
|
{
|
||||||
auto permissions = manager.permissions();
|
auto permissions = manager.permissions();
|
||||||
cout << "Permissions: " << permissions.size() << endl;
|
cout << "Permissions: " << permissions.size() << endl;
|
||||||
@ -22,7 +22,7 @@ void print_permissions(PermissionManager& manager) {
|
|||||||
cout << "Used memory: " << manager.used_memory() << endl;
|
cout << "Used memory: " << manager.used_memory() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_updates(PermissionManager& manager) {
|
void print_updates(PermissionRegister& manager) {
|
||||||
const auto updates = manager.flush_db_updates();
|
const auto updates = manager.flush_db_updates();
|
||||||
cout << "Permission updates: " << updates.size() << endl;
|
cout << "Permission updates: " << updates.size() << endl;
|
||||||
for(auto& update : updates) {
|
for(auto& update : updates) {
|
||||||
@ -40,12 +40,12 @@ Structure size of PermissionManager: 176
|
|||||||
Structure size of PermissionContainerBulk<16>: 192
|
Structure size of PermissionContainerBulk<16>: 192
|
||||||
Structure size of PermissionContainer: 12
|
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 PermissionContainerBulk<16>: " << sizeof(PermissionContainerBulk<16>) << endl;
|
||||||
cout << "Structure size of PermissionContainer: " << sizeof(PermissionContainer) << 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);
|
print_permissions(manager);
|
||||||
manager.set_permission(PermissionType::b_client_ban_ip, {1, 0}, PermissionUpdateType::set_value, PermissionUpdateType::do_nothing);
|
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);
|
manager.set_channel_permission(PermissionType::b_client_ban_ip, 2, {1, 0}, PermissionUpdateType::set_value, PermissionUpdateType::do_nothing);
|
||||||
|
Loading…
Reference in New Issue
Block a user