18 #ifndef PRTX_NAMEPREPARATOR_H_ 19 #define PRTX_NAMEPREPARATOR_H_ 21 #include "prtx/prtx.h" 27 # pragma warning(push) 28 # pragma warning(disable : 4251 4275) 38 class PRTX_EXPORTS_API NamePreparator {
44 struct NamespaceInfo {
45 virtual ~NamespaceInfo() {};
47 virtual void reset() = 0;
48 virtual uint32_t getType()
const = 0;
51 typedef std::shared_ptr<NamespaceInfo> NamespacePtr;
68 virtual ~NamePreparator() {}
73 virtual NamespacePtr newNamespace() = 0;
83 virtual void legalize(std::wstring& name, uint32_t entity) = 0;
88 virtual std::wstring legalized(
const std::wstring& name, uint32_t entity) {
101 virtual void uniquify(std::wstring& name, uint32_t entity,
const NamespacePtr& ns) = 0;
106 virtual std::wstring uniquified(
const std::wstring& name, uint32_t entity,
const NamespacePtr& ns) {
107 std::wstring s(name);
108 uniquify(s, entity, ns);
115 void legalizeAndUniquify(std::wstring& name, uint32_t entity,
const NamespacePtr& ns) {
116 legalize(name, entity);
117 uniquify(name, entity, ns);
123 std::wstring legalizedAndUniquified(
const std::wstring& name, uint32_t entity,
const NamespacePtr& ns) {
124 std::wstring s(name);
125 legalizeAndUniquify(s, entity, ns);
136 class PRTX_EXPORTS_API DefaultNamePreparator :
public prtx::NamePreparator {
141 DefaultNamePreparator(
const std::wstring& delimiter = L
"_",
const std::wstring& filenameDelimiter = L
"_");
143 DefaultNamePreparator(
const DefaultNamePreparator&) =
delete;
144 DefaultNamePreparator& operator=(
const DefaultNamePreparator&) =
delete;
145 virtual ~DefaultNamePreparator() =
default;
147 NamespacePtr newNamespace()
override;
160 void legalize(std::wstring& name, uint32_t entity)
override;
170 void uniquify(std::wstring& name, uint32_t entity,
const NamespacePtr& ns)
override;
176 void setDelimiter(
const std::wstring& delimiter);
182 void setFilenameDelimiter(
const std::wstring& delimiter);
185 std::wstring mDelimiter;
186 std::wstring mFilenameDelimiter;
195 class PRTX_EXPORTS_API AsciiFileNamePreparator :
public prtx::DefaultNamePreparator {
200 AsciiFileNamePreparator(
const std::wstring& delimiter = L
"_",
const std::wstring& filenameDelimiter = L
"_");
202 AsciiFileNamePreparator(
const AsciiFileNamePreparator&) =
delete;
203 AsciiFileNamePreparator& operator=(
const AsciiFileNamePreparator&) =
delete;
204 virtual ~AsciiFileNamePreparator() =
default;
217 void legalize(std::wstring& name, uint32_t entity)
override;
225 # pragma warning(pop) The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35