]> git.ipfire.org Git - thirdparty/squid.git/blame - src/disk.h
Merged from trunk
[thirdparty/squid.git] / src / disk.h
CommitLineData
fc54b8d2
FC
1/*
2 * DEBUG: section 06 Disk I/O Routines
3 * AUTHOR: Harvest Derived
4 *
5 * SQUID Web Proxy Cache http://www.squid-cache.org/
6 * ----------------------------------------------------------
7 *
8 * Squid is the result of efforts by numerous individuals from
9 * the Internet community; see the CONTRIBUTORS file for full
10 * details. Many organizations have provided support for Squid's
11 * development; see the SPONSORS file for full details. Squid is
12 * Copyrighted (C) 2001 by the Regents of the University of
13 * California; see the COPYRIGHT file for full details. Squid
14 * incorporates software developed and/or copyrighted by other
15 * sources; see the CREDITS file for full details.
16 *
17 * This program is free software; you can redistribute it and/or modify
18 * it under the terms of the GNU General Public License as published by
19 * the Free Software Foundation; either version 2 of the License, or
20 * (at your option) any later version.
21 *
22 * This program is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 * GNU General Public License for more details.
26 *
27 * You should have received a copy of the GNU General Public License
28 * along with this program; if not, write to the Free Software
29 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
30 *
31 */
32
fc54b8d2
FC
33#ifndef SQUID_DISK_H_
34#define SQUID_DISK_H_
35
36#include "typedefs.h"
37
38class MemBuf;
65914896
FC
39// POD
40
41class dread_ctrl
42{
43public:
44 int fd;
45 off_t offset;
46 int req_len;
47 char *buf;
48 int end_of_file;
49 DRCB *handler;
50 void *client_data;
51};
52
fc54b8d2 53
8a648e8d
FC
54int file_open(const char *path, int mode);
55void file_close(int fd);
fc54b8d2
FC
56
57/* Adapter file_write for object callbacks */
58template <class O>
59void
60FreeObject(void *address)
61{
62 O *anObject = static_cast <O *>(address);
63 delete anObject;
64}
65
8a648e8d
FC
66void file_write(int, off_t, void const *, int len, DWCB *, void *, FREE *);
67void file_write_mbuf(int fd, off_t, MemBuf mb, DWCB * handler, void *handler_data);
68void file_read(int, char *, int, off_t, DRCB *, void *);
69void disk_init(void);
70void safeunlink(const char *path, int quiet);
71int xrename(const char *from, const char *to); //disk.cc
fc54b8d2
FC
72
73#endif /* SQUID_DISK_H_ */