docs: public boolean updateIOCounts(long byteCount, int type) {
  
          setLastIOAmt(byteCount);
          setIODoneAmount(getIODoneAmount() + byteCount);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
              String dbString = null;
              if (type == 0) {
                  dbString = "Read ";
              } else {
                  dbString = "Wrote ";
              }
              SocketIOChannel channel = getTCPConnLink().getSocketIOChannel();
              Tr.event(tc, dbString + byteCount + "(" + +getIODoneAmount() + ")" + " bytes, " + getIOAmount() + " requested on local: " + channel.getSocket().getLocalSocketAddress()
                           + " remote: " + channel.getSocket().getRemoteSocketAddress());
          }
  
          boolean rc;
          if (getIODoneAmount() >= getIOAmount()) {
              // read is complete on current thread
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  if (type == 0) {
                      Tr.debug(tc, "read complete, at least minimum amount of data read");
                  } else {
                      Tr.debug(tc, "write complete, at least minimum amount of data written");
                  }
              }
              rc = true;
          } else {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  if (type == 0) {
                      Tr.debug(tc, "read not complete, more data needed");
                  } else {
                      Tr.debug(tc, "write not complete, more data needs to be written");
                  }
              }
              rc = false;
          }
          return rc;
      }