| OLD | NEW |
| 1 /* | 1 /* |
| 2 ******************************************************************************* | 2 ******************************************************************************* |
| 3 * Copyright (C) 2010-2013, International Business Machines | 3 * Copyright (C) 2010-2014, International Business Machines |
| 4 * Corporation and others. All Rights Reserved. | 4 * Corporation and others. All Rights Reserved. |
| 5 ******************************************************************************* | 5 ******************************************************************************* |
| 6 * file name: bytestriebuilder.h | 6 * file name: bytestriebuilder.h |
| 7 * encoding: US-ASCII | 7 * encoding: US-ASCII |
| 8 * tab size: 8 (not used) | 8 * tab size: 8 (not used) |
| 9 * indentation:4 | 9 * indentation:4 |
| 10 * | 10 * |
| 11 * created on: 2010sep25 | 11 * created on: 2010sep25 |
| 12 * created by: Markus W. Scherer | 12 * created by: Markus W. Scherer |
| 13 */ | 13 */ |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t byte
Index) const; | 134 virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t byte
Index) const; |
| 135 virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t byteIndex, int32_
t count) const; | 135 virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t byteIndex, int32_
t count) const; |
| 136 virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, UCh
ar byte) const; | 136 virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, UCh
ar byte) const; |
| 137 | 137 |
| 138 virtual UBool matchNodesCanHaveValues() const { return FALSE; } | 138 virtual UBool matchNodesCanHaveValues() const { return FALSE; } |
| 139 | 139 |
| 140 virtual int32_t getMaxBranchLinearSubNodeLength() const { return BytesTrie::
kMaxBranchLinearSubNodeLength; } | 140 virtual int32_t getMaxBranchLinearSubNodeLength() const { return BytesTrie::
kMaxBranchLinearSubNodeLength; } |
| 141 virtual int32_t getMinLinearMatch() const { return BytesTrie::kMinLinearMatc
h; } | 141 virtual int32_t getMinLinearMatch() const { return BytesTrie::kMinLinearMatc
h; } |
| 142 virtual int32_t getMaxLinearMatchLength() const { return BytesTrie::kMaxLine
arMatchLength; } | 142 virtual int32_t getMaxLinearMatchLength() const { return BytesTrie::kMaxLine
arMatchLength; } |
| 143 | 143 |
| 144 #ifndef U_HIDE_INTERNAL_API | |
| 145 /** | 144 /** |
| 146 * @internal | 145 * @internal |
| 147 */ | 146 */ |
| 148 class BTLinearMatchNode : public LinearMatchNode { | 147 class BTLinearMatchNode : public LinearMatchNode { |
| 149 public: | 148 public: |
| 150 BTLinearMatchNode(const char *units, int32_t len, Node *nextNode); | 149 BTLinearMatchNode(const char *units, int32_t len, Node *nextNode); |
| 151 virtual UBool operator==(const Node &other) const; | 150 virtual UBool operator==(const Node &other) const; |
| 152 virtual void write(StringTrieBuilder &builder); | 151 virtual void write(StringTrieBuilder &builder); |
| 153 private: | 152 private: |
| 154 const char *s; | 153 const char *s; |
| 155 }; | 154 }; |
| 156 #endif /* U_HIDE_INTERNAL_API */ | |
| 157 | 155 |
| 158 virtual Node *createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t le
ngth, | 156 virtual Node *createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t le
ngth, |
| 159 Node *nextNode) const; | 157 Node *nextNode) const; |
| 160 | 158 |
| 161 UBool ensureCapacity(int32_t length); | 159 UBool ensureCapacity(int32_t length); |
| 162 virtual int32_t write(int32_t byte); | 160 virtual int32_t write(int32_t byte); |
| 163 int32_t write(const char *b, int32_t length); | 161 int32_t write(const char *b, int32_t length); |
| 164 virtual int32_t writeElementUnits(int32_t i, int32_t byteIndex, int32_t leng
th); | 162 virtual int32_t writeElementUnits(int32_t i, int32_t byteIndex, int32_t leng
th); |
| 165 virtual int32_t writeValueAndFinal(int32_t i, UBool isFinal); | 163 virtual int32_t writeValueAndFinal(int32_t i, UBool isFinal); |
| 166 virtual int32_t writeValueAndType(UBool hasValue, int32_t value, int32_t nod
e); | 164 virtual int32_t writeValueAndType(UBool hasValue, int32_t value, int32_t nod
e); |
| 167 virtual int32_t writeDeltaTo(int32_t jumpTarget); | 165 virtual int32_t writeDeltaTo(int32_t jumpTarget); |
| 168 | 166 |
| 169 CharString *strings; // Pointer not object so we need not #include internal
charstr.h. | 167 CharString *strings; // Pointer not object so we need not #include internal
charstr.h. |
| 170 BytesTrieElement *elements; | 168 BytesTrieElement *elements; |
| 171 int32_t elementsCapacity; | 169 int32_t elementsCapacity; |
| 172 int32_t elementsLength; | 170 int32_t elementsLength; |
| 173 | 171 |
| 174 // Byte serialization of the trie. | 172 // Byte serialization of the trie. |
| 175 // Grows from the back: bytesLength measures from the end of the buffer! | 173 // Grows from the back: bytesLength measures from the end of the buffer! |
| 176 char *bytes; | 174 char *bytes; |
| 177 int32_t bytesCapacity; | 175 int32_t bytesCapacity; |
| 178 int32_t bytesLength; | 176 int32_t bytesLength; |
| 179 }; | 177 }; |
| 180 | 178 |
| 181 U_NAMESPACE_END | 179 U_NAMESPACE_END |
| 182 | 180 |
| 183 #endif // __BYTESTRIEBUILDER_H__ | 181 #endif // __BYTESTRIEBUILDER_H__ |
| OLD | NEW |