59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
// Copyright (c) 1997 James Clark
|
|
// See the file COPYING for copying permission.
|
|
|
|
#ifndef CodingSystemKit_INCLUDED
|
|
#define CodingSystemKit_INCLUDED 1
|
|
|
|
#ifdef __GNUG__
|
|
#pragma interface
|
|
#endif
|
|
|
|
#include "Boolean.h"
|
|
#include "StringC.h"
|
|
#include "CodingSystem.h"
|
|
#include "Resource.h"
|
|
#include "CharsetInfo.h"
|
|
|
|
#ifdef SP_NAMESPACE
|
|
namespace SP_NAMESPACE {
|
|
#endif
|
|
|
|
class SP_API InputCodingSystemKit : public Resource {
|
|
public:
|
|
virtual ~InputCodingSystemKit();
|
|
// Returned InputCodingSystem lives at least as long as the Kit.
|
|
virtual const InputCodingSystem *
|
|
identityInputCodingSystem() const = 0;
|
|
virtual const InputCodingSystem *
|
|
makeInputCodingSystem(const StringC &,
|
|
const CharsetInfo &,
|
|
Boolean isBctf,
|
|
const char *&staticName) const = 0;
|
|
virtual Char replacementChar() const = 0;
|
|
const CharsetInfo &systemCharset() const;
|
|
protected:
|
|
CharsetInfo systemCharset_;
|
|
};
|
|
|
|
class SP_API CodingSystemKit : public InputCodingSystemKit {
|
|
public:
|
|
virtual ~CodingSystemKit() = 0;
|
|
virtual CodingSystemKit *copy() const = 0;
|
|
virtual const CodingSystem *
|
|
identityCodingSystem() const = 0;
|
|
virtual const CodingSystem *
|
|
makeCodingSystem(const char *, Boolean isBctf) const = 0;
|
|
static CodingSystemKit *make(const char *);
|
|
};
|
|
|
|
inline
|
|
const CharsetInfo &InputCodingSystemKit::systemCharset() const
|
|
{
|
|
return systemCharset_;
|
|
}
|
|
|
|
#ifdef SP_NAMESPACE
|
|
}
|
|
#endif
|
|
|
|
#endif /* not CodingSystemKit_INCLUDED */
|