Lines Matching refs:handler

31   IoErrorHandler handler{terminator};  in FlushOutputOnCrash()  local
32 handler.HasIoStat(); // prevent nested crash if flush has error in FlushOutputOnCrash()
35 defaultOutput->FlushOutput(handler); in FlushOutputOnCrash()
38 errorOutput->FlushOutput(handler); in FlushOutputOnCrash()
58 IoErrorHandler handler{terminator}; in LookUpOrCreateAnonymous() local
61 Action::ReadWrite, Position::Rewind, Convert::Native, handler); in LookUpOrCreateAnonymous()
94 std::size_t newPathLength, Convert convert, IoErrorHandler &handler) { in OpenUnit() argument
105 handler.SignalError("OPEN statement for connected unit may not have " in OpenUnit()
115 DoImpliedEndfile(handler); in OpenUnit()
116 FlushOutput(handler); in OpenUnit()
117 TruncateFrame(0, handler); in OpenUnit()
118 Close(CloseStatus::Keep, handler); in OpenUnit()
123 handler.SignalError(IostatOpenAlreadyConnected, in OpenUnit()
131 Open(status.value_or(OpenStatus::Unknown), action, position, handler); in OpenUnit()
135 handler.SignalError(IostatOpenBadRecl, in OpenUnit()
139 handler.SignalError(IostatOpenBadRecl, in OpenUnit()
143 handler.SignalError(IostatOpenBadRecl, in OpenUnit()
172 IoErrorHandler &handler) { in OpenAnonymousUnit() argument
175 auto path{SizedNew<char>{handler}(pathMaxLen)}; in OpenAnonymousUnit()
178 convert, handler); in OpenAnonymousUnit()
181 void ExternalFileUnit::CloseUnit(CloseStatus status, IoErrorHandler &handler) { in CloseUnit() argument
182 DoImpliedEndfile(handler); in CloseUnit()
183 FlushOutput(handler); in CloseUnit()
184 Close(status, handler); in CloseUnit()
218 IoErrorHandler handler{terminator}; in GetUnitMap() local
225 handler.SignalError(out.SetDirection(Direction::Output)); in GetUnitMap()
232 handler.SignalError(in.SetDirection(Direction::Input)); in GetUnitMap()
240 handler.SignalError(error.SetDirection(Direction::Output)); in GetUnitMap()
248 void ExternalFileUnit::CloseAll(IoErrorHandler &handler) { in CloseAll() argument
251 unitMap->CloseAll(handler); in CloseAll()
259 void ExternalFileUnit::FlushAll(IoErrorHandler &handler) { in FlushAll() argument
262 unitMap->FlushAll(handler); in FlushAll()
279 std::size_t elementBytes, IoErrorHandler &handler) { in Emit() argument
302 handler.SignalError(IostatRecordWriteOverrun, in Emit()
318 handler.SignalError(IostatWriteAfterEndfile); in Emit()
321 CheckDirectAccess(handler); in Emit()
322 WriteFrame(frameOffsetInFile_, recordOffsetInFrame_ + furthestAfter, handler); in Emit()
338 std::size_t elementBytes, IoErrorHandler &handler) { in Receive() argument
339 RUNTIME_CHECK(handler, direction_ == Direction::Input); in Receive()
343 handler.SignalError(IostatRecordReadOverrun, in Receive()
350 auto got{ReadFrame(frameOffsetInFile_, need, handler)}; in Receive()
360 HitEndOnRead(handler); in Receive()
366 const char *&p, IoErrorHandler &handler) { in GetNextInputBytes() argument
367 RUNTIME_CHECK(handler, direction_ == Direction::Input); in GetNextInputBytes()
377 p = FrameNextInput(handler, length); in GetNextInputBytes()
382 IoErrorHandler &handler, std::size_t bytes) { in FrameNextInput() argument
383 RUNTIME_CHECK(handler, isUnformatted.has_value() && !*isUnformatted); in FrameNextInput()
388 auto got{ReadFrame(frameOffsetInFile_, need, handler)}; in FrameNextInput()
393 HitEndOnRead(handler); in FrameNextInput()
416 bool ExternalFileUnit::BeginReadingRecord(IoErrorHandler &handler) { in BeginReadingRecord() argument
417 RUNTIME_CHECK(handler, direction_ == Direction::Input); in BeginReadingRecord()
421 CheckDirectAccess(handler); in BeginReadingRecord()
423 auto got{ReadFrame(frameOffsetInFile_, need, handler)}; in BeginReadingRecord()
428 HitEndOnRead(handler); in BeginReadingRecord()
433 handler.SignalEnd(); in BeginReadingRecord()
435 RUNTIME_CHECK(handler, isUnformatted.has_value()); in BeginReadingRecord()
438 BeginSequentialVariableUnformattedInputRecord(handler); in BeginReadingRecord()
441 BeginVariableFormattedInputRecord(handler); in BeginReadingRecord()
446 RUNTIME_CHECK(handler, in BeginReadingRecord()
447 recordLength.has_value() || !IsRecordFile() || handler.InError()); in BeginReadingRecord()
448 return !handler.InError(); in BeginReadingRecord()
451 void ExternalFileUnit::FinishReadingRecord(IoErrorHandler &handler) { in FinishReadingRecord() argument
452 RUNTIME_CHECK(handler, direction_ == Direction::Input && beganReadingRecord_); in FinishReadingRecord()
454 if (handler.GetIoStat() == IostatEnd || in FinishReadingRecord()
464 RUNTIME_CHECK(handler, isUnformatted.has_value()); in FinishReadingRecord()
494 bool ExternalFileUnit::AdvanceRecord(IoErrorHandler &handler) { in AdvanceRecord() argument
496 FinishReadingRecord(handler); in AdvanceRecord()
497 return BeginReadingRecord(handler); in AdvanceRecord()
500 RUNTIME_CHECK(handler, isUnformatted.has_value()); in AdvanceRecord()
507 frameOffsetInFile_, recordOffsetInFrame_ + *openRecl, handler); in AdvanceRecord()
525 sizeof length, handler); in AdvanceRecord()
529 sizeof length, handler); in AdvanceRecord()
533 } else if (handler.GetIoStat() != IostatOk && in AdvanceRecord()
548 ok = ok && Emit(lineEnding, lineEndingBytes, 1, handler); in AdvanceRecord()
566 void ExternalFileUnit::BackspaceRecord(IoErrorHandler &handler) { in BackspaceRecord() argument
568 handler.SignalError(IostatBackspaceNonSequential, in BackspaceRecord()
579 DoImpliedEndfile(handler); in BackspaceRecord()
583 BackspaceFixedRecord(handler); in BackspaceRecord()
585 RUNTIME_CHECK(handler, isUnformatted.has_value()); in BackspaceRecord()
587 BackspaceVariableUnformattedRecord(handler); in BackspaceRecord()
589 BackspaceVariableFormattedRecord(handler); in BackspaceRecord()
598 void ExternalFileUnit::FlushOutput(IoErrorHandler &handler) { in FlushOutput() argument
610 Flush(handler); in FlushOutput()
613 void ExternalFileUnit::FlushIfTerminal(IoErrorHandler &handler) { in FlushIfTerminal() argument
615 FlushOutput(handler); in FlushIfTerminal()
619 void ExternalFileUnit::Endfile(IoErrorHandler &handler) { in Endfile() argument
621 handler.SignalError(IostatEndfileDirect, in Endfile()
624 handler.SignalError(IostatEndfileUnwritable, in Endfile()
629 DoEndfile(handler); in Endfile()
632 RUNTIME_CHECK(handler, endfileRecordNumber.has_value()); in Endfile()
638 void ExternalFileUnit::Rewind(IoErrorHandler &handler) { in Rewind() argument
640 handler.SignalError(IostatRewindNonSequential, in Rewind()
643 SetPosition(0, handler); in Rewind()
649 void ExternalFileUnit::SetPosition(std::int64_t pos, IoErrorHandler &handler) { in SetPosition() argument
650 DoImpliedEndfile(handler); in SetPosition()
660 std::int64_t oneBasedPos, IoErrorHandler &handler) { in SetStreamPos() argument
662 handler.SignalError("POS= may not appear unless ACCESS='STREAM'"); in SetStreamPos()
666 handler.SignalError( in SetStreamPos()
670 SetPosition(oneBasedPos - 1, handler); in SetStreamPos()
679 std::int64_t oneBasedRec, IoErrorHandler &handler) { in SetDirectRec() argument
681 handler.SignalError("REC= may not appear unless ACCESS='DIRECT'"); in SetDirectRec()
685 handler.SignalError("RECL= was not specified"); in SetDirectRec()
689 handler.SignalError( in SetDirectRec()
694 SetPosition((oneBasedRec - 1) * *openRecl, handler); in SetDirectRec()
705 IoErrorHandler &handler) { in BeginSequentialVariableUnformattedInputRecord() argument
708 std::size_t got{ReadFrame(frameOffsetInFile_, need, handler)}; in BeginSequentialVariableUnformattedInputRecord()
713 HitEndOnRead(handler); in BeginSequentialVariableUnformattedInputRecord()
722 got = ReadFrame(frameOffsetInFile_, need, handler); in BeginSequentialVariableUnformattedInputRecord()
738 handler.SignalError(error, static_cast<std::intmax_t>(currentRecordNumber), in BeginSequentialVariableUnformattedInputRecord()
747 IoErrorHandler &handler) { in BeginVariableFormattedInputRecord() argument
750 defaultOutput->FlushOutput(handler); in BeginVariableFormattedInputRecord()
753 errorOutput->FlushOutput(handler); in BeginVariableFormattedInputRecord()
760 ReadFrame(frameOffsetInFile_, recordOffsetInFrame_ + need, handler) - in BeginVariableFormattedInputRecord()
768 HitEndOnRead(handler); in BeginVariableFormattedInputRecord()
775 void ExternalFileUnit::BackspaceFixedRecord(IoErrorHandler &handler) { in BackspaceFixedRecord() argument
776 RUNTIME_CHECK(handler, openRecl.has_value()); in BackspaceFixedRecord()
778 handler.SignalError(IostatBackspaceAtFirstRecord); in BackspaceFixedRecord()
785 IoErrorHandler &handler) { in BackspaceVariableUnformattedRecord() argument
791 handler.SignalError(IostatBackspaceAtFirstRecord); in BackspaceVariableUnformattedRecord()
798 ReadFrame(frameOffsetInFile_ - headerBytes, headerBytes, handler)}; in BackspaceVariableUnformattedRecord()
800 handler.SignalError(IostatShortRead); in BackspaceVariableUnformattedRecord()
806 handler.SignalError(IostatBadUnformattedRecord); in BackspaceVariableUnformattedRecord()
816 got = ReadFrame(frameOffsetInFile_, need, handler); in BackspaceVariableUnformattedRecord()
818 handler.SignalError(IostatShortRead); in BackspaceVariableUnformattedRecord()
823 handler.SignalError(IostatBadUnformattedRecord); in BackspaceVariableUnformattedRecord()
840 IoErrorHandler &handler) { in BackspaceVariableFormattedRecord() argument
845 handler.SignalError(IostatBackspaceAtFirstRecord); in BackspaceVariableFormattedRecord()
864 auto got{ReadFrame(frameOffsetInFile_, need, handler)}; in BackspaceVariableFormattedRecord()
866 handler.SignalError(IostatShortRead); in BackspaceVariableFormattedRecord()
871 handler.SignalError(IostatMissingTerminator); in BackspaceVariableFormattedRecord()
880 void ExternalFileUnit::DoImpliedEndfile(IoErrorHandler &handler) { in DoImpliedEndfile() argument
884 DoEndfile(handler); in DoImpliedEndfile()
889 void ExternalFileUnit::DoEndfile(IoErrorHandler &handler) { in DoEndfile() argument
902 FlushOutput(handler); in DoEndfile()
903 Truncate(frameOffsetInFile_, handler); in DoEndfile()
904 TruncateFrame(frameOffsetInFile_, handler); in DoEndfile()
916 bool ExternalFileUnit::CheckDirectAccess(IoErrorHandler &handler) { in CheckDirectAccess() argument
918 RUNTIME_CHECK(handler, openRecl); in CheckDirectAccess()
920 handler.SignalError( in CheckDirectAccess()
928 void ExternalFileUnit::HitEndOnRead(IoErrorHandler &handler) { in HitEndOnRead() argument
929 handler.SignalEnd(); in HitEndOnRead()
951 int ExternalFileUnit::GetAsynchronousId(IoErrorHandler &handler) { in GetAsynchronousId() argument
953 handler.SignalError(IostatBadAsynchronous); in GetAsynchronousId()
959 handler.SignalError(IostatTooManyAsyncOps); in GetAsynchronousId()