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 ],
        [ "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 ],
        [ "Properties", "functions_prop.html", "functions_prop" ]
      ] ]
    ] ]
  ] ]
];

var NAVTREEINDEX =
[
"annotated.html",
"class_apache_1_1_ignite_1_1_core_1_1_events_1_1_cache_query_executed_event.html#abb0c89530ead6ab0d6a39d9e9d643d88",
"functions_prop_v.html",
"interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache.html#a2db6f73955b2bbfed0a325ed815cc659",
"interface_apache_1_1_ignite_1_1_core_1_1_cluster_1_1_i_cluster_metrics.html#afd0e7339e4077cf1b95dcde7b87db1e4",
"namespace_apache_1_1_ignite_1_1_core_1_1_cache.html"
];

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