diff --git a/src/apps/bin/makeudfimage/Statistics.cpp b/src/apps/bin/makeudfimage/Statistics.cpp new file mode 100644 index 0000000000..0b9ee9c99c --- /dev/null +++ b/src/apps/bin/makeudfimage/Statistics.cpp @@ -0,0 +1,37 @@ +//---------------------------------------------------------------------- +// This software is part of the OpenBeOS distribution and is covered +// by the OpenBeOS license. +// +// Copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net +//---------------------------------------------------------------------- + +/*! \file Statistics.h + + BDataIO wrapper around a given attribute for a file. (implementation) +*/ + +#include "Statistics.h" + +/*! \brief Creates a new statistics object and sets the start time + for the duration timer. +*/ +Statistics::Statistics() + : fDirectories(0) + , fFiles(0) + , fSymlinks(0) + , fAttributes(0) + , fDirectoryBytes(0) + , fFileBytes(0) + , fStartTime(real_time_clock()) +{ +} + +/*! \brief Resets all statistics fields, including the start time of + the duration timer. +*/ +void +Statistics::Reset() +{ + Statistics null; + *this = null; +} diff --git a/src/apps/bin/makeudfimage/Statistics.h b/src/apps/bin/makeudfimage/Statistics.h new file mode 100644 index 0000000000..407e9dd016 --- /dev/null +++ b/src/apps/bin/makeudfimage/Statistics.h @@ -0,0 +1,52 @@ +//---------------------------------------------------------------------- +// This software is part of the OpenBeOS distribution and is covered +// by the OpenBeOS license. +// +// Copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net +//---------------------------------------------------------------------- + +/*! \file Statistics.h + + BDataIO wrapper around a given attribute for a file. (declarations) +*/ + +#ifndef _STATISTICS_H +#define _STATISTICS_H + +#include +#include + +class Statistics { +public: + Statistics(); + void Reset(); + + time_t StartTime() const { return fStartTime; } + time_t ElapsedTime() const { return real_time_clock() - fStartTime; } + + void AddDirectory() { fDirectories++; } + void AddFile() { fFiles++; } + void AddSymlink() { fSymlinks++; } + void AddAttribute() { fAttributes++; } + + void AddDirectoryBytes(uint32 count) { fDirectoryBytes += count; } + void AddFileBytes(uint32 count) { fFileBytes += count; } + + uint64 Directories() const { return fDirectories; } + uint64 Files() const { return fFiles; } + uint64 Symlinks() const { return fSymlinks; } + uint64 Attributes() const { return fAttributes; } + + uint64 DirectoryBytes() const { return fDirectoryBytes; } + uint64 FileBytes() const { return fFileBytes; } +private: + uint64 fDirectories; + uint64 fFiles; + uint64 fSymlinks; + uint64 fAttributes; + uint64 fDirectoryBytes; + uint64 fFileBytes; + time_t fStartTime; +}; + +#endif // _STATISTICS_H