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_index_field.html",
"class_apache_1_1_ignite_1_1_core_1_1_discovery_1_1_tcp_1_1_tcp_discovery_spi.html#a162f0a485545857dd9ca639bcec47c5b",
"class_apache_1_1_ignite_1_1_core_1_1_ignition.html#a6091bf945c0b620eac95ebf08799e67e",
"interface_apache_1_1_ignite_1_1_core_1_1_binary_1_1_i_binary_object_builder.html",
"interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache.html#aa1dce13b2f355c16d06423a103bb911f",
"interface_apache_1_1_ignite_1_1_core_1_1_cluster_1_1_i_cluster_node.html#aa6dda7314fa9ee94f75749ac46ed2126",
"interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#a92ba7709d6d2374b54d0433fdae89b35"
];

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