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_cache_1_1_query_1_1_continuous_1_1_continuous_query.html#aed010f5f51f473e6fb7040a646fdfb64",
"class_apache_1_1_ignite_1_1_core_1_1_events_1_1_cache_event.html#addf49031692419d76944e8a27753d21c",
"class_apache_1_1_ignite_1_1_core_1_1_transactions_1_1_transaction_timeout_exception.html#a690472829a4c0e56cbd3b28b88beb6ee",
"interface_apache_1_1_ignite_1_1_core_1_1_binary_1_1_i_binary_type.html#af2574b037ec68f01bc3105ec3f524c3b",
"interface_apache_1_1_ignite_1_1_core_1_1_cluster_1_1_i_cluster_group.html#a7d43b7243f8c921e626d629d9eb369a8",
"interface_apache_1_1_ignite_1_1_core_1_1_i_ignite.html"
];

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