2 * Copyright (C) 1996-2019 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
9 #ifndef SQUID_STORE_FORWARD_H
10 #define SQUID_STORE_FORWARD_H
12 // bug 4610 see comments 22-38
13 // Nasty hack, but it turns out C++ allows int32_t to be
14 // unsigned when used as a bitmask (as sfile* are later)
15 #if INT_MAX == INT32_MAX
16 typedef signed int signed_int32_t
;
17 #elif SHORT_MAX == INT32_MAX
18 typedef signed short int signed_int32_t
;
20 #error I do not know how to typedef a signed 32bit integer.
22 typedef signed_int32_t sfileno
;
23 typedef signed int sdirno
;
25 /// maximum number of entries per cache_dir
26 enum { SwapFilenMax
= 0xFFFFFF }; // keep in sync with StoreEntry::swap_filen
29 typedef unsigned char cache_key
;
39 /// cache "I/O" direction and status
40 enum IoStatus
{ ioUndecided
, ioWriting
, ioReading
, ioDone
};
50 typedef ::StoreEntry Entry
;
51 typedef ::MemStore Memory
;
52 typedef ::Transients Transients
;
55 // TODO: Remove these once all code has been transitioned to Store namespace.
56 typedef Store::Controller StoreController
;
57 typedef Store::Disks StoreHashIndex
;
58 typedef Store::Disk SwapDir
;
59 template <class C
> class RefCount
;
60 typedef RefCount
<Store::Disk
> SwapDirPointer
;
62 #endif /* SQUID_STORE_FORWARD_H */