var NAVTREE =
[
  [ "Apache Ignite.NET", "index.html", [
    [ "Apache Ignite.NET In-Memory Data Fabric", "index.html", null ],
    [ "Packages", null, [
      [ "Packages", "namespaces.html", "namespaces" ],
      [ "Package Functions", "namespacemembers.html", [
        [ "All", "namespacemembers.html", null ],
        [ "Functions", "namespacemembers_func.html", null ],
        [ "Typedefs", "namespacemembers_type.html", null ],
        [ "Enumerations", "namespacemembers_enum.html", null ],
        [ "Enumerator", "namespacemembers_eval.html", null ]
      ] ]
    ] ],
    [ "Classes", null, [
      [ "Class List", "annotated.html", "annotated" ],
      [ "Class Index", "classes.html", null ],
      [ "Class Hierarchy", "hierarchy.html", "hierarchy" ],
      [ "Class Members", "functions.html", [
        [ "All", "functions.html", "functions_dup" ],
        [ "Functions", "functions_func.html", "functions_func" ],
        [ "Variables", "functions_vars.html", null ],
        [ "Enumerator", "functions_eval.html", null ],
        [ "Properties", "functions_prop.html", "functions_prop" ],
        [ "Events", "functions_evnt.html", null ]
      ] ]
    ] ]
  ] ]
];

var NAVTREEINDEX =
[
"annotated.html",
"class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_configuration_1_1_query_entity.html#a512b1c29ea74e215af003b1cdb8ee293",
"class_apache_1_1_ignite_1_1_core_1_1_discovery_1_1_tcp_1_1_multicast_1_1_tcp_discovery_multicast_ip_finder.html#ab9b7670594bdccf3355a9bccb8e7ec21",
"class_apache_1_1_ignite_1_1_core_1_1_ignite_configuration_section.html#aa02463357afd9f2d14ed07d66860dc46",
"interface_apache_1_1_ignite_1_1_core_1_1_binary_1_1_i_binary_object_builder.html#a11a0167aceefb4feea0c69878ea7f340",
"interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache.html#aaa48a895a67bc69e22620573a45f7d30",
"interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute.html#a0011fb79a22ef1c4c6d9fabebae2df23",
"interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_service_context.html#a10f1a76b9d9a6b392594583b07fc6a80"
];

var SYNCONMSG = 'click to disable panel synchronisation';
var SYNCOFFMSG = 'click to enable panel synchronisation';