Reintroduce operator>>() in Book class
authorMarco Costalba <mcostalba@gmail.com>
Sun, 8 May 2011 08:12:28 +0000 (09:12 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 8 May 2011 08:15:18 +0000 (09:15 +0100)
No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/book.cpp
src/book.h

index 26fd7c92faa930518315c46222ad31c08d326ec0..757c8238fe82627143215c7bc73932605a593c9b 100644 (file)
@@ -502,15 +502,17 @@ int Book::find_entry(uint64_t key) {
 }
 
 
-/// Book::get_number() reads sizeof(T) chars from the file's binary byte
+/// Book::operator>>() reads sizeof(T) chars from the file's binary byte
 /// stream and converts them in a number of type T.
 template<typename T>
-void Book::get_number(T& n) {
+Book& Book::operator>>(T& n) {
 
   n = 0;
 
   for (size_t i = 0; i < sizeof(T); i++)
       n = (n << 8) + (T)bookFile.get();
+
+  return *this;
 }
 
 
@@ -526,10 +528,7 @@ BookEntry Book::read_entry(int idx) {
 
   bookFile.seekg(idx * sizeof(BookEntry), ios_base::beg);
 
-  get_number(e.key);
-  get_number(e.move);
-  get_number(e.count);
-  get_number(e.learn);
+  *this >> e.key >> e.move >> e.count >> e.learn;
 
   if (!bookFile.good())
   {
index 8299b0315eaccfd40972eea436fe7fb855819b56..0101bcf2c655f083c1f5083795826186623d9db4 100644 (file)
@@ -48,7 +48,7 @@ public:
   const std::string name() const { return bookName; }
 
 private:
-  template<typename T> void get_number(T& n);
+  template<typename T> Book& operator>>(T& n);
 
   BookEntry read_entry(int idx);
   int find_entry(uint64_t key);