/**
* Configuration entries for this application only
*
- * @author Roland Haeder <webmaster@ship-simu.org>
+ * @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0
* @copyright Copyright (c) 2007 - 2008 Roland Haeder, 2009 - 2012 Hub Developer Team
* @license GNU GPL 3.0 or any newer version
// CFG: WEB-CONTENT-TYPE
$cfg->setConfigEntry('web_content_type', '');
-// CFG: QUERY-CONNECTOR-CLASS
-$cfg->setConfigEntry('query_connector_class', 'LocalQueryConnector');
-
-// CFG: QUEUE-CONNECTOR-CLASS
-$cfg->setConfigEntry('queue_connector_class', 'LocalQueueConnector');
-
// CFG: LISTENER-POOL-CLAS
$cfg->setConfigEntry('listener_pool_class', 'DefaultListenerPool');
// CFG: DHT-BOOTSTRAP-HELPER-CLASS
$cfg->setConfigEntry('dht_bootstrap_helper_class', 'DhtBootstrapHelper');
+// CFG: DHT-PUBLISH-ENTRY-HELPER-CLASS
+$cfg->setConfigEntry('dht_publish_entry_helper_class', 'DhtPublishEntryHelper');
+
// CFG: DEFAULT-CONSOLE-COMMAND
$cfg->setConfigEntry('default_console_command', 'main');
$cfg->setConfigEntry('node_request_node_list_entries_template_class', 'XmlRequestNodeListEntryTemplateEngine');
// CFG: DHT-BOOTSTRAP-TEMPLATE-CLASS
-$cfg->setConfigEntry('dht_bootstrap_template_class', 'XmlBootstrapTemplateEngine');
+$cfg->setConfigEntry('dht_bootstrap_template_class', 'XmlDhtBootstrapTemplateEngine');
+
+// CFG: DHT-PUBLISH-ENTRY-TEMPLATE-CLASS
+$cfg->setConfigEntry('dht_publish_entry_template_class', 'XmlDhtPublishEntryTemplateEngine');
// CFG: NODE-MESSAGE-TEMPLATE-EXTENSION
$cfg->setConfigEntry('node_message_template_extension', '.xml');
+// CFG: DHT-MESSAGE-TEMPLATE-EXTENSION
+$cfg->setConfigEntry('dht_message_template_extension', '.xml');
+
// CFG: NODE-ANNOUNCEMENT-ANSWER-TEMPLATE-EXTENSION
$cfg->setConfigEntry('node_announcement_answer_template_extension', '.xml');
// CFG: NODE-REQUEST-NODE-LIST-ENTRY-STACKER-CLASS
$cfg->setConfigEntry('node_request_node_list_entry_stacker_class', 'FiLoStacker');
+// CFG: DHT-STACKER-CLASS
+$cfg->setConfigEntry('dht_stacker_class', 'FiLoStacker');
+
// CFG: NODE-ANNOUNCEMENT-ANSWER-TEMPLATE-TYPE
$cfg->setConfigEntry('node_announcement_answer_template_type', 'xml/answer/announcement');
// CFG: NODE-OBJECT-TYPE-REGISTRY-CLASS
$cfg->setConfigEntry('node_object_type_registry_class', 'ObjectTypeRegistry');
+// CFG: DHT-BOOTSTRAP-TEMPLATE-TYPE
+$cfg->setConfigEntry('dht_bootstrap_template_type', 'xml/dht_bootstrap');
+
+// CFG: DHT-PUBLISH-TEMPLATE-TYPE
+$cfg->setConfigEntry('dht_publish_template_type', 'xml/dht_publish');
+
// CFG: CODE-TEMPLATE-TYPE
$cfg->setConfigEntry('code_template_type', 'xml');
// CFG: CHUNK-HANDLER-STACKER-CLASS
$cfg->setConfigEntry('chunk_handler_stacker_class', 'FiFoStacker');
+// CFG: DHT-BOOTSTRAP-STACKER-CLASS
+$cfg->setConfigEntry('dht_bootstrap_stacker_class', 'FiFoStacker');
+
+// CFG: DHT-PUBLISH-STACKER-CLASS
+$cfg->setConfigEntry('dht_publish_stacker_class', 'FiFoStacker');
+
// CFG: PRODUCER-OUTGOING-QUEUE
$cfg->setConfigEntry('producer_outgoing_queue', 'FiFoStacker');
// CFG: STACKER-PACKAGE-BACKBUFFER-MAX-SIZE
$cfg->setConfigEntry('stacker_package_backbuffer_max_size', 1000);
-// CFG: STACKER-IN-QUEUE-MAX-SIZE
-$cfg->setConfigEntry('stacker_in_queue_max_size', 10000);
-
-// CFG: STACKER-OUT-QUEUE-MAX-SIZE
-$cfg->setConfigEntry('stacker_out_queue_max_size', 10000);
-
// CFG: STACKER-NODE-OBJECT-REGISTRY-MAX-SIZE
$cfg->setConfigEntry('stacker_node_object_registry_max_size', 100);
-// CFG: STACKER-OUTGOING-QUEUE-MAX-SIZE
-$cfg->setConfigEntry('stacker_outgoing_queue_max_size', 100000);
-
-// CFG: STACKER-INCOMING-QUEUE-MAX-SIZE
-$cfg->setConfigEntry('stacker_incoming_queue_max_size', 100000);
-
// CFG: STACKER-RAW-DATA-MAX-SIZE
$cfg->setConfigEntry('stacker_raw_data_max_size', 100);
// CFG: STACKER-DECODED-PACKAGE-MAX-SIZE
$cfg->setConfigEntry('stacker_decoded_package_max_size', 100);
+// CFG: STACKER-DHT-BOOTSTRAP-MAX-SIZE
+$cfg->setConfigEntry('stacker_dht_bootstrap_max_size', 10);
+
+// CFG: STACKER-DHT-PUBLISH-MAX-SIZE
+$cfg->setConfigEntry('stacker_dht_publish_max_size', 10);
+
+// CFG: STACKER-DHT-INSERT-NODE-MAX-SIZE
+$cfg->setConfigEntry('stacker_dht_insert_node_max_size', 100);
+
+// CFG: STACKER-DHT-PENDING_PUBLISH-MAX-SIZE
+$cfg->setConfigEntry('stacker_dht_pending_publish_max_size', 100);
+
// CFG: NEWS-MAIN-LIMIT
$cfg->setConfigEntry('news_main_limit', 5);
// CFG: TASK-HANDLER-CLASS
$cfg->setConfigEntry('task_handler_class', 'TaskHandler');
-// CFG: TASK-QUERY-HANDLER-STARTUP-DELAY
-$cfg->setConfigEntry('task_query_handler_startup_delay', 1000);
-
-// CFG: TASK-QUERY-HANDLER-INTERVAL-DELAY
-$cfg->setConfigEntry('task_query_handler_interval_delay', 10);
-
-// CFG: TASK-QUERY-HANDLER-MAX-RUNS
-$cfg->setConfigEntry('task_query_handler_max_runs', 0);
-
-// CFG: TASK-QUEUE-HANDLER-STARTUP-DELAY
-$cfg->setConfigEntry('task_queue_handler_startup_delay', 1000);
+// CFG: TASK-PACKAGE-TAGS-INIT-STARTUP-DELAY
+$cfg->setConfigEntry('task_package_tags_init_startup_delay', 50);
-// CFG: TASK-QUEUE-HANDLER-INTERVAL-DELAY
-$cfg->setConfigEntry('task_queue_handler_interval_delay', 10);
+// CFG: TASK-PACKAGE-TAGS-INIT-INTERVAL-DELAY
+$cfg->setConfigEntry('task_package_tags_init_interval_delay', 1000*60*60*24*7);
-// CFG: TASK-QUEUE-HANDLER-MAX-RUNS
-$cfg->setConfigEntry('task_queue_handler_max_runs', 0);
+// CFG: TASK-PACKAGE-TAGS-INIT-MAX-RUNS
+$cfg->setConfigEntry('task_package_tags_init_max_runs', 1);
// CFG: TASK-IDLE-LOOP-STARTUP-DELAY
$cfg->setConfigEntry('task_idle_loop_startup_delay', 0);
// CFG: IDLE-TASK-CLASS
$cfg->setConfigEntry('idle_task_class', 'IdleLoopTask');
+// CFG: NODE-PACKAGE-TAGS-INIT-TASK-CLASS
+$cfg->setConfigEntry('node_package_tags_init_task_class', 'NodePackageTagsInitTask');
+
// CFG: NODE-SELFCONNECT-TASK-CLASS
$cfg->setConfigEntry('node_selfconnect_task_class', 'NodeSelfConnectTask');
// CFG: NODE-DHT-QUERY-TASK-CLASS
$cfg->setConfigEntry('node_dht_query_task_class', 'NodeDhtQueryTask');
+// CFG: NODE-DHT-PUBLICATION-CHECK-TASK-CLASS
+$cfg->setConfigEntry('node_dht_publication_check_task_class', 'NodeDhtPublicationCheckTask');
+
+// CFG: NODE-DHT-PUBLICATION-TASK-CLASS
+$cfg->setConfigEntry('node_dht_publication_task_class', 'NodeDhtPublicationTask');
+
// CFG: TASK-NETWORK-PACKAGE-WRITER-STARTUP-DELAY
$cfg->setConfigEntry('task_network_package_writer_startup_delay', 2500);
// CFG: TASK-DHT-QUERY-MAX-RUNS
$cfg->setConfigEntry('task_dht_query_max_runs', 0);
+// CFG: TASK-DHT-CHECK-PUBLICATION-STATUP-DELAY
+$cfg->setConfigEntry('task_dht_check_publication_startup_delay', 10000);
+
+// CFG: TASK-DHT-CHECK-PUBLICATION-INTERVAL-DELAY
+$cfg->setConfigEntry('task_dht_check_publication_interval_delay', 1800000); // = 1/2 hour
+
+// CFG: TASK-DHT-CHECK-PUBLICATION-MAX-RUNS
+$cfg->setConfigEntry('task_dht_check_publication_max_runs', 0);
+
+// CFG: TASK-DHT-PUBLICATION-STATUP-DELAY
+$cfg->setConfigEntry('task_dht_publication_startup_delay', 8000);
+
+// CFG: TASK-DHT-PUBLICATION-INTERVAL-DELAY
+$cfg->setConfigEntry('task_dht_publication_interval_delay', 5000);
+
+// CFG: TASK-DHT-PUBLICATION-MAX-RUNS
+$cfg->setConfigEntry('task_dht_publication_max_runs', 0);
+
// CFG: TASK-LIST-CLASS
$cfg->setConfigEntry('task_list_class', 'TaskList');
// CFG: NODE-PING-ITERATOR-CLASS
$cfg->setConfigEntry('node_ping_iterator_class', 'HubPingIterator');
-// CFG: LOCAL-QUERY-LIST-CLASS
-$cfg->setConfigEntry('local_query_list_class', 'LocalQueryList');
-
-// CFG: LOCAL-QUERY-CLASS
-$cfg->setConfigEntry('local_query_class', 'LocalQuery');
-
// CFG: WEB-TEMPLATE-CLASS @OVERRIDE
$cfg->setConfigEntry('web_template_class', 'ConsoleTemplateEngine');
-// CFG: NODE-INIT-STATE-CLASS
-$cfg->setConfigEntry('node_init_state_class', 'NodeInitState');
-
-// CFG: NODE-VIRGIN-STATE-CLASS
-$cfg->setConfigEntry('node_virgin_state_class', 'NodeVirginState');
-
-// CFG: NODE-ACTIVE-STATE-CLASS
-$cfg->setConfigEntry('node_active_state_class', 'NodeActiveState');
-
-// CFG: NODE-ANNOUNCED-STATE-CLASS
-$cfg->setConfigEntry('node_announced_state_class', 'NodeAnnouncedState');
-
-// CFG: NODE-REACHABLE-STATE-CLASS
-$cfg->setConfigEntry('node_reachable_state_class', 'NodeReachableState');
-
-// CFG: NODE-ANNOUNCEMENT-COMPLETED-STATE-CLASS
-$cfg->setConfigEntry('node_announcement_completed_state_class', 'NodeAnnouncementCompletedState');
-
// CFG: NETWORK-PACKAGE-CLASS
$cfg->setConfigEntry('network_package_class', 'NetworkPackage');
// CFG: NODE-DHT-CLASS
$cfg->setConfigEntry('node_dht_class', 'NodeDhtFacade');
+///////////////////////////////////////////////////////////////////////////////
+// Node states
+///////////////////////////////////////////////////////////////////////////////
+
+// CFG: NODE-INIT-STATE-CLASS
+$cfg->setConfigEntry('node_init_state_class', 'NodeInitState');
+
+// CFG: NODE-VIRGIN-STATE-CLASS
+$cfg->setConfigEntry('node_virgin_state_class', 'NodeVirginState');
+
+// CFG: NODE-ACTIVE-STATE-CLASS
+$cfg->setConfigEntry('node_active_state_class', 'NodeActiveState');
+
+// CFG: NODE-ANNOUNCED-STATE-CLASS
+$cfg->setConfigEntry('node_announced_state_class', 'NodeAnnouncedState');
+
+// CFG: NODE-REACHABLE-STATE-CLASS
+$cfg->setConfigEntry('node_reachable_state_class', 'NodeReachableState');
+
+// CFG: NODE-ANNOUNCEMENT-COMPLETED-STATE-CLASS
+$cfg->setConfigEntry('node_announcement_completed_state_class', 'NodeAnnouncementCompletedState');
+
///////////////////////////////////////////////////////////////////////////////
// Peer states
///////////////////////////////////////////////////////////////////////////////
// CFG: PEER-NO-ROUTE-TO-HOST-STATE-CLASS
$cfg->setConfigEntry('peer_no_route_to_host_state_class', 'NoRouteToHostPeerState');
+///////////////////////////////////////////////////////////////////////////////
+// DHT states
+///////////////////////////////////////////////////////////////////////////////
+
+// CFG: DHT-INIT-STATE-CLASS
+$cfg->setConfigEntry('dht_init_state_class', 'DhtInitState');
+
+// CFG: DHT-VIRGIN-STATE-CLASS
+$cfg->setConfigEntry('dht_virgin_state_class', 'DhtVirginState');
+
+// CFG: DHT-BOOTING-STATE-CLASS
+$cfg->setConfigEntry('dht_booting_state_class', 'DhtBootingState');
+
+// CFG: DHT-ACTIVE-STATE-CLASS
+$cfg->setConfigEntry('dht_active_state_class', 'DhtActiveState');
+
///////////////////////////////////////////////////////////////////////////////
// Message answer-status handler
///////////////////////////////////////////////////////////////////////////////
// CFG: REQUEST-NODE-LIST-ANSWER-STATUS-OKAY-HANDLER-CLASS
$cfg->setConfigEntry('request_node_list_answer_status_okay_handler_class', 'RequestNodeListAnswerOkayHandler');
+///////////////////////////////////////////////////////////////////////////////
+// Recipient resolver
+///////////////////////////////////////////////////////////////////////////////
+
+// CFG: DIRECT-RECIPIENT-CLASS
+$cfg->setConfigEntry('direct_recipient_class', 'DirectRecipient');
+
+// CFG: DHT-RECIPIENT-CLASS
+$cfg->setConfigEntry('dht_recipient_class', 'DhtRecipient');
+
+// CFG: SELF-RECIPIENT-CLASS
+$cfg->setConfigEntry('self_recipient_class', 'SelfRecipient');
+
+// CFG: UPPER-RECIPIENT-CLASS
+$cfg->setConfigEntry('upper_recipient_class', 'UpperRecipient');
+
///////////////////////////////////////////////////////////////////////////////
// Cruncher configuration
///////////////////////////////////////////////////////////////////////////////
// CFG: STACKER-CRUNCHER-TEST-UNIT-MAX-SIZE
$cfg->setConfigEntry('stacker_cruncher_test_unit_max_size', 20);
+// CFG: STACKER-OUTGOING-QUEUE-MAX-SIZE
+$cfg->setConfigEntry('stacker_outgoing_queue_max_size', 2000);
+
// CFG: CRUNCHER-TEST-UNIT-MAX-COUNT
$cfg->setConfigEntry('cruncher_test_unit_max_count', 1000);
$cfg->setConfigEntry('cruncher_virgin_state_class', 'CruncherVirginState');
// CFG: CRUNCHER-PER-UNIT-KEY-LIMIT
-$cfg->setConfigEntry('cruncher_per_unit_key_limit', 10000);
+$cfg->setConfigEntry('cruncher_per_unit_key_limit', 1000);
///////////////////////////////////////////////////////////////////////////////
// Chat Configuration