#pragma once #include "stdafx.h" #include "NativeStream.h" #include "StreamingTsvParser.h" #include "TableDataImporter.h" #include #include #include /** * @brief 真流式 TSV 流:Write 时边解析边导入,只保留未完成行尾块 */ class StreamingTsvStream : public INativeStream { public: StreamingTsvStream(CSigmaView* pView, int importType); void Write(const void* data, size_t size) override; void Complete() override; private: void OnParsedLine(int lineIndex, const std::vector& fields); std::vector FieldsToCString(const std::vector& fields); StreamingTsvParser m_parser; CSigmaView* m_pView = nullptr; int m_importType = 0; std::map m_columnIndexMap; std::unique_ptr m_curveImporter; bool m_headersReady = false; };