1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-FileCopyrightText: Copyright 2010 Sandia Corporation
// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
#include "vtkASCIITextCodec.h"
#include "vtkObjectFactory.h"
#include "vtkTextCodecFactory.h"
#include <stdexcept>
VTK_ABI_NAMESPACE_BEGIN
vtkStandardNewMacro(vtkASCIITextCodec);
const char* vtkASCIITextCodec::Name()
{
return "US-ASCII";
}
bool vtkASCIITextCodec::CanHandle(const char* NameStr)
{
return vtkTextCodec::CanHandle(NameStr) || (0 == strcmp(NameStr, "ASCII"));
}
vtkTypeUInt32 vtkASCIITextCodec::NextUTF32CodePoint(istream& InputStream)
{
vtkTypeUInt32 CodePoint = InputStream.get();
if (!InputStream.eof())
{
if (CodePoint > 0x7f)
throw std::runtime_error("Detected a character that isn't valid US-ASCII.");
return CodePoint;
}
else
{
throw std::runtime_error("End of Input");
}
}
vtkASCIITextCodec::vtkASCIITextCodec() = default;
vtkASCIITextCodec::~vtkASCIITextCodec() = default;
void vtkASCIITextCodec::PrintSelf(ostream& os, vtkIndent indent)
{
os << indent << "vtkASCIITextCodec (" << this << ") \n";
indent = indent.GetNextIndent();
this->Superclass::PrintSelf(os, indent.GetNextIndent());
}
VTK_ABI_NAMESPACE_END
|