docs: function _gpfStreamPipeToFlushableWrite (intermediate, destination) {
      var state = _gpfStreamPipeAllocateState(intermediate, destination),
          read = _gpfStreamPipeAllocateRead(state),
          iFlushableIntermediate = state.iFlushableIntermediate,
          iFlushableDestination = state.iFlushableDestination,
          iWritableIntermediate = state.iWritableIntermediate;
  
      read();
  
      return {
  
          flush: function () {
              return _gpfStreamPipeCheckIfReadError(state) || iFlushableIntermediate.flush()
                  .then(function () {
                      return iFlushableDestination.flush();
                  });
          },
  
          write: function (data) {
              read();
              return _gpfStreamPipeCheckIfReadError(state)
                  || _gpfStreamPipeWrapWrite(state, iWritableIntermediate.write(data));
          }
  
      };
  }