diff --git a/CMakeLists.txt b/CMakeLists.txt index d45eb1f7b3b14bd37b63adcbfc264dec1a8a5217..3b6fe628791ad1fa8167086c9a86bd4583e7dd57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ include(astyle) include(testing_cpp) add_subdirectory(common/cpp) -add_subdirectory(producer/api) +add_subdirectory(producer) add_subdirectory(worker/api/cpp) add_subdirectory(receiver) diff --git a/producer/CMakeLists.txt b/producer/CMakeLists.txt index 5f35adf857e6f13c8bba2de4452a9eeeb55169fc..53d257b04ea6ffc4b663736b9d8bd559dc341222 100644 --- a/producer/CMakeLists.txt +++ b/producer/CMakeLists.txt @@ -1 +1 @@ -#add_subdirectory(inotify-event-detector-cpp) +add_subdirectory(api) diff --git a/producer/api/include/producer/producer.h b/producer/api/include/producer/producer.h index e04f927825176e2742c1ef464e33edd901464b74..486025abb2553b503b0a6f1a6a6cd18832a856be 100644 --- a/producer/api/include/producer/producer.h +++ b/producer/api/include/producer/producer.h @@ -27,15 +27,28 @@ enum class ProducerStatus { class Producer { public: + //! Creates a new producer static std::unique_ptr<Producer> create(); - //virtual ~Producer() = 0; + virtual ~Producer() = default; virtual uint64_t GetVersion() const = 0; virtual ProducerStatus GetStatus() const = 0; + //! Connects to a receiver + /*! + \param receiver_address - The address of the receiver. E.g. 127.0.0.1:4200 + \return ProducerError - Will be ProducerError::kNoError on success + */ virtual ProducerError ConnectToReceiver(const std::string& receiver_address) = 0; - virtual ProducerError Send(uint64_t file_id, void* data, size_t file_size) = 0; + //! Sends data to the receiver + /*! + \param file_id - The id of the file. An error will be returned if this file id already exists on the receiver. + \param data - A pointer to the data to send + \param file_size - The size of the data. + \return ProducerError - Will be ProducerError::kNoError on success + */ + virtual ProducerError Send(uint64_t file_id, const void* data, size_t file_size) = 0; }; } diff --git a/producer/api/src/producer_impl.cpp b/producer/api/src/producer_impl.cpp index da208b21ed4d0a834b52dba4e474f9e49208bdfb..07c0311119ad29238c6188a361b007e24b8ca704 100644 --- a/producer/api/src/producer_impl.cpp +++ b/producer/api/src/producer_impl.cpp @@ -65,7 +65,7 @@ hidra2::ProducerError hidra2::ProducerImpl::ConnectToReceiver(const std::string& return ProducerError::kNoError; } -hidra2::ProducerError hidra2::ProducerImpl::Send(uint64_t file_id, void* data, size_t file_size) { +hidra2::ProducerError hidra2::ProducerImpl::Send(uint64_t file_id, const void* data, size_t file_size) { if(status_ != ProducerStatus::kConnected) { return ProducerError::kConnectionNotReady; } diff --git a/producer/api/src/producer_impl.h b/producer/api/src/producer_impl.h index 3c00c114b0271a8589eacac2d290477a164e163d..9c8a277a20a481cd98c3acedc868860aa2ca2736 100644 --- a/producer/api/src/producer_impl.h +++ b/producer/api/src/producer_impl.h @@ -29,7 +29,7 @@ class ProducerImpl : public Producer, public HasIO { uint64_t GetVersion() const override; ProducerStatus GetStatus() const override; ProducerError ConnectToReceiver(const std::string& receiver_address) override; - ProducerError Send(uint64_t file_id, void* data, size_t file_size) override; + ProducerError Send(uint64_t file_id, const void* data, size_t file_size) override; }; }