summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Szyndela <adrian.s@samsung.com>2020-09-29 16:56:59 +0200
committerAdrian Szyndela <adrian.s@samsung.com>2020-10-26 16:37:09 +0100
commite93b24d06c07075453ab611294e74c29fe04e068 (patch)
treed6f7145f347931c6ec94847b1089fc907002f7e9
parent3c305debe0f6078ef6b9bc5d131f0d0ccd975bed (diff)
downloadlibdbuspolicy-e93b24d06c07075453ab611294e74c29fe04e068.tar.gz
libdbuspolicy-e93b24d06c07075453ab611294e74c29fe04e068.tar.bz2
libdbuspolicy-e93b24d06c07075453ab611294e74c29fe04e068.zip
refactoring: hide FB::File from interfaces
Hide FB::File from interface of StorageBackendSerialized. This generalizes the StorageBackendSerialized interface. And that allows other implementations. Change-Id: I84631685e6ead50b33e7254c73dfb9af18bb9c4d
-rw-r--r--src/internal/storage_backend_serialized.cpp31
-rw-r--r--src/internal/storage_backend_serialized.hpp3
-rw-r--r--src/libdbuspolicy1.cpp1
-rw-r--r--src/stest_load_perf.cpp6
-rw-r--r--src/stest_performance.cpp6
-rw-r--r--src/test-libdbuspolicy1-access-deny-gdi.cpp6
-rw-r--r--src/test-libdbuspolicy1-method-gdi.cpp5
-rw-r--r--src/test-libdbuspolicy1-method.cpp1
-rw-r--r--src/test-libdbuspolicy1-ownership-deny-gdi.cpp3
-rw-r--r--src/test-libdbuspolicy1-ownership-gdi.cpp3
-rw-r--r--src/test-libdbuspolicy1-send_destination_prefix-deny-gdi.cpp4
-rw-r--r--src/test-libdbuspolicy1-signal-gdi.cpp4
12 files changed, 32 insertions, 41 deletions
diff --git a/src/internal/storage_backend_serialized.cpp b/src/internal/storage_backend_serialized.cpp
index fa8fe4e..4df4e36 100644
--- a/src/internal/storage_backend_serialized.cpp
+++ b/src/internal/storage_backend_serialized.cpp
@@ -136,7 +136,7 @@ class StorageBackendSerialized::StorageBackendSerializedImpl {
public:
bool init(const char *filename, bool verify);
- bool init(const FB::File *f);
+ bool initFromData(const uint8_t *mem, bool verify);
bool initFromXML(const char *config_name);
void release();
@@ -280,6 +280,19 @@ bool StorageBackendSerialized::StorageBackendSerializedImpl::init(const char *fi
return err("mmap");
auto mmapGuard = transaction_guard::makeGuard([&] () { releaseMMap(); });
+
+ if (!initFromData(mem, verify))
+ return false;
+
+ openGuard.dismiss();
+ mmapGuard.dismiss();
+
+ return true;
+}
+
+bool StorageBackendSerialized::StorageBackendSerializedImpl::initFromData(const uint8_t *mem, bool verify) {
+ assert(nullptr == file);
+
if (verify) {
auto verifier = flatbuffers::Verifier(mem, length);
if (!FB::VerifyFileBuffer(verifier) || !FB::FileBufferHasIdentifier(mem)) {
@@ -297,20 +310,10 @@ bool StorageBackendSerialized::StorageBackendSerializedImpl::init(const char *fi
}
}
- openGuard.dismiss();
- mmapGuard.dismiss();
-
file = GetFile(mem);
return file != nullptr;
}
-bool StorageBackendSerialized::StorageBackendSerializedImpl::init(const FB::File *f) {
- assert(nullptr == file);
-
- file = f;
- return true;
-}
-
bool StorageBackendSerialized::StorageBackendSerializedImpl::initFromXML(const char *config_name) {
assert(nullptr == file);
assert(nullptr == serializer.get());
@@ -322,7 +325,7 @@ bool StorageBackendSerialized::StorageBackendSerializedImpl::initFromXML(const c
if (nullptr == data)
return false;
- return init(FB::GetFile(data));
+ return initFromData(data, false);
}
void StorageBackendSerialized::StorageBackendSerializedImpl::printContent(const bool xml_format) const {
@@ -354,8 +357,8 @@ bool StorageBackendSerialized::init(const char *filename, bool verify) {
return pimpl->init(filename, verify);
}
-bool StorageBackendSerialized::init(const FB::File *f) {
- return pimpl->init(f);
+bool StorageBackendSerialized::initFromData(const uint8_t *serialized_data, bool verify) {
+ return pimpl->initFromData(serialized_data, verify);
}
bool StorageBackendSerialized::initFromXML(const char *config_name) {
diff --git a/src/internal/storage_backend_serialized.hpp b/src/internal/storage_backend_serialized.hpp
index ef40013..cb83b8d 100644
--- a/src/internal/storage_backend_serialized.hpp
+++ b/src/internal/storage_backend_serialized.hpp
@@ -16,7 +16,6 @@
#pragma once
#include "policy.hpp"
-#include "fb_generated.h"
#include <memory>
@@ -30,7 +29,7 @@ public:
~StorageBackendSerialized();
bool init(const char *filename, bool verify = false);
- bool init(const FB::File *file);
+ bool initFromData(const uint8_t *serialized_data, bool verify = false);
bool initFromXML(const char *config_name);
void release();
diff --git a/src/libdbuspolicy1.cpp b/src/libdbuspolicy1.cpp
index 027f385..e1975f8 100644
--- a/src/libdbuspolicy1.cpp
+++ b/src/libdbuspolicy1.cpp
@@ -28,6 +28,7 @@
#include <cstring>
#include <dbuspolicy1/libdbuspolicy1.h>
#include <fcntl.h>
+#include <functional>
#include <grp.h>
#include <linux/kdbus.h>
#include <linux/limits.h>
diff --git a/src/stest_load_perf.cpp b/src/stest_load_perf.cpp
index bf45b51..45f5cad 100644
--- a/src/stest_load_perf.cpp
+++ b/src/stest_load_perf.cpp
@@ -42,7 +42,7 @@ bool run_xml(const char *conf_file) {
bool run_xml_plus_fb(const char *conf_file, bool verify) {
Serializer serializer;
size_t size;
- uint8_t *buff = serializer.serialize(conf_file, size);
+ const uint8_t *buff = serializer.serialize(conf_file, size);
if (verify) {
auto verifier = flatbuffers::Verifier(buff, size);
@@ -52,10 +52,8 @@ bool run_xml_plus_fb(const char *conf_file, bool verify) {
}
}
- const FB::File *file = FB::GetFile(buff);
-
StorageBackendSerialized storage;
- return storage.init(file);
+ return storage.initFromData(buff);
}
bool run_fb(const char *conf_file, bool verify) {
diff --git a/src/stest_performance.cpp b/src/stest_performance.cpp
index bbb60a7..09003e5 100644
--- a/src/stest_performance.cpp
+++ b/src/stest_performance.cpp
@@ -188,7 +188,7 @@ void run_x_times(std::function<void(void)> func, size_t times) {
void run_fb(const char *conf_file, bool verify, size_t count, bool worst) {
Serializer serializer;
size_t size;
- uint8_t *buff = serializer.serialize(conf_file, size);
+ const uint8_t *buff = serializer.serialize(conf_file, size);
if (verify) {
auto verifier = flatbuffers::Verifier(buff, size);
@@ -198,10 +198,8 @@ void run_fb(const char *conf_file, bool verify, size_t count, bool worst) {
}
}
- const FB::File *file = FB::GetFile(buff);
-
StorageBackendSerialized storage;
- storage.init(file);
+ storage.initFromData(buff);
printf("FLATBUFFERS:\n");
if (!worst)
diff --git a/src/test-libdbuspolicy1-access-deny-gdi.cpp b/src/test-libdbuspolicy1-access-deny-gdi.cpp
index dbad42a..db4de34 100644
--- a/src/test-libdbuspolicy1-access-deny-gdi.cpp
+++ b/src/test-libdbuspolicy1-access-deny-gdi.cpp
@@ -153,13 +153,11 @@ bool run_fb(const std::pair<TestBusSetup, TestBusSetup> access_test) {
printf("FLATBUFFERS:\n");
- const FB::File *file_sys = FB::GetFile(buff_sys);
- storage_sys.init(file_sys);
+ storage_sys.initFromData(buff_sys);
bool res = run_tests_for_bus(storage_sys, policy_checker_system(), system_bus_setup.second, i, passed);
if (buff_ses) {
- const FB::File *file_ses = FB::GetFile(buff_ses);
- storage_ses.init(file_ses);
+ storage_ses.initFromData(buff_ses);
res &= run_tests_for_bus(storage_ses, policy_checker_session(), session_bus_setup.second, i, passed);
}
return res;
diff --git a/src/test-libdbuspolicy1-method-gdi.cpp b/src/test-libdbuspolicy1-method-gdi.cpp
index 3880c40..7350a18 100644
--- a/src/test-libdbuspolicy1-method-gdi.cpp
+++ b/src/test-libdbuspolicy1-method-gdi.cpp
@@ -126,11 +126,10 @@ bool run_fb() {
Serializer serializer;
size_t size;
- uint8_t *buff = serializer.serialize("tests/default_allow/system.conf", size);
- const FB::File *file = FB::GetFile(buff);
+ const uint8_t *buff = serializer.serialize("tests/default_allow/system.conf", size);
StorageBackendSerialized storage;
- storage.init(file);
+ storage.initFromData(buff);
printf("FLATBUFFERS:\n");
bool ret = method_test(storage);
return ret;
diff --git a/src/test-libdbuspolicy1-method.cpp b/src/test-libdbuspolicy1-method.cpp
index 2655542..acab322 100644
--- a/src/test-libdbuspolicy1-method.cpp
+++ b/src/test-libdbuspolicy1-method.cpp
@@ -1,4 +1,5 @@
+#include <cassert>
#include <iostream>
#include <string>
#include <sys/types.h>
diff --git a/src/test-libdbuspolicy1-ownership-deny-gdi.cpp b/src/test-libdbuspolicy1-ownership-deny-gdi.cpp
index 3d86a31..0427f20 100644
--- a/src/test-libdbuspolicy1-ownership-deny-gdi.cpp
+++ b/src/test-libdbuspolicy1-ownership-deny-gdi.cpp
@@ -183,9 +183,8 @@ bool run_fb() {
size_t size;
uint8_t *buff = serializer.serialize("tests/default_deny/system.conf", size);
- const FB::File *file = FB::GetFile(buff);
StorageBackendSerialized storage;
- storage.init(file);
+ storage.initFromData(buff);
printf("FRAMEBUFFERS:\n");
return ownership_test(storage);
diff --git a/src/test-libdbuspolicy1-ownership-gdi.cpp b/src/test-libdbuspolicy1-ownership-gdi.cpp
index 779ec6c..c7138bb 100644
--- a/src/test-libdbuspolicy1-ownership-gdi.cpp
+++ b/src/test-libdbuspolicy1-ownership-gdi.cpp
@@ -105,10 +105,9 @@ bool run_fb() {
Serializer serializer;
size_t size;
uint8_t *buff = serializer.serialize("tests/default_allow/system.conf", size);
- const FB::File *file = FB::GetFile(buff);
StorageBackendSerialized storage;
- storage.init(file);
+ storage.initFromData(buff);
printf("FLATBUFFERS:\n");
return ownership_test(storage);
}
diff --git a/src/test-libdbuspolicy1-send_destination_prefix-deny-gdi.cpp b/src/test-libdbuspolicy1-send_destination_prefix-deny-gdi.cpp
index 3c9049b..fc0ac57 100644
--- a/src/test-libdbuspolicy1-send_destination_prefix-deny-gdi.cpp
+++ b/src/test-libdbuspolicy1-send_destination_prefix-deny-gdi.cpp
@@ -190,10 +190,8 @@ bool run_fb() {
size_t size;
uint8_t *buff = serializer.serialize("tests/default_deny/system.conf", size);
- const FB::File *file = FB::GetFile(buff);
-
StorageBackendSerialized storage;
- storage.init(file);
+ storage.initFromData(buff);
printf("FLATBUFFERS:\n");
return send_prefix_test(storage);
diff --git a/src/test-libdbuspolicy1-signal-gdi.cpp b/src/test-libdbuspolicy1-signal-gdi.cpp
index d538f6c..0bcdfcb 100644
--- a/src/test-libdbuspolicy1-signal-gdi.cpp
+++ b/src/test-libdbuspolicy1-signal-gdi.cpp
@@ -85,10 +85,8 @@ bool run_fb() {
size_t size;
uint8_t *buff = serializer.serialize("tests/default_allow/system.conf", size);
- const FB::File *file = FB::GetFile(buff);
-
StorageBackendSerialized storage;
- storage.init(file);
+ storage.initFromData(buff);
printf("FLATBUFFERS:\n");
return signal_test(storage);