Index: icu46/source/i18n/fphdlimp.h |
=================================================================== |
--- icu46/source/i18n/fphdlimp.h (revision 0) |
+++ icu46/source/i18n/fphdlimp.h (revision 0) |
@@ -0,0 +1,73 @@ |
+/* |
+******************************************************************************* |
+* Copyright (C) 2009-2010, International Business Machines Corporation and * |
+* others. All Rights Reserved. * |
+******************************************************************************* |
+*/ |
+ |
+#ifndef FPHDLIMP_H |
+#define FPHDLIMP_H |
+ |
+#if !UCONFIG_NO_FORMATTING |
+ |
+#include "unicode/utypes.h" |
+#include "unicode/fieldpos.h" |
+#include "unicode/fpositer.h" |
+ |
+U_NAMESPACE_BEGIN |
+ |
+// utility FieldPositionHandler |
+// base class, null implementation |
+ |
+class FieldPositionHandler: public UMemory { |
+ public: |
+ virtual ~FieldPositionHandler(); |
+ virtual void addAttribute(int32_t id, int32_t start, int32_t limit); |
+ virtual void shiftLast(int32_t delta); |
+ virtual UBool isRecording(void); |
+}; |
+ |
+ |
+// utility subclass FieldPositionOnlyHandler |
+ |
+class FieldPositionOnlyHandler : public FieldPositionHandler { |
+ FieldPosition& pos; |
+ |
+ public: |
+ FieldPositionOnlyHandler(FieldPosition& pos); |
+ virtual ~FieldPositionOnlyHandler(); |
+ |
+ virtual void addAttribute(int32_t id, int32_t start, int32_t limit); |
+ virtual void shiftLast(int32_t delta); |
+ virtual UBool isRecording(void); |
+}; |
+ |
+ |
+// utility subclass FieldPositionIteratorHandler |
+ |
+class FieldPositionIteratorHandler : public FieldPositionHandler { |
+ FieldPositionIterator* iter; // can be NULL |
+ UVector32* vec; |
+ UErrorCode status; |
+ |
+ // Note, we keep a reference to status, so if status is on the stack, we have |
+ // to be destroyed before status goes out of scope. Easiest thing is to |
+ // allocate us on the stack in the same (or narrower) scope as status has. |
+ // This attempts to encourage that by blocking heap allocation. |
+ void *operator new(size_t s); |
+ void *operator new[](size_t s); |
+ |
+ public: |
+ FieldPositionIteratorHandler(FieldPositionIterator* posIter, UErrorCode& status); |
+ ~FieldPositionIteratorHandler(); |
+ |
+ virtual void addAttribute(int32_t id, int32_t start, int32_t limit); |
+ virtual void shiftLast(int32_t delta); |
+ virtual UBool isRecording(void); |
+}; |
+ |
+U_NAMESPACE_END |
+ |
+#endif /* !UCONFIG_NO_FORMATTING */ |
+ |
+#endif /* FPHDLIMP_H */ |
Property changes on: icu46/source/i18n/fphdlimp.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |