scclib
Stable Cloud Computing C++ Library
Public Member Functions | List of all members
scc::util::RwCounter Class Reference

Adds byte count to a read/write stream. More...

#include <rwcounter.h>

Inheritance diagram for scc::util::RwCounter:
Inheritance graph
[legend]
Collaboration diagram for scc::util::RwCounter:
Collaboration graph
[legend]

Public Member Functions

 RwCounter ()
 Reads and writes will return 0 until reset.
 
 RwCounter (Reader &, Writer &)
 Chain using references. More...
 
 RwCounter (const std::shared_ptr< Reader > &, const std::shared_ptr< Writer > &)
 Chain using shared pointers.
 
- Public Member Functions inherited from scc::util::ReadCounter
 ReadCounter ()
 Reads will return 0 until reset. More...
 
 ReadCounter (Reader &)
 Chain using a reference. More...
 
 ReadCounter (const std::shared_ptr< Reader > &)
 Chain using a shared pointer.
 
void read_reset (Reader &)
 Reset the chained reader.
 
virtual void read_reset (const std::shared_ptr< Reader > &)
 Reset the chained reader.
 
virtual std::shared_ptr< Readerread_shared () const
 
virtual size_t read (void *, size_t)
 Read interface. More...
 
uint64_t read_count () const
 
void read_count (uint64_t v)
 
void read_count_reset ()
 
uint64_t read_calls () const
 
void read_calls (uint64_t v)
 
void read_calls_reset ()
 
- Public Member Functions inherited from scc::util::WriteCounter
 WriteCounter ()
 Writes will return 0 until reset.
 
 WriteCounter (Writer &)
 Chain using a reference. More...
 
 WriteCounter (const std::shared_ptr< Writer > &)
 Chain using a shared pointer.
 
void write_reset (Writer &)
 Reset the chained writer.
 
virtual void write_reset (const std::shared_ptr< Writer > &)
 Reset the chained writer.
 
virtual std::shared_ptr< Writerwrite_shared () const
 
virtual size_t write (const void *, size_t)
 Write interface. More...
 
uint64_t write_count () const
 
void write_count (uint64_t v)
 
void write_count_reset ()
 
uint64_t write_calls () const
 
void write_calls (uint64_t v)
 
void write_calls_reset ()
 

Detailed Description

Adds byte count to a read/write stream.

Example from scclib/util/unittest/iohelper.cc

using std::chrono::milliseconds;
using std::chrono::duration_cast;
struct Slow : public Reader, public Writer
{
Slow() {}
virtual ~Slow() {}
size_t read(void*, size_t l)
{
std::this_thread::sleep_for(milliseconds(50));
return l;
}
size_t write(const void*, size_t l)
{
std::this_thread::sleep_for(milliseconds(100));
return l;
}
};
Slow base;
RwCounter c(base, base);
RwTimer t(c, c);
t.read(0, 50);
t.write(0, 100);
cout << "read timer=" << t.read_dur().count() << endl;
cout << "write timer=" << t.write_dur().count() << endl;
cout << "read count=" << c.read_count() << endl;
cout << "write count=" << c.write_count() << endl;
ASSERT_EQ(duration_cast<milliseconds>(t.read_dur()).count(), 50);
ASSERT_EQ(duration_cast<milliseconds>(t.write_dur()).count(), 100);
ASSERT_EQ(c.read_count(), 50);
ASSERT_EQ(c.write_count(), 100);
virtual size_t read(void *, size_t)
Read interface.
Definition: iostream.cc:821
RwCounter()
Reads and writes will return 0 until reset.
Definition: iostream.cc:895
virtual size_t write(const void *, size_t)
Write interface.
Definition: iostream.cc:865
Examples
util/unittest/iohelper.cc, and util/unittest/iostream.cc.

Definition at line 134 of file rwcounter.h.

Constructor & Destructor Documentation

◆ RwCounter()

RwCounter::RwCounter ( Reader r,
Writer w 
)

Chain using references.

Does not assume ownership.

Definition at line 899 of file iostream.cc.


The documentation for this class was generated from the following files: