├── .gitignore ├── CMakeLists.txt ├── COPYING ├── README.mediawiki ├── bind ├── erlang │ └── fix_parser │ │ ├── build_lib.sh │ │ ├── c_src │ │ └── fix_parser.c │ │ ├── include │ │ ├── fix_fields.hrl │ │ └── fix_parser.hrl │ │ ├── rebar │ │ ├── rebar.config │ │ └── src │ │ ├── fix_parser.app.src │ │ ├── fix_parser.erl │ │ ├── fix_parser_app.erl │ │ └── fix_parser_sup.erl └── python │ ├── example.py │ ├── fix_fields.py │ └── fix_parser.py ├── build ├── build.sh ├── build_test.sh ├── build_vs10.bat └── build_vs10_test.bat ├── deps └── libxml2 │ ├── bin │ ├── libxml2.dll │ ├── xmlcatalog.exe │ └── xmllint.exe │ ├── include │ └── libxml │ │ ├── DOCBparser.h │ │ ├── HTMLparser.h │ │ ├── HTMLtree.h │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── SAX.h │ │ ├── SAX2.h │ │ ├── c14n.h │ │ ├── catalog.h │ │ ├── chvalid.h │ │ ├── debugXML.h │ │ ├── dict.h │ │ ├── encoding.h │ │ ├── entities.h │ │ ├── globals.h │ │ ├── hash.h │ │ ├── list.h │ │ ├── nanoftp.h │ │ ├── nanohttp.h │ │ ├── parser.h │ │ ├── parserInternals.h │ │ ├── pattern.h │ │ ├── relaxng.h │ │ ├── schemasInternals.h │ │ ├── schematron.h │ │ ├── threads.h │ │ ├── tree.h │ │ ├── uri.h │ │ ├── valid.h │ │ ├── xinclude.h │ │ ├── xlink.h │ │ ├── xmlIO.h │ │ ├── xmlautomata.h │ │ ├── xmlerror.h │ │ ├── xmlexports.h │ │ ├── xmlmemory.h │ │ ├── xmlmodule.h │ │ ├── xmlreader.h │ │ ├── xmlregexp.h │ │ ├── xmlsave.h │ │ ├── xmlschemas.h │ │ ├── xmlschemastypes.h │ │ ├── xmlstring.h │ │ ├── xmlunicode.h │ │ ├── xmlversion.h │ │ ├── xmlversion.h.in │ │ ├── xmlwriter.h │ │ ├── xpath.h │ │ ├── xpathInternals.h │ │ └── xpointer.h │ └── lib │ ├── libxml2.lib │ ├── libxml2_a.lib │ └── libxml2_a_dll.lib ├── docs ├── fix_parser.xml └── html │ ├── annotated.html │ ├── bc_s.png │ ├── bdwn.png │ ├── classes.html │ ├── closed.png │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ ├── dir_d44c64559bbebec7f509842c48db8b23.html │ ├── doxygen.css │ ├── doxygen.png │ ├── dynsections.js │ ├── files.html │ ├── fix__descr__xsd_8h.html │ ├── fix__descr__xsd_8h_source.html │ ├── fix__error_8c.html │ ├── fix__error_8h.html │ ├── fix__error_8h_source.html │ ├── fix__error__priv_8c.html │ ├── fix__error__priv_8h.html │ ├── fix__error__priv_8h_source.html │ ├── fix__field_8c.html │ ├── fix__field_8h.html │ ├── fix__field_8h_source.html │ ├── fix__field__tag_8h.html │ ├── fix__field__tag_8h_source.html │ ├── fix__msg_8c.html │ ├── fix__msg_8h.html │ ├── fix__msg_8h_source.html │ ├── fix__msg__priv_8c.html │ ├── fix__msg__priv_8h.html │ ├── fix__msg__priv_8h_source.html │ ├── fix__page_8h.html │ ├── fix__page_8h_source.html │ ├── fix__parser_8c.html │ ├── fix__parser_8h.html │ ├── fix__parser_8h_source.html │ ├── fix__parser__dll_8h.html │ ├── fix__parser__dll_8h_source.html │ ├── fix__parser__priv_8c.html │ ├── fix__parser__priv_8h.html │ ├── fix__parser__priv_8h_source.html │ ├── fix__protocol__descr_8c.html │ ├── fix__protocol__descr_8h.html │ ├── fix__protocol__descr_8h_source.html │ ├── fix__types_8c.html │ ├── fix__types_8h.html │ ├── fix__types_8h_source.html │ ├── fix__utils_8c.html │ ├── fix__utils_8h.html │ ├── fix__utils_8h_source.html │ ├── ftv2blank.png │ ├── ftv2cl.png │ ├── ftv2doc.png │ ├── ftv2folderclosed.png │ ├── ftv2folderopen.png │ ├── ftv2lastnode.png │ ├── ftv2link.png │ ├── ftv2mlastnode.png │ ├── ftv2mnode.png │ ├── ftv2mo.png │ ├── ftv2node.png │ ├── ftv2ns.png │ ├── ftv2plastnode.png │ ├── ftv2pnode.png │ ├── ftv2splitbar.png │ ├── ftv2vertline.png │ ├── functions.html │ ├── functions_vars.html │ ├── globals.html │ ├── globals_defs.html │ ├── globals_enum.html │ ├── globals_eval.html │ ├── globals_func.html │ ├── globals_type.html │ ├── index.html │ ├── jquery.js │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── search │ ├── all_61.html │ ├── all_61.js │ ├── all_62.html │ ├── all_62.js │ ├── all_63.html │ ├── all_63.js │ ├── all_64.html │ ├── all_64.js │ ├── all_65.html │ ├── all_65.js │ ├── all_66.html │ ├── all_66.js │ ├── all_67.html │ ├── all_67.js │ ├── all_69.html │ ├── all_69.js │ ├── all_6d.html │ ├── all_6d.js │ ├── all_6e.html │ ├── all_6e.js │ ├── all_6f.html │ ├── all_6f.js │ ├── all_70.html │ ├── all_70.js │ ├── all_73.html │ ├── all_73.js │ ├── all_74.html │ ├── all_74.js │ ├── all_75.html │ ├── all_75.js │ ├── all_76.html │ ├── all_76.js │ ├── classes_66.html │ ├── classes_66.js │ ├── close.png │ ├── defines_65.html │ ├── defines_65.js │ ├── defines_66.html │ ├── defines_66.js │ ├── defines_70.html │ ├── defines_70.js │ ├── enums_66.html │ ├── enums_66.js │ ├── enumvalues_66.html │ ├── enumvalues_66.js │ ├── files_66.html │ ├── files_66.js │ ├── functions_66.html │ ├── functions_66.js │ ├── functions_69.html │ ├── functions_69.js │ ├── functions_73.html │ ├── functions_73.js │ ├── mag_sel.png │ ├── nomatches.html │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ ├── typedefs_66.html │ ├── typedefs_66.js │ ├── variables_61.html │ ├── variables_61.js │ ├── variables_62.html │ ├── variables_62.js │ ├── variables_63.html │ ├── variables_63.js │ ├── variables_64.html │ ├── variables_64.js │ ├── variables_65.html │ ├── variables_65.js │ ├── variables_66.html │ ├── variables_66.js │ ├── variables_67.html │ ├── variables_67.js │ ├── variables_6d.html │ ├── variables_6d.js │ ├── variables_6e.html │ ├── variables_6e.js │ ├── variables_6f.html │ ├── variables_6f.js │ ├── variables_70.html │ ├── variables_70.js │ ├── variables_73.html │ ├── variables_73.js │ ├── variables_74.html │ ├── variables_74.js │ ├── variables_75.html │ ├── variables_75.js │ ├── variables_76.html │ └── variables_76.js │ ├── structFIXError-members.html │ ├── structFIXError.html │ ├── structFIXError__-members.html │ ├── structFIXError__.html │ ├── structFIXFieldDescr__-members.html │ ├── structFIXFieldDescr__.html │ ├── structFIXFieldType__-members.html │ ├── structFIXFieldType__.html │ ├── structFIXFieldValue__-members.html │ ├── structFIXFieldValue__.html │ ├── structFIXField__-members.html │ ├── structFIXField__.html │ ├── structFIXGroup__-members.html │ ├── structFIXGroup__.html │ ├── structFIXGroups__-members.html │ ├── structFIXGroups__.html │ ├── structFIXMsgDescr__-members.html │ ├── structFIXMsgDescr__.html │ ├── structFIXMsg__-members.html │ ├── structFIXMsg__.html │ ├── structFIXPage__-members.html │ ├── structFIXPage__.html │ ├── structFIXParserAttrs-members.html │ ├── structFIXParserAttrs.html │ ├── structFIXParser__-members.html │ ├── structFIXParser__.html │ ├── structFIXProtocolDescr__-members.html │ ├── structFIXProtocolDescr__.html │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ └── tabs.css ├── fix_descr ├── fix.4.2.xml ├── fix.4.3.xml ├── fix.4.4.xml ├── fix.5.0.sp1.xml ├── fix.5.0.sp2.xml ├── fix.5.0.xml └── fixt.1.1.xml ├── include ├── fix_error.h ├── fix_field_tag.h ├── fix_msg.h ├── fix_parser.h ├── fix_parser_dll.h └── fix_types.h ├── perf_test ├── CMakeLists.txt ├── perf_test.c └── perf_test_data │ └── fix.4.4.perf.xml ├── src ├── fix_descr_xsd.h ├── fix_error.c ├── fix_error_priv.c ├── fix_error_priv.h ├── fix_field.c ├── fix_field.h ├── fix_msg.c ├── fix_msg_priv.c ├── fix_msg_priv.h ├── fix_page.h ├── fix_parser.c ├── fix_parser_priv.c ├── fix_parser_priv.h ├── fix_protocol_descr.c ├── fix_protocol_descr.h ├── fix_types.c ├── fix_utils.c ├── fix_utils.h ├── lin │ └── fix_utils.c └── win │ └── fix_utils.c └── test ├── CMakeLists.txt ├── fix_field_tests.cc ├── fix_msg_tests.cc ├── fix_parser_priv_tests.cc ├── fix_parser_tests.cc ├── fix_protocol_tests.cc ├── fix_utils_tests.cc ├── main.cc └── test_data ├── fix1.xml ├── fix2.xml └── fixt1.xml /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files 2 | *.slo 3 | *.lo 4 | *.o 5 | 6 | # Compiled Dynamic libraries 7 | *.so 8 | 9 | # Compiled Static libraries 10 | *.lai 11 | *.la 12 | *.a 13 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | 3 | include(ExternalProject) 4 | 5 | project(fix_parser) 6 | 7 | if (WIN32) 8 | set(LIBXML2_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/deps/libxml2/include) 9 | set(LIBXML2_LIBRARIES ${CMAKE_SOURCE_DIR}/deps/libxml2/lib) 10 | else(WIN32) 11 | find_package(LibXml2 REQUIRED) 12 | endif(WIN32) 13 | 14 | include_directories(${LIBXML2_INCLUDE_DIR} ./include ./src) 15 | link_directories(${LIBXML2_LIBRARIES}) 16 | 17 | if (WIN32) 18 | add_definitions(-D_CRT_SECURE_NO_WARNINGS) 19 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") 20 | else(WIN32) 21 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -fPIC") 22 | endif(WIN32) 23 | 24 | aux_source_directory(src LIB_SOURCES) 25 | if (WIN32) 26 | aux_source_directory(src/win LIB_SOURCES) 27 | else(WIN32) 28 | aux_source_directory(src/lin LIB_SOURCES) 29 | endif(WIN32) 30 | 31 | if (WIN32) 32 | set_source_files_properties(${LIB_SOURCES} PROPERTIES LANGUAGE CXX) 33 | endif(WIN32) 34 | 35 | add_library(${PROJECT_NAME} SHARED ${LIB_SOURCES}) 36 | add_library(${PROJECT_NAME}_s STATIC ${LIB_SOURCES}) 37 | 38 | if (WIN32) 39 | target_link_libraries(${PROJECT_NAME} libxml2) 40 | set_target_properties(${PROJECT_NAME}_s PROPERTIES OUTPUT_NAME ${PROJECT_NAME}_s) 41 | else(WIN32) 42 | target_link_libraries(${PROJECT_NAME} xml2) 43 | set_target_properties(${PROJECT_NAME}_s PROPERTIES OUTPUT_NAME ${PROJECT_NAME}) 44 | endif(WIN32) 45 | 46 | if ("${WITH_TESTS}" STREQUAL "YES") 47 | add_subdirectory(perf_test) 48 | add_subdirectory(test) 49 | endif("${WITH_TESTS}" STREQUAL "YES") 50 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2013, Dmitry Melnikov 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that 5 | the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the 8 | following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and 10 | the following disclaimer in the documentation and/or other materials provided with the distribution. 11 | * Neither the name of fix_parser nor the names of its contributors may be used to endorse or promote 12 | products derived from this software without specific prior written permission. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 15 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 18 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 19 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 20 | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 21 | -------------------------------------------------------------------------------- /README.mediawiki: -------------------------------------------------------------------------------- 1 | ==FIX protocol parser (beta)== 2 | 3 | This is an implementation of [[http://www.fixprotocol.org|FIX protocol]] parser for parsing/constructing FIX messages. 4 | The main reason to implement another one FIX parser is a performance issue of well 5 | known open-source FIX parser [[http://quickfixengine.org/|quickFIX]] 6 | 7 | === Dependencies === 8 | * [[http://www.cmake.org|cmake]] 9 | * libxml2-dev 10 | * gcc - for Linux 11 | * MS Visual Studio 2010 - for Windows 12 | 13 | === Build === 14 | 15 | ==== Build (linux) ==== 16 | 17 | cd build 18 | ./build.sh 19 | libs directory will contain built libraries (both static and shared) 20 | ==== Build (Windows) ==== 21 | 22 | cd build 23 | ./build_vs10.bat 24 | 25 | ==== Build Erlang binding ==== 26 | 27 | cd bind/erlang/fix_parser 28 | ./rebar compile 29 | 30 | ==== Build Python binding ==== 31 | cd bind/python 32 | cp ../../fix_descr/fix.4.4.xml . 33 | cp ../../build/libs/libfix_parser.so . 34 | python example.py 35 | 36 | === Examples of usage === 37 | 38 | ==== С ==== 39 | 40 | ==== Erlang ==== 41 | 42 | ==== Python ==== 43 | -------------------------------------------------------------------------------- /bind/erlang/fix_parser/build_lib.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p .deps 4 | cd .deps 5 | cmake ../../../.. 6 | make 7 | cd .. 8 | -------------------------------------------------------------------------------- /bind/erlang/fix_parser/include/fix_parser.hrl: -------------------------------------------------------------------------------- 1 | -type attr() :: {'page_size', pos_integer()} | 2 | {'max_page_size', pos_integer()} | 3 | {'num_pages', pos_integer()} | 4 | {'max_pages', pos_integer()} | 5 | {'num_groups', pos_integer()} | 6 | {'max_groups', pos_integer()}. %% parser attributes ... 7 | -type attrs() :: [attr()]. 8 | 9 | -type flag() :: check_crc | 10 | check_required | 11 | check_value | 12 | check_unknown_fields | 13 | check_all. 14 | -type flags() :: [flag()]. 15 | 16 | -record(parser, {res :: binary()}). 17 | 18 | -record(msg, {type :: binary(), 19 | res :: {binary(), binary()}}). 20 | 21 | -record(msg_header, {begin_string :: string(), 22 | msg_type :: string(), 23 | sender_comp_id :: string(), 24 | target_comp_id :: string(), 25 | msg_seq_num :: pos_integer()}). 26 | 27 | -record(group, {res :: {binary(), binary(), binary()}}). 28 | 29 | -type ref() :: #msg{} | #group{}. 30 | -type tagNum() :: pos_integer(). 31 | -type reason() :: atom() | 32 | string() | 33 | {pos_integer(), string()}. 34 | 35 | -define(FIX_SOH, 1). 36 | -define(FIX_SUCCESS, 0). 37 | -define(FIX_NO_FIELD, 1). 38 | 39 | -define(FIX_FAILED, -1). 40 | -define(FIX_ERROR_FIELD_HAS_WRONG_TYPE, -2). 41 | -define(FIX_ERROR_FIELD_NOT_FOUND, -3). 42 | -define(FIX_ERROR_FIELD_TYPE_EXISTS, -4). 43 | -define(FIX_ERROR_GROUP_WRONG_INDEX, -5). 44 | -define(FIX_ERROR_XML_ATTR_NOT_FOUND, -6). 45 | -define(FIX_ERROR_XML_ATTR_WRONG_VALUE, -7). 46 | -define(FIX_ERROR_PROTOCOL_XML_LOAD_FAILED, -8). 47 | -define(FIX_ERROR_UNKNOWN_FIELD, -9). 48 | -define(FIX_ERROR_WRONG_PROTOCOL_VER, -10). 49 | -define(FIX_ERROR_DUPLICATE_FIELD_DESCR, -11). 50 | -define(FIX_ERROR_UNKNOWN_MSG, -12). 51 | -define(FIX_ERROR_LIBXML, -13). 52 | -define(FIX_ERROR_INVALID_ARGUMENT, -14). 53 | -define(FIX_ERROR_MALLOC, -15). 54 | -define(FIX_ERROR_UNKNOWN_PROTOCOL_DESCR, -16). 55 | -define(FIX_ERROR_NO_MORE_PAGES, -17). 56 | -define(FIX_ERROR_NO_MORE_GROUPS, -18). 57 | -define(FIX_ERROR_TOO_BIG_PAGE, -19). 58 | -define(FIX_ERROR_NO_MORE_SPACE, -20). 59 | -define(FIX_ERROR_PARSE_MSG, -21). 60 | -define(FIX_ERROR_WRONG_FIELD, -22). 61 | -define(FIX_ERROR_INTEGRITY_CHECK, -23). 62 | -define(FIX_ERROR_NO_MORE_DATA, -24). 63 | -define(FIX_ERROR_WRONG_FIELD_VALUE, -25). 64 | -------------------------------------------------------------------------------- /bind/erlang/fix_parser/rebar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/bind/erlang/fix_parser/rebar -------------------------------------------------------------------------------- /bind/erlang/fix_parser/rebar.config: -------------------------------------------------------------------------------- 1 | {pre_hooks, [ 2 | {clean, "rm -rf .deps"}, 3 | {compile, "./build_lib.sh"} 4 | ]}. 5 | 6 | {port_specs, [ 7 | {"linux", "priv/fix_parser.so", 8 | ["c_src/fix_parser.c"], 9 | [{env, [ 10 | {"CFLAGS", "$CFLAGS -std=gnu99 -O3 -I/usr/include/libxml2 -I../../../include -I../../../src"}, 11 | {"LDFLAGS", "$LDFLAGS .deps/libfix_parser.a -lxml2 "} 12 | ]}]} 13 | ]}. 14 | -------------------------------------------------------------------------------- /bind/erlang/fix_parser/src/fix_parser.app.src: -------------------------------------------------------------------------------- 1 | {application, fix_parser, 2 | [ 3 | {description, ""}, 4 | {vsn, "1"}, 5 | {registered, []}, 6 | {applications, [ 7 | kernel, 8 | stdlib 9 | ]}, 10 | {mod, { fix_parser_app, []}}, 11 | {env, []} 12 | ]}. 13 | -------------------------------------------------------------------------------- /bind/erlang/fix_parser/src/fix_parser_app.erl: -------------------------------------------------------------------------------- 1 | -module(fix_parser_app). 2 | 3 | -behaviour(application). 4 | 5 | %% Application callbacks 6 | -export([start/2, stop/1]). 7 | 8 | %% =================================================================== 9 | %% Application callbacks 10 | %% =================================================================== 11 | 12 | start(_StartType, _StartArgs) -> 13 | fix_parser_sup:start_link(). 14 | 15 | stop(_State) -> 16 | ok. 17 | -------------------------------------------------------------------------------- /bind/erlang/fix_parser/src/fix_parser_sup.erl: -------------------------------------------------------------------------------- 1 | 2 | -module(fix_parser_sup). 3 | 4 | -behaviour(supervisor). 5 | 6 | %% API 7 | -export([start_link/0]). 8 | 9 | %% Supervisor callbacks 10 | -export([init/1]). 11 | 12 | %% Helper macro for declaring children of supervisor 13 | -define(CHILD(I, Type), {I, {I, start_link, []}, permanent, 5000, Type, [I]}). 14 | 15 | %% =================================================================== 16 | %% API functions 17 | %% =================================================================== 18 | 19 | start_link() -> 20 | supervisor:start_link({local, ?MODULE}, ?MODULE, []). 21 | 22 | %% =================================================================== 23 | %% Supervisor callbacks 24 | %% =================================================================== 25 | 26 | init([]) -> 27 | {ok, { {one_for_one, 5, 10}, []} }. 28 | -------------------------------------------------------------------------------- /bind/python/example.py: -------------------------------------------------------------------------------- 1 | from fix_parser import * 2 | from fix_fields import * 3 | 4 | p = FixParser(b"fix.4.4.xml", PARSER_FLAG_CHECK_ALL) 5 | print("PROT VERSION = {0}".format(p.getProtocolVer())) 6 | # create Exec Report 7 | m = p.createMsg("8") 8 | # check its params 9 | print("MSG TYPE = {0}".format(m.getType())) 10 | print("MSG NAME = {0}".format(m.getName())) 11 | 12 | # fill message 13 | m.setFieldAsString(FIXFieldTag_SenderCompID, b"QWERTY_12345678") 14 | m.setFieldAsString(FIXFieldTag_TargetCompID, b"ABCQWE_XYZ") 15 | m.setFieldAsInt32(FIXFieldTag_MsgSeqNum, 34) 16 | m.setFieldAsString(FIXFieldTag_TargetSubID, "bsrv-ivanov_ii1") 17 | m.setFieldAsString(FIXFieldTag_SendingTime, b"20120716-06:00:16.230") 18 | m.setFieldAsString(FIXFieldTag_OrderID, b"1") 19 | m.setFieldAsString(FIXFieldTag_ClOrdID, b"CL_ORD_ID_1234567") 20 | m.setFieldAsString(FIXFieldTag_ExecID, b"FE_1_9494_1") 21 | m.setFieldAsChar(FIXFieldTag_ExecType, b"0") 22 | m.setFieldAsChar(FIXFieldTag_OrdStatus, b"1") 23 | m.setFieldAsString(FIXFieldTag_Account, b"ZUM") 24 | m.setFieldAsString(FIXFieldTag_Symbol, b"RTS-12.12") 25 | m.setFieldAsChar(FIXFieldTag_Side, b"1") 26 | m.setFieldAsDouble(FIXFieldTag_OrderQty, 25.0) 27 | m.setFieldAsDouble(FIXFieldTag_Price, 135155.0) 28 | m.setFieldAsChar(FIXFieldTag_TimeInForce, b"0") 29 | m.setFieldAsDouble(FIXFieldTag_LastQty, 0) 30 | m.setFieldAsDouble(FIXFieldTag_LastPx, 0) 31 | m.setFieldAsDouble(FIXFieldTag_LeavesQty, 25.0) 32 | m.setFieldAsDouble(FIXFieldTag_CumQty, 0) 33 | m.setFieldAsDouble(FIXFieldTag_AvgPx, 0) 34 | m.setFieldAsChar(FIXFieldTag_HandlInst, b"1") 35 | m.setFieldAsString(FIXFieldTag_Text, b"COMMENT12") 36 | 37 | # convert msg to string, \1 delimiter replaced with '|', just for pretty printing. '|' code is 124 38 | str = m.toString(124) 39 | print("MSG = {0}".format(str)) 40 | 41 | # parse input string and create FIX message 42 | m1 = p.parse(str, 124) 43 | 44 | # just print several fields of m1, to make sure str parsed ok 45 | print("MSG1 TYPE = {0}".format(m1.getType())) 46 | print("MSG1 NAME = {0}".format(m1.getName())) 47 | print("SenderCompID = {0}".format(m1.getFieldAsString(FIXFieldTag_SenderCompID))) 48 | print("TargetCompID = {0}".format(m1.getFieldAsString(FIXFieldTag_TargetCompID))) 49 | -------------------------------------------------------------------------------- /build/build.sh: -------------------------------------------------------------------------------- 1 | mkdir -p libs 2 | cd libs 3 | cmake -DCMAKE_BUILD_TYPE=Release ../.. 4 | make 5 | -------------------------------------------------------------------------------- /build/build_test.sh: -------------------------------------------------------------------------------- 1 | mkdir -p libs 2 | cd libs 3 | cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_TESTS=YES ../.. 4 | make 5 | -------------------------------------------------------------------------------- /build/build_vs10.bat: -------------------------------------------------------------------------------- 1 | call "%VS100COMNTOOLS%vsvars32.bat" 2 | 3 | mkdir libs 4 | pushd libs 5 | cmake -G "Visual Studio 10" ../.. 6 | 7 | popd 8 | -------------------------------------------------------------------------------- /build/build_vs10_test.bat: -------------------------------------------------------------------------------- 1 | call "%VS100COMNTOOLS%vsvars32.bat" 2 | 3 | mkdir libs 4 | pushd libs 5 | cmake -DWITH_TESTS=YES -G "Visual Studio 10" ../.. 6 | 7 | popd 8 | -------------------------------------------------------------------------------- /deps/libxml2/bin/libxml2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/deps/libxml2/bin/libxml2.dll -------------------------------------------------------------------------------- /deps/libxml2/bin/xmlcatalog.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/deps/libxml2/bin/xmlcatalog.exe -------------------------------------------------------------------------------- /deps/libxml2/bin/xmllint.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/deps/libxml2/bin/xmllint.exe -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/DOCBparser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: old DocBook SGML parser 3 | * Description: interface for a DocBook SGML non-verifying parser 4 | * This code is DEPRECATED, and should not be used anymore. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __DOCB_PARSER_H__ 12 | #define __DOCB_PARSER_H__ 13 | #include 14 | 15 | #ifdef LIBXML_DOCB_ENABLED 16 | 17 | #include 18 | #include 19 | 20 | #ifndef IN_LIBXML 21 | #ifdef __GNUC__ 22 | #warning "The DOCBparser module has been deprecated in libxml2-2.6.0" 23 | #endif 24 | #endif 25 | 26 | #ifdef __cplusplus 27 | extern "C" { 28 | #endif 29 | 30 | /* 31 | * Most of the back-end structures from XML and SGML are shared. 32 | */ 33 | typedef xmlParserCtxt docbParserCtxt; 34 | typedef xmlParserCtxtPtr docbParserCtxtPtr; 35 | typedef xmlSAXHandler docbSAXHandler; 36 | typedef xmlSAXHandlerPtr docbSAXHandlerPtr; 37 | typedef xmlParserInput docbParserInput; 38 | typedef xmlParserInputPtr docbParserInputPtr; 39 | typedef xmlDocPtr docbDocPtr; 40 | 41 | /* 42 | * There is only few public functions. 43 | */ 44 | XMLPUBFUN int XMLCALL 45 | docbEncodeEntities(unsigned char *out, 46 | int *outlen, 47 | const unsigned char *in, 48 | int *inlen, int quoteChar); 49 | 50 | XMLPUBFUN docbDocPtr XMLCALL 51 | docbSAXParseDoc (xmlChar *cur, 52 | const char *encoding, 53 | docbSAXHandlerPtr sax, 54 | void *userData); 55 | XMLPUBFUN docbDocPtr XMLCALL 56 | docbParseDoc (xmlChar *cur, 57 | const char *encoding); 58 | XMLPUBFUN docbDocPtr XMLCALL 59 | docbSAXParseFile (const char *filename, 60 | const char *encoding, 61 | docbSAXHandlerPtr sax, 62 | void *userData); 63 | XMLPUBFUN docbDocPtr XMLCALL 64 | docbParseFile (const char *filename, 65 | const char *encoding); 66 | 67 | /** 68 | * Interfaces for the Push mode. 69 | */ 70 | XMLPUBFUN void XMLCALL 71 | docbFreeParserCtxt (docbParserCtxtPtr ctxt); 72 | XMLPUBFUN docbParserCtxtPtr XMLCALL 73 | docbCreatePushParserCtxt(docbSAXHandlerPtr sax, 74 | void *user_data, 75 | const char *chunk, 76 | int size, 77 | const char *filename, 78 | xmlCharEncoding enc); 79 | XMLPUBFUN int XMLCALL 80 | docbParseChunk (docbParserCtxtPtr ctxt, 81 | const char *chunk, 82 | int size, 83 | int terminate); 84 | XMLPUBFUN docbParserCtxtPtr XMLCALL 85 | docbCreateFileParserCtxt(const char *filename, 86 | const char *encoding); 87 | XMLPUBFUN int XMLCALL 88 | docbParseDocument (docbParserCtxtPtr ctxt); 89 | 90 | #ifdef __cplusplus 91 | } 92 | #endif 93 | 94 | #endif /* LIBXML_DOCB_ENABLED */ 95 | 96 | #endif /* __DOCB_PARSER_H__ */ 97 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/HTMLtree.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: specific APIs to process HTML tree, especially serialization 3 | * Description: this module implements a few function needed to process 4 | * tree in an HTML specific way. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __HTML_TREE_H__ 12 | #define __HTML_TREE_H__ 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | #ifdef LIBXML_HTML_ENABLED 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | 26 | /** 27 | * HTML_TEXT_NODE: 28 | * 29 | * Macro. A text node in a HTML document is really implemented 30 | * the same way as a text node in an XML document. 31 | */ 32 | #define HTML_TEXT_NODE XML_TEXT_NODE 33 | /** 34 | * HTML_ENTITY_REF_NODE: 35 | * 36 | * Macro. An entity reference in a HTML document is really implemented 37 | * the same way as an entity reference in an XML document. 38 | */ 39 | #define HTML_ENTITY_REF_NODE XML_ENTITY_REF_NODE 40 | /** 41 | * HTML_COMMENT_NODE: 42 | * 43 | * Macro. A comment in a HTML document is really implemented 44 | * the same way as a comment in an XML document. 45 | */ 46 | #define HTML_COMMENT_NODE XML_COMMENT_NODE 47 | /** 48 | * HTML_PRESERVE_NODE: 49 | * 50 | * Macro. A preserved node in a HTML document is really implemented 51 | * the same way as a CDATA section in an XML document. 52 | */ 53 | #define HTML_PRESERVE_NODE XML_CDATA_SECTION_NODE 54 | /** 55 | * HTML_PI_NODE: 56 | * 57 | * Macro. A processing instruction in a HTML document is really implemented 58 | * the same way as a processing instruction in an XML document. 59 | */ 60 | #define HTML_PI_NODE XML_PI_NODE 61 | 62 | XMLPUBFUN htmlDocPtr XMLCALL 63 | htmlNewDoc (const xmlChar *URI, 64 | const xmlChar *ExternalID); 65 | XMLPUBFUN htmlDocPtr XMLCALL 66 | htmlNewDocNoDtD (const xmlChar *URI, 67 | const xmlChar *ExternalID); 68 | XMLPUBFUN const xmlChar * XMLCALL 69 | htmlGetMetaEncoding (htmlDocPtr doc); 70 | XMLPUBFUN int XMLCALL 71 | htmlSetMetaEncoding (htmlDocPtr doc, 72 | const xmlChar *encoding); 73 | #ifdef LIBXML_OUTPUT_ENABLED 74 | XMLPUBFUN void XMLCALL 75 | htmlDocDumpMemory (xmlDocPtr cur, 76 | xmlChar **mem, 77 | int *size); 78 | XMLPUBFUN void XMLCALL 79 | htmlDocDumpMemoryFormat (xmlDocPtr cur, 80 | xmlChar **mem, 81 | int *size, 82 | int format); 83 | XMLPUBFUN int XMLCALL 84 | htmlDocDump (FILE *f, 85 | xmlDocPtr cur); 86 | XMLPUBFUN int XMLCALL 87 | htmlSaveFile (const char *filename, 88 | xmlDocPtr cur); 89 | XMLPUBFUN int XMLCALL 90 | htmlNodeDump (xmlBufferPtr buf, 91 | xmlDocPtr doc, 92 | xmlNodePtr cur); 93 | XMLPUBFUN void XMLCALL 94 | htmlNodeDumpFile (FILE *out, 95 | xmlDocPtr doc, 96 | xmlNodePtr cur); 97 | XMLPUBFUN int XMLCALL 98 | htmlNodeDumpFileFormat (FILE *out, 99 | xmlDocPtr doc, 100 | xmlNodePtr cur, 101 | const char *encoding, 102 | int format); 103 | XMLPUBFUN int XMLCALL 104 | htmlSaveFileEnc (const char *filename, 105 | xmlDocPtr cur, 106 | const char *encoding); 107 | XMLPUBFUN int XMLCALL 108 | htmlSaveFileFormat (const char *filename, 109 | xmlDocPtr cur, 110 | const char *encoding, 111 | int format); 112 | 113 | XMLPUBFUN void XMLCALL 114 | htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, 115 | xmlDocPtr doc, 116 | xmlNodePtr cur, 117 | const char *encoding, 118 | int format); 119 | XMLPUBFUN void XMLCALL 120 | htmlDocContentDumpOutput(xmlOutputBufferPtr buf, 121 | xmlDocPtr cur, 122 | const char *encoding); 123 | XMLPUBFUN void XMLCALL 124 | htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf, 125 | xmlDocPtr cur, 126 | const char *encoding, 127 | int format); 128 | XMLPUBFUN void XMLCALL 129 | htmlNodeDumpOutput (xmlOutputBufferPtr buf, 130 | xmlDocPtr doc, 131 | xmlNodePtr cur, 132 | const char *encoding); 133 | 134 | #endif /* LIBXML_OUTPUT_ENABLED */ 135 | 136 | XMLPUBFUN int XMLCALL 137 | htmlIsBooleanAttr (const xmlChar *name); 138 | 139 | 140 | #ifdef __cplusplus 141 | } 142 | #endif 143 | 144 | #endif /* LIBXML_HTML_ENABLED */ 145 | 146 | #endif /* __HTML_TREE_H__ */ 147 | 148 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | 3 | xmlincdir = $(includedir)/libxml2/libxml 4 | 5 | xmlinc_HEADERS = \ 6 | SAX.h \ 7 | entities.h \ 8 | encoding.h \ 9 | parser.h \ 10 | parserInternals.h \ 11 | xmlerror.h \ 12 | HTMLparser.h \ 13 | HTMLtree.h \ 14 | debugXML.h \ 15 | tree.h \ 16 | list.h \ 17 | hash.h \ 18 | xpath.h \ 19 | xpathInternals.h \ 20 | xpointer.h \ 21 | xinclude.h \ 22 | xmlIO.h \ 23 | xmlmemory.h \ 24 | nanohttp.h \ 25 | nanoftp.h \ 26 | uri.h \ 27 | valid.h \ 28 | xlink.h \ 29 | xmlversion.h \ 30 | DOCBparser.h \ 31 | catalog.h \ 32 | threads.h \ 33 | globals.h \ 34 | c14n.h \ 35 | xmlautomata.h \ 36 | xmlregexp.h \ 37 | xmlmodule.h \ 38 | xmlschemas.h \ 39 | schemasInternals.h \ 40 | xmlschemastypes.h \ 41 | xmlstring.h \ 42 | xmlunicode.h \ 43 | xmlreader.h \ 44 | relaxng.h \ 45 | dict.h \ 46 | SAX2.h \ 47 | xmlexports.h \ 48 | xmlwriter.h \ 49 | chvalid.h \ 50 | pattern.h \ 51 | xmlsave.h \ 52 | schematron.h 53 | 54 | EXTRA_DIST = xmlversion.h.in 55 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/SAX.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: Old SAX version 1 handler, deprecated 3 | * Description: DEPRECATED set of SAX version 1 interfaces used to 4 | * build the DOM tree. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | 12 | #ifndef __XML_SAX_H__ 13 | #define __XML_SAX_H__ 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | #ifdef LIBXML_LEGACY_ENABLED 22 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif 26 | XMLPUBFUN const xmlChar * XMLCALL 27 | getPublicId (void *ctx); 28 | XMLPUBFUN const xmlChar * XMLCALL 29 | getSystemId (void *ctx); 30 | XMLPUBFUN void XMLCALL 31 | setDocumentLocator (void *ctx, 32 | xmlSAXLocatorPtr loc); 33 | 34 | XMLPUBFUN int XMLCALL 35 | getLineNumber (void *ctx); 36 | XMLPUBFUN int XMLCALL 37 | getColumnNumber (void *ctx); 38 | 39 | XMLPUBFUN int XMLCALL 40 | isStandalone (void *ctx); 41 | XMLPUBFUN int XMLCALL 42 | hasInternalSubset (void *ctx); 43 | XMLPUBFUN int XMLCALL 44 | hasExternalSubset (void *ctx); 45 | 46 | XMLPUBFUN void XMLCALL 47 | internalSubset (void *ctx, 48 | const xmlChar *name, 49 | const xmlChar *ExternalID, 50 | const xmlChar *SystemID); 51 | XMLPUBFUN void XMLCALL 52 | externalSubset (void *ctx, 53 | const xmlChar *name, 54 | const xmlChar *ExternalID, 55 | const xmlChar *SystemID); 56 | XMLPUBFUN xmlEntityPtr XMLCALL 57 | getEntity (void *ctx, 58 | const xmlChar *name); 59 | XMLPUBFUN xmlEntityPtr XMLCALL 60 | getParameterEntity (void *ctx, 61 | const xmlChar *name); 62 | XMLPUBFUN xmlParserInputPtr XMLCALL 63 | resolveEntity (void *ctx, 64 | const xmlChar *publicId, 65 | const xmlChar *systemId); 66 | 67 | XMLPUBFUN void XMLCALL 68 | entityDecl (void *ctx, 69 | const xmlChar *name, 70 | int type, 71 | const xmlChar *publicId, 72 | const xmlChar *systemId, 73 | xmlChar *content); 74 | XMLPUBFUN void XMLCALL 75 | attributeDecl (void *ctx, 76 | const xmlChar *elem, 77 | const xmlChar *fullname, 78 | int type, 79 | int def, 80 | const xmlChar *defaultValue, 81 | xmlEnumerationPtr tree); 82 | XMLPUBFUN void XMLCALL 83 | elementDecl (void *ctx, 84 | const xmlChar *name, 85 | int type, 86 | xmlElementContentPtr content); 87 | XMLPUBFUN void XMLCALL 88 | notationDecl (void *ctx, 89 | const xmlChar *name, 90 | const xmlChar *publicId, 91 | const xmlChar *systemId); 92 | XMLPUBFUN void XMLCALL 93 | unparsedEntityDecl (void *ctx, 94 | const xmlChar *name, 95 | const xmlChar *publicId, 96 | const xmlChar *systemId, 97 | const xmlChar *notationName); 98 | 99 | XMLPUBFUN void XMLCALL 100 | startDocument (void *ctx); 101 | XMLPUBFUN void XMLCALL 102 | endDocument (void *ctx); 103 | XMLPUBFUN void XMLCALL 104 | attribute (void *ctx, 105 | const xmlChar *fullname, 106 | const xmlChar *value); 107 | XMLPUBFUN void XMLCALL 108 | startElement (void *ctx, 109 | const xmlChar *fullname, 110 | const xmlChar **atts); 111 | XMLPUBFUN void XMLCALL 112 | endElement (void *ctx, 113 | const xmlChar *name); 114 | XMLPUBFUN void XMLCALL 115 | reference (void *ctx, 116 | const xmlChar *name); 117 | XMLPUBFUN void XMLCALL 118 | characters (void *ctx, 119 | const xmlChar *ch, 120 | int len); 121 | XMLPUBFUN void XMLCALL 122 | ignorableWhitespace (void *ctx, 123 | const xmlChar *ch, 124 | int len); 125 | XMLPUBFUN void XMLCALL 126 | processingInstruction (void *ctx, 127 | const xmlChar *target, 128 | const xmlChar *data); 129 | XMLPUBFUN void XMLCALL 130 | globalNamespace (void *ctx, 131 | const xmlChar *href, 132 | const xmlChar *prefix); 133 | XMLPUBFUN void XMLCALL 134 | setNamespace (void *ctx, 135 | const xmlChar *name); 136 | XMLPUBFUN xmlNsPtr XMLCALL 137 | getNamespace (void *ctx); 138 | XMLPUBFUN int XMLCALL 139 | checkNamespace (void *ctx, 140 | xmlChar *nameSpace); 141 | XMLPUBFUN void XMLCALL 142 | namespaceDecl (void *ctx, 143 | const xmlChar *href, 144 | const xmlChar *prefix); 145 | XMLPUBFUN void XMLCALL 146 | comment (void *ctx, 147 | const xmlChar *value); 148 | XMLPUBFUN void XMLCALL 149 | cdataBlock (void *ctx, 150 | const xmlChar *value, 151 | int len); 152 | 153 | #ifdef LIBXML_SAX1_ENABLED 154 | XMLPUBFUN void XMLCALL 155 | initxmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr, 156 | int warning); 157 | #ifdef LIBXML_HTML_ENABLED 158 | XMLPUBFUN void XMLCALL 159 | inithtmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr); 160 | #endif 161 | #ifdef LIBXML_DOCB_ENABLED 162 | XMLPUBFUN void XMLCALL 163 | initdocbDefaultSAXHandler (xmlSAXHandlerV1 *hdlr); 164 | #endif 165 | #endif /* LIBXML_SAX1_ENABLED */ 166 | 167 | #ifdef __cplusplus 168 | } 169 | #endif 170 | 171 | #endif /* LIBXML_LEGACY_ENABLED */ 172 | 173 | #endif /* __XML_SAX_H__ */ 174 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/c14n.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: Provide Canonical XML and Exclusive XML Canonicalization 3 | * Description: the c14n modules provides a 4 | * 5 | * "Canonical XML" implementation 6 | * http://www.w3.org/TR/xml-c14n 7 | * 8 | * and an 9 | * 10 | * "Exclusive XML Canonicalization" implementation 11 | * http://www.w3.org/TR/xml-exc-c14n 12 | 13 | * Copy: See Copyright for the status of this software. 14 | * 15 | * Author: Aleksey Sanin 16 | */ 17 | #ifndef __XML_C14N_H__ 18 | #define __XML_C14N_H__ 19 | #ifdef LIBXML_C14N_ENABLED 20 | #ifdef LIBXML_OUTPUT_ENABLED 21 | 22 | #ifdef __cplusplus 23 | extern "C" { 24 | #endif /* __cplusplus */ 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | /* 31 | * XML Canonicazation 32 | * http://www.w3.org/TR/xml-c14n 33 | * 34 | * Exclusive XML Canonicazation 35 | * http://www.w3.org/TR/xml-exc-c14n 36 | * 37 | * Canonical form of an XML document could be created if and only if 38 | * a) default attributes (if any) are added to all nodes 39 | * b) all character and parsed entity references are resolved 40 | * In order to achive this in libxml2 the document MUST be loaded with 41 | * following global setings: 42 | * 43 | * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; 44 | * xmlSubstituteEntitiesDefault(1); 45 | * 46 | * or corresponding parser context setting: 47 | * xmlParserCtxtPtr ctxt; 48 | * 49 | * ... 50 | * ctxt->loadsubset = XML_DETECT_IDS | XML_COMPLETE_ATTRS; 51 | * ctxt->replaceEntities = 1; 52 | * ... 53 | */ 54 | 55 | /* 56 | * xmlC14NMode: 57 | * 58 | * Predefined values for C14N modes 59 | * 60 | */ 61 | typedef enum { 62 | XML_C14N_1_0 = 0, /* Origianal C14N 1.0 spec */ 63 | XML_C14N_EXCLUSIVE_1_0 = 1, /* Exclusive C14N 1.0 spec */ 64 | XML_C14N_1_1 = 2 /* C14N 1.1 spec */ 65 | } xmlC14NMode; 66 | 67 | XMLPUBFUN int XMLCALL 68 | xmlC14NDocSaveTo (xmlDocPtr doc, 69 | xmlNodeSetPtr nodes, 70 | int mode, /* a xmlC14NMode */ 71 | xmlChar **inclusive_ns_prefixes, 72 | int with_comments, 73 | xmlOutputBufferPtr buf); 74 | 75 | XMLPUBFUN int XMLCALL 76 | xmlC14NDocDumpMemory (xmlDocPtr doc, 77 | xmlNodeSetPtr nodes, 78 | int mode, /* a xmlC14NMode */ 79 | xmlChar **inclusive_ns_prefixes, 80 | int with_comments, 81 | xmlChar **doc_txt_ptr); 82 | 83 | XMLPUBFUN int XMLCALL 84 | xmlC14NDocSave (xmlDocPtr doc, 85 | xmlNodeSetPtr nodes, 86 | int mode, /* a xmlC14NMode */ 87 | xmlChar **inclusive_ns_prefixes, 88 | int with_comments, 89 | const char* filename, 90 | int compression); 91 | 92 | 93 | /** 94 | * This is the core C14N function 95 | */ 96 | /** 97 | * xmlC14NIsVisibleCallback: 98 | * @user_data: user data 99 | * @node: the curent node 100 | * @parent: the parent node 101 | * 102 | * Signature for a C14N callback on visible nodes 103 | * 104 | * Returns 1 if the node should be included 105 | */ 106 | typedef int (*xmlC14NIsVisibleCallback) (void* user_data, 107 | xmlNodePtr node, 108 | xmlNodePtr parent); 109 | 110 | XMLPUBFUN int XMLCALL 111 | xmlC14NExecute (xmlDocPtr doc, 112 | xmlC14NIsVisibleCallback is_visible_callback, 113 | void* user_data, 114 | int mode, /* a xmlC14NMode */ 115 | xmlChar **inclusive_ns_prefixes, 116 | int with_comments, 117 | xmlOutputBufferPtr buf); 118 | 119 | #ifdef __cplusplus 120 | } 121 | #endif /* __cplusplus */ 122 | 123 | #endif /* LIBXML_OUTPUT_ENABLED */ 124 | #endif /* LIBXML_C14N_ENABLED */ 125 | #endif /* __XML_C14N_H__ */ 126 | 127 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/dict.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: string dictionnary 3 | * Description: dictionary of reusable strings, just used to avoid allocation 4 | * and freeing operations. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __XML_DICT_H__ 12 | #define __XML_DICT_H__ 13 | 14 | #include 15 | #include 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* 23 | * The dictionnary. 24 | */ 25 | typedef struct _xmlDict xmlDict; 26 | typedef xmlDict *xmlDictPtr; 27 | 28 | /* 29 | * Initializer 30 | */ 31 | XMLPUBFUN int XMLCALL xmlInitializeDict(void); 32 | 33 | /* 34 | * Constructor and destructor. 35 | */ 36 | XMLPUBFUN xmlDictPtr XMLCALL 37 | xmlDictCreate (void); 38 | XMLPUBFUN size_t XMLCALL 39 | xmlDictSetLimit (xmlDictPtr dict, 40 | size_t limit); 41 | XMLPUBFUN size_t XMLCALL 42 | xmlDictGetUsage (xmlDictPtr dict); 43 | XMLPUBFUN xmlDictPtr XMLCALL 44 | xmlDictCreateSub(xmlDictPtr sub); 45 | XMLPUBFUN int XMLCALL 46 | xmlDictReference(xmlDictPtr dict); 47 | XMLPUBFUN void XMLCALL 48 | xmlDictFree (xmlDictPtr dict); 49 | 50 | /* 51 | * Lookup of entry in the dictionnary. 52 | */ 53 | XMLPUBFUN const xmlChar * XMLCALL 54 | xmlDictLookup (xmlDictPtr dict, 55 | const xmlChar *name, 56 | int len); 57 | XMLPUBFUN const xmlChar * XMLCALL 58 | xmlDictExists (xmlDictPtr dict, 59 | const xmlChar *name, 60 | int len); 61 | XMLPUBFUN const xmlChar * XMLCALL 62 | xmlDictQLookup (xmlDictPtr dict, 63 | const xmlChar *prefix, 64 | const xmlChar *name); 65 | XMLPUBFUN int XMLCALL 66 | xmlDictOwns (xmlDictPtr dict, 67 | const xmlChar *str); 68 | XMLPUBFUN int XMLCALL 69 | xmlDictSize (xmlDictPtr dict); 70 | 71 | /* 72 | * Cleanup function 73 | */ 74 | XMLPUBFUN void XMLCALL 75 | xmlDictCleanup (void); 76 | 77 | #ifdef __cplusplus 78 | } 79 | #endif 80 | #endif /* ! __XML_DICT_H__ */ 81 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/entities.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: interface for the XML entities handling 3 | * Description: this module provides some of the entity API needed 4 | * for the parser and applications. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __XML_ENTITIES_H__ 12 | #define __XML_ENTITIES_H__ 13 | 14 | #include 15 | #include 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | /* 22 | * The different valid entity types. 23 | */ 24 | typedef enum { 25 | XML_INTERNAL_GENERAL_ENTITY = 1, 26 | XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2, 27 | XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3, 28 | XML_INTERNAL_PARAMETER_ENTITY = 4, 29 | XML_EXTERNAL_PARAMETER_ENTITY = 5, 30 | XML_INTERNAL_PREDEFINED_ENTITY = 6 31 | } xmlEntityType; 32 | 33 | /* 34 | * An unit of storage for an entity, contains the string, the value 35 | * and the linkind data needed for the linking in the hash table. 36 | */ 37 | 38 | struct _xmlEntity { 39 | void *_private; /* application data */ 40 | xmlElementType type; /* XML_ENTITY_DECL, must be second ! */ 41 | const xmlChar *name; /* Entity name */ 42 | struct _xmlNode *children; /* First child link */ 43 | struct _xmlNode *last; /* Last child link */ 44 | struct _xmlDtd *parent; /* -> DTD */ 45 | struct _xmlNode *next; /* next sibling link */ 46 | struct _xmlNode *prev; /* previous sibling link */ 47 | struct _xmlDoc *doc; /* the containing document */ 48 | 49 | xmlChar *orig; /* content without ref substitution */ 50 | xmlChar *content; /* content or ndata if unparsed */ 51 | int length; /* the content length */ 52 | xmlEntityType etype; /* The entity type */ 53 | const xmlChar *ExternalID; /* External identifier for PUBLIC */ 54 | const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */ 55 | 56 | struct _xmlEntity *nexte; /* unused */ 57 | const xmlChar *URI; /* the full URI as computed */ 58 | int owner; /* does the entity own the childrens */ 59 | int checked; /* was the entity content checked */ 60 | /* this is also used to count entites 61 | * references done from that entity */ 62 | }; 63 | 64 | /* 65 | * All entities are stored in an hash table. 66 | * There is 2 separate hash tables for global and parameter entities. 67 | */ 68 | 69 | typedef struct _xmlHashTable xmlEntitiesTable; 70 | typedef xmlEntitiesTable *xmlEntitiesTablePtr; 71 | 72 | /* 73 | * External functions: 74 | */ 75 | 76 | #ifdef LIBXML_LEGACY_ENABLED 77 | XMLPUBFUN void XMLCALL 78 | xmlInitializePredefinedEntities (void); 79 | #endif /* LIBXML_LEGACY_ENABLED */ 80 | 81 | XMLPUBFUN xmlEntityPtr XMLCALL 82 | xmlNewEntity (xmlDocPtr doc, 83 | const xmlChar *name, 84 | int type, 85 | const xmlChar *ExternalID, 86 | const xmlChar *SystemID, 87 | const xmlChar *content); 88 | XMLPUBFUN xmlEntityPtr XMLCALL 89 | xmlAddDocEntity (xmlDocPtr doc, 90 | const xmlChar *name, 91 | int type, 92 | const xmlChar *ExternalID, 93 | const xmlChar *SystemID, 94 | const xmlChar *content); 95 | XMLPUBFUN xmlEntityPtr XMLCALL 96 | xmlAddDtdEntity (xmlDocPtr doc, 97 | const xmlChar *name, 98 | int type, 99 | const xmlChar *ExternalID, 100 | const xmlChar *SystemID, 101 | const xmlChar *content); 102 | XMLPUBFUN xmlEntityPtr XMLCALL 103 | xmlGetPredefinedEntity (const xmlChar *name); 104 | XMLPUBFUN xmlEntityPtr XMLCALL 105 | xmlGetDocEntity (xmlDocPtr doc, 106 | const xmlChar *name); 107 | XMLPUBFUN xmlEntityPtr XMLCALL 108 | xmlGetDtdEntity (xmlDocPtr doc, 109 | const xmlChar *name); 110 | XMLPUBFUN xmlEntityPtr XMLCALL 111 | xmlGetParameterEntity (xmlDocPtr doc, 112 | const xmlChar *name); 113 | #ifdef LIBXML_LEGACY_ENABLED 114 | XMLPUBFUN const xmlChar * XMLCALL 115 | xmlEncodeEntities (xmlDocPtr doc, 116 | const xmlChar *input); 117 | #endif /* LIBXML_LEGACY_ENABLED */ 118 | XMLPUBFUN xmlChar * XMLCALL 119 | xmlEncodeEntitiesReentrant(xmlDocPtr doc, 120 | const xmlChar *input); 121 | XMLPUBFUN xmlChar * XMLCALL 122 | xmlEncodeSpecialChars (xmlDocPtr doc, 123 | const xmlChar *input); 124 | XMLPUBFUN xmlEntitiesTablePtr XMLCALL 125 | xmlCreateEntitiesTable (void); 126 | #ifdef LIBXML_TREE_ENABLED 127 | XMLPUBFUN xmlEntitiesTablePtr XMLCALL 128 | xmlCopyEntitiesTable (xmlEntitiesTablePtr table); 129 | #endif /* LIBXML_TREE_ENABLED */ 130 | XMLPUBFUN void XMLCALL 131 | xmlFreeEntitiesTable (xmlEntitiesTablePtr table); 132 | #ifdef LIBXML_OUTPUT_ENABLED 133 | XMLPUBFUN void XMLCALL 134 | xmlDumpEntitiesTable (xmlBufferPtr buf, 135 | xmlEntitiesTablePtr table); 136 | XMLPUBFUN void XMLCALL 137 | xmlDumpEntityDecl (xmlBufferPtr buf, 138 | xmlEntityPtr ent); 139 | #endif /* LIBXML_OUTPUT_ENABLED */ 140 | #ifdef LIBXML_LEGACY_ENABLED 141 | XMLPUBFUN void XMLCALL 142 | xmlCleanupPredefinedEntities(void); 143 | #endif /* LIBXML_LEGACY_ENABLED */ 144 | 145 | 146 | #ifdef __cplusplus 147 | } 148 | #endif 149 | 150 | # endif /* __XML_ENTITIES_H__ */ 151 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/list.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: lists interfaces 3 | * Description: this module implement the list support used in 4 | * various place in the library. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Gary Pennington 9 | */ 10 | 11 | #ifndef __XML_LINK_INCLUDE__ 12 | #define __XML_LINK_INCLUDE__ 13 | 14 | #include 15 | 16 | #ifdef __cplusplus 17 | extern "C" { 18 | #endif 19 | 20 | typedef struct _xmlLink xmlLink; 21 | typedef xmlLink *xmlLinkPtr; 22 | 23 | typedef struct _xmlList xmlList; 24 | typedef xmlList *xmlListPtr; 25 | 26 | /** 27 | * xmlListDeallocator: 28 | * @lk: the data to deallocate 29 | * 30 | * Callback function used to free data from a list. 31 | */ 32 | typedef void (*xmlListDeallocator) (xmlLinkPtr lk); 33 | /** 34 | * xmlListDataCompare: 35 | * @data0: the first data 36 | * @data1: the second data 37 | * 38 | * Callback function used to compare 2 data. 39 | * 40 | * Returns 0 is equality, -1 or 1 otherwise depending on the ordering. 41 | */ 42 | typedef int (*xmlListDataCompare) (const void *data0, const void *data1); 43 | /** 44 | * xmlListWalker: 45 | * @data: the data found in the list 46 | * @user: extra user provided data to the walker 47 | * 48 | * Callback function used when walking a list with xmlListWalk(). 49 | * 50 | * Returns 0 to stop walking the list, 1 otherwise. 51 | */ 52 | typedef int (*xmlListWalker) (const void *data, const void *user); 53 | 54 | /* Creation/Deletion */ 55 | XMLPUBFUN xmlListPtr XMLCALL 56 | xmlListCreate (xmlListDeallocator deallocator, 57 | xmlListDataCompare compare); 58 | XMLPUBFUN void XMLCALL 59 | xmlListDelete (xmlListPtr l); 60 | 61 | /* Basic Operators */ 62 | XMLPUBFUN void * XMLCALL 63 | xmlListSearch (xmlListPtr l, 64 | void *data); 65 | XMLPUBFUN void * XMLCALL 66 | xmlListReverseSearch (xmlListPtr l, 67 | void *data); 68 | XMLPUBFUN int XMLCALL 69 | xmlListInsert (xmlListPtr l, 70 | void *data) ; 71 | XMLPUBFUN int XMLCALL 72 | xmlListAppend (xmlListPtr l, 73 | void *data) ; 74 | XMLPUBFUN int XMLCALL 75 | xmlListRemoveFirst (xmlListPtr l, 76 | void *data); 77 | XMLPUBFUN int XMLCALL 78 | xmlListRemoveLast (xmlListPtr l, 79 | void *data); 80 | XMLPUBFUN int XMLCALL 81 | xmlListRemoveAll (xmlListPtr l, 82 | void *data); 83 | XMLPUBFUN void XMLCALL 84 | xmlListClear (xmlListPtr l); 85 | XMLPUBFUN int XMLCALL 86 | xmlListEmpty (xmlListPtr l); 87 | XMLPUBFUN xmlLinkPtr XMLCALL 88 | xmlListFront (xmlListPtr l); 89 | XMLPUBFUN xmlLinkPtr XMLCALL 90 | xmlListEnd (xmlListPtr l); 91 | XMLPUBFUN int XMLCALL 92 | xmlListSize (xmlListPtr l); 93 | 94 | XMLPUBFUN void XMLCALL 95 | xmlListPopFront (xmlListPtr l); 96 | XMLPUBFUN void XMLCALL 97 | xmlListPopBack (xmlListPtr l); 98 | XMLPUBFUN int XMLCALL 99 | xmlListPushFront (xmlListPtr l, 100 | void *data); 101 | XMLPUBFUN int XMLCALL 102 | xmlListPushBack (xmlListPtr l, 103 | void *data); 104 | 105 | /* Advanced Operators */ 106 | XMLPUBFUN void XMLCALL 107 | xmlListReverse (xmlListPtr l); 108 | XMLPUBFUN void XMLCALL 109 | xmlListSort (xmlListPtr l); 110 | XMLPUBFUN void XMLCALL 111 | xmlListWalk (xmlListPtr l, 112 | xmlListWalker walker, 113 | const void *user); 114 | XMLPUBFUN void XMLCALL 115 | xmlListReverseWalk (xmlListPtr l, 116 | xmlListWalker walker, 117 | const void *user); 118 | XMLPUBFUN void XMLCALL 119 | xmlListMerge (xmlListPtr l1, 120 | xmlListPtr l2); 121 | XMLPUBFUN xmlListPtr XMLCALL 122 | xmlListDup (const xmlListPtr old); 123 | XMLPUBFUN int XMLCALL 124 | xmlListCopy (xmlListPtr cur, 125 | const xmlListPtr old); 126 | /* Link operators */ 127 | XMLPUBFUN void * XMLCALL 128 | xmlLinkGetData (xmlLinkPtr lk); 129 | 130 | /* xmlListUnique() */ 131 | /* xmlListSwap */ 132 | 133 | #ifdef __cplusplus 134 | } 135 | #endif 136 | 137 | #endif /* __XML_LINK_INCLUDE__ */ 138 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/nanoftp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: minimal FTP implementation 3 | * Description: minimal FTP implementation allowing to fetch resources 4 | * like external subset. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __NANO_FTP_H__ 12 | #define __NANO_FTP_H__ 13 | 14 | #include 15 | 16 | #ifdef LIBXML_FTP_ENABLED 17 | 18 | /* Needed for portability to Windows 64 bits */ 19 | #if defined(__MINGW32__) || defined(_WIN32_WCE) 20 | #include 21 | #else 22 | /** 23 | * SOCKET: 24 | * 25 | * macro used to provide portability of code to windows sockets 26 | */ 27 | #define SOCKET int 28 | /** 29 | * INVALID_SOCKET: 30 | * 31 | * macro used to provide portability of code to windows sockets 32 | * the value to be used when the socket is not valid 33 | */ 34 | #undef INVALID_SOCKET 35 | #define INVALID_SOCKET (-1) 36 | #endif 37 | 38 | #ifdef __cplusplus 39 | extern "C" { 40 | #endif 41 | 42 | /** 43 | * ftpListCallback: 44 | * @userData: user provided data for the callback 45 | * @filename: the file name (including "->" when links are shown) 46 | * @attrib: the attribute string 47 | * @owner: the owner string 48 | * @group: the group string 49 | * @size: the file size 50 | * @links: the link count 51 | * @year: the year 52 | * @month: the month 53 | * @day: the day 54 | * @hour: the hour 55 | * @minute: the minute 56 | * 57 | * A callback for the xmlNanoFTPList command. 58 | * Note that only one of year and day:minute are specified. 59 | */ 60 | typedef void (*ftpListCallback) (void *userData, 61 | const char *filename, const char *attrib, 62 | const char *owner, const char *group, 63 | unsigned long size, int links, int year, 64 | const char *month, int day, int hour, 65 | int minute); 66 | /** 67 | * ftpDataCallback: 68 | * @userData: the user provided context 69 | * @data: the data received 70 | * @len: its size in bytes 71 | * 72 | * A callback for the xmlNanoFTPGet command. 73 | */ 74 | typedef void (*ftpDataCallback) (void *userData, 75 | const char *data, 76 | int len); 77 | 78 | /* 79 | * Init 80 | */ 81 | XMLPUBFUN void XMLCALL 82 | xmlNanoFTPInit (void); 83 | XMLPUBFUN void XMLCALL 84 | xmlNanoFTPCleanup (void); 85 | 86 | /* 87 | * Creating/freeing contexts. 88 | */ 89 | XMLPUBFUN void * XMLCALL 90 | xmlNanoFTPNewCtxt (const char *URL); 91 | XMLPUBFUN void XMLCALL 92 | xmlNanoFTPFreeCtxt (void * ctx); 93 | XMLPUBFUN void * XMLCALL 94 | xmlNanoFTPConnectTo (const char *server, 95 | int port); 96 | /* 97 | * Opening/closing session connections. 98 | */ 99 | XMLPUBFUN void * XMLCALL 100 | xmlNanoFTPOpen (const char *URL); 101 | XMLPUBFUN int XMLCALL 102 | xmlNanoFTPConnect (void *ctx); 103 | XMLPUBFUN int XMLCALL 104 | xmlNanoFTPClose (void *ctx); 105 | XMLPUBFUN int XMLCALL 106 | xmlNanoFTPQuit (void *ctx); 107 | XMLPUBFUN void XMLCALL 108 | xmlNanoFTPScanProxy (const char *URL); 109 | XMLPUBFUN void XMLCALL 110 | xmlNanoFTPProxy (const char *host, 111 | int port, 112 | const char *user, 113 | const char *passwd, 114 | int type); 115 | XMLPUBFUN int XMLCALL 116 | xmlNanoFTPUpdateURL (void *ctx, 117 | const char *URL); 118 | 119 | /* 120 | * Rather internal commands. 121 | */ 122 | XMLPUBFUN int XMLCALL 123 | xmlNanoFTPGetResponse (void *ctx); 124 | XMLPUBFUN int XMLCALL 125 | xmlNanoFTPCheckResponse (void *ctx); 126 | 127 | /* 128 | * CD/DIR/GET handlers. 129 | */ 130 | XMLPUBFUN int XMLCALL 131 | xmlNanoFTPCwd (void *ctx, 132 | const char *directory); 133 | XMLPUBFUN int XMLCALL 134 | xmlNanoFTPDele (void *ctx, 135 | const char *file); 136 | 137 | XMLPUBFUN SOCKET XMLCALL 138 | xmlNanoFTPGetConnection (void *ctx); 139 | XMLPUBFUN int XMLCALL 140 | xmlNanoFTPCloseConnection(void *ctx); 141 | XMLPUBFUN int XMLCALL 142 | xmlNanoFTPList (void *ctx, 143 | ftpListCallback callback, 144 | void *userData, 145 | const char *filename); 146 | XMLPUBFUN SOCKET XMLCALL 147 | xmlNanoFTPGetSocket (void *ctx, 148 | const char *filename); 149 | XMLPUBFUN int XMLCALL 150 | xmlNanoFTPGet (void *ctx, 151 | ftpDataCallback callback, 152 | void *userData, 153 | const char *filename); 154 | XMLPUBFUN int XMLCALL 155 | xmlNanoFTPRead (void *ctx, 156 | void *dest, 157 | int len); 158 | 159 | #ifdef __cplusplus 160 | } 161 | #endif 162 | #endif /* LIBXML_FTP_ENABLED */ 163 | #endif /* __NANO_FTP_H__ */ 164 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/nanohttp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: minimal HTTP implementation 3 | * Description: minimal HTTP implementation allowing to fetch resources 4 | * like external subset. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __NANO_HTTP_H__ 12 | #define __NANO_HTTP_H__ 13 | 14 | #include 15 | 16 | #ifdef LIBXML_HTTP_ENABLED 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | XMLPUBFUN void XMLCALL 22 | xmlNanoHTTPInit (void); 23 | XMLPUBFUN void XMLCALL 24 | xmlNanoHTTPCleanup (void); 25 | XMLPUBFUN void XMLCALL 26 | xmlNanoHTTPScanProxy (const char *URL); 27 | XMLPUBFUN int XMLCALL 28 | xmlNanoHTTPFetch (const char *URL, 29 | const char *filename, 30 | char **contentType); 31 | XMLPUBFUN void * XMLCALL 32 | xmlNanoHTTPMethod (const char *URL, 33 | const char *method, 34 | const char *input, 35 | char **contentType, 36 | const char *headers, 37 | int ilen); 38 | XMLPUBFUN void * XMLCALL 39 | xmlNanoHTTPMethodRedir (const char *URL, 40 | const char *method, 41 | const char *input, 42 | char **contentType, 43 | char **redir, 44 | const char *headers, 45 | int ilen); 46 | XMLPUBFUN void * XMLCALL 47 | xmlNanoHTTPOpen (const char *URL, 48 | char **contentType); 49 | XMLPUBFUN void * XMLCALL 50 | xmlNanoHTTPOpenRedir (const char *URL, 51 | char **contentType, 52 | char **redir); 53 | XMLPUBFUN int XMLCALL 54 | xmlNanoHTTPReturnCode (void *ctx); 55 | XMLPUBFUN const char * XMLCALL 56 | xmlNanoHTTPAuthHeader (void *ctx); 57 | XMLPUBFUN const char * XMLCALL 58 | xmlNanoHTTPRedir (void *ctx); 59 | XMLPUBFUN int XMLCALL 60 | xmlNanoHTTPContentLength( void * ctx ); 61 | XMLPUBFUN const char * XMLCALL 62 | xmlNanoHTTPEncoding (void *ctx); 63 | XMLPUBFUN const char * XMLCALL 64 | xmlNanoHTTPMimeType (void *ctx); 65 | XMLPUBFUN int XMLCALL 66 | xmlNanoHTTPRead (void *ctx, 67 | void *dest, 68 | int len); 69 | #ifdef LIBXML_OUTPUT_ENABLED 70 | XMLPUBFUN int XMLCALL 71 | xmlNanoHTTPSave (void *ctxt, 72 | const char *filename); 73 | #endif /* LIBXML_OUTPUT_ENABLED */ 74 | XMLPUBFUN void XMLCALL 75 | xmlNanoHTTPClose (void *ctx); 76 | #ifdef __cplusplus 77 | } 78 | #endif 79 | 80 | #endif /* LIBXML_HTTP_ENABLED */ 81 | #endif /* __NANO_HTTP_H__ */ 82 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/pattern.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: pattern expression handling 3 | * Description: allows to compile and test pattern expressions for nodes 4 | * either in a tree or based on a parser state. 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __XML_PATTERN_H__ 12 | #define __XML_PATTERN_H__ 13 | 14 | #include 15 | #include 16 | #include 17 | 18 | #ifdef LIBXML_PATTERN_ENABLED 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif 23 | 24 | /** 25 | * xmlPattern: 26 | * 27 | * A compiled (XPath based) pattern to select nodes 28 | */ 29 | typedef struct _xmlPattern xmlPattern; 30 | typedef xmlPattern *xmlPatternPtr; 31 | 32 | /** 33 | * xmlPatternFlags: 34 | * 35 | * This is the set of options affecting the behaviour of pattern 36 | * matching with this module 37 | * 38 | */ 39 | typedef enum { 40 | XML_PATTERN_DEFAULT = 0, /* simple pattern match */ 41 | XML_PATTERN_XPATH = 1<<0, /* standard XPath pattern */ 42 | XML_PATTERN_XSSEL = 1<<1, /* XPath subset for schema selector */ 43 | XML_PATTERN_XSFIELD = 1<<2 /* XPath subset for schema field */ 44 | } xmlPatternFlags; 45 | 46 | XMLPUBFUN void XMLCALL 47 | xmlFreePattern (xmlPatternPtr comp); 48 | 49 | XMLPUBFUN void XMLCALL 50 | xmlFreePatternList (xmlPatternPtr comp); 51 | 52 | XMLPUBFUN xmlPatternPtr XMLCALL 53 | xmlPatterncompile (const xmlChar *pattern, 54 | xmlDict *dict, 55 | int flags, 56 | const xmlChar **namespaces); 57 | XMLPUBFUN int XMLCALL 58 | xmlPatternMatch (xmlPatternPtr comp, 59 | xmlNodePtr node); 60 | 61 | /* streaming interfaces */ 62 | typedef struct _xmlStreamCtxt xmlStreamCtxt; 63 | typedef xmlStreamCtxt *xmlStreamCtxtPtr; 64 | 65 | XMLPUBFUN int XMLCALL 66 | xmlPatternStreamable (xmlPatternPtr comp); 67 | XMLPUBFUN int XMLCALL 68 | xmlPatternMaxDepth (xmlPatternPtr comp); 69 | XMLPUBFUN int XMLCALL 70 | xmlPatternMinDepth (xmlPatternPtr comp); 71 | XMLPUBFUN int XMLCALL 72 | xmlPatternFromRoot (xmlPatternPtr comp); 73 | XMLPUBFUN xmlStreamCtxtPtr XMLCALL 74 | xmlPatternGetStreamCtxt (xmlPatternPtr comp); 75 | XMLPUBFUN void XMLCALL 76 | xmlFreeStreamCtxt (xmlStreamCtxtPtr stream); 77 | XMLPUBFUN int XMLCALL 78 | xmlStreamPushNode (xmlStreamCtxtPtr stream, 79 | const xmlChar *name, 80 | const xmlChar *ns, 81 | int nodeType); 82 | XMLPUBFUN int XMLCALL 83 | xmlStreamPush (xmlStreamCtxtPtr stream, 84 | const xmlChar *name, 85 | const xmlChar *ns); 86 | XMLPUBFUN int XMLCALL 87 | xmlStreamPushAttr (xmlStreamCtxtPtr stream, 88 | const xmlChar *name, 89 | const xmlChar *ns); 90 | XMLPUBFUN int XMLCALL 91 | xmlStreamPop (xmlStreamCtxtPtr stream); 92 | XMLPUBFUN int XMLCALL 93 | xmlStreamWantsAnyNode (xmlStreamCtxtPtr stream); 94 | #ifdef __cplusplus 95 | } 96 | #endif 97 | 98 | #endif /* LIBXML_PATTERN_ENABLED */ 99 | 100 | #endif /* __XML_PATTERN_H__ */ 101 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/schematron.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: XML Schemastron implementation 3 | * Description: interface to the XML Schematron validity checking. 4 | * 5 | * Copy: See Copyright for the status of this software. 6 | * 7 | * Author: Daniel Veillard 8 | */ 9 | 10 | 11 | #ifndef __XML_SCHEMATRON_H__ 12 | #define __XML_SCHEMATRON_H__ 13 | 14 | #include 15 | 16 | #ifdef LIBXML_SCHEMATRON_ENABLED 17 | 18 | #include 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif 23 | 24 | typedef enum { 25 | XML_SCHEMATRON_OUT_QUIET = 1 << 0, /* quiet no report */ 26 | XML_SCHEMATRON_OUT_TEXT = 1 << 1, /* build a textual report */ 27 | XML_SCHEMATRON_OUT_XML = 1 << 2, /* output SVRL */ 28 | XML_SCHEMATRON_OUT_ERROR = 1 << 3, /* output via xmlStructuredErrorFunc */ 29 | XML_SCHEMATRON_OUT_FILE = 1 << 8, /* output to a file descriptor */ 30 | XML_SCHEMATRON_OUT_BUFFER = 1 << 9, /* output to a buffer */ 31 | XML_SCHEMATRON_OUT_IO = 1 << 10 /* output to I/O mechanism */ 32 | } xmlSchematronValidOptions; 33 | 34 | /** 35 | * The schemas related types are kept internal 36 | */ 37 | typedef struct _xmlSchematron xmlSchematron; 38 | typedef xmlSchematron *xmlSchematronPtr; 39 | 40 | /** 41 | * xmlSchematronValidityErrorFunc: 42 | * @ctx: the validation context 43 | * @msg: the message 44 | * @...: extra arguments 45 | * 46 | * Signature of an error callback from a Schematron validation 47 | */ 48 | typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...); 49 | 50 | /** 51 | * xmlSchematronValidityWarningFunc: 52 | * @ctx: the validation context 53 | * @msg: the message 54 | * @...: extra arguments 55 | * 56 | * Signature of a warning callback from a Schematron validation 57 | */ 58 | typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...); 59 | 60 | /** 61 | * A schemas validation context 62 | */ 63 | typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt; 64 | typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr; 65 | 66 | typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt; 67 | typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr; 68 | 69 | /* 70 | * Interfaces for parsing. 71 | */ 72 | XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL 73 | xmlSchematronNewParserCtxt (const char *URL); 74 | XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL 75 | xmlSchematronNewMemParserCtxt(const char *buffer, 76 | int size); 77 | XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL 78 | xmlSchematronNewDocParserCtxt(xmlDocPtr doc); 79 | XMLPUBFUN void XMLCALL 80 | xmlSchematronFreeParserCtxt (xmlSchematronParserCtxtPtr ctxt); 81 | /***** 82 | XMLPUBFUN void XMLCALL 83 | xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt, 84 | xmlSchematronValidityErrorFunc err, 85 | xmlSchematronValidityWarningFunc warn, 86 | void *ctx); 87 | XMLPUBFUN int XMLCALL 88 | xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt, 89 | xmlSchematronValidityErrorFunc * err, 90 | xmlSchematronValidityWarningFunc * warn, 91 | void **ctx); 92 | XMLPUBFUN int XMLCALL 93 | xmlSchematronIsValid (xmlSchematronValidCtxtPtr ctxt); 94 | *****/ 95 | XMLPUBFUN xmlSchematronPtr XMLCALL 96 | xmlSchematronParse (xmlSchematronParserCtxtPtr ctxt); 97 | XMLPUBFUN void XMLCALL 98 | xmlSchematronFree (xmlSchematronPtr schema); 99 | /* 100 | * Interfaces for validating 101 | */ 102 | XMLPUBFUN void XMLCALL 103 | xmlSchematronSetValidStructuredErrors( 104 | xmlSchematronValidCtxtPtr ctxt, 105 | xmlStructuredErrorFunc serror, 106 | void *ctx); 107 | /****** 108 | XMLPUBFUN void XMLCALL 109 | xmlSchematronSetValidErrors (xmlSchematronValidCtxtPtr ctxt, 110 | xmlSchematronValidityErrorFunc err, 111 | xmlSchematronValidityWarningFunc warn, 112 | void *ctx); 113 | XMLPUBFUN int XMLCALL 114 | xmlSchematronGetValidErrors (xmlSchematronValidCtxtPtr ctxt, 115 | xmlSchematronValidityErrorFunc *err, 116 | xmlSchematronValidityWarningFunc *warn, 117 | void **ctx); 118 | XMLPUBFUN int XMLCALL 119 | xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt, 120 | int options); 121 | XMLPUBFUN int XMLCALL 122 | xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt); 123 | XMLPUBFUN int XMLCALL 124 | xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt, 125 | xmlNodePtr elem); 126 | *******/ 127 | 128 | XMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL 129 | xmlSchematronNewValidCtxt (xmlSchematronPtr schema, 130 | int options); 131 | XMLPUBFUN void XMLCALL 132 | xmlSchematronFreeValidCtxt (xmlSchematronValidCtxtPtr ctxt); 133 | XMLPUBFUN int XMLCALL 134 | xmlSchematronValidateDoc (xmlSchematronValidCtxtPtr ctxt, 135 | xmlDocPtr instance); 136 | 137 | #ifdef __cplusplus 138 | } 139 | #endif 140 | 141 | #endif /* LIBXML_SCHEMATRON_ENABLED */ 142 | #endif /* __XML_SCHEMATRON_H__ */ 143 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/threads.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Summary: interfaces for thread handling 3 | * Description: set of generic threading related routines 4 | * should work with pthreads, Windows native or TLS threads 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __XML_THREADS_H__ 12 | #define __XML_THREADS_H__ 13 | 14 | #include 15 | 16 | #ifdef __cplusplus 17 | extern "C" { 18 | #endif 19 | 20 | /* 21 | * xmlMutex are a simple mutual exception locks. 22 | */ 23 | typedef struct _xmlMutex xmlMutex; 24 | typedef xmlMutex *xmlMutexPtr; 25 | 26 | /* 27 | * xmlRMutex are reentrant mutual exception locks. 28 | */ 29 | typedef struct _xmlRMutex xmlRMutex; 30 | typedef xmlRMutex *xmlRMutexPtr; 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | #include 36 | #ifdef __cplusplus 37 | extern "C" { 38 | #endif 39 | XMLPUBFUN xmlMutexPtr XMLCALL 40 | xmlNewMutex (void); 41 | XMLPUBFUN void XMLCALL 42 | xmlMutexLock (xmlMutexPtr tok); 43 | XMLPUBFUN void XMLCALL 44 | xmlMutexUnlock (xmlMutexPtr tok); 45 | XMLPUBFUN void XMLCALL 46 | xmlFreeMutex (xmlMutexPtr tok); 47 | 48 | XMLPUBFUN xmlRMutexPtr XMLCALL 49 | xmlNewRMutex (void); 50 | XMLPUBFUN void XMLCALL 51 | xmlRMutexLock (xmlRMutexPtr tok); 52 | XMLPUBFUN void XMLCALL 53 | xmlRMutexUnlock (xmlRMutexPtr tok); 54 | XMLPUBFUN void XMLCALL 55 | xmlFreeRMutex (xmlRMutexPtr tok); 56 | 57 | /* 58 | * Library wide APIs. 59 | */ 60 | XMLPUBFUN void XMLCALL 61 | xmlInitThreads (void); 62 | XMLPUBFUN void XMLCALL 63 | xmlLockLibrary (void); 64 | XMLPUBFUN void XMLCALL 65 | xmlUnlockLibrary(void); 66 | XMLPUBFUN int XMLCALL 67 | xmlGetThreadId (void); 68 | XMLPUBFUN int XMLCALL 69 | xmlIsMainThread (void); 70 | XMLPUBFUN void XMLCALL 71 | xmlCleanupThreads(void); 72 | XMLPUBFUN xmlGlobalStatePtr XMLCALL 73 | xmlGetGlobalState(void); 74 | 75 | #if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL) 76 | int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved); 77 | #endif 78 | 79 | #ifdef __cplusplus 80 | } 81 | #endif 82 | 83 | 84 | #endif /* __XML_THREADS_H__ */ 85 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/uri.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Summary: library of generic URI related routines 3 | * Description: library of generic URI related routines 4 | * Implements RFC 2396 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Daniel Veillard 9 | */ 10 | 11 | #ifndef __XML_URI_H__ 12 | #define __XML_URI_H__ 13 | 14 | #include 15 | #include 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | /** 22 | * xmlURI: 23 | * 24 | * A parsed URI reference. This is a struct containing the various fields 25 | * as described in RFC 2396 but separated for further processing. 26 | * 27 | * Note: query is a deprecated field which is incorrectly unescaped. 28 | * query_raw takes precedence over query if the former is set. 29 | * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127 30 | */ 31 | typedef struct _xmlURI xmlURI; 32 | typedef xmlURI *xmlURIPtr; 33 | struct _xmlURI { 34 | char *scheme; /* the URI scheme */ 35 | char *opaque; /* opaque part */ 36 | char *authority; /* the authority part */ 37 | char *server; /* the server part */ 38 | char *user; /* the user part */ 39 | int port; /* the port number */ 40 | char *path; /* the path string */ 41 | char *query; /* the query string (deprecated - use with caution) */ 42 | char *fragment; /* the fragment identifier */ 43 | int cleanup; /* parsing potentially unclean URI */ 44 | char *query_raw; /* the query string (as it appears in the URI) */ 45 | }; 46 | 47 | /* 48 | * This function is in tree.h: 49 | * xmlChar * xmlNodeGetBase (xmlDocPtr doc, 50 | * xmlNodePtr cur); 51 | */ 52 | XMLPUBFUN xmlURIPtr XMLCALL 53 | xmlCreateURI (void); 54 | XMLPUBFUN xmlChar * XMLCALL 55 | xmlBuildURI (const xmlChar *URI, 56 | const xmlChar *base); 57 | XMLPUBFUN xmlChar * XMLCALL 58 | xmlBuildRelativeURI (const xmlChar *URI, 59 | const xmlChar *base); 60 | XMLPUBFUN xmlURIPtr XMLCALL 61 | xmlParseURI (const char *str); 62 | XMLPUBFUN xmlURIPtr XMLCALL 63 | xmlParseURIRaw (const char *str, 64 | int raw); 65 | XMLPUBFUN int XMLCALL 66 | xmlParseURIReference (xmlURIPtr uri, 67 | const char *str); 68 | XMLPUBFUN xmlChar * XMLCALL 69 | xmlSaveUri (xmlURIPtr uri); 70 | XMLPUBFUN void XMLCALL 71 | xmlPrintURI (FILE *stream, 72 | xmlURIPtr uri); 73 | XMLPUBFUN xmlChar * XMLCALL 74 | xmlURIEscapeStr (const xmlChar *str, 75 | const xmlChar *list); 76 | XMLPUBFUN char * XMLCALL 77 | xmlURIUnescapeString (const char *str, 78 | int len, 79 | char *target); 80 | XMLPUBFUN int XMLCALL 81 | xmlNormalizeURIPath (char *path); 82 | XMLPUBFUN xmlChar * XMLCALL 83 | xmlURIEscape (const xmlChar *str); 84 | XMLPUBFUN void XMLCALL 85 | xmlFreeURI (xmlURIPtr uri); 86 | XMLPUBFUN xmlChar* XMLCALL 87 | xmlCanonicPath (const xmlChar *path); 88 | XMLPUBFUN xmlChar* XMLCALL 89 | xmlPathToURI (const xmlChar *path); 90 | 91 | #ifdef __cplusplus 92 | } 93 | #endif 94 | #endif /* __XML_URI_H__ */ 95 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/xinclude.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: implementation of XInclude 3 | * Description: API to handle XInclude processing, 4 | * implements the 5 | * World Wide Web Consortium Last Call Working Draft 10 November 2003 6 | * http://www.w3.org/TR/2003/WD-xinclude-20031110 7 | * 8 | * Copy: See Copyright for the status of this software. 9 | * 10 | * Author: Daniel Veillard 11 | */ 12 | 13 | #ifndef __XML_XINCLUDE_H__ 14 | #define __XML_XINCLUDE_H__ 15 | 16 | #include 17 | #include 18 | 19 | #ifdef LIBXML_XINCLUDE_ENABLED 20 | 21 | #ifdef __cplusplus 22 | extern "C" { 23 | #endif 24 | 25 | /** 26 | * XINCLUDE_NS: 27 | * 28 | * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude 29 | */ 30 | #define XINCLUDE_NS (const xmlChar *) "http://www.w3.org/2003/XInclude" 31 | /** 32 | * XINCLUDE_OLD_NS: 33 | * 34 | * Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude 35 | */ 36 | #define XINCLUDE_OLD_NS (const xmlChar *) "http://www.w3.org/2001/XInclude" 37 | /** 38 | * XINCLUDE_NODE: 39 | * 40 | * Macro defining "include" 41 | */ 42 | #define XINCLUDE_NODE (const xmlChar *) "include" 43 | /** 44 | * XINCLUDE_FALLBACK: 45 | * 46 | * Macro defining "fallback" 47 | */ 48 | #define XINCLUDE_FALLBACK (const xmlChar *) "fallback" 49 | /** 50 | * XINCLUDE_HREF: 51 | * 52 | * Macro defining "href" 53 | */ 54 | #define XINCLUDE_HREF (const xmlChar *) "href" 55 | /** 56 | * XINCLUDE_PARSE: 57 | * 58 | * Macro defining "parse" 59 | */ 60 | #define XINCLUDE_PARSE (const xmlChar *) "parse" 61 | /** 62 | * XINCLUDE_PARSE_XML: 63 | * 64 | * Macro defining "xml" 65 | */ 66 | #define XINCLUDE_PARSE_XML (const xmlChar *) "xml" 67 | /** 68 | * XINCLUDE_PARSE_TEXT: 69 | * 70 | * Macro defining "text" 71 | */ 72 | #define XINCLUDE_PARSE_TEXT (const xmlChar *) "text" 73 | /** 74 | * XINCLUDE_PARSE_ENCODING: 75 | * 76 | * Macro defining "encoding" 77 | */ 78 | #define XINCLUDE_PARSE_ENCODING (const xmlChar *) "encoding" 79 | /** 80 | * XINCLUDE_PARSE_XPOINTER: 81 | * 82 | * Macro defining "xpointer" 83 | */ 84 | #define XINCLUDE_PARSE_XPOINTER (const xmlChar *) "xpointer" 85 | 86 | typedef struct _xmlXIncludeCtxt xmlXIncludeCtxt; 87 | typedef xmlXIncludeCtxt *xmlXIncludeCtxtPtr; 88 | 89 | /* 90 | * standalone processing 91 | */ 92 | XMLPUBFUN int XMLCALL 93 | xmlXIncludeProcess (xmlDocPtr doc); 94 | XMLPUBFUN int XMLCALL 95 | xmlXIncludeProcessFlags (xmlDocPtr doc, 96 | int flags); 97 | XMLPUBFUN int XMLCALL 98 | xmlXIncludeProcessFlagsData(xmlDocPtr doc, 99 | int flags, 100 | void *data); 101 | XMLPUBFUN int XMLCALL 102 | xmlXIncludeProcessTreeFlagsData(xmlNodePtr tree, 103 | int flags, 104 | void *data); 105 | XMLPUBFUN int XMLCALL 106 | xmlXIncludeProcessTree (xmlNodePtr tree); 107 | XMLPUBFUN int XMLCALL 108 | xmlXIncludeProcessTreeFlags(xmlNodePtr tree, 109 | int flags); 110 | /* 111 | * contextual processing 112 | */ 113 | XMLPUBFUN xmlXIncludeCtxtPtr XMLCALL 114 | xmlXIncludeNewContext (xmlDocPtr doc); 115 | XMLPUBFUN int XMLCALL 116 | xmlXIncludeSetFlags (xmlXIncludeCtxtPtr ctxt, 117 | int flags); 118 | XMLPUBFUN void XMLCALL 119 | xmlXIncludeFreeContext (xmlXIncludeCtxtPtr ctxt); 120 | XMLPUBFUN int XMLCALL 121 | xmlXIncludeProcessNode (xmlXIncludeCtxtPtr ctxt, 122 | xmlNodePtr tree); 123 | #ifdef __cplusplus 124 | } 125 | #endif 126 | 127 | #endif /* LIBXML_XINCLUDE_ENABLED */ 128 | 129 | #endif /* __XML_XINCLUDE_H__ */ 130 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/xmlautomata.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: API to build regexp automata 3 | * Description: the API to build regexp automata 4 | * 5 | * Copy: See Copyright for the status of this software. 6 | * 7 | * Author: Daniel Veillard 8 | */ 9 | 10 | #ifndef __XML_AUTOMATA_H__ 11 | #define __XML_AUTOMATA_H__ 12 | 13 | #include 14 | #include 15 | 16 | #ifdef LIBXML_REGEXP_ENABLED 17 | #ifdef LIBXML_AUTOMATA_ENABLED 18 | #include 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif 23 | 24 | /** 25 | * xmlAutomataPtr: 26 | * 27 | * A libxml automata description, It can be compiled into a regexp 28 | */ 29 | typedef struct _xmlAutomata xmlAutomata; 30 | typedef xmlAutomata *xmlAutomataPtr; 31 | 32 | /** 33 | * xmlAutomataStatePtr: 34 | * 35 | * A state int the automata description, 36 | */ 37 | typedef struct _xmlAutomataState xmlAutomataState; 38 | typedef xmlAutomataState *xmlAutomataStatePtr; 39 | 40 | /* 41 | * Building API 42 | */ 43 | XMLPUBFUN xmlAutomataPtr XMLCALL 44 | xmlNewAutomata (void); 45 | XMLPUBFUN void XMLCALL 46 | xmlFreeAutomata (xmlAutomataPtr am); 47 | 48 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 49 | xmlAutomataGetInitState (xmlAutomataPtr am); 50 | XMLPUBFUN int XMLCALL 51 | xmlAutomataSetFinalState (xmlAutomataPtr am, 52 | xmlAutomataStatePtr state); 53 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 54 | xmlAutomataNewState (xmlAutomataPtr am); 55 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 56 | xmlAutomataNewTransition (xmlAutomataPtr am, 57 | xmlAutomataStatePtr from, 58 | xmlAutomataStatePtr to, 59 | const xmlChar *token, 60 | void *data); 61 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 62 | xmlAutomataNewTransition2 (xmlAutomataPtr am, 63 | xmlAutomataStatePtr from, 64 | xmlAutomataStatePtr to, 65 | const xmlChar *token, 66 | const xmlChar *token2, 67 | void *data); 68 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 69 | xmlAutomataNewNegTrans (xmlAutomataPtr am, 70 | xmlAutomataStatePtr from, 71 | xmlAutomataStatePtr to, 72 | const xmlChar *token, 73 | const xmlChar *token2, 74 | void *data); 75 | 76 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 77 | xmlAutomataNewCountTrans (xmlAutomataPtr am, 78 | xmlAutomataStatePtr from, 79 | xmlAutomataStatePtr to, 80 | const xmlChar *token, 81 | int min, 82 | int max, 83 | void *data); 84 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 85 | xmlAutomataNewCountTrans2 (xmlAutomataPtr am, 86 | xmlAutomataStatePtr from, 87 | xmlAutomataStatePtr to, 88 | const xmlChar *token, 89 | const xmlChar *token2, 90 | int min, 91 | int max, 92 | void *data); 93 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 94 | xmlAutomataNewOnceTrans (xmlAutomataPtr am, 95 | xmlAutomataStatePtr from, 96 | xmlAutomataStatePtr to, 97 | const xmlChar *token, 98 | int min, 99 | int max, 100 | void *data); 101 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 102 | xmlAutomataNewOnceTrans2 (xmlAutomataPtr am, 103 | xmlAutomataStatePtr from, 104 | xmlAutomataStatePtr to, 105 | const xmlChar *token, 106 | const xmlChar *token2, 107 | int min, 108 | int max, 109 | void *data); 110 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 111 | xmlAutomataNewAllTrans (xmlAutomataPtr am, 112 | xmlAutomataStatePtr from, 113 | xmlAutomataStatePtr to, 114 | int lax); 115 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 116 | xmlAutomataNewEpsilon (xmlAutomataPtr am, 117 | xmlAutomataStatePtr from, 118 | xmlAutomataStatePtr to); 119 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 120 | xmlAutomataNewCountedTrans (xmlAutomataPtr am, 121 | xmlAutomataStatePtr from, 122 | xmlAutomataStatePtr to, 123 | int counter); 124 | XMLPUBFUN xmlAutomataStatePtr XMLCALL 125 | xmlAutomataNewCounterTrans (xmlAutomataPtr am, 126 | xmlAutomataStatePtr from, 127 | xmlAutomataStatePtr to, 128 | int counter); 129 | XMLPUBFUN int XMLCALL 130 | xmlAutomataNewCounter (xmlAutomataPtr am, 131 | int min, 132 | int max); 133 | 134 | XMLPUBFUN xmlRegexpPtr XMLCALL 135 | xmlAutomataCompile (xmlAutomataPtr am); 136 | XMLPUBFUN int XMLCALL 137 | xmlAutomataIsDeterminist (xmlAutomataPtr am); 138 | 139 | #ifdef __cplusplus 140 | } 141 | #endif 142 | 143 | #endif /* LIBXML_AUTOMATA_ENABLED */ 144 | #endif /* LIBXML_REGEXP_ENABLED */ 145 | 146 | #endif /* __XML_AUTOMATA_H__ */ 147 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/xmlexports.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: macros for marking symbols as exportable/importable. 3 | * Description: macros for marking symbols as exportable/importable. 4 | * 5 | * Copy: See Copyright for the status of this software. 6 | * 7 | * Author: Igor Zlatovic 8 | */ 9 | 10 | #ifndef __XML_EXPORTS_H__ 11 | #define __XML_EXPORTS_H__ 12 | 13 | /** 14 | * XMLPUBFUN, XMLPUBVAR, XMLCALL 15 | * 16 | * Macros which declare an exportable function, an exportable variable and 17 | * the calling convention used for functions. 18 | * 19 | * Please use an extra block for every platform/compiler combination when 20 | * modifying this, rather than overlong #ifdef lines. This helps 21 | * readability as well as the fact that different compilers on the same 22 | * platform might need different definitions. 23 | */ 24 | 25 | /** 26 | * XMLPUBFUN: 27 | * 28 | * Macros which declare an exportable function 29 | */ 30 | #define XMLPUBFUN 31 | /** 32 | * XMLPUBVAR: 33 | * 34 | * Macros which declare an exportable variable 35 | */ 36 | #define XMLPUBVAR extern 37 | /** 38 | * XMLCALL: 39 | * 40 | * Macros which declare the called convention for exported functions 41 | */ 42 | #define XMLCALL 43 | /** 44 | * XMLCDECL: 45 | * 46 | * Macro which declares the calling convention for exported functions that 47 | * use '...'. 48 | */ 49 | #define XMLCDECL 50 | 51 | /** DOC_DISABLE */ 52 | 53 | /* Windows platform with MS compiler */ 54 | #if defined(_WIN32) && defined(_MSC_VER) 55 | #undef XMLPUBFUN 56 | #undef XMLPUBVAR 57 | #undef XMLCALL 58 | #undef XMLCDECL 59 | #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 60 | #define XMLPUBFUN __declspec(dllexport) 61 | #define XMLPUBVAR __declspec(dllexport) 62 | #else 63 | #define XMLPUBFUN 64 | #if !defined(LIBXML_STATIC) 65 | #define XMLPUBVAR __declspec(dllimport) extern 66 | #else 67 | #define XMLPUBVAR extern 68 | #endif 69 | #endif 70 | #if defined(LIBXML_FASTCALL) 71 | #define XMLCALL __fastcall 72 | #else 73 | #define XMLCALL __cdecl 74 | #endif 75 | #define XMLCDECL __cdecl 76 | #if !defined _REENTRANT 77 | #define _REENTRANT 78 | #endif 79 | #endif 80 | 81 | /* Windows platform with Borland compiler */ 82 | #if defined(_WIN32) && defined(__BORLANDC__) 83 | #undef XMLPUBFUN 84 | #undef XMLPUBVAR 85 | #undef XMLCALL 86 | #undef XMLCDECL 87 | #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 88 | #define XMLPUBFUN __declspec(dllexport) 89 | #define XMLPUBVAR __declspec(dllexport) extern 90 | #else 91 | #define XMLPUBFUN 92 | #if !defined(LIBXML_STATIC) 93 | #define XMLPUBVAR __declspec(dllimport) extern 94 | #else 95 | #define XMLPUBVAR extern 96 | #endif 97 | #endif 98 | #define XMLCALL __cdecl 99 | #define XMLCDECL __cdecl 100 | #if !defined _REENTRANT 101 | #define _REENTRANT 102 | #endif 103 | #endif 104 | 105 | /* Windows platform with GNU compiler (Mingw) */ 106 | #if defined(_WIN32) && defined(__MINGW32__) 107 | #undef XMLPUBFUN 108 | #undef XMLPUBVAR 109 | #undef XMLCALL 110 | #undef XMLCDECL 111 | /* 112 | * if defined(IN_LIBXML) this raises problems on mingw with msys 113 | * _imp__xmlFree listed as missing. Try to workaround the problem 114 | * by also making that declaration when compiling client code. 115 | */ 116 | #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 117 | #define XMLPUBFUN __declspec(dllexport) 118 | #define XMLPUBVAR __declspec(dllexport) extern 119 | #else 120 | #define XMLPUBFUN 121 | #if !defined(LIBXML_STATIC) 122 | #define XMLPUBVAR __declspec(dllimport) extern 123 | #else 124 | #define XMLPUBVAR extern 125 | #endif 126 | #endif 127 | #define XMLCALL __cdecl 128 | #define XMLCDECL __cdecl 129 | #if !defined _REENTRANT 130 | #define _REENTRANT 131 | #endif 132 | #endif 133 | 134 | /* Cygwin platform, GNU compiler */ 135 | #if defined(_WIN32) && defined(__CYGWIN__) 136 | #undef XMLPUBFUN 137 | #undef XMLPUBVAR 138 | #undef XMLCALL 139 | #undef XMLCDECL 140 | #if defined(IN_LIBXML) && !defined(LIBXML_STATIC) 141 | #define XMLPUBFUN __declspec(dllexport) 142 | #define XMLPUBVAR __declspec(dllexport) 143 | #else 144 | #define XMLPUBFUN 145 | #if !defined(LIBXML_STATIC) 146 | #define XMLPUBVAR __declspec(dllimport) extern 147 | #else 148 | #define XMLPUBVAR 149 | #endif 150 | #endif 151 | #define XMLCALL __cdecl 152 | #define XMLCDECL __cdecl 153 | #endif 154 | 155 | /* Compatibility */ 156 | #if !defined(LIBXML_DLL_IMPORT) 157 | #define LIBXML_DLL_IMPORT XMLPUBVAR 158 | #endif 159 | 160 | #endif /* __XML_EXPORTS_H__ */ 161 | 162 | 163 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/xmlmodule.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: dynamic module loading 3 | * Description: basic API for dynamic module loading, used by 4 | * libexslt added in 2.6.17 5 | * 6 | * Copy: See Copyright for the status of this software. 7 | * 8 | * Author: Joel W. Reed 9 | */ 10 | 11 | #ifndef __XML_MODULE_H__ 12 | #define __XML_MODULE_H__ 13 | 14 | #include 15 | 16 | #ifdef LIBXML_MODULES_ENABLED 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /** 23 | * xmlModulePtr: 24 | * 25 | * A handle to a dynamically loaded module 26 | */ 27 | typedef struct _xmlModule xmlModule; 28 | typedef xmlModule *xmlModulePtr; 29 | 30 | /** 31 | * xmlModuleOption: 32 | * 33 | * enumeration of options that can be passed down to xmlModuleOpen() 34 | */ 35 | typedef enum { 36 | XML_MODULE_LAZY = 1, /* lazy binding */ 37 | XML_MODULE_LOCAL= 2 /* local binding */ 38 | } xmlModuleOption; 39 | 40 | XMLPUBFUN xmlModulePtr XMLCALL xmlModuleOpen (const char *filename, 41 | int options); 42 | 43 | XMLPUBFUN int XMLCALL xmlModuleSymbol (xmlModulePtr module, 44 | const char* name, 45 | void **result); 46 | 47 | XMLPUBFUN int XMLCALL xmlModuleClose (xmlModulePtr module); 48 | 49 | XMLPUBFUN int XMLCALL xmlModuleFree (xmlModulePtr module); 50 | 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | 55 | #endif /* LIBXML_MODULES_ENABLED */ 56 | 57 | #endif /*__XML_MODULE_H__ */ 58 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/xmlsave.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: the XML document serializer 3 | * Description: API to save document or subtree of document 4 | * 5 | * Copy: See Copyright for the status of this software. 6 | * 7 | * Author: Daniel Veillard 8 | */ 9 | 10 | #ifndef __XML_XMLSAVE_H__ 11 | #define __XML_XMLSAVE_H__ 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #ifdef LIBXML_OUTPUT_ENABLED 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | /** 24 | * xmlSaveOption: 25 | * 26 | * This is the set of XML save options that can be passed down 27 | * to the xmlSaveToFd() and similar calls. 28 | */ 29 | typedef enum { 30 | XML_SAVE_FORMAT = 1<<0, /* format save output */ 31 | XML_SAVE_NO_DECL = 1<<1, /* drop the xml declaration */ 32 | XML_SAVE_NO_EMPTY = 1<<2, /* no empty tags */ 33 | XML_SAVE_NO_XHTML = 1<<3, /* disable XHTML1 specific rules */ 34 | XML_SAVE_XHTML = 1<<4, /* force XHTML1 specific rules */ 35 | XML_SAVE_AS_XML = 1<<5, /* force XML serialization on HTML doc */ 36 | XML_SAVE_AS_HTML = 1<<6, /* force HTML serialization on XML doc */ 37 | XML_SAVE_WSNONSIG = 1<<7 /* format with non-significant whitespace */ 38 | } xmlSaveOption; 39 | 40 | 41 | typedef struct _xmlSaveCtxt xmlSaveCtxt; 42 | typedef xmlSaveCtxt *xmlSaveCtxtPtr; 43 | 44 | XMLPUBFUN xmlSaveCtxtPtr XMLCALL 45 | xmlSaveToFd (int fd, 46 | const char *encoding, 47 | int options); 48 | XMLPUBFUN xmlSaveCtxtPtr XMLCALL 49 | xmlSaveToFilename (const char *filename, 50 | const char *encoding, 51 | int options); 52 | 53 | XMLPUBFUN xmlSaveCtxtPtr XMLCALL 54 | xmlSaveToBuffer (xmlBufferPtr buffer, 55 | const char *encoding, 56 | int options); 57 | 58 | XMLPUBFUN xmlSaveCtxtPtr XMLCALL 59 | xmlSaveToIO (xmlOutputWriteCallback iowrite, 60 | xmlOutputCloseCallback ioclose, 61 | void *ioctx, 62 | const char *encoding, 63 | int options); 64 | 65 | XMLPUBFUN long XMLCALL 66 | xmlSaveDoc (xmlSaveCtxtPtr ctxt, 67 | xmlDocPtr doc); 68 | XMLPUBFUN long XMLCALL 69 | xmlSaveTree (xmlSaveCtxtPtr ctxt, 70 | xmlNodePtr node); 71 | 72 | XMLPUBFUN int XMLCALL 73 | xmlSaveFlush (xmlSaveCtxtPtr ctxt); 74 | XMLPUBFUN int XMLCALL 75 | xmlSaveClose (xmlSaveCtxtPtr ctxt); 76 | XMLPUBFUN int XMLCALL 77 | xmlSaveSetEscape (xmlSaveCtxtPtr ctxt, 78 | xmlCharEncodingOutputFunc escape); 79 | XMLPUBFUN int XMLCALL 80 | xmlSaveSetAttrEscape (xmlSaveCtxtPtr ctxt, 81 | xmlCharEncodingOutputFunc escape); 82 | #ifdef __cplusplus 83 | } 84 | #endif 85 | #endif /* LIBXML_OUTPUT_ENABLED */ 86 | #endif /* __XML_XMLSAVE_H__ */ 87 | 88 | 89 | -------------------------------------------------------------------------------- /deps/libxml2/include/libxml/xpointer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Summary: API to handle XML Pointers 3 | * Description: API to handle XML Pointers 4 | * Base implementation was made accordingly to 5 | * W3C Candidate Recommendation 7 June 2000 6 | * http://www.w3.org/TR/2000/CR-xptr-20000607 7 | * 8 | * Added support for the element() scheme described in: 9 | * W3C Proposed Recommendation 13 November 2002 10 | * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ 11 | * 12 | * Copy: See Copyright for the status of this software. 13 | * 14 | * Author: Daniel Veillard 15 | */ 16 | 17 | #ifndef __XML_XPTR_H__ 18 | #define __XML_XPTR_H__ 19 | 20 | #include 21 | 22 | #ifdef LIBXML_XPTR_ENABLED 23 | 24 | #include 25 | #include 26 | 27 | #ifdef __cplusplus 28 | extern "C" { 29 | #endif 30 | 31 | /* 32 | * A Location Set 33 | */ 34 | typedef struct _xmlLocationSet xmlLocationSet; 35 | typedef xmlLocationSet *xmlLocationSetPtr; 36 | struct _xmlLocationSet { 37 | int locNr; /* number of locations in the set */ 38 | int locMax; /* size of the array as allocated */ 39 | xmlXPathObjectPtr *locTab;/* array of locations */ 40 | }; 41 | 42 | /* 43 | * Handling of location sets. 44 | */ 45 | 46 | XMLPUBFUN xmlLocationSetPtr XMLCALL 47 | xmlXPtrLocationSetCreate (xmlXPathObjectPtr val); 48 | XMLPUBFUN void XMLCALL 49 | xmlXPtrFreeLocationSet (xmlLocationSetPtr obj); 50 | XMLPUBFUN xmlLocationSetPtr XMLCALL 51 | xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, 52 | xmlLocationSetPtr val2); 53 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 54 | xmlXPtrNewRange (xmlNodePtr start, 55 | int startindex, 56 | xmlNodePtr end, 57 | int endindex); 58 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 59 | xmlXPtrNewRangePoints (xmlXPathObjectPtr start, 60 | xmlXPathObjectPtr end); 61 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 62 | xmlXPtrNewRangeNodePoint (xmlNodePtr start, 63 | xmlXPathObjectPtr end); 64 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 65 | xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, 66 | xmlNodePtr end); 67 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 68 | xmlXPtrNewRangeNodes (xmlNodePtr start, 69 | xmlNodePtr end); 70 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 71 | xmlXPtrNewLocationSetNodes (xmlNodePtr start, 72 | xmlNodePtr end); 73 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 74 | xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set); 75 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 76 | xmlXPtrNewRangeNodeObject (xmlNodePtr start, 77 | xmlXPathObjectPtr end); 78 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 79 | xmlXPtrNewCollapsedRange (xmlNodePtr start); 80 | XMLPUBFUN void XMLCALL 81 | xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, 82 | xmlXPathObjectPtr val); 83 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 84 | xmlXPtrWrapLocationSet (xmlLocationSetPtr val); 85 | XMLPUBFUN void XMLCALL 86 | xmlXPtrLocationSetDel (xmlLocationSetPtr cur, 87 | xmlXPathObjectPtr val); 88 | XMLPUBFUN void XMLCALL 89 | xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, 90 | int val); 91 | 92 | /* 93 | * Functions. 94 | */ 95 | XMLPUBFUN xmlXPathContextPtr XMLCALL 96 | xmlXPtrNewContext (xmlDocPtr doc, 97 | xmlNodePtr here, 98 | xmlNodePtr origin); 99 | XMLPUBFUN xmlXPathObjectPtr XMLCALL 100 | xmlXPtrEval (const xmlChar *str, 101 | xmlXPathContextPtr ctx); 102 | XMLPUBFUN void XMLCALL 103 | xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, 104 | int nargs); 105 | XMLPUBFUN xmlNodePtr XMLCALL 106 | xmlXPtrBuildNodeList (xmlXPathObjectPtr obj); 107 | XMLPUBFUN void XMLCALL 108 | xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt); 109 | #ifdef __cplusplus 110 | } 111 | #endif 112 | 113 | #endif /* LIBXML_XPTR_ENABLED */ 114 | #endif /* __XML_XPTR_H__ */ 115 | -------------------------------------------------------------------------------- /deps/libxml2/lib/libxml2.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/deps/libxml2/lib/libxml2.lib -------------------------------------------------------------------------------- /deps/libxml2/lib/libxml2_a.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/deps/libxml2/lib/libxml2_a.lib -------------------------------------------------------------------------------- /deps/libxml2/lib/libxml2_a_dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/deps/libxml2/lib/libxml2_a_dll.lib -------------------------------------------------------------------------------- /docs/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/bc_s.png -------------------------------------------------------------------------------- /docs/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/bdwn.png -------------------------------------------------------------------------------- /docs/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/closed.png -------------------------------------------------------------------------------- /docs/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/doxygen.png -------------------------------------------------------------------------------- /docs/html/dynsections.js: -------------------------------------------------------------------------------- 1 | function toggleVisibility(linkObj) 2 | { 3 | var base = $(linkObj).attr('id'); 4 | var summary = $('#'+base+'-summary'); 5 | var content = $('#'+base+'-content'); 6 | var trigger = $('#'+base+'-trigger'); 7 | var src=$(trigger).attr('src'); 8 | if (content.is(':visible')===true) { 9 | content.hide(); 10 | summary.show(); 11 | $(linkObj).addClass('closed').removeClass('opened'); 12 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); 13 | } else { 14 | content.show(); 15 | summary.hide(); 16 | $(linkObj).removeClass('closed').addClass('opened'); 17 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); 18 | } 19 | return false; 20 | } 21 | 22 | function updateStripes() 23 | { 24 | $('table.directory tr'). 25 | removeClass('even').filter(':visible:even').addClass('even'); 26 | } 27 | function toggleLevel(level) 28 | { 29 | $('table.directory tr').each(function(){ 30 | var l = this.id.split('_').length-1; 31 | var i = $('#img'+this.id.substring(3)); 32 | var a = $('#arr'+this.id.substring(3)); 33 | if (l 2 | 3 | 4 | 5 | 6 | fix_parser: Main Page 7 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | 22 | 23 | 27 | 28 | 29 |
24 |
fix_parser 25 |
26 |
30 |
31 | 32 | 33 | 36 | 59 |
60 | 61 | 66 | 67 | 68 |
69 | 72 |
73 | 74 |
75 |
76 |
fix_parser Documentation
77 |
78 |
79 |
80 | 81 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /docs/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/nav_f.png -------------------------------------------------------------------------------- /docs/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/nav_g.png -------------------------------------------------------------------------------- /docs/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/nav_h.png -------------------------------------------------------------------------------- /docs/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/open.png -------------------------------------------------------------------------------- /docs/html/search/all_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_61.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['attrs',['attrs',['../structFIXParser__.html#aead2ded261cb0548c8d72679933843cb',1,'FIXParser_']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['body_5flen',['body_len',['../structFIXField__.html#a1b4f1278b4adf2e64d16af721710ad0b',1,'FIXField_::body_len()'],['../structFIXMsg__.html#a016ff0a2f00e96e1860e75a4f1f4caf8',1,'FIXMsg_::body_len()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['category',['category',['../structFIXFieldDescr__.html#a1fd3b2d9c298c7dcf7cacb20dcd47230',1,'FIXFieldDescr_']]], 4 | ['code',['code',['../structFIXError__.html#afc620213d557f4231ea2b4a910130809',1,'FIXError_']]], 5 | ['curr_5fpage',['curr_page',['../structFIXMsg__.html#a9dd14c657ae82537e059458eda3b536c',1,'FIXMsg_']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_64.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['data',['data',['../structFIXField__.html#aa4a957832f7f38df909896cb3b066727',1,'FIXField_::data()'],['../structFIXPage__.html#abfa123c9d18cc5ab467d6cc8ad981490',1,'FIXPage_::data()']]], 4 | ['datalenfield',['dataLenField',['../structFIXFieldDescr__.html#a05a4dfdf7f2b472084a39f773128ed9a',1,'FIXFieldDescr_']]], 5 | ['descr',['descr',['../structFIXField__.html#a1e3b2075babe6c0b4a34b4dc75db511a',1,'FIXField_::descr()'],['../structFIXMsg__.html#ac3a47d1f33cdf1ac8c4d6afb9dc4b744',1,'FIXMsg_::descr()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_65.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_65.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error_5ftxt_5fsize',['ERROR_TXT_SIZE',['../fix__error__priv_8h.html#a1c134e2d62664a0aebbc4cffcdbdfeee',1,'fix_error_priv.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['group',['group',['../structFIXGroups__.html#af2d0f37eaab2f1dd9ef9066f55738daf',1,'FIXGroups_::group()'],['../structFIXParser__.html#ab507e5f5dc855a04131b843b1108a6bf',1,'FIXParser_::group()'],['../structFIXFieldDescr__.html#a13f7fe50013c4cd5616923e13c79f086',1,'FIXFieldDescr_::group()']]], 4 | ['group_5fcount',['group_count',['../structFIXFieldDescr__.html#a110aa8294b92bd0d27d26e63777f9dd9',1,'FIXFieldDescr_']]], 5 | ['group_5findex',['group_index',['../structFIXFieldDescr__.html#a818b1ae5805681561df31d2e5b18fa44',1,'FIXFieldDescr_']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/all_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_69.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['int32_5fto_5fstr',['int32_to_str',['../fix__msg__priv_8c.html#a5e8b33133779907a958fc4d87019e584',1,'int32_to_str(FIXTagNum tag, int32_t val, char delimiter, uint32_t width, char padSym, char **buff, uint32_t *buffLen, FIXError **error): fix_msg_priv.c'],['../fix__msg__priv_8h.html#a5e8b33133779907a958fc4d87019e584',1,'int32_to_str(FIXTagNum tag, int32_t val, char delimiter, uint32_t width, char padSym, char **buff, uint32_t *buffLen, FIXError **error): fix_msg_priv.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_6d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['maxgroups',['maxGroups',['../structFIXParserAttrs.html#a3b0012a242ed4b0ab7c1ef555a6f5068',1,'FIXParserAttrs']]], 4 | ['maxpages',['maxPages',['../structFIXParserAttrs.html#a2ef49e7db3a01f9e7cb472d878bec201',1,'FIXParserAttrs']]], 5 | ['maxpagesize',['maxPageSize',['../structFIXParserAttrs.html#a1e7abcd2c9e5900f775df1f7d40b2fd7',1,'FIXParserAttrs']]], 6 | ['messages',['messages',['../structFIXProtocolDescr__.html#a96510c6cb91e570b650448e138839bb5',1,'FIXProtocolDescr_']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/all_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['name',['name',['../structFIXFieldType__.html#a2a61cbf9e6fea431f26e40f6500fea28',1,'FIXFieldType_::name()'],['../structFIXMsgDescr__.html#afffa858f7f9decd1dadab6ef2c2eb6f8',1,'FIXMsgDescr_::name()']]], 4 | ['next',['next',['../structFIXField__.html#a3d2b342f7c9a882f92ba87e260a2034c',1,'FIXField_::next()'],['../structFIXGroup__.html#a5e27342ae7958bae77f7c1894ef59184',1,'FIXGroup_::next()'],['../structFIXPage__.html#ac59c369ed676bfd1fef35cb5c1f25f7e',1,'FIXPage_::next()'],['../structFIXFieldValue__.html#acc4685d824cab0a49074079ddc14b260',1,'FIXFieldValue_::next()'],['../structFIXFieldType__.html#a744fc87eb13fa0b9e30f241ec2c205ee',1,'FIXFieldType_::next()'],['../structFIXFieldDescr__.html#a154d74530d30ac05de9284396839b519',1,'FIXFieldDescr_::next()'],['../structFIXMsgDescr__.html#ac0caddd67acfae4ea3a76ed5fc973c08',1,'FIXMsgDescr_::next()']]], 5 | ['numgroups',['numGroups',['../structFIXParserAttrs.html#a7c5e05871d78ba8e55040a1764bd8c44',1,'FIXParserAttrs']]], 6 | ['numpages',['numPages',['../structFIXParserAttrs.html#abda1ad5a77b59600576566575cf5d9dd',1,'FIXParserAttrs']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/all_6f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_6f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['offset',['offset',['../structFIXPage__.html#ac38314fc9fe8ea8316b719b960298407',1,'FIXPage_']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_70.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['page',['page',['../structFIXParser__.html#a65d796752527ecd1ae9884b937a23001',1,'FIXParser_']]], 4 | ['pages',['pages',['../structFIXMsg__.html#a999d0ea8499c3ffa80d8b23c32f65643',1,'FIXMsg_']]], 5 | ['pagesize',['pageSize',['../structFIXParserAttrs.html#a6fc1edcec266aca278154faf8ec386c3',1,'FIXParserAttrs']]], 6 | ['parent_5ffdescr',['parent_fdescr',['../structFIXGroup__.html#a218afb025ed7ee4de15feef795dfb1b3',1,'FIXGroup_']]], 7 | ['parser',['parser',['../structFIXMsg__.html#a367c602fb947071c4105eea857d6c13b',1,'FIXMsg_']]], 8 | ['parser_5fflag_5fcheck_5fall',['PARSER_FLAG_CHECK_ALL',['../fix__types_8h.html#a61f43d62fdaff85507c8c60e3a69e2b2',1,'fix_types.h']]], 9 | ['parser_5fflag_5fcheck_5fcrc',['PARSER_FLAG_CHECK_CRC',['../fix__types_8h.html#a1bf8ac405c3e350eb1a15471abecf2e9',1,'fix_types.h']]], 10 | ['parser_5fflag_5fcheck_5frequired',['PARSER_FLAG_CHECK_REQUIRED',['../fix__types_8h.html#afc12b16e2b802648f5c901c0a5fb1791',1,'fix_types.h']]], 11 | ['parser_5fflag_5fcheck_5funknown_5ffields',['PARSER_FLAG_CHECK_UNKNOWN_FIELDS',['../fix__types_8h.html#af2ac963f8e032fdc12a1583ace7ed9e0',1,'fix_types.h']]], 12 | ['parser_5fflag_5fcheck_5fvalue',['PARSER_FLAG_CHECK_VALUE',['../fix__types_8h.html#aad99895fc46883fc33cb4c1f04e4d132',1,'fix_types.h']]], 13 | ['protocol',['protocol',['../structFIXParser__.html#afb9eb308c8b09ccdaedeb4f372527336',1,'FIXParser_']]] 14 | ]; 15 | -------------------------------------------------------------------------------- /docs/html/search/all_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['size',['size',['../structFIXField__.html#a06ad9198cce0ff257aeb05ff3b556ce0',1,'FIXField_::size()'],['../structFIXPage__.html#a16a8b420fb81499869363805d4d0f2b6',1,'FIXPage_::size()']]], 4 | ['str2fixfieldvaluetype',['str2FIXFieldValueType',['../fix__types_8h.html#a64a36b0d6ec0b254ff9dfff6f7c1aecf',1,'str2FIXFieldValueType(char const *type): fix_types.c'],['../fix__types_8c.html#a64a36b0d6ec0b254ff9dfff6f7c1aecf',1,'str2FIXFieldValueType(char const *type): fix_types.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tag',['tag',['../structFIXFieldType__.html#a7720fb02f175377c06b5fb67df81b72f',1,'FIXFieldType_']]], 4 | ['text',['text',['../structFIXError__.html#a672825a67a0eb297d44031ec45ee0b24',1,'FIXError_']]], 5 | ['transport_5ffield_5ftypes',['transport_field_types',['../structFIXProtocolDescr__.html#aa73c76a1b12572e54c92a7e4e0ec81ff',1,'FIXProtocolDescr_']]], 6 | ['transportversion',['transportVersion',['../structFIXProtocolDescr__.html#a19fef02771c66e9b5b233a1cb20e51e7',1,'FIXProtocolDescr_']]], 7 | ['type',['type',['../structFIXFieldDescr__.html#a46eb58c474f706b950201a88161a94fc',1,'FIXFieldDescr_::type()'],['../structFIXMsgDescr__.html#a78e1112e7f779207cb98b710ba969d5b',1,'FIXMsgDescr_::type()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/all_75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_75.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['used_5fgroups',['used_groups',['../structFIXMsg__.html#af46e7062f60ea912f75138bbfaacb069',1,'FIXMsg_::used_groups()'],['../structFIXParser__.html#ae1dd7d7045b5407a1b3ca47a67efc68b',1,'FIXParser_::used_groups()']]], 4 | ['used_5fpages',['used_pages',['../structFIXParser__.html#a971072886fe721d0c17c183ad535a9fa',1,'FIXParser_']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/all_76.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['value',['value',['../structFIXFieldValue__.html#a8f8c474becb35220e33d22e3c53864ef',1,'FIXFieldValue_']]], 4 | ['values',['values',['../structFIXFieldType__.html#ac11df5beb99618e387b2e34b5debe811',1,'FIXFieldType_']]], 5 | ['valuetype',['valueType',['../structFIXFieldType__.html#af53b1f8681becccde6915aa63605ab5e',1,'FIXFieldType_']]], 6 | ['version',['version',['../structFIXProtocolDescr__.html#a431a37556091afe8cbcfd96825bc3a0f',1,'FIXProtocolDescr_']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/classes_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/classes_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fixerror_5f',['FIXError_',['../structFIXError__.html',1,'']]], 4 | ['fixfield_5f',['FIXField_',['../structFIXField__.html',1,'']]], 5 | ['fixfielddescr_5f',['FIXFieldDescr_',['../structFIXFieldDescr__.html',1,'']]], 6 | ['fixfieldtype_5f',['FIXFieldType_',['../structFIXFieldType__.html',1,'']]], 7 | ['fixfieldvalue_5f',['FIXFieldValue_',['../structFIXFieldValue__.html',1,'']]], 8 | ['fixgroup_5f',['FIXGroup_',['../structFIXGroup__.html',1,'']]], 9 | ['fixgroups_5f',['FIXGroups_',['../structFIXGroups__.html',1,'']]], 10 | ['fixmsg_5f',['FIXMsg_',['../structFIXMsg__.html',1,'']]], 11 | ['fixmsgdescr_5f',['FIXMsgDescr_',['../structFIXMsgDescr__.html',1,'']]], 12 | ['fixpage_5f',['FIXPage_',['../structFIXPage__.html',1,'']]], 13 | ['fixparser_5f',['FIXParser_',['../structFIXParser__.html',1,'']]], 14 | ['fixparserattrs',['FIXParserAttrs',['../structFIXParserAttrs.html',1,'']]], 15 | ['fixprotocoldescr_5f',['FIXProtocolDescr_',['../structFIXProtocolDescr__.html',1,'']]] 16 | ]; 17 | -------------------------------------------------------------------------------- /docs/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/search/close.png -------------------------------------------------------------------------------- /docs/html/search/defines_65.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/defines_65.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error_5ftxt_5fsize',['ERROR_TXT_SIZE',['../fix__error__priv_8h.html#a1c134e2d62664a0aebbc4cffcdbdfeee',1,'fix_error_priv.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/defines_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/defines_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fix_5fsoh',['FIX_SOH',['../fix__types_8h.html#acaf26834e68ec5b255773d000a14e564',1,'fix_types.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/defines_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/defines_70.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['parser_5fflag_5fcheck_5fall',['PARSER_FLAG_CHECK_ALL',['../fix__types_8h.html#a61f43d62fdaff85507c8c60e3a69e2b2',1,'fix_types.h']]], 4 | ['parser_5fflag_5fcheck_5fcrc',['PARSER_FLAG_CHECK_CRC',['../fix__types_8h.html#a1bf8ac405c3e350eb1a15471abecf2e9',1,'fix_types.h']]], 5 | ['parser_5fflag_5fcheck_5frequired',['PARSER_FLAG_CHECK_REQUIRED',['../fix__types_8h.html#afc12b16e2b802648f5c901c0a5fb1791',1,'fix_types.h']]], 6 | ['parser_5fflag_5fcheck_5funknown_5ffields',['PARSER_FLAG_CHECK_UNKNOWN_FIELDS',['../fix__types_8h.html#af2ac963f8e032fdc12a1583ace7ed9e0',1,'fix_types.h']]], 7 | ['parser_5fflag_5fcheck_5fvalue',['PARSER_FLAG_CHECK_VALUE',['../fix__types_8h.html#aad99895fc46883fc33cb4c1f04e4d132',1,'fix_types.h']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/enums_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/enums_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fixfieldcategoryenum',['FIXFieldCategoryEnum',['../fix__types_8h.html#ae44eb1db80bdecf81aa9bab477383791',1,'fix_types.h']]], 4 | ['fixfieldtagenum_5f',['FIXFieldTagEnum_',['../fix__field__tag_8h.html#af58535f787275036de04717f1c98bf47',1,'fix_field_tag.h']]], 5 | ['fixfieldvaluetypeenum',['FIXFieldValueTypeEnum',['../fix__types_8h.html#ae6ccdce86b752b37520181f076c4fd25',1,'fix_types.h']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/enumvalues_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fixfieldcategory_5fgroup',['FIXFieldCategory_Group',['../fix__types_8h.html#ae44eb1db80bdecf81aa9bab477383791a1dd673a9e1148a35d1eb47bcbaa9128c',1,'fix_types.h']]], 4 | ['fixfieldcategory_5fvalue',['FIXFieldCategory_Value',['../fix__types_8h.html#ae44eb1db80bdecf81aa9bab477383791a414cb1dffb179e80c25a80286efdf1a8',1,'fix_types.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/files_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/files_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fix_5fdescr_5fxsd_2eh',['fix_descr_xsd.h',['../fix__descr__xsd_8h.html',1,'']]], 4 | ['fix_5ferror_2ec',['fix_error.c',['../fix__error_8c.html',1,'']]], 5 | ['fix_5ferror_2eh',['fix_error.h',['../fix__error_8h.html',1,'']]], 6 | ['fix_5ferror_5fpriv_2ec',['fix_error_priv.c',['../fix__error__priv_8c.html',1,'']]], 7 | ['fix_5ferror_5fpriv_2eh',['fix_error_priv.h',['../fix__error__priv_8h.html',1,'']]], 8 | ['fix_5ffield_2ec',['fix_field.c',['../fix__field_8c.html',1,'']]], 9 | ['fix_5ffield_2eh',['fix_field.h',['../fix__field_8h.html',1,'']]], 10 | ['fix_5ffield_5ftag_2eh',['fix_field_tag.h',['../fix__field__tag_8h.html',1,'']]], 11 | ['fix_5fmsg_2ec',['fix_msg.c',['../fix__msg_8c.html',1,'']]], 12 | ['fix_5fmsg_2eh',['fix_msg.h',['../fix__msg_8h.html',1,'']]], 13 | ['fix_5fmsg_5fpriv_2ec',['fix_msg_priv.c',['../fix__msg__priv_8c.html',1,'']]], 14 | ['fix_5fmsg_5fpriv_2eh',['fix_msg_priv.h',['../fix__msg__priv_8h.html',1,'']]], 15 | ['fix_5fpage_2eh',['fix_page.h',['../fix__page_8h.html',1,'']]], 16 | ['fix_5fparser_2ec',['fix_parser.c',['../fix__parser_8c.html',1,'']]], 17 | ['fix_5fparser_2eh',['fix_parser.h',['../fix__parser_8h.html',1,'']]], 18 | ['fix_5fparser_5fdll_2eh',['fix_parser_dll.h',['../fix__parser__dll_8h.html',1,'']]], 19 | ['fix_5fparser_5fpriv_2ec',['fix_parser_priv.c',['../fix__parser__priv_8c.html',1,'']]], 20 | ['fix_5fparser_5fpriv_2eh',['fix_parser_priv.h',['../fix__parser__priv_8h.html',1,'']]], 21 | ['fix_5fprotocol_5fdescr_2ec',['fix_protocol_descr.c',['../fix__protocol__descr_8c.html',1,'']]], 22 | ['fix_5fprotocol_5fdescr_2eh',['fix_protocol_descr.h',['../fix__protocol__descr_8h.html',1,'']]], 23 | ['fix_5ftypes_2ec',['fix_types.c',['../fix__types_8c.html',1,'']]], 24 | ['fix_5ftypes_2eh',['fix_types.h',['../fix__types_8h.html',1,'']]], 25 | ['fix_5futils_2ec',['fix_utils.c',['../fix__utils_8c.html',1,'']]], 26 | ['fix_5futils_2eh',['fix_utils.h',['../fix__utils_8h.html',1,'']]] 27 | ]; 28 | -------------------------------------------------------------------------------- /docs/html/search/functions_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/functions_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/functions_69.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['int32_5fto_5fstr',['int32_to_str',['../fix__msg__priv_8c.html#a5e8b33133779907a958fc4d87019e584',1,'int32_to_str(FIXTagNum tag, int32_t val, char delimiter, uint32_t width, char padSym, char **buff, uint32_t *buffLen, FIXError **error): fix_msg_priv.c'],['../fix__msg__priv_8h.html#a5e8b33133779907a958fc4d87019e584',1,'int32_to_str(FIXTagNum tag, int32_t val, char delimiter, uint32_t width, char padSym, char **buff, uint32_t *buffLen, FIXError **error): fix_msg_priv.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/functions_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['str2fixfieldvaluetype',['str2FIXFieldValueType',['../fix__types_8h.html#a64a36b0d6ec0b254ff9dfff6f7c1aecf',1,'str2FIXFieldValueType(char const *type): fix_types.c'],['../fix__types_8c.html#a64a36b0d6ec0b254ff9dfff6f7c1aecf',1,'str2FIXFieldValueType(char const *type): fix_types.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/search/mag_sel.png -------------------------------------------------------------------------------- /docs/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/html/search/search.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box */ 2 | 3 | #FSearchBox { 4 | float: left; 5 | } 6 | 7 | #MSearchBox { 8 | white-space : nowrap; 9 | position: absolute; 10 | float: none; 11 | display: inline; 12 | margin-top: 8px; 13 | right: 0px; 14 | width: 170px; 15 | z-index: 102; 16 | background-color: white; 17 | } 18 | 19 | #MSearchBox .left 20 | { 21 | display:block; 22 | position:absolute; 23 | left:10px; 24 | width:20px; 25 | height:19px; 26 | background:url('search_l.png') no-repeat; 27 | background-position:right; 28 | } 29 | 30 | #MSearchSelect { 31 | display:block; 32 | position:absolute; 33 | width:20px; 34 | height:19px; 35 | } 36 | 37 | .left #MSearchSelect { 38 | left:4px; 39 | } 40 | 41 | .right #MSearchSelect { 42 | right:5px; 43 | } 44 | 45 | #MSearchField { 46 | display:block; 47 | position:absolute; 48 | height:19px; 49 | background:url('search_m.png') repeat-x; 50 | border:none; 51 | width:116px; 52 | margin-left:20px; 53 | padding-left:4px; 54 | color: #909090; 55 | outline: none; 56 | font: 9pt Arial, Verdana, sans-serif; 57 | } 58 | 59 | #FSearchBox #MSearchField { 60 | margin-left:15px; 61 | } 62 | 63 | #MSearchBox .right { 64 | display:block; 65 | position:absolute; 66 | right:10px; 67 | top:0px; 68 | width:20px; 69 | height:19px; 70 | background:url('search_r.png') no-repeat; 71 | background-position:left; 72 | } 73 | 74 | #MSearchClose { 75 | display: none; 76 | position: absolute; 77 | top: 4px; 78 | background : none; 79 | border: none; 80 | margin: 0px 4px 0px 0px; 81 | padding: 0px 0px; 82 | outline: none; 83 | } 84 | 85 | .left #MSearchClose { 86 | left: 6px; 87 | } 88 | 89 | .right #MSearchClose { 90 | right: 2px; 91 | } 92 | 93 | .MSearchBoxActive #MSearchField { 94 | color: #000000; 95 | } 96 | 97 | /*---------------- Search filter selection */ 98 | 99 | #MSearchSelectWindow { 100 | display: none; 101 | position: absolute; 102 | left: 0; top: 0; 103 | border: 1px solid #90A5CE; 104 | background-color: #F9FAFC; 105 | z-index: 1; 106 | padding-top: 4px; 107 | padding-bottom: 4px; 108 | -moz-border-radius: 4px; 109 | -webkit-border-top-left-radius: 4px; 110 | -webkit-border-top-right-radius: 4px; 111 | -webkit-border-bottom-left-radius: 4px; 112 | -webkit-border-bottom-right-radius: 4px; 113 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); 114 | } 115 | 116 | .SelectItem { 117 | font: 8pt Arial, Verdana, sans-serif; 118 | padding-left: 2px; 119 | padding-right: 12px; 120 | border: 0px; 121 | } 122 | 123 | span.SelectionMark { 124 | margin-right: 4px; 125 | font-family: monospace; 126 | outline-style: none; 127 | text-decoration: none; 128 | } 129 | 130 | a.SelectItem { 131 | display: block; 132 | outline-style: none; 133 | color: #000000; 134 | text-decoration: none; 135 | padding-left: 6px; 136 | padding-right: 12px; 137 | } 138 | 139 | a.SelectItem:focus, 140 | a.SelectItem:active { 141 | color: #000000; 142 | outline-style: none; 143 | text-decoration: none; 144 | } 145 | 146 | a.SelectItem:hover { 147 | color: #FFFFFF; 148 | background-color: #3D578C; 149 | outline-style: none; 150 | text-decoration: none; 151 | cursor: pointer; 152 | display: block; 153 | } 154 | 155 | /*---------------- Search results window */ 156 | 157 | iframe#MSearchResults { 158 | width: 60ex; 159 | height: 15em; 160 | } 161 | 162 | #MSearchResultsWindow { 163 | display: none; 164 | position: absolute; 165 | left: 0; top: 0; 166 | border: 1px solid #000; 167 | background-color: #EEF1F7; 168 | } 169 | 170 | /* ----------------------------------- */ 171 | 172 | 173 | #SRIndex { 174 | clear:both; 175 | padding-bottom: 15px; 176 | } 177 | 178 | .SREntry { 179 | font-size: 10pt; 180 | padding-left: 1ex; 181 | } 182 | 183 | .SRPage .SREntry { 184 | font-size: 8pt; 185 | padding: 1px 5px; 186 | } 187 | 188 | body.SRPage { 189 | margin: 5px 2px; 190 | } 191 | 192 | .SRChildren { 193 | padding-left: 3ex; padding-bottom: .5em 194 | } 195 | 196 | .SRPage .SRChildren { 197 | display: none; 198 | } 199 | 200 | .SRSymbol { 201 | font-weight: bold; 202 | color: #425E97; 203 | font-family: Arial, Verdana, sans-serif; 204 | text-decoration: none; 205 | outline: none; 206 | } 207 | 208 | a.SRScope { 209 | display: block; 210 | color: #425E97; 211 | font-family: Arial, Verdana, sans-serif; 212 | text-decoration: none; 213 | outline: none; 214 | } 215 | 216 | a.SRSymbol:focus, a.SRSymbol:active, 217 | a.SRScope:focus, a.SRScope:active { 218 | text-decoration: underline; 219 | } 220 | 221 | span.SRScope { 222 | padding-left: 4px; 223 | } 224 | 225 | .SRPage .SRStatus { 226 | padding: 2px 5px; 227 | font-size: 8pt; 228 | font-style: italic; 229 | } 230 | 231 | .SRResult { 232 | display: none; 233 | } 234 | 235 | DIV.searchresults { 236 | margin-left: 10px; 237 | margin-right: 10px; 238 | } 239 | -------------------------------------------------------------------------------- /docs/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/search/search_l.png -------------------------------------------------------------------------------- /docs/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/search/search_m.png -------------------------------------------------------------------------------- /docs/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/search/search_r.png -------------------------------------------------------------------------------- /docs/html/search/typedefs_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['fixerrcode',['FIXErrCode',['../fix__types_8h.html#a25786b987c643bb3c265beaa5fedde63',1,'fix_types.h']]], 4 | ['fixfieldcategoryenum',['FIXFieldCategoryEnum',['../fix__types_8h.html#a4574caeb4808e813b6897e66127bbbc7',1,'fix_types.h']]], 5 | ['fixfielddescr',['FIXFieldDescr',['../fix__protocol__descr_8h.html#ab35cc4a0724519f869fdf96aa4fa146b',1,'fix_protocol_descr.h']]], 6 | ['fixfieldtagenum',['FIXFieldTagEnum',['../fix__field__tag_8h.html#aaa08a0eb9ea494eb057c0a74ece4027b',1,'fix_field_tag.h']]], 7 | ['fixfieldtype',['FIXFieldType',['../fix__protocol__descr_8h.html#adb3ae68cc20aa4d970b130668ef12f77',1,'fix_protocol_descr.h']]], 8 | ['fixfieldvalue',['FIXFieldValue',['../fix__protocol__descr_8h.html#a48f5503084791af87d4362323b01aa8f',1,'fix_protocol_descr.h']]], 9 | ['fixfieldvaluetypeenum',['FIXFieldValueTypeEnum',['../fix__types_8h.html#a9fabbba48acba46140a6148c8fd8b8f7',1,'fix_types.h']]], 10 | ['fixgroups',['FIXGroups',['../fix__field_8h.html#a28b730fbdb11473b4191c9c37fa0e066',1,'fix_field.h']]], 11 | ['fixmsgdescr',['FIXMsgDescr',['../fix__protocol__descr_8h.html#af9b235af15a7ea5bc82e943eb5a6b9cb',1,'fix_protocol_descr.h']]], 12 | ['fixpage',['FIXPage',['../fix__page_8h.html#a8a196758c692854a4ab49f11278f4693',1,'fix_page.h']]], 13 | ['fixparserattrs',['FIXParserAttrs',['../fix__types_8h.html#a65d241846936de9abdbc22942d1f7c7e',1,'fix_types.h']]], 14 | ['fixprotocoldescr',['FIXProtocolDescr',['../fix__protocol__descr_8h.html#a9f4d2431000810669af8976b264253cd',1,'fix_protocol_descr.h']]], 15 | ['fixtagnum',['FIXTagNum',['../fix__types_8h.html#aa5d5418dce6a1cc4021bb71647beb38f',1,'fix_types.h']]] 16 | ]; 17 | -------------------------------------------------------------------------------- /docs/html/search/variables_61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_61.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['attrs',['attrs',['../structFIXParser__.html#aead2ded261cb0548c8d72679933843cb',1,'FIXParser_']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['body_5flen',['body_len',['../structFIXField__.html#a1b4f1278b4adf2e64d16af721710ad0b',1,'FIXField_::body_len()'],['../structFIXMsg__.html#a016ff0a2f00e96e1860e75a4f1f4caf8',1,'FIXMsg_::body_len()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['category',['category',['../structFIXFieldDescr__.html#a1fd3b2d9c298c7dcf7cacb20dcd47230',1,'FIXFieldDescr_']]], 4 | ['code',['code',['../structFIXError__.html#afc620213d557f4231ea2b4a910130809',1,'FIXError_']]], 5 | ['curr_5fpage',['curr_page',['../structFIXMsg__.html#a9dd14c657ae82537e059458eda3b536c',1,'FIXMsg_']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/variables_64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_64.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['data',['data',['../structFIXField__.html#aa4a957832f7f38df909896cb3b066727',1,'FIXField_::data()'],['../structFIXPage__.html#abfa123c9d18cc5ab467d6cc8ad981490',1,'FIXPage_::data()']]], 4 | ['datalenfield',['dataLenField',['../structFIXFieldDescr__.html#a05a4dfdf7f2b472084a39f773128ed9a',1,'FIXFieldDescr_']]], 5 | ['descr',['descr',['../structFIXField__.html#a1e3b2075babe6c0b4a34b4dc75db511a',1,'FIXField_::descr()'],['../structFIXMsg__.html#ac3a47d1f33cdf1ac8c4d6afb9dc4b744',1,'FIXMsg_::descr()']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/variables_65.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_65.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error',['error',['../structFIXParser__.html#ab50551c224b732476fab075366d74ccc',1,'FIXParser_']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['field_5fcount',['field_count',['../structFIXMsgDescr__.html#acda13f9fc184b655edf81ca6a35803da',1,'FIXMsgDescr_']]], 4 | ['field_5findex',['field_index',['../structFIXMsgDescr__.html#a7b82ba6e43899789d643a3dba81b87cc',1,'FIXMsgDescr_']]], 5 | ['field_5ftypes',['field_types',['../structFIXProtocolDescr__.html#a3f3e201b32dea78c2fd71ccb424a3cef',1,'FIXProtocolDescr_']]], 6 | ['fields',['fields',['../structFIXGroup__.html#a0329a8421df794d0187aebc4b0c3b6e2',1,'FIXGroup_::fields()'],['../structFIXMsg__.html#a23bd0eb10ecf45ee5f0dafb7ac597f84',1,'FIXMsg_::fields()'],['../structFIXMsgDescr__.html#ad3f8e8af8c0dc93463213d0ccf093459',1,'FIXMsgDescr_::fields()']]], 7 | ['flags',['flags',['../structFIXParser__.html#a218bac3f2bcffc920a914d19affb55b8',1,'FIXParser_::flags()'],['../structFIXFieldDescr__.html#ab546e41276e9f4dfe6baec3931fb0fd7',1,'FIXFieldDescr_::flags()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/variables_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['group',['group',['../structFIXGroups__.html#af2d0f37eaab2f1dd9ef9066f55738daf',1,'FIXGroups_::group()'],['../structFIXParser__.html#ab507e5f5dc855a04131b843b1108a6bf',1,'FIXParser_::group()'],['../structFIXFieldDescr__.html#a13f7fe50013c4cd5616923e13c79f086',1,'FIXFieldDescr_::group()']]], 4 | ['group_5fcount',['group_count',['../structFIXFieldDescr__.html#a110aa8294b92bd0d27d26e63777f9dd9',1,'FIXFieldDescr_']]], 5 | ['group_5findex',['group_index',['../structFIXFieldDescr__.html#a818b1ae5805681561df31d2e5b18fa44',1,'FIXFieldDescr_']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/variables_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_6d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['maxgroups',['maxGroups',['../structFIXParserAttrs.html#a3b0012a242ed4b0ab7c1ef555a6f5068',1,'FIXParserAttrs']]], 4 | ['maxpages',['maxPages',['../structFIXParserAttrs.html#a2ef49e7db3a01f9e7cb472d878bec201',1,'FIXParserAttrs']]], 5 | ['maxpagesize',['maxPageSize',['../structFIXParserAttrs.html#a1e7abcd2c9e5900f775df1f7d40b2fd7',1,'FIXParserAttrs']]], 6 | ['messages',['messages',['../structFIXProtocolDescr__.html#a96510c6cb91e570b650448e138839bb5',1,'FIXProtocolDescr_']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/variables_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['name',['name',['../structFIXFieldType__.html#a2a61cbf9e6fea431f26e40f6500fea28',1,'FIXFieldType_::name()'],['../structFIXMsgDescr__.html#afffa858f7f9decd1dadab6ef2c2eb6f8',1,'FIXMsgDescr_::name()']]], 4 | ['next',['next',['../structFIXField__.html#a3d2b342f7c9a882f92ba87e260a2034c',1,'FIXField_::next()'],['../structFIXGroup__.html#a5e27342ae7958bae77f7c1894ef59184',1,'FIXGroup_::next()'],['../structFIXPage__.html#ac59c369ed676bfd1fef35cb5c1f25f7e',1,'FIXPage_::next()'],['../structFIXFieldValue__.html#acc4685d824cab0a49074079ddc14b260',1,'FIXFieldValue_::next()'],['../structFIXFieldType__.html#a744fc87eb13fa0b9e30f241ec2c205ee',1,'FIXFieldType_::next()'],['../structFIXFieldDescr__.html#a154d74530d30ac05de9284396839b519',1,'FIXFieldDescr_::next()'],['../structFIXMsgDescr__.html#ac0caddd67acfae4ea3a76ed5fc973c08',1,'FIXMsgDescr_::next()']]], 5 | ['numgroups',['numGroups',['../structFIXParserAttrs.html#a7c5e05871d78ba8e55040a1764bd8c44',1,'FIXParserAttrs']]], 6 | ['numpages',['numPages',['../structFIXParserAttrs.html#abda1ad5a77b59600576566575cf5d9dd',1,'FIXParserAttrs']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/variables_6f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_6f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['offset',['offset',['../structFIXPage__.html#ac38314fc9fe8ea8316b719b960298407',1,'FIXPage_']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_70.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['page',['page',['../structFIXParser__.html#a65d796752527ecd1ae9884b937a23001',1,'FIXParser_']]], 4 | ['pages',['pages',['../structFIXMsg__.html#a999d0ea8499c3ffa80d8b23c32f65643',1,'FIXMsg_']]], 5 | ['pagesize',['pageSize',['../structFIXParserAttrs.html#a6fc1edcec266aca278154faf8ec386c3',1,'FIXParserAttrs']]], 6 | ['parent_5ffdescr',['parent_fdescr',['../structFIXGroup__.html#a218afb025ed7ee4de15feef795dfb1b3',1,'FIXGroup_']]], 7 | ['parser',['parser',['../structFIXMsg__.html#a367c602fb947071c4105eea857d6c13b',1,'FIXMsg_']]], 8 | ['protocol',['protocol',['../structFIXParser__.html#afb9eb308c8b09ccdaedeb4f372527336',1,'FIXParser_']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/html/search/variables_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['size',['size',['../structFIXField__.html#a06ad9198cce0ff257aeb05ff3b556ce0',1,'FIXField_::size()'],['../structFIXPage__.html#a16a8b420fb81499869363805d4d0f2b6',1,'FIXPage_::size()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['tag',['tag',['../structFIXFieldType__.html#a7720fb02f175377c06b5fb67df81b72f',1,'FIXFieldType_']]], 4 | ['text',['text',['../structFIXError__.html#a672825a67a0eb297d44031ec45ee0b24',1,'FIXError_']]], 5 | ['transport_5ffield_5ftypes',['transport_field_types',['../structFIXProtocolDescr__.html#aa73c76a1b12572e54c92a7e4e0ec81ff',1,'FIXProtocolDescr_']]], 6 | ['transportversion',['transportVersion',['../structFIXProtocolDescr__.html#a19fef02771c66e9b5b233a1cb20e51e7',1,'FIXProtocolDescr_']]], 7 | ['type',['type',['../structFIXFieldDescr__.html#a46eb58c474f706b950201a88161a94fc',1,'FIXFieldDescr_::type()'],['../structFIXMsgDescr__.html#a78e1112e7f779207cb98b710ba969d5b',1,'FIXMsgDescr_::type()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/variables_75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_75.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['used_5fgroups',['used_groups',['../structFIXMsg__.html#af46e7062f60ea912f75138bbfaacb069',1,'FIXMsg_::used_groups()'],['../structFIXParser__.html#ae1dd7d7045b5407a1b3ca47a67efc68b',1,'FIXParser_::used_groups()']]], 4 | ['used_5fpages',['used_pages',['../structFIXParser__.html#a971072886fe721d0c17c183ad535a9fa',1,'FIXParser_']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/variables_76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
Loading...
11 |
12 | 15 |
Searching...
16 |
No Matches
17 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/html/search/variables_76.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['value',['value',['../structFIXFieldValue__.html#a8f8c474becb35220e33d22e3c53864ef',1,'FIXFieldValue_']]], 4 | ['values',['values',['../structFIXFieldType__.html#ac11df5beb99618e387b2e34b5debe811',1,'FIXFieldType_']]], 5 | ['valuetype',['valueType',['../structFIXFieldType__.html#af53b1f8681becccde6915aa63605ab5e',1,'FIXFieldType_']]], 6 | ['version',['version',['../structFIXProtocolDescr__.html#a431a37556091afe8cbcfd96825bc3a0f',1,'FIXProtocolDescr_']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/sync_off.png -------------------------------------------------------------------------------- /docs/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/sync_on.png -------------------------------------------------------------------------------- /docs/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/tab_a.png -------------------------------------------------------------------------------- /docs/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/tab_b.png -------------------------------------------------------------------------------- /docs/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/tab_h.png -------------------------------------------------------------------------------- /docs/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitryme/fix_parser/712c37f184ff8cd6abcbe7621bbaa2972768cf82/docs/html/tab_s.png -------------------------------------------------------------------------------- /docs/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /include/fix_error.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_error.h 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 07/30/2012 10:54:30 AM 5 | */ 6 | 7 | #ifndef FIX_PARSER_FIX_ERROR_H 8 | #define FIX_PARSER_FIX_ERROR_H 9 | 10 | #include "fix_types.h" 11 | #include "fix_parser_dll.h" 12 | 13 | #include 14 | 15 | #ifdef __cplusplus 16 | extern "C" 17 | { 18 | #endif 19 | 20 | /** 21 | * destroy error description 22 | * @param[in] error - error description to destroy 23 | */ 24 | FIX_PARSER_API void fix_error_free(FIXError* error); 25 | 26 | /** 27 | * return error code during new parser instance creation 28 | * @param[in] error - pointer to memory with error description 29 | */ 30 | FIX_PARSER_API FIXErrCode fix_error_get_code(FIXError* error); 31 | /** 32 | * return human readable error description 33 | * @param[in] error - pointer to memory with error description 34 | */ 35 | FIX_PARSER_API char const* fix_error_get_text(FIXError* error); 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif // FIX_PARSER_FIX_ERROR_H 42 | -------------------------------------------------------------------------------- /include/fix_parser.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_parser.h 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 07/30/2012 10:54:30 AM 5 | */ 6 | 7 | #ifndef FIX_PARSER_FIX_PARSER_H 8 | #define FIX_PARSER_FIX_PARSER_H 9 | 10 | #include "fix_types.h" 11 | #include "fix_parser_dll.h" 12 | #include "fix_msg.h" 13 | 14 | #include 15 | 16 | #ifdef __cplusplus 17 | extern "C" 18 | { 19 | #endif 20 | 21 | /** 22 | * create new parser instance 23 | * @param[in] protFile - path to xml file with protocol description. see fix_parser/fix_descr directory for various FIX 24 | * protocol description 25 | * @param[in] attrs - parser attributes 26 | * @param[in] flags - parser flags. See PARSER_FLAG_CHECK_* values 27 | * @param[out] error - error description, if any. If error is returned, it must be destroyed by free(error) 28 | * @return new instance of FIX parser. if NULL, invoke fix_error_get_code(error), fix_error_get_text(error) for error description 29 | */ 30 | FIX_PARSER_API FIXParser* fix_parser_create(char const* protFile, FIXParserAttrs const* attrs, int32_t flags, FIXError** error); 31 | 32 | /** 33 | * free parser instance. 34 | * @param[in] parser - pointer to parser instance 35 | */ 36 | FIX_PARSER_API void fix_parser_free(FIXParser* parser); 37 | 38 | /** 39 | * return FIX protocol verision of the parser instance 40 | * @param[in] parser - pointer to parser instance 41 | * return FIX protocol version, NULL - in case of error 42 | */ 43 | FIX_PARSER_API char const* fix_parser_get_protocol_ver(FIXParser* parser); 44 | 45 | /** 46 | * parse FIX encoded message 47 | * @param[in] parser - instance of FIX parser 48 | * @param[in] data - pointer to data win FIX message 49 | * @param[in] len - length of parsed data 50 | * @param[in] delimiter - FIX SOH 51 | * @param[in] stop - pointer to position in data, where parsing is stopped 52 | * @param[out] error - error descritption 53 | * @return new instance of parsed message 54 | */ 55 | FIX_PARSER_API FIXMsg* fix_parser_str_to_msg(FIXParser* parser, char const* data, uint32_t len, char delimiter, char const** stop, FIXError** error); 56 | 57 | /** 58 | * pre-parse string and return pair SenderCompID and TargetCompID 59 | * @param[in] data - message for pre-parsing 60 | * @param[in] len - length of pre-parsed data 61 | * @param[in] delimiter - FIX SOH 62 | * @param[out] beginString - pointer to BeginString data 63 | * @param[out] beginStringLen - length of BeginString data 64 | * @param[out] msgType - pointer to MsgType data 65 | * @param[out] msgTypeLen - length of MsgType data 66 | * @param[out] senderCompID - pointer to SenderCompID data 67 | * @param[out] senderCompIDLen - length of senderCompID data 68 | * @param[out] targetCompID - pointer to TargetCompID data 69 | * @param[out] targetCompIDLen - length of TargetCompID data 70 | * @param[out] msgSeqNum - message sequence number 71 | * @param[out] possDupFlag - indicate if message is a duplicate 72 | * @param[out] error - error description, if any. If error is returned it must be destroyed by fix_error_free(error) 73 | * @return FIX_SUCCESS - ok, FIX_FAILED - bad 74 | */ 75 | FIX_PARSER_API FIXErrCode fix_parser_get_header(char const* data, uint32_t len, char delimiter, 76 | char const** beginString, uint32_t* beginStringLen, 77 | char const** msgType, uint32_t *msgTypeLen, 78 | char const** senderCompID, uint32_t* senderCompIDLen, 79 | char const** targetCompID, uint32_t* targetCompIDLen, 80 | int64_t* msgSeqNum, char* possDupFlag, FIXError** error); 81 | 82 | #ifdef __cplusplus 83 | } 84 | #endif 85 | 86 | #endif /* FIX_PARSER_FIX_PARSER_H */ 87 | -------------------------------------------------------------------------------- /include/fix_parser_dll.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_parser_dll.h 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 12/22/2012 6:20:19 PM 5 | */ 6 | 7 | #ifdef _WINDLL 8 | # ifdef WIN32 9 | # ifdef fix_parser_EXPORTS 10 | # define FIX_PARSER_API __declspec(dllexport) 11 | # else 12 | # define FIX_PARSER_API __declspec(dllimport) 13 | # endif 14 | # endif 15 | #else 16 | # define FIX_PARSER_API 17 | #endif 18 | -------------------------------------------------------------------------------- /perf_test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | project(perf_test) 4 | 5 | aux_source_directory(. PERF_TEST_SOURCES) 6 | 7 | add_executable(${PROJECT_NAME} ${PERF_TEST_SOURCES}) 8 | 9 | if (WIN32) 10 | set_source_files_properties(${PERF_TEST_SOURCES} PROPERTIES LANGUAGE CXX) 11 | endif(WIN32) 12 | 13 | if (WIN32) 14 | target_link_libraries(${PROJECT_NAME} fix_parser_s libxml2) 15 | else(WIN32) 16 | target_link_libraries(${PROJECT_NAME} fix_parser_s xml2 rt) 17 | endif(WIN32) 18 | -------------------------------------------------------------------------------- /src/fix_error.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_error.c 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 07/30/2012 10:26:54 AM 5 | */ 6 | 7 | #include "fix_utils.h" 8 | #include "fix_error.h" 9 | #include "fix_error_priv.h" 10 | #include "fix_parser_priv.h" 11 | 12 | #include 13 | #include 14 | 15 | //------------------------------------------------------------------------------------------------------------------------// 16 | FIX_PARSER_API void fix_error_free(FIXError* error) 17 | { 18 | if (error) 19 | { 20 | free(error); 21 | } 22 | } 23 | 24 | /*------------------------------------------------------------------------------------------------------------------------*/ 25 | FIX_PARSER_API FIXErrCode fix_error_get_code(FIXError* error) 26 | { 27 | if (!error) 28 | { 29 | return FIX_ERROR_INVALID_ARGUMENT; 30 | } 31 | return error->code; 32 | } 33 | 34 | /*------------------------------------------------------------------------------------------------------------------------*/ 35 | FIX_PARSER_API char const* fix_error_get_text(FIXError* error) 36 | { 37 | if (!error) 38 | { 39 | return NULL; 40 | } 41 | return error->text; 42 | } 43 | -------------------------------------------------------------------------------- /src/fix_error_priv.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_error_priv.c 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 07/30/2012 10:26:54 AM 5 | */ 6 | 7 | #include "fix_error_priv.h" 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | /*------------------------------------------------------------------------------------------------------------------------*/ 14 | FIXError* fix_error_create_va(FIXErrCode code, char const* text, va_list ap) 15 | { 16 | FIXError* error = (FIXError*)calloc(1, sizeof(FIXError)); 17 | error->code = code; 18 | int32_t n = vsnprintf(error->text, ERROR_TXT_SIZE, text, ap); 19 | error->text[n] = 0; 20 | return error; 21 | } 22 | 23 | /*------------------------------------------------------------------------------------------------------------------------*/ 24 | FIXError* fix_error_create(FIXErrCode code, char const* text, ...) 25 | { 26 | va_list ap; 27 | va_start(ap, text); 28 | FIXError* error = fix_error_create_va(code, text, ap); 29 | va_end(ap); 30 | return error; 31 | } 32 | -------------------------------------------------------------------------------- /src/fix_error_priv.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_error_priv.h 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 07/30/2012 10:54:30 AM 5 | */ 6 | 7 | #ifndef FIX_PARSER_FIX_ERROR_PRIV_H 8 | #define FIX_PARSER_FIX_ERROR_PRIV_H 9 | 10 | #include 11 | 12 | #include 13 | #include 14 | 15 | #ifdef __cplusplus 16 | extern "C" 17 | { 18 | #endif 19 | 20 | #define ERROR_TXT_SIZE 96 ///< maximum error description size 21 | 22 | /** 23 | * hold error description 24 | */ 25 | struct FIXError_ 26 | { 27 | FIXErrCode code; ///< error code 28 | char text[ERROR_TXT_SIZE]; ///< error description 29 | }; 30 | 31 | /** 32 | * create error using variable arguments 33 | * @param[in] code - new error code 34 | * @param[in] text - error description pattern 35 | * @param[in] ap - arguments 36 | * @return error description 37 | */ 38 | FIXError* fix_error_create_va(FIXErrCode code, char const* text, va_list ap); 39 | 40 | /** 41 | * create error using variable arguments 42 | * @param[in] code - new error code 43 | * @param[in] text - error description pattern 44 | * @return error description 45 | */ 46 | FIXError* fix_error_create(FIXErrCode code, char const* text, ...); 47 | 48 | #ifdef __cplusplus 49 | } 50 | #endif 51 | 52 | #endif // FIX_PARSER_FIX_ERROR_PRIV_H 53 | -------------------------------------------------------------------------------- /src/fix_field.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_field.h 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 07/25/2012 03:35:40 PM 5 | */ 6 | 7 | #ifndef FIX_PARSER_FIX_FIELD_H 8 | #define FIX_PARSER_FIX_FIELD_H 9 | 10 | #include "fix_types.h" 11 | #include "fix_msg_priv.h" 12 | 13 | #include 14 | #include 15 | 16 | #pragma pack(push, 1) 17 | #pragma pack(1) 18 | 19 | #ifdef __cplusplus 20 | extern "C" 21 | { 22 | #endif 23 | 24 | #define GROUP_SIZE 64 25 | 26 | /** 27 | * FIX field 28 | */ 29 | struct FIXField_ 30 | { 31 | FIXFieldDescr const* descr; ///< FIX field description 32 | struct FIXField_* next; ///< next FIX field with the same hash key 33 | uint32_t body_len; ///< length of field, if it is converted to string 34 | uint32_t size; ///< size of field data 35 | char* data; ///< field value. All values converted to string 36 | }; 37 | 38 | /** 39 | * FIX field group 40 | */ 41 | struct FIXGroup_ 42 | { 43 | FIXField* fields[GROUP_SIZE]; ///< FIX field hash table 44 | FIXFieldDescr const* parent_fdescr; ///< description of FIX field, which defines number of entries on group 45 | struct FIXGroup_* next; ///< next group in pool of unused groups. If this group is used next == NULL 46 | }; 47 | 48 | /** 49 | * array of FIX groups 50 | */ 51 | typedef struct FIXGroups_ 52 | { 53 | FIXGroup* group[1]; ///< pointer to FIX group array 54 | } FIXGroups; 55 | 56 | /** 57 | * set FIX field value 58 | * @param[in] msg - FIX message 59 | * @param[in] grp - FIX group, if FIX field is a part of FIX group, else must be NULL 60 | * @param[in] descr - FIX field description 61 | * @param[in] data - FIX field value 62 | * @param[in] len - value length 63 | * @param[out] error - error description 64 | * @return pointer to changed FIX field, NULL in case of error 65 | */ 66 | FIXField* fix_field_set(FIXMsg* msg, FIXGroup* grp, FIXFieldDescr const* descr, unsigned char const* data, uint32_t len, FIXError** error); 67 | 68 | /** 69 | * return FIX field by tag number 70 | * @param[in] msg - FIX message with required field 71 | * @param[in] grp - FIX group, if required FIX field is a part of FIX group 72 | * @param[in] tag - FIX field tag num 73 | * @return required FIX field, NULL - in case of error 74 | */ 75 | FIXField* fix_field_get(FIXMsg* msg, FIXGroup* grp, FIXTagNum tag); 76 | 77 | /** 78 | * delete FIX field by tag number 79 | * @param[in] msg - FIX message, with deleted FIX field 80 | * @param[in] grp - FIX group with deleted FIX field. Can be NULL 81 | * @param[in] tag - FIX field tag num 82 | * @param[out] error - error description 83 | * @return FIX_SUCCESS - ok, FIX_FAILED - error 84 | */ 85 | FIXErrCode fix_field_del(FIXMsg* msg, FIXGroup* grp, FIXTagNum tag, FIXError** error); 86 | 87 | /** 88 | * add new FIX group 89 | */ 90 | FIXGroup* fix_group_add(FIXMsg* msg, FIXGroup* grp, FIXFieldDescr const* descr, FIXField** fld, FIXError** error); 91 | 92 | /** 93 | * return FIX group bu zer-based index 94 | */ 95 | FIXGroup* fix_group_get(FIXMsg* msg, FIXGroup* tbl, FIXTagNum tag, uint32_t grpIdx, FIXError** error); 96 | 97 | /** 98 | * remove FIX group 99 | */ 100 | FIXErrCode fix_group_del(FIXMsg* msg, FIXGroup* tbl, FIXTagNum tag, uint32_t grpIdx, FIXError** error); 101 | 102 | #ifdef __cplusplus 103 | } 104 | #endif 105 | 106 | #pragma pack(pop) 107 | 108 | #endif /* FIX_PARSER_FIX_FIELD_H */ 109 | -------------------------------------------------------------------------------- /src/fix_msg_priv.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_msg_priv.h 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 07/30/2012 06:28:42 PM 5 | */ 6 | 7 | #ifndef FIX_PARSER_FIX_MSG_PRIV_H 8 | #define FIX_PARSER_FIX_MSG_PRIV_H 9 | 10 | #include "fix_types.h" 11 | #include "fix_protocol_descr.h" 12 | #include "fix_page.h" 13 | 14 | #include 15 | 16 | #pragma pack(push, 1) 17 | #pragma pack(1) 18 | 19 | #ifdef __cplusplus 20 | extern "C" 21 | { 22 | #endif 23 | 24 | /** 25 | * FIX message 26 | */ 27 | struct FIXMsg_ 28 | { 29 | FIXParser* parser; ///< pointer to parser, who holds this message 30 | FIXMsgDescr const* descr; ///< FIX message description 31 | FIXGroup* fields; ///< message FIX fields 32 | FIXPage* pages; ///< allocated pages with FIX field data 33 | FIXPage* curr_page; ///< current memory page 34 | FIXGroup* used_groups; ///< used groups by this message 35 | uint32_t body_len; ///< entire body len, if message converted to FIX data 36 | }; 37 | 38 | /** 39 | * allocate data for this message 40 | * @param[in] msg - pointer to message 41 | * @param[in] size - size of data being allocated 42 | * @param[out] error - error description 43 | * @return pointer to allocated space, NULL - see error description 44 | */ 45 | void* fix_msg_alloc(FIXMsg* msg, uint32_t size, FIXError** error); 46 | 47 | /** 48 | * realloc previous allocated space 49 | * @param[in] msg - msg with allocated space 50 | * @param[in] ptr - pointer to data previously allocated 51 | * @param[in] size - new size of allocated space. If new size greater, new space will be allocated, else no new space allocated 52 | * @param[out] error - error description 53 | * @return pointer to reallocated space, NULL - see error description 54 | */ 55 | void* fix_msg_realloc(FIXMsg* msg, void* ptr, uint32_t size, FIXError** error); 56 | 57 | /** 58 | * return FIX field by tag num 59 | * @param[in] msg - FIX message with required FIX field 60 | * @param[in] grp - pointer to FIX group, if tag is a part of FIX groups, else must be NULL 61 | * @param[in] tag - FIX field tag numeric 62 | * @return required FIX field or NULL in case of error 63 | */ 64 | FIXField* fix_msg_get_field(FIXMsg* msg, FIXGroup* grp, FIXTagNum tag); 65 | 66 | /** 67 | * set FIX field value 68 | * @param[in] msg - FIX msg with being changed field 69 | * @param[in] grp - FIX group, if FIX field is a part of it, else must be NULL 70 | * @param[in] fdescr - FIX field description 71 | * @param[in] data - new FIX field value 72 | * @param[in] len - length of data 73 | * @param[out] error - error description 74 | */ 75 | FIXField* fix_msg_set_field(FIXMsg* msg, FIXGroup* grp, FIXFieldDescr const* fdescr, unsigned char const* data, uint32_t len, FIXError** error); 76 | 77 | /** 78 | * create new FIX group 79 | * @param[in] msg - FIX message 80 | * @param[out] error - error description 81 | * @return new FIX group 82 | */ 83 | FIXGroup* fix_msg_alloc_group(FIXMsg* msg, FIXError** error); 84 | 85 | /** 86 | * destroy FIX group 87 | * @param[in] msg - FIX message 88 | * @param[in] grp - pointer to deallocated group 89 | */ 90 | void fix_msg_free_group(FIXMsg* msg, FIXGroup* grp); 91 | 92 | /** 93 | * converts FIX group to string 94 | * @param[in] msg - FIX message with converted FIX group 95 | * @param[in] field - FIX field with group data 96 | * @param[in] fdescr - FIX field description 97 | * @param[in] delimiter - FIX field SOH 98 | * @param[out] buff - space with converted data 99 | * @param[out] buffLen - size of converted data 100 | * @param[out] error - error description 101 | * @return FIX_SUCCESS - ok, FIX_FAILED - see error description 102 | */ 103 | FIXErrCode fix_groups_to_string(FIXMsg* msg, FIXField const* field, FIXFieldDescr const* fdescr, char delimiter, char** buff, uint32_t* buffLen, FIXError** error); 104 | 105 | /** 106 | * convert numeric value to string 107 | * @param[in] tag - FIX field tag value 108 | * @param[in] val - converted value 109 | * @param[in] delimiter - FIX field delimiter 110 | * @param[in] width - value width 111 | * @param[in] padSym - char for padding value width. E.g. tag = 35, width = 5, padSym = '0' and value is 10, so converted data is '35=00010' 112 | * @param[out] buff - buffer with converted data 113 | * @param[out] buffLen - size of converted data 114 | * @param[out] error - error description 115 | * @return FIX_SUCCESS - ok, FIX_FAILED - see error description 116 | */ 117 | FIXErrCode int32_to_str(FIXTagNum tag, int32_t val, char delimiter, uint32_t width, char padSym, char** buff, uint32_t* buffLen, FIXError** error); 118 | 119 | /** 120 | * convert FIX field to string 121 | * @param[in] field - FIX field being converted 122 | * @param[in] delimiter - FIX field SOH 123 | * @param[out] buff - buffer with converted data 124 | * @param[out] buffLen - size of converted data 125 | * @param[out] error - error description 126 | * @return FIX_SUCCESS - ok, FIX_FAILED - see error description 127 | */ 128 | FIXErrCode field_to_str(FIXField const* field, char delimiter, char** buff, uint32_t* buffLen, FIXError** error); 129 | 130 | #ifdef __cplusplus 131 | } 132 | #endif 133 | 134 | #pragma pack(pop) 135 | 136 | #endif /* FIX_PARSER_FIX_MSG_PRIV_H */ 137 | -------------------------------------------------------------------------------- /src/fix_page.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_page.h 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 08/02/2012 04:34:14 PM 5 | */ 6 | 7 | #ifndef FIX_PARSER_FIX_PAGE_H 8 | #define FIX_PARSER_FIX_PAGE_H 9 | 10 | #include 11 | 12 | #pragma pack(push, 1) 13 | #pragma pack(1) 14 | 15 | /** 16 | * page of memory for storing FIX fields 17 | */ 18 | typedef struct FIXPage_ 19 | { 20 | uint32_t size; ///< size of page 21 | uint32_t offset; ///< offset of free space 22 | struct FIXPage_* next; ///< next page 23 | char data[1]; ///< start of data 24 | } FIXPage; 25 | 26 | #pragma pack(pop) 27 | 28 | #endif /* FIX_PARSER_FIX_PAGE_H */ 29 | -------------------------------------------------------------------------------- /src/fix_types.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_types.c 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 08/01/2012 01:53:57 PM 5 | */ 6 | 7 | #include "fix_types.h" 8 | 9 | #include "string.h" 10 | 11 | /*-----------------------------------------------------------------------------------------------------------------------*/ 12 | FIXFieldValueTypeEnum str2FIXFieldValueType(char const* type) 13 | { 14 | if (!strcmp(type, "Int")) { return FIXFieldValueType_Int; } 15 | if (!strcmp(type, "Length")) { return FIXFieldValueType_Length; } 16 | if (!strcmp(type, "NumInGroup")) { return FIXFieldValueType_NumInGroup; } 17 | if (!strcmp(type, "SeqNum")) { return FIXFieldValueType_SeqNum; } 18 | if (!strcmp(type, "TagNum")) { return FIXFieldValueType_TagNum; } 19 | if (!strcmp(type, "DayOfMonth")) { return FIXFieldValueType_DayOfMonth; } 20 | if (!strcmp(type, "Float")) { return FIXFieldValueType_Float; } 21 | if (!strcmp(type, "Qty")) { return FIXFieldValueType_Qty; } 22 | if (!strcmp(type, "Price")) { return FIXFieldValueType_Price; } 23 | if (!strcmp(type, "PriceOffset")) { return FIXFieldValueType_PriceOffset; } 24 | if (!strcmp(type, "Amt")) { return FIXFieldValueType_Amt; } 25 | if (!strcmp(type, "Percentage")) { return FIXFieldValueType_Percentage; } 26 | if (!strcmp(type, "Char")) { return FIXFieldValueType_Char; } 27 | if (!strcmp(type, "Boolean")) { return FIXFieldValueType_Boolean; } 28 | if (!strcmp(type, "String")) { return FIXFieldValueType_String; } 29 | if (!strcmp(type, "MultipleValueString")) { return FIXFieldValueType_MultipleValueString; } 30 | if (!strcmp(type, "Country")) { return FIXFieldValueType_Country; } 31 | if (!strcmp(type, "Currency")) { return FIXFieldValueType_Currency; } 32 | if (!strcmp(type, "Exchange")) { return FIXFieldValueType_Exchange; } 33 | if (!strcmp(type, "MonthYear")) { return FIXFieldValueType_MonthYear; } 34 | if (!strcmp(type, "UTCTimestamp")) { return FIXFieldValueType_UTCTimestamp; } 35 | if (!strcmp(type, "UTCTimeOnly")) { return FIXFieldValueType_UTCTimeOnly; } 36 | if (!strcmp(type, "UTCDateOnly")) { return FIXFieldValueType_UTCDateOnly; } 37 | if (!strcmp(type, "LocalMktDate")) { return FIXFieldValueType_LocalMktDate; } 38 | if (!strcmp(type, "Data")) { return FIXFieldValueType_Data; } 39 | if (!strcmp(type, "TZTimeOnly")) { return FIXFieldValueType_TZTimeOnly; } 40 | if (!strcmp(type, "TZTimestamp")) { return FIXFieldValueType_TZTimestamp; } 41 | if (!strcmp(type, "XMLData")) { return FIXFieldValueType_XMLData; } 42 | if (!strcmp(type, "Language")) { return FIXFieldValueType_Language; } 43 | return FIXFieldValueType_Unknown; 44 | } 45 | -------------------------------------------------------------------------------- /src/fix_utils.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file fix_utils.h 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 07/26/2012 04:14:35 PM 5 | */ 6 | 7 | #ifndef FIX_PARSER_FIX_UTILS_H 8 | #define FIX_PARSER_FIX_UTILS_H 9 | 10 | #include 11 | 12 | #ifndef WIN32 13 | # define LIKE(x) __builtin_expect(!!(x), 1) 14 | # define UNLIKE(x) __builtin_expect(!!(x), 0) 15 | # define _strdup strdup 16 | #else 17 | # define LIKE(x) x 18 | # define UNLIKE(x) x 19 | # define PATH_MAX 4096 20 | #endif 21 | 22 | #ifdef __cplusplus 23 | extern "C" 24 | { 25 | #endif 26 | 27 | /** 28 | * calculate string hash value 29 | * @param[in] s - string for hash calculation 30 | * @param[in] len - string length 31 | * @return hash value 32 | */ 33 | uint32_t fix_utils_hash_string(char const* s, uint32_t len); 34 | 35 | /** 36 | * return number of digits. E.g. 10221 -> 5 37 | * @param[in] val - numeric value 38 | * @return number of digits 39 | */ 40 | int32_t fix_utils_numdigits(int64_t val); 41 | 42 | /** 43 | * pow10 calculation 44 | */ 45 | int64_t fix_utils_lpow10(int32_t n); 46 | 47 | /** 48 | * convert int64 value into string 49 | * @param[in] val - converted value 50 | * @param[out] buff - buffer with converted value 51 | * @param[in] buffLen - length of buffer 52 | * @param[in] padSym - padding symbol 53 | * @return how many characters written (can be written). If this value greater than buffLen, value converted 54 | * incompletely 55 | */ 56 | int32_t fix_utils_i64toa(int64_t val, char* buff, uint32_t buffLen, char padSym); 57 | 58 | /** 59 | * convert double to string 60 | * @param[in] val - converted value 61 | * @param[out] buff - buffer with converted value 62 | * @param[in] buffLen - length of buffer 63 | * @return how many characters written (can be written). If this value greater than buffLen, value converted 64 | * incompletely 65 | */ 66 | int32_t fix_utils_dtoa(double val, char* buff, uint32_t buffLen); 67 | 68 | /** 69 | * convert string to 32-bit number 70 | * @param[in] buff - string value 71 | * @param[in] buffLen - length of buffer 72 | * @param[in] stopChar - stop parsing on this char. If stopChar == 0, processed till buffer end 73 | * @param[out] val - converted value 74 | * @param[out] cnt - how many characters processed 75 | * @return possible parsing error, FIX_SUCCESS - if no error 76 | */ 77 | FIXErrCode fix_utils_atoi32(char const* buff, uint32_t buffLen, char stopChar, int32_t* val, int32_t* cnt); 78 | 79 | /** 80 | * convert string to 64-bit number 81 | * @param[in] buff - string value 82 | * @param[in] buffLen - length of buffer 83 | * @param[in] stopChar - stop parsing on this char. If stopChar == 0, processed till buffer end 84 | * @param[out] val - converted value 85 | * @param[out] cnt - how many characters processed 86 | * @return possible parsing error, FIX_SUCCESS - if no error 87 | */ 88 | FIXErrCode fix_utils_atoi64(char const* buff, uint32_t buffLen, char stopChar, int64_t* val, int32_t* cnt); 89 | 90 | /** 91 | * convert string to double 92 | * @param[in] buff - string value 93 | * @param[in] buffLen - length of buffer 94 | * @param[in] stopChar - stop parsing on this char. If stopChar == 0, processed till buffer end 95 | * @param[out] val - converted value 96 | * @param[out] cnt - how many characters processed 97 | * @return possible parsing error, FIX_SUCCESS - if no error 98 | */ 99 | FIXErrCode fix_utils_atod(char const* buff, uint32_t buffLen, char stopChar, double* val, int32_t* cnt); 100 | 101 | /** 102 | * fix transpFile path according to protocolFile path 103 | * @param[in] protocolFile - path to protocol file 104 | * @param[in] transpFile - path to transport file 105 | * @param[out] path - fixed transport file path 106 | * @param[in] buffLen - legth of path buffer 107 | * @return FIX_SUCCESS - ok, FIX_FAILED - error (buff of too small) 108 | * @note if transport file path is absolute no fix are made, else path is given from protocol file 109 | */ 110 | FIXErrCode fix_utils_make_path(char const* protocolFile, char const* transpFile, char* path, uint32_t buffLen); 111 | 112 | 113 | #ifdef __cplusplus 114 | } 115 | #endif 116 | 117 | #endif /* FIX_PARSER_FIX_UTILS_H */ 118 | -------------------------------------------------------------------------------- /src/lin/fix_utils.c: -------------------------------------------------------------------------------- 1 | /* @file fix_utils_lin.c 2 | @author Dmitry S. Melnikov, dmitryme@gmail.com 3 | @date Created on: 12/28/2012 04:58:17 PM 4 | */ 5 | 6 | #include "fix_utils.h" 7 | #include "fix_types.h" 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | /*------------------------------------------------------------------------------------------------------------------------*/ 14 | FIXErrCode fix_utils_make_path(char const* protocolFile, char const* transpFile, char* path, uint32_t buffLen) 15 | { 16 | FIXErrCode ret = FIX_SUCCESS; 17 | char* transpFileDup = strdup(transpFile); 18 | char* protocolFileDup = strdup(protocolFile); 19 | if (!strcmp(basename(transpFileDup), transpFile) && 20 | strcmp(basename(protocolFileDup), protocolFile)) // make sure no dir(even ./) set for transpFile and protocolFile has a dir 21 | { 22 | if (snprintf(path, buffLen, "%s/%s", dirname(protocolFileDup), basename(transpFileDup)) >= buffLen) 23 | { 24 | ret = FIX_FAILED; 25 | } 26 | } 27 | else 28 | { 29 | if (snprintf(path, buffLen, "%s", transpFile) >= buffLen) 30 | { 31 | ret = FIX_FAILED; 32 | } 33 | } 34 | free(transpFileDup); 35 | free(protocolFileDup); 36 | return ret; 37 | } 38 | -------------------------------------------------------------------------------- /src/win/fix_utils.c: -------------------------------------------------------------------------------- 1 | /* @file fix_utils_win.c 2 | @author Dmitry S. Melnikov, dmitryme@gmail.com 3 | @date Created on: 12/27/2012 01:05:17 PM 4 | */ 5 | 6 | #include "fix_utils.h" 7 | #include 8 | #include 9 | #include 10 | 11 | /*------------------------------------------------------------------------------------------------------------------------*/ 12 | FIXErrCode fix_utils_make_path(char const* protocolFile, char const* transpFile, char* path, uint32_t buffLen) 13 | { 14 | char drive[_MAX_DRIVE + 1] = {}; 15 | char dir[_MAX_DIR + 1] = {}; 16 | char fname[_MAX_FNAME + 1] = {}; 17 | char ext[_MAX_EXT + 1] = {}; 18 | if (_splitpath_s(transpFile, drive, sizeof(drive), dir, sizeof(dir), fname, sizeof(fname), ext, sizeof(ext))) 19 | { 20 | return FIX_FAILED; 21 | } 22 | if (!strcmp(dir, "")) // looking for transpFile in protocolFile directory 23 | { 24 | char pdrive[_MAX_DRIVE + 1] = {}; 25 | char pdir[_MAX_DIR + 1] = {}; 26 | if (_splitpath_s(protocolFile, pdrive, sizeof(pdrive), pdir, sizeof(pdir), NULL, 0, NULL, 0)) 27 | { 28 | return FIX_FAILED; 29 | } 30 | if (!strcmp(pdir, "")) // protocolFile is in working directory too 31 | { 32 | if (strcpy_s(path, buffLen, transpFile)) 33 | { 34 | return FIX_FAILED; 35 | } 36 | } 37 | else 38 | { 39 | if ((strlen(pdrive) + strlen(pdir) + strlen(transpFile) + 1) > buffLen) 40 | { 41 | return FIX_FAILED; 42 | } 43 | strcpy(path, pdrive); 44 | strcpy(path + strlen(pdrive), pdir); 45 | strcpy(path + strlen(pdrive) + strlen(pdir), transpFile); 46 | } 47 | } 48 | else // don't do anything, just return transFile path 49 | { 50 | if (strcpy_s(path, buffLen, transpFile)) 51 | { 52 | return FIX_FAILED; 53 | } 54 | } 55 | return FIX_SUCCESS; 56 | } 57 | -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | project(test) 4 | 5 | ExternalProject_Add( 6 | googletest 7 | GIT_REPOSITORY https://github.com/dmitryme/gtest.git 8 | TIMEOUT 10 9 | # Disable install step 10 | INSTALL_COMMAND "" 11 | CMAKE_ARGS -DCMAKE_BUILD_TYPE=Debug -Dgtest_force_shared_crt=ON 12 | # Wrap download, configure and build steps in a script to log output 13 | LOG_DOWNLOAD ON 14 | LOG_CONFIGURE ON 15 | LOG_BUILD ON) 16 | 17 | ExternalProject_Get_Property(googletest SOURCE_DIR) 18 | ExternalProject_Get_Property(googletest BINARY_DIR) 19 | 20 | include_directories(${SOURCE_DIR}/include) 21 | link_directories(${BINARY_DIR}) 22 | 23 | aux_source_directory(. TEST_SOURCES) 24 | 25 | add_executable(${PROJECT_NAME} ${TEST_SOURCES}) 26 | 27 | if (WIN32) 28 | target_link_libraries(${PROJECT_NAME} gtest fix_parser_s libxml2) 29 | else(WIN32) 30 | target_link_libraries(${PROJECT_NAME} gtest fix_parser_s pthread xml2 rt) 31 | endif(WIN32) 32 | -------------------------------------------------------------------------------- /test/main.cc: -------------------------------------------------------------------------------- 1 | /** 2 | * @file main.cc 3 | * @author Dmitry S. Melnikov, dmitryme@gmail.com 4 | * @date Created on: 08/03/2012 02:41:31 PM 5 | */ 6 | 7 | #include 8 | 9 | int main(int argc, char *argv[]) 10 | { 11 | testing::InitGoogleTest(&argc, argv); 12 | return RUN_ALL_TESTS(); 13 | } 14 | -------------------------------------------------------------------------------- /test/test_data/fix1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /test/test_data/fix2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /test/test_data/fixt1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | --------------------------------------------------------------------------------