From 8463b4d55e45ea29d5a23f867e7f1c0077279ee7 Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Thu, 24 Mar 2011 12:27:06 +0100 Subject: SWAP functionality removed On-disk storage should be implemented in devices rather than in 0MQ core. 0MQ is a networking library and there's no point in storing network buffers on disk. Signed-off-by: Martin Sustrik --- src/swap.hpp | 123 ----------------------------------------------------------- 1 file changed, 123 deletions(-) delete mode 100644 src/swap.hpp (limited to 'src/swap.hpp') diff --git a/src/swap.hpp b/src/swap.hpp deleted file mode 100644 index ad2bcc3..0000000 --- a/src/swap.hpp +++ /dev/null @@ -1,123 +0,0 @@ -/* - Copyright (c) 2007-2011 iMatix Corporation - Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file - - This file is part of 0MQ. - - 0MQ is free software; you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - 0MQ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . -*/ - -#ifndef __ZMQ_SWAP_HPP_INCLUDED__ -#define __ZMQ_SWAP_HPP_INCLUDED__ - -#include "../include/zmq.h" - -#include -#include "stdint.hpp" - -namespace zmq -{ - - // This class implements a message swap. Messages are retrieved from - // the swap in the same order as they entered it. - - class swap_t - { - public: - - enum { default_block_size = 8192 }; - - // Creates the swap. - swap_t (int64_t filesize_); - - ~swap_t (); - - int init (); - - // Stores the message into the swap. The function - // returns false if the swap is full; true otherwise. - bool store (zmq_msg_t *msg_); - - // Fetches the oldest message from the swap. It is an error - // to call this function when the swap is empty. - void fetch (zmq_msg_t *msg_); - - void commit (); - - void rollback (); - - // Returns true if the swap is empty; false otherwise. - bool empty (); - - -// // Returns true if and only if the swap is full. -// bool full (); - - // Returns true if the message fits into swap. - bool fits (zmq_msg_t *msg_); - - private: - - // Copies data from a memory buffer to the backing file. - // Wraps around when reaching maximum file size. - void copy_from_file (void *buffer_, size_t count_); - - // Copies data from the backing file to the memory buffer. - // Wraps around when reaching end-of-file. - void copy_to_file (const void *buffer_, size_t count_); - - // Returns the buffer space available. - int64_t buffer_space (); - - void fill_buf (char *buf, int64_t pos); - - void save_write_buf (); - - // File descriptor to the backing file. - int fd; - - // Name of the backing file. - std::string filename; - - // Maximum size of the backing file. - int64_t filesize; - - // File offset associated with the fd file descriptor. - int64_t file_pos; - - // File offset the next message will be stored at. - int64_t write_pos; - - // File offset the next message will be read from. - int64_t read_pos; - - int64_t commit_pos; - - size_t block_size; - - char *buf1; - char *buf2; - char *read_buf; - char *write_buf; - - int64_t write_buf_start_addr; - - // Disable copying of the swap object. - swap_t (const swap_t&); - const swap_t &operator = (const swap_t&); - }; - -} - -#endif -- cgit v1.2.3