00001 /*00002 * The Software License00003 * =================================================================================00004 * Copyright (c) 2003-.The Terimber Corporation. All rights reserved.00005 * =================================================================================00006 * Redistributions of source code must retain the above copyright notice, 00007 * this list of conditions and the following disclaimer.00008 * Redistributions in binary form must reproduce the above copyright notice, 00009 * this list of conditions and the following disclaimer in the documentation 00010 * and/or other materials provided with the distribution.00011 * The end-user documentation included with the redistribution, if any, 00012 * must include the following acknowledgment:00013 * "This product includes software developed by the Terimber Corporation."00014 * =================================================================================00015 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, 00016 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 00017 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00018 * IN NO EVENT SHALL THE TERIMBER CORPORATION OR ITS CONTRIBUTORS BE LIABLE FOR 00019 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00020 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00021 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 00022 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT00023 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE00024 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.00025 * ================================================================================00026 */00027
00028 #ifndef _terimber_varvalue_h_00029 #define _terimber_varvalue_h_00030
00031 #include "allinc.h"00032
00033 BEGIN_TERIMBER_NAMESPACE00034 #pragma pack(4)00035
00039class var_value00040 {
00041 public:
00042terimber_xml_value_value;
00043bool_not_null;
00044bool_specified;
00045 };
00046
00049class var_string_searchable_key00050 {
00051 public:
00052
00053constchar* _res;
00054constub4_t* _offsets;
00055 };
00056
00059class var_string_fuzzy_key00060 {
00061 public:
00062
00063constchar* _res;
00064size_t_fuzzy_key;
00065 };
00066
00069union var_key00070 {
00071class var_value_val;
00072class var_string_searchable_key_key;
00073class var_string_fuzzy_key_ngram;
00074 };
00075
00077 inline00078 bool00079 operator_less( vt_types type,
00080 constvar_value& x,
00081 constvar_value& y
00082 );
00083
00084 #pragma pack()00085 END_TERIMBER_NAMESPACE00086
00087 #endif // _terimber_varvalue_h_