/*
 * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
 *
 * Squid software is distributed under GPLv2+ license and includes
 * contributions from numerous individuals and organizations.
 * Please see the COPYING and CONTRIBUTORS files for details.
 */

#ifndef SQUID_STORE_FORWARD_H
#define SQUID_STORE_FORWARD_H

typedef int32_t sfileno;
typedef signed int sdirno;

/// maximum number of entries per cache_dir
enum { SwapFilenMax = 0xFFFFFF }; // keep in sync with StoreEntry::swap_filen

/// Store key.
typedef unsigned char cache_key;

class StoreSearch;
class StoreClient;
class StoreEntry;
class MemStore;
class Transients;

namespace Store
{
class Storage;
class Controller;
class Controlled;
class Disks;
class Disk;
class DiskConfig;

typedef ::StoreEntry Entry;
typedef ::MemStore Memory;
typedef ::Transients Transients;
} // namespace Store

// TODO: Remove these once all code has been transitioned to Store namespace.
typedef Store::Controller StoreController;
typedef Store::Disks StoreHashIndex;
typedef Store::Disk SwapDir;
template <class C> class RefCount;
typedef RefCount<Store::Disk> SwapDirPointer;

#endif /* SQUID_STORE_FORWARD_H */

