Imported Upstream version 58.1
[platform/upstream/icu.git] / source / test / perf / unisetperf / draft / unicont.h
1 /*  
2 *************************************************************************
3 *   Copyright (C) 2016 and later: Unicode, Inc. and others.
4 *   License & terms of use: http://www.unicode.org/copyright.html#License
5 *************************************************************************
6 *************************************************************************
7 *   Copyright (C) 2007, International Business Machines
8 *   Corporation and others.  All Rights Reserved.
9 *************************************************************************
10 *   file name:  unicont.h
11 *   encoding:   US-ASCII
12 *   tab size:   8 (not used)
13 *   indentation:4
14 *
15 *   created on: 2007jan15
16 *   created by: Markus Scherer
17 *
18 *   Idea for new common interface underneath the normal UnicodeSet
19 *   and other classes, such as "compiled", fast, read-only (immutable)
20 *   versions of UnicodeSet.
21 */
22
23 class UnicodeContainable {
24 public:
25     virtual ~UnicodeContainable() {}
26
27     virtual UBool contains(UChar32 c) const = 0;
28
29     virtual int32_t span(const UChar *s, int32_t length);
30
31     virtual int32_t spanNot(const UChar *s, int32_t length);
32
33     virtual int32_t spanUTF8(const UChar *s, int32_t length);
34
35     virtual int32_t spanNotUTF8(const UChar *s, int32_t length);
36
37     virtual UClassID getDynamicClassID(void) const;
38 };