prepare for circ_queue

This commit is contained in:
mutouyun 2018-11-27 20:57:34 +08:00
parent 21789676e7
commit fa2c8200bf
4 changed files with 28 additions and 3 deletions

View File

@ -15,7 +15,8 @@ INCLUDEPATH += \
HEADERS += \ HEADERS += \
../include/export.h \ ../include/export.h \
../include/shm.h \ ../include/shm.h \
../include/circ_elem_array.h ../include/circ_elem_array.h \
../include/circ_queue.h
SOURCES += \ SOURCES += \
../src/shm.cpp ../src/shm.cpp

View File

@ -76,7 +76,6 @@ private:
public: public:
elem_array(void) = default; elem_array(void) = default;
~elem_array(void) = delete;
elem_array(const elem_array&) = delete; elem_array(const elem_array&) = delete;
elem_array& operator=(const elem_array&) = delete; elem_array& operator=(const elem_array&) = delete;

15
include/circ_queue.h Normal file
View File

@ -0,0 +1,15 @@
#pragma once
#include "circ_elem_array.h"
namespace ipc {
namespace circ {
template <typename T>
class queue {
private:
elem_array<sizeof(T)> elems_;
};
} // namespace circ
} // namespace ipc

View File

@ -17,6 +17,9 @@ class Unit : public TestSuite {
Q_OBJECT Q_OBJECT
private slots: private slots:
void initTestCase(void);
void cleanupTestCase(void);
void test_inst(void); void test_inst(void);
void test_prod_cons_1v1(void); void test_prod_cons_1v1(void);
void test_prod_cons_1v3(void); void test_prod_cons_1v3(void);
@ -28,6 +31,14 @@ private slots:
using cq_t = ipc::circ::elem_array<12>; using cq_t = ipc::circ::elem_array<12>;
cq_t* cq__; cq_t* cq__;
void Unit::initTestCase(void) {
cq__ = new cq_t;
}
void Unit::cleanupTestCase(void) {
delete cq__;
}
void Unit::test_inst(void) { void Unit::test_inst(void) {
std::cout << "cq_t::head_size = " << cq_t::head_size << std::endl; std::cout << "cq_t::head_size = " << cq_t::head_size << std::endl;
std::cout << "cq_t::data_size = " << cq_t::data_size << std::endl; std::cout << "cq_t::data_size = " << cq_t::data_size << std::endl;
@ -37,7 +48,6 @@ void Unit::test_inst(void) {
QCOMPARE(static_cast<std::size_t>(cq_t::data_size) , static_cast<std::size_t>(12)); QCOMPARE(static_cast<std::size_t>(cq_t::data_size) , static_cast<std::size_t>(12));
QCOMPARE(sizeof(cq_t), static_cast<std::size_t>(cq_t::block_size + cq_t::head_size)); QCOMPARE(sizeof(cq_t), static_cast<std::size_t>(cq_t::block_size + cq_t::head_size));
cq__ = new cq_t;
std::cout << "sizeof(ipc::circ::elem_array<4096>) = " << sizeof(*cq__) << std::endl; std::cout << "sizeof(ipc::circ::elem_array<4096>) = " << sizeof(*cq__) << std::endl;
auto a = cq__->take(1); auto a = cq__->take(1);