return b ? ((int) (100.0 * a / b + 0.5)) : 0;
}
+int64_t
+Math::int64Percent(const int64_t a, const int64_t b)
+{
+ return b ? ((int64_t) (100.0 * a / b + 0.5)) : 0;
+}
+
double
Math::doublePercent(const double a, const double b)
{
{
extern int intPercent(const int a, const int b);
+extern int64_t int64Percent(const int64_t a, const int64_t b);
extern double doublePercent(const double, const double);
extern int intAverage(const int, const int, int, const int);
extern double doubleAverage(const double, const double, int, const int);
* The maximum size the store will support in normal use. Inaccuracy is permitted,
* but may throw estimates for memory etc out of whack.
*/
- virtual size_t maxSize() const = 0;
+ virtual uint64_t maxSize() const = 0;
/** The minimum size the store will shrink to via normal housekeeping */
- virtual size_t minSize() const = 0;
+ virtual uint64_t minSize() const = 0;
/**
* Output stats to the provided store entry.
virtual void sync();
- virtual size_t maxSize() const;
+ virtual uint64_t maxSize() const;
- virtual size_t minSize() const;
+ virtual uint64_t minSize() const;
virtual void stat(StoreEntry&) const;
void
SwapDir::maintain() {}
-size_t
+uint64_t
SwapDir::minSize() const
{
- return (size_t) (((float) maxSize() *
- (float) Config.Swap.lowWaterMark) / 100.0);
+ return ((maxSize() * Config.Swap.lowWaterMark) / 100);
}
void
virtual void maintain(); /* perform regular maintenance should be private and self registered ... */
- virtual size_t maxSize() const;
+ virtual uint64_t maxSize() const;
- virtual size_t minSize() const;
+ virtual uint64_t minSize() const;
virtual void stat(StoreEntry &) const;
virtual void get(String const, STOREGETCLIENT, void * cbdata);
- virtual size_t maxSize() const { return max_size;}
+ virtual uint64_t maxSize() const { return max_size;}
- virtual size_t minSize() const;
+ virtual uint64_t minSize() const;
virtual void stat (StoreEntry &anEntry) const;
virtual StoreSearch *search(String const url, HttpRequest *) = 0;
char const *theType;
public:
- size_t cur_size;
- size_t max_size;
+ uint64_t cur_size; ///< currently used space in the storage area
+ uint64_t max_size; ///< maximum allocatable size of the storage area
char *path;
int index; /* This entry's index into the swapDirs array */
int64_t max_objsize;
CossSwapDir::statfs(StoreEntry & sentry) const
{
storeAppendPrintf(&sentry, "\n");
- storeAppendPrintf(&sentry, "Maximum Size: %Zu KB\n", max_size);
- storeAppendPrintf(&sentry, "Current Size: %Zu KB\n", cur_size);
+ storeAppendPrintf(&sentry, "Maximum Size: %lu KB\n", max_size);
+ storeAppendPrintf(&sentry, "Current Size: %lu KB\n", cur_size);
storeAppendPrintf(&sentry, "Percent Used: %0.2f%%\n",
(100.0 * (double)cur_size / (double)max_size) );
storeAppendPrintf(&sentry, "Number of object collisions: %d\n", (int) numcollisions);
void
CossSwapDir::dump(StoreEntry &entry)const
{
- storeAppendPrintf(&entry, " %Zu", (max_size >> 10));
+ storeAppendPrintf(&entry, " %lu", (max_size >> 10));
dumpOptions(&entry);
}
int x;
storeAppendPrintf(&sentry, "First level subdirectories: %d\n", l1);
storeAppendPrintf(&sentry, "Second level subdirectories: %d\n", l2);
- storeAppendPrintf(&sentry, "Maximum Size: %Zu KB\n", max_size);
- storeAppendPrintf(&sentry, "Current Size: %Zu KB\n", cur_size);
+ storeAppendPrintf(&sentry, "Maximum Size: %"PRIu64" KB\n", max_size);
+ storeAppendPrintf(&sentry, "Current Size: %"PRIu64" KB\n", cur_size);
storeAppendPrintf(&sentry, "Percent Used: %0.2f%%\n",
(double)(100.0 * cur_size) / (double)max_size);
storeAppendPrintf(&sentry, "Filemap bits in use: %d of %d (%d%%)\n",
void
UFSSwapDir::dump(StoreEntry & entry) const
{
- storeAppendPrintf(&entry, " %Zu %d %d", (max_size >> 10), l1, l2);
+ storeAppendPrintf(&entry, " %"PRIu64" %d %d", (max_size >> 10), l1, l2);
dumpOptions(&entry);
}
storeAppendPrintf(&output, "Store Directory Statistics:\n");
storeAppendPrintf(&output, "Store Entries : %lu\n",
(unsigned long int)StoreEntry::inUseCount());
- storeAppendPrintf(&output, "Maximum Swap Size : %8ld KB\n",
- (long int) maxSize());
+ storeAppendPrintf(&output, "Maximum Swap Size : %"PRIu64" KB\n",
+ maxSize());
storeAppendPrintf(&output, "Current Store Swap Size: %8lu KB\n",
store_swap_size);
- // XXX : below capacity display calculation breaks with int overflow on 64-bit systems
- storeAppendPrintf(&output, "Current Capacity : %d%% used, %d%% free\n",
- Math::intPercent((int) store_swap_size, (int) maxSize()),
- Math::intPercent((int) (maxSize() - store_swap_size), (int) maxSize()));
+ storeAppendPrintf(&output, "Current Capacity : %"PRId64"%% used, %"PRId64"%% free\n",
+ Math::int64Percent(store_swap_size, maxSize()),
+ Math::int64Percent((maxSize() - store_swap_size), maxSize()));
/* FIXME Here we should output memory statistics */
/* now the swapDir */
}
/* if needed, this could be taught to cache the result */
-size_t
+uint64_t
StoreController::maxSize() const
{
/* TODO: include memory cache ? */
return swapDir->maxSize();
}
-size_t
+uint64_t
StoreController::minSize() const
{
/* TODO: include memory cache ? */
}
}
-size_t
+uint64_t
StoreHashIndex::maxSize() const
{
- int i;
- size_t result = 0;
+ uint64_t result = 0;
- for (i = 0; i < Config.cacheSwap.n_configured; i++)
+ for (int i = 0; i < Config.cacheSwap.n_configured; i++)
result += store(i)->maxSize();
return result;
}
-size_t
+uint64_t
StoreHashIndex::minSize() const
{
- size_t result = 0;
+ uint64_t result = 0;
for (int i = 0; i < Config.cacheSwap.n_configured; i++)
result += store(i)->minSize();
#include "squid.h"
#include "TestSwapDir.h"
-size_t
+uint64_t
TestSwapDir::maxSize() const
{
return 3;
bool statsCalled;
- virtual size_t maxSize() const;
+ virtual uint64_t maxSize() const;
virtual void stat(StoreEntry &) const; /* output stats to the provided store entry */
virtual void reconfigure(int, char*);
TestStore::init()
{}
-size_t
+uint64_t
TestStore::maxSize() const
{
return 3;
}
-size_t
+uint64_t
TestStore::minSize() const
{
return 1;
virtual void maintain() {};
- virtual size_t maxSize() const;
+ virtual uint64_t maxSize() const;
- virtual size_t minSize() const;
+ virtual uint64_t minSize() const;
virtual void stat(StoreEntry &) const; /* output stats to the provided store entry */