]> git.ipfire.org Git - thirdparty/squid.git/blob - src/store/forward.h
Source Format Enforcement (#532)
[thirdparty/squid.git] / src / store / forward.h
1 /*
2 * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
3 *
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.
7 */
8
9 #ifndef SQUID_STORE_FORWARD_H
10 #define SQUID_STORE_FORWARD_H
11
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;
19 #else
20 #error I do not know how to typedef a signed 32bit integer.
21 #endif
22 typedef signed_int32_t sfileno;
23 typedef signed int sdirno;
24
25 /// maximum number of entries per cache_dir
26 enum { SwapFilenMax = 0xFFFFFF }; // keep in sync with StoreEntry::swap_filen
27
28 /// Store key.
29 typedef unsigned char cache_key;
30
31 class StoreSearch;
32 class StoreClient;
33 class StoreEntry;
34 class MemStore;
35 class Transients;
36
37 namespace Store
38 {
39 /// cache "I/O" direction and status
40 enum IoStatus { ioUndecided, ioWriting, ioReading, ioDone };
41
42 class Storage;
43 class Controller;
44 class Controlled;
45 class Disks;
46 class Disk;
47 class DiskConfig;
48 class EntryGuard;
49
50 typedef ::StoreEntry Entry;
51 typedef ::MemStore Memory;
52 typedef ::Transients Transients;
53 } // namespace Store
54
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;
61
62 #endif /* SQUID_STORE_FORWARD_H */
63