roxiestream.hpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*##############################################################################
  2. HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems®.
  3. Licensed under the Apache License, Version 2.0 (the "License");
  4. you may not use this file except in compliance with the License.
  5. You may obtain a copy of the License at
  6. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. ############################################################################## */
  13. #ifndef ROXIESTREAM_HPP
  14. #define ROXIESTREAM_HPP
  15. #include "thorhelper.hpp"
  16. #include "rtlds_imp.hpp"
  17. #include "jio.hpp"
  18. //---------------------------------------------------
  19. // Base classes for all Roxie/HThor/Thor input streams
  20. //---------------------------------------------------
  21. struct SmartStepExtra;
  22. interface THORHELPER_API IEngineRowStream : public IRowStream
  23. {
  24. virtual bool nextGroup(ConstPointerArray & group); // note: default implementation can be overridden for efficiency...
  25. virtual void readAll(RtlLinkedDatasetBuilder &builder); // note: default implementation can be overridden for efficiency...
  26. virtual const void *nextRowGE(const void * seek, unsigned numFields, bool &wasCompleteMatch, const SmartStepExtra &stepExtra);
  27. // Reinitialize the stream - called when smart-stepping potentially jumps forward in one of the inputs feeding into
  28. // a join - other inputs may need to discard current state such as eof indicators, partially-delivered groups etc.
  29. virtual void resetEOF() = 0;
  30. };
  31. #endif // ROXIESTREAM_HPP