浏览代码

Merge pull request #15838 from shamser/issue27275

HPCC-27275 Extend io stream classes to query statistic from io

Reviewed-By: Gavin Halliday <gavin.halliday@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 3 年之前
父节点
当前提交
1e1381e14e
共有 5 个文件被更改,包括 19 次插入9 次删除
  1. 7 7
      dali/ft/ftbase.ipp
  2. 4 0
      system/jlib/jfcmp.hpp
  3. 5 0
      system/jlib/jfile.cpp
  4. 1 0
      system/jlib/jfile.hpp
  5. 2 2
      system/jlib/jfile.ipp

+ 7 - 7
dali/ft/ftbase.ipp

@@ -123,16 +123,16 @@ public:
     CrcIOStream(IFileIOStream * _stream, unsigned startCRC = 0);
     IMPLEMENT_IINTERFACE
 
-    virtual void flush();
-    virtual size32_t read(size32_t len, void * data);
-    virtual void seek(offset_t pos, IFSmode origin);
-    virtual offset_t size();
-    virtual offset_t tell();
-    virtual size32_t write(size32_t len, const void * data);
+    virtual void flush() override;
+    virtual size32_t read(size32_t len, void * data) override;
+    virtual void seek(offset_t pos, IFSmode origin) override;
+    virtual offset_t size() override;
+    virtual offset_t tell() override;
+    virtual size32_t write(size32_t len, const void * data) override;
+    virtual unsigned __int64 getStatistic(StatisticKind kind) override { return stream->getStatistic(kind); }
 
     unsigned getCRC()               { return crc; }
     void setCRC(unsigned long _crc)     { crc = _crc; }
-
 protected:
     IFileIOStreamAttr   stream;
     unsigned        crc;

+ 4 - 0
system/jlib/jfcmp.hpp

@@ -468,4 +468,8 @@ public:
         }
     }
 
+    virtual unsigned __int64 getStatistic(StatisticKind kind)
+    {
+        return baseio->getStatistic(kind);
+    }
 };

+ 5 - 0
system/jlib/jfile.cpp

@@ -2816,6 +2816,10 @@ protected:
         return sz;
     }
     virtual offset_t directSize() { return io->size(); }
+    virtual unsigned __int64 getStatistic(StatisticKind kind)
+    {
+        return io->getStatistic(kind);
+    }
 
 protected:
     IFileIOAttr             io;
@@ -2926,6 +2930,7 @@ public:
     virtual size32_t directRead(size32_t len, void * data) { assertex(false); return 0; }           // shouldn't get called
     virtual size32_t directWrite(size32_t len, const void * data) { assertex(false); return 0; }    // shouldn't get called
     virtual offset_t directSize() { waitAsyncWrite(); return io->size(); }
+    virtual unsigned __int64 getStatistic(StatisticKind kind) { return io->getStatistic(kind); }
 };
 
 

+ 1 - 0
system/jlib/jfile.hpp

@@ -218,6 +218,7 @@ interface IFileIOStream : extends IIOStream
     virtual void seek(offset_t pos, IFSmode origin) = 0;
     virtual offset_t size() = 0;
     virtual offset_t tell() = 0;
+    virtual unsigned __int64 getStatistic(StatisticKind kind) = 0;
 };
 
 interface IDiscretionaryLock: extends IInterface

+ 2 - 2
system/jlib/jfile.ipp

@@ -218,7 +218,7 @@ public:
     virtual offset_t size();
     virtual offset_t tell();
     virtual size32_t write(size32_t len, const void * data);
-
+    virtual unsigned __int64 getStatistic(StatisticKind kind) { return io->getStatistic(kind); }
 protected:
     Linked<IFileIO>     io;
     offset_t            curOffset;
@@ -237,7 +237,7 @@ public:
     virtual offset_t size();
     virtual offset_t tell();
     virtual size32_t write(size32_t len, const void * data);
-
+    virtual unsigned __int64 getStatistic(StatisticKind kind) { return stream->getStatistic(kind); }
 protected:
     Linked<IFileIOStream>     stream;
 };