LCOV - code coverage report
Current view: top level - intl/icu/source/i18n - fphdlimp.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 1 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 1 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // © 2016 and later: Unicode, Inc. and others.
       2             : // License & terms of use: http://www.unicode.org/copyright.html
       3             : /*
       4             : *******************************************************************************
       5             : * Copyright (C) 2009-2015, International Business Machines Corporation and    *
       6             : * others. All Rights Reserved.                                                *
       7             : *******************************************************************************
       8             : */
       9             : 
      10             : #ifndef FPHDLIMP_H
      11             : #define FPHDLIMP_H
      12             : 
      13             : #if !UCONFIG_NO_FORMATTING
      14             : 
      15             : #include "unicode/utypes.h"
      16             : #include "unicode/fieldpos.h"
      17             : #include "unicode/fpositer.h"
      18             : 
      19             : U_NAMESPACE_BEGIN
      20             : 
      21             : // utility FieldPositionHandler
      22             : // base class, null implementation
      23             : 
      24           0 : class U_I18N_API FieldPositionHandler: public UMemory {
      25             :  public:
      26             :   virtual ~FieldPositionHandler();
      27             :   virtual void addAttribute(int32_t id, int32_t start, int32_t limit);
      28             :   virtual void shiftLast(int32_t delta);
      29             :   virtual UBool isRecording(void) const;
      30             : };
      31             : 
      32             : 
      33             : // utility subclass FieldPositionOnlyHandler
      34             : 
      35             : class FieldPositionOnlyHandler : public FieldPositionHandler {
      36             :   FieldPosition& pos;
      37             : 
      38             :  public:
      39             :   FieldPositionOnlyHandler(FieldPosition& pos);
      40             :   virtual ~FieldPositionOnlyHandler();
      41             : 
      42             :   virtual void addAttribute(int32_t id, int32_t start, int32_t limit);
      43             :   virtual void shiftLast(int32_t delta);
      44             :   virtual UBool isRecording(void) const;
      45             : };
      46             : 
      47             : 
      48             : // utility subclass FieldPositionIteratorHandler
      49             : 
      50             : class FieldPositionIteratorHandler : public FieldPositionHandler {
      51             :   FieldPositionIterator* iter; // can be NULL
      52             :   UVector32* vec;
      53             :   UErrorCode status;
      54             : 
      55             :   // Note, we keep a reference to status, so if status is on the stack, we have
      56             :   // to be destroyed before status goes out of scope.  Easiest thing is to
      57             :   // allocate us on the stack in the same (or narrower) scope as status has.
      58             :   // This attempts to encourage that by blocking heap allocation.
      59             :   void *operator new(size_t s);
      60             :   void *operator new[](size_t s);
      61             : 
      62             :  public:
      63             :   FieldPositionIteratorHandler(FieldPositionIterator* posIter, UErrorCode& status);
      64             :   ~FieldPositionIteratorHandler();
      65             : 
      66             :   virtual void addAttribute(int32_t id, int32_t start, int32_t limit);
      67             :   virtual void shiftLast(int32_t delta);
      68             :   virtual UBool isRecording(void) const;
      69             : };
      70             : 
      71             : U_NAMESPACE_END
      72             : 
      73             : #endif /* !UCONFIG_NO_FORMATTING */
      74             : 
      75             : #endif /* FPHDLIMP_H */

Generated by: LCOV version 1.13