| 30 | } |
| 31 | |
| 32 | void IfcTokenStream::SetTokenSource(const std::function<uint32_t(char *, size_t, size_t)> &requestData, bool fromStream) |
| 33 | { |
| 34 | _fileStream = new IfcFileStream(requestData,_chunkSize,fromStream); |
| 35 | size_t tokenOffset=0; |
| 36 | while (!_fileStream->IsAtEnd()) |
| 37 | { |
| 38 | checkMemory(); |
| 39 | IfcTokenChunk chunk(_chunkSize,tokenOffset,_fileStream->GetRef(),_fileStream); |
| 40 | auto cSize = chunk.TokenSize(); |
| 41 | tokenOffset+=cSize; |
| 42 | if (cSize > _chunkSize) _chunkSize = cSize; |
| 43 | _chunks.push_back(chunk); |
| 44 | _activeChunks++; |
| 45 | } |
| 46 | _cChunk = &_chunks.front(); |
| 47 | _fileStream->Clear(); |
| 48 | } |
| 49 | |
| 50 | void IfcTokenStream::SetTokenSource(std::istream &requestData) |
| 51 | { |