From ec1286ed4002ae23079d3255465ef8cd439f77e0 Mon Sep 17 00:00:00 2001 From: Lumijiez Date: Sun, 8 Dec 2024 19:06:30 +0200 Subject: [PATCH] add reader writer header, fix cmakelists --- CMakeLists.txt | 4 +++- include/reader_writer.h | 29 +++++++++++++++++++++++++++++ src/reader_writer.cpp | 5 +++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 include/reader_writer.h create mode 100644 src/reader_writer.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index bc9b8d1..4dd962c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,14 +6,16 @@ set(CMAKE_CXX_STANDARD 23) add_executable( os-labs main.cpp - src/signal_handler.cpp include/signal_handler.h + src/signal_handler.cpp include/buffer.h src/buffer.cpp include/producer.h src/consumer.cpp include/consumer.h src/producer.cpp + include/reader_writer.h + src/reader_writer.cpp ) target_link_libraries(os-labs PRIVATE m) target_include_directories(os-labs PRIVATE ${PROJECT_SOURCE_DIR}/include) \ No newline at end of file diff --git a/include/reader_writer.h b/include/reader_writer.h new file mode 100644 index 0000000..7b92969 --- /dev/null +++ b/include/reader_writer.h @@ -0,0 +1,29 @@ +// +// Created by lumijiez on 12/8/24. +// + +#ifndef READER_WRITER_H +#define READER_WRITER_H + +#include +#include + +class ReaderWriter { +public: + ReaderWriter(int numReaders, int numWriters, const std::string& filename); + ~ReaderWriter(); + void run(); + +private: + int numReaders; + int numWriters; + std::string filename; + + sem_t resourceAccess; + sem_t readCountAccess; + int readCount; + + static void* reader(void* arg); + static void* writer(void* arg); +}; +#endif //READER_WRITER_H diff --git a/src/reader_writer.cpp b/src/reader_writer.cpp new file mode 100644 index 0000000..eb2e51f --- /dev/null +++ b/src/reader_writer.cpp @@ -0,0 +1,5 @@ +// +// Created by lumijiez on 12/8/24. +// + +#include "reader_writer.h"