]> git.sesse.net Git - plocate/blobdiff - io_uring_engine.h
Remove some unneeded whitespace.
[plocate] / io_uring_engine.h
index 93e7a0dc22c21b79fc21a9cdb63c608e9c3d1348..c165a40f51df19f2054ff6210d526e52c2e3e3fb 100644 (file)
@@ -3,36 +3,45 @@
 
 #include <functional>
 #include <queue>
-#include <string>
-#include <stdint.h>
+#include <stddef.h>
+#include <string_view>
+#include <sys/socket.h>
+#include <sys/types.h>
+
+struct io_uring_sqe;
+#ifndef WITHOUT_URING
 #include <liburing.h>
+#endif
 
 class IOUringEngine {
 public:
-       IOUringEngine();
-       void submit_read(int fd, size_t len, off_t offset, std::function<void(std::string)> cb);
+       IOUringEngine(size_t slop_bytes);
+       void submit_read(int fd, size_t len, off_t offset, std::function<void(std::string_view)> cb);
        void finish();
        size_t get_waiting_reads() const { return pending_reads + queued_reads.size(); }
 
 private:
-       void submit_read_internal(io_uring_sqe *sqe, int fd, size_t len, off_t offset, std::function<void(std::string)> cb);
+#ifndef WITHOUT_URING
+       void submit_read_internal(io_uring_sqe *sqe, int fd, size_t len, off_t offset, std::function<void(std::string_view)> cb);
 
        io_uring ring;
+#endif
        size_t pending_reads = 0;  // Number of requests we have going in the ring.
        bool using_uring;
+       const size_t slop_bytes;
 
        struct QueuedRead {
                int fd;
                size_t len;
                off_t offset;
-               std::function<void(std::string)> cb;
+               std::function<void(std::string_view)> cb;
        };
        std::queue<QueuedRead> queued_reads;
 
        struct PendingRead {
                void *buf;
                size_t len;
-               std::function<void(std::string)> cb;
+               std::function<void(std::string_view)> cb;
 
                // For re-submission.
                int fd;