00001 /*00002 * The Software License00003 * =================================================================================00004 * Copyright (c) 2003-2009 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_value_h_00029 #define _terimber_value_h_00030
00031 #include "ostypes.h"00032 #include "osdetect.h"00033
00034 #pragma pack(4)00035
00036typedefunion _terimber_xml_value_00037 {
00038boolboolVal;
00039sb1_tcVal;
00040ub1_tbVal;
00041sb2_tiVal;
00042ub2_tuiVal;
00043sb4_tlVal;
00044ub4_tulVal;
00045floatfltVal;
00046 #ifdef OS_64BIT00047 doubledblVal;
00048 sb8_tintVal; // int64 & data in millisecond from 1 A.D. (negative date is B.C.)00049 ub8_tuintVal;
00050 #else00051constdouble* dblVal;
00052constsb8_t* intVal; // int64 & data in millisecond from 1 A.D. (negative date is B.C.)00053constub8_t* uintVal;
00054 #endif00055constlongdouble* ldblVal; // reserved00056constguid_t* guidVal;
00057constchar* strVal; // narrow string00058constwchar_t* wstrVal;
00059constub1_t* bufVal; // binary data (first size_t bytes contain the length) 00060 // decimal & numeric values - special internal format close to oracle NUMERIC00061 // use numeric class (parse_oracle, persist_oracle functions to convert from/to string representation00062 } terimber_xml_value;
00063
00064 #pragma pack()00065
00066 #endif // _terimber_value_h_00067