--------------------- PatchSet 241 Date: 2002/12/03 02:05:28 Author: rbcollins Branch: unify-io Tag: (none) Log: allow per dir strategy objects Members: src/IOStrategy.h:1.1.2.1->1.1.2.2 src/SwapDir.cc:1.1.2.3->1.1.2.4 src/SwapDir.h:1.1.2.3->1.1.2.4 src/fs/aufs/store_asyncufs.h:1.2.12.1->1.2.12.2 src/fs/aufs/store_io_aufs.cc:1.3.12.3->1.3.12.4 src/fs/coss/store_coss.h:1.3.10.1->1.3.10.2 src/fs/coss/store_io_coss.cc:1.3.10.2->1.3.10.3 src/fs/diskd/store_diskd.h:1.1.20.1->1.1.20.2 src/fs/diskd/store_io_diskd.cc:1.1.20.2->1.1.20.3 src/fs/null/store_null.cc:1.1.20.3->1.1.20.4 src/fs/ufs/store_io_ufs.cc:1.3.10.2->1.3.10.3 src/fs/ufs/store_ufs.h:1.1.20.1->1.1.20.2 Index: squid3/src/IOStrategy.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/Attic/IOStrategy.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- squid3/src/IOStrategy.h 2 Dec 2002 14:42:15 -0000 1.1.2.1 +++ squid3/src/IOStrategy.h 3 Dec 2002 02:05:28 -0000 1.1.2.2 @@ -1,6 +1,6 @@ /* - * $Id: IOStrategy.h,v 1.1.2.1 2002/12/02 14:42:15 rbcollins Exp $ + * $Id: IOStrategy.h,v 1.1.2.2 2002/12/03 02:05:28 rbcollins Exp $ * * * SQUID Web Proxy Cache http://www.squid-cache.org/ @@ -38,6 +38,7 @@ { public: virtual bool shedLoad() = 0; + virtual void deleteSelf() const = 0; }; #endif /* SQUID_IOSTRATEGY_H */ Index: squid3/src/SwapDir.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/SwapDir.cc,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -r1.1.2.3 -r1.1.2.4 --- squid3/src/SwapDir.cc 3 Dec 2002 00:47:02 -0000 1.1.2.3 +++ squid3/src/SwapDir.cc 3 Dec 2002 02:05:28 -0000 1.1.2.4 @@ -1,6 +1,6 @@ /* - * $Id: SwapDir.cc,v 1.1.2.3 2002/12/03 00:47:02 rbcollins Exp $ + * $Id: SwapDir.cc,v 1.1.2.4 2002/12/03 02:05:28 rbcollins Exp $ * * DEBUG: section ?? Swap Dir base object * AUTHOR: Robert Collins @@ -35,6 +35,7 @@ #include "squid.h" #include "SwapDir.h" +#include "IOStrategy.h" SwapDir * SwapDir::Factory (_storefs_entry const &fs) @@ -44,3 +45,7 @@ result->type = fs.typestr; return result; } + +SwapDir::~SwapDir() { + IO->deleteSelf(); +} Index: squid3/src/SwapDir.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/SwapDir.h,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -r1.1.2.3 -r1.1.2.4 --- squid3/src/SwapDir.h 3 Dec 2002 00:47:02 -0000 1.1.2.3 +++ squid3/src/SwapDir.h 3 Dec 2002 02:05:28 -0000 1.1.2.4 @@ -1,6 +1,6 @@ /* - * $Id: SwapDir.h,v 1.1.2.3 2002/12/03 00:47:02 rbcollins Exp $ + * $Id: SwapDir.h,v 1.1.2.4 2002/12/03 02:05:28 rbcollins Exp $ * * * SQUID Web Proxy Cache http://www.squid-cache.org/ @@ -56,6 +56,7 @@ SwapDir() : IO(NULL), max_objsize (-1){ fs.blksize = 1024; } + ~SwapDir(); const char *type; IOStrategy *IO; int cur_size; Index: squid3/src/fs/aufs/store_asyncufs.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/aufs/Attic/store_asyncufs.h,v retrieving revision 1.2.12.1 retrieving revision 1.2.12.2 diff -u -r1.2.12.1 -r1.2.12.2 --- squid3/src/fs/aufs/store_asyncufs.h 3 Dec 2002 00:47:03 -0000 1.2.12.1 +++ squid3/src/fs/aufs/store_asyncufs.h 3 Dec 2002 02:05:29 -0000 1.2.12.2 @@ -133,6 +133,7 @@ { public: virtual bool shedLoad(); + virtual void deleteSelf() const; static AufsIO Instance; }; Index: squid3/src/fs/aufs/store_io_aufs.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/aufs/Attic/store_io_aufs.cc,v retrieving revision 1.3.12.3 retrieving revision 1.3.12.4 diff -u -r1.3.12.3 -r1.3.12.4 --- squid3/src/fs/aufs/store_io_aufs.cc 3 Dec 2002 00:51:12 -0000 1.3.12.3 +++ squid3/src/fs/aufs/store_io_aufs.cc 3 Dec 2002 02:05:29 -0000 1.3.12.4 @@ -61,6 +61,11 @@ #endif return false; } +void +AufsIO::deleteSelf() const +{ + /* do nothing, we use a single instance */ +} /* open for reading */ storeIOState * Index: squid3/src/fs/coss/store_coss.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/coss/store_coss.h,v retrieving revision 1.3.10.1 retrieving revision 1.3.10.2 diff -u -r1.3.10.1 -r1.3.10.2 --- squid3/src/fs/coss/store_coss.h 3 Dec 2002 00:47:03 -0000 1.3.10.1 +++ squid3/src/fs/coss/store_coss.h 3 Dec 2002 02:05:29 -0000 1.3.10.2 @@ -103,6 +103,7 @@ { public: virtual bool shedLoad(); + virtual void deleteSelf() const; static COSSIO Instance; }; #endif Index: squid3/src/fs/coss/store_io_coss.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/coss/store_io_coss.cc,v retrieving revision 1.3.10.2 retrieving revision 1.3.10.3 diff -u -r1.3.10.2 -r1.3.10.3 --- squid3/src/fs/coss/store_io_coss.cc 3 Dec 2002 00:47:03 -0000 1.3.10.2 +++ squid3/src/fs/coss/store_io_coss.cc 3 Dec 2002 02:05:30 -0000 1.3.10.3 @@ -1,6 +1,6 @@ /* - * $Id: store_io_coss.cc,v 1.3.10.2 2002/12/03 00:47:03 rbcollins Exp $ + * $Id: store_io_coss.cc,v 1.3.10.3 2002/12/03 02:05:30 rbcollins Exp $ * * DEBUG: section 79 Storage Manager COSS Interface * AUTHOR: Eric Stern @@ -64,6 +64,11 @@ { return false; } +void +COSSIO::deleteSelf() const +{ + /* Do nothing, we use a single instance */ +} /* * This routine sucks. I want to rewrite it when possible, and I also think Index: squid3/src/fs/diskd/store_diskd.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/diskd/Attic/store_diskd.h,v retrieving revision 1.1.20.1 retrieving revision 1.1.20.2 diff -u -r1.1.20.1 -r1.1.20.2 --- squid3/src/fs/diskd/store_diskd.h 3 Dec 2002 00:47:03 -0000 1.1.20.1 +++ squid3/src/fs/diskd/store_diskd.h 3 Dec 2002 02:05:30 -0000 1.1.20.2 @@ -113,6 +113,7 @@ { public: virtual bool shedLoad(); + virtual void deleteSelf() const; static DiskdIO Instance; }; Index: squid3/src/fs/diskd/store_io_diskd.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/diskd/Attic/store_io_diskd.cc,v retrieving revision 1.1.20.2 retrieving revision 1.1.20.3 diff -u -r1.1.20.2 -r1.1.20.3 --- squid3/src/fs/diskd/store_io_diskd.cc 3 Dec 2002 00:47:03 -0000 1.1.20.2 +++ squid3/src/fs/diskd/store_io_diskd.cc 3 Dec 2002 02:05:30 -0000 1.1.20.3 @@ -1,6 +1,6 @@ /* - * $Id: store_io_diskd.cc,v 1.1.20.2 2002/12/03 00:47:03 rbcollins Exp $ + * $Id: store_io_diskd.cc,v 1.1.20.3 2002/12/03 02:05:30 rbcollins Exp $ * * DEBUG: section 79 Squid-side DISKD I/O functions. * AUTHOR: Duane Wessels @@ -58,6 +58,11 @@ { return false; } +void +DiskdIO::deleteSelf() const +{ + /* do nothing, we use a single instance */ +} storeIOState * storeDiskdOpen(SwapDir * SD, StoreEntry * e, STFNCB * file_callback, Index: squid3/src/fs/null/store_null.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/null/store_null.cc,v retrieving revision 1.1.20.3 retrieving revision 1.1.20.4 diff -u -r1.1.20.3 -r1.1.20.4 --- squid3/src/fs/null/store_null.cc 3 Dec 2002 00:47:03 -0000 1.1.20.3 +++ squid3/src/fs/null/store_null.cc 3 Dec 2002 02:05:30 -0000 1.1.20.4 @@ -1,6 +1,6 @@ /* - * $Id: store_null.cc,v 1.1.20.3 2002/12/03 00:47:03 rbcollins Exp $ + * $Id: store_null.cc,v 1.1.20.4 2002/12/03 02:05:30 rbcollins Exp $ * * DEBUG: section 47 Store Directory Routines * AUTHOR: Duane Wessels @@ -46,6 +46,7 @@ { public: virtual bool shedLoad(); + virtual void deleteSelf() const; static NullIO Instance; }; @@ -67,6 +68,11 @@ { return true; } +void +NullIO::deleteSelf() const +{ + /* Do nothing, we use a single instance */ +} static void storeNullDirReconfigure(SwapDir * sd, int index, char *path) Index: squid3/src/fs/ufs/store_io_ufs.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/ufs/store_io_ufs.cc,v retrieving revision 1.3.10.2 retrieving revision 1.3.10.3 diff -u -r1.3.10.2 -r1.3.10.3 --- squid3/src/fs/ufs/store_io_ufs.cc 3 Dec 2002 00:47:03 -0000 1.3.10.2 +++ squid3/src/fs/ufs/store_io_ufs.cc 3 Dec 2002 02:05:30 -0000 1.3.10.3 @@ -1,6 +1,6 @@ /* - * $Id: store_io_ufs.cc,v 1.3.10.2 2002/12/03 00:47:03 rbcollins Exp $ + * $Id: store_io_ufs.cc,v 1.3.10.3 2002/12/03 02:05:30 rbcollins Exp $ * * DEBUG: section 79 Storage Manager UFS Interface * AUTHOR: Duane Wessels @@ -55,6 +55,11 @@ { return false; } +void +UfsIO::deleteSelf() const +{ + /* Do nothing, we use a single instance */ +} storeIOState * storeUfsOpen(SwapDir * SD, StoreEntry * e, STFNCB * file_callback, Index: squid3/src/fs/ufs/store_ufs.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/ufs/Attic/store_ufs.h,v retrieving revision 1.1.20.1 retrieving revision 1.1.20.2 diff -u -r1.1.20.1 -r1.1.20.2 --- squid3/src/fs/ufs/store_ufs.h 3 Dec 2002 00:47:03 -0000 1.1.20.1 +++ squid3/src/fs/ufs/store_ufs.h 3 Dec 2002 02:05:30 -0000 1.1.20.2 @@ -35,6 +35,7 @@ { public: virtual bool shedLoad(); + virtual void deleteSelf() const; static UfsIO Instance; };