"Fossies" - the Fresh Open Source Software Archive

Member "dtitvinf_8h_source.html" (3 Oct 2019, 36542 Bytes) of package /linux/misc/icu4c-65_1-docs.zip:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the project site itself.

ICU 65.1  65.1
dtitvinf.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4  *******************************************************************************
5  * Copyright (C) 2008-2016, International Business Machines Corporation and
6  * others. All Rights Reserved.
7  *******************************************************************************
8  *
9  * File DTITVINF.H
10  *
11  *******************************************************************************
12  */
13 
14 #ifndef __DTITVINF_H__
15 #define __DTITVINF_H__
16 
17 #include "unicode/utypes.h"
18 
19 #if U_SHOW_CPLUSPLUS_API
20 
26 #if !UCONFIG_NO_FORMATTING
27 
28 #include "unicode/udat.h"
29 #include "unicode/locid.h"
30 #include "unicode/ucal.h"
31 #include "unicode/dtptngen.h"
32 
33 U_NAMESPACE_BEGIN
34 
155 public:
169  DateIntervalInfo(UErrorCode& status);
170 
171 
179  DateIntervalInfo(const Locale& locale, UErrorCode& status);
180 
181 
187 
192  DateIntervalInfo& operator=(const DateIntervalInfo&);
193 
200  virtual DateIntervalInfo* clone() const;
201 
207  virtual ~DateIntervalInfo();
208 
209 
217  virtual UBool operator==(const DateIntervalInfo& other) const;
218 
226  UBool operator!=(const DateIntervalInfo& other) const;
227 
228 
229 
262  void setIntervalPattern(const UnicodeString& skeleton,
263  UCalendarDateFields lrgDiffCalUnit,
264  const UnicodeString& intervalPattern,
265  UErrorCode& status);
266 
277  UnicodeString& getIntervalPattern(const UnicodeString& skeleton,
278  UCalendarDateFields field,
279  UnicodeString& result,
280  UErrorCode& status) const;
281 
288  UnicodeString& getFallbackIntervalPattern(UnicodeString& result) const;
289 
290 
304  void setFallbackIntervalPattern(const UnicodeString& fallbackPattern,
305  UErrorCode& status);
306 
307 
314  UBool getDefaultOrder() const;
315 
316 
322  virtual UClassID getDynamicClassID() const;
323 
329  static UClassID U_EXPORT2 getStaticClassID();
330 
331 
332 private:
341  friend class DateIntervalFormat;
342 
346  struct DateIntervalSink;
347 
353  enum IntervalPatternIndex
354  {
355  kIPI_ERA,
356  kIPI_YEAR,
357  kIPI_MONTH,
358  kIPI_DATE,
359  kIPI_AM_PM,
360  kIPI_HOUR,
361  kIPI_MINUTE,
362  kIPI_SECOND,
363  kIPI_MAX_INDEX
364  };
365 public:
366 #ifndef U_HIDE_INTERNAL_API
367 
371  enum {
372  kMaxIntervalPatternIndex = kIPI_MAX_INDEX
373  };
374 #endif /* U_HIDE_INTERNAL_API */
375 private:
376 
377 
383  void initializeData(const Locale& locale, UErrorCode& status);
384 
385 
386  /* Set Interval pattern.
387  *
388  * It sets interval pattern into the hash map.
389  *
390  * @param skeleton skeleton on which the interval pattern based
391  * @param lrgDiffCalUnit the largest different calendar unit.
392  * @param intervalPattern the interval pattern on the largest different
393  * calendar unit.
394  * @param status output param set to success/failure code on exit
395  */
396  void setIntervalPatternInternally(const UnicodeString& skeleton,
397  UCalendarDateFields lrgDiffCalUnit,
398  const UnicodeString& intervalPattern,
399  UErrorCode& status);
400 
401 
420  const UnicodeString* getBestSkeleton(const UnicodeString& skeleton,
421  int8_t& bestMatchDistanceInfo) const;
422 
423 
431  static void U_EXPORT2 parseSkeleton(const UnicodeString& skeleton,
432  int32_t* skeletonFieldWidth);
433 
434 
446  static UBool U_EXPORT2 stringNumeric(int32_t fieldWidth,
447  int32_t anotherFieldWidth,
448  char patternLetter);
449 
450 
464  static IntervalPatternIndex U_EXPORT2 calendarFieldToIntervalIndex(
465  UCalendarDateFields field,
466  UErrorCode& status);
467 
468 
474  void deleteHash(Hashtable* hTable);
475 
476 
483  Hashtable* initHash(UErrorCode& status);
484 
485 
486 
494  void copyHash(const Hashtable* source, Hashtable* target, UErrorCode& status);
495 
496 
497  // data members
498  // fallback interval pattern
499  UnicodeString fFallbackIntervalPattern;
500  // default order
501  UBool fFirstDateInPtnIsLaterDate;
502 
503  // HashMap<UnicodeString, UnicodeString[kIPI_MAX_INDEX]>
504  // HashMap( skeleton, pattern[largest_different_field] )
505  Hashtable* fIntervalPatterns;
506 
507 };// end class DateIntervalInfo
508 
509 
510 inline UBool
512  return !operator==(other);
513 }
514 
515 
516 U_NAMESPACE_END
517 
518 #endif
519 
520 #endif /* U_SHOW_CPLUSPLUS_API */
521 
522 #endif
523 
UCalendarDateFields
Possible fields in a UCalendar.
Definition: ucal.h:199
DateIntervalFormat is a class for formatting and parsing date intervals in a language-independent man...
Definition: dtitvfmt.h:300
C API: Calendar.
C++ API: Date/Time Pattern Generator.
DateIntervalInfo is a public class for encapsulating localizable date time interval patterns...
Definition: dtitvinf.h:154
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
void * UClassID
UClassID is used to identify classes without using the compiler&#39;s RTTI.
Definition: uobject.h:96
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:301
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
Definition: stringpiece.h:251
C API: DateFormat.
virtual UClassID getDynamicClassID() const
ICU4C "poor man&#39;s RTTI", returns a UClassID for the actual ICU class.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
UBool operator!=(const DateIntervalInfo &other) const
Return true if another object is semantically unequal to this one.
Definition: dtitvinf.h:511
C++ API: Locale ID object.
#define U_FINAL
Defined to the C++11 "final" keyword if available.
Definition: umachine.h:140
Basic definitions for ICU, for both C and C++ APIs.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:223
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:195