/******************************************************************************
  @header Globals
  @abstract Defines global settings
 
  @copyright 2004, 2005, 2006 Free Software Foundation, Inc.
  
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA

  <pre>
  -------------------------------------------------------------------------
  Modification history

  03.02.2005 ola     initial version
  23.08.2006 ola     license changed
  -------------------------------------------------------------------------
  </pre>
******************************************************************************/

#if !defined(__FTGLOBALS_H)
#define __FTGLOBALS_H

#include <Foundation/Foundation.h>
#include <FT/FTObject.h>

/*!
 * @define FT_IP_NODEID_2_PROVIDERMGR_DBNAME
 * @abstract name of database used to map node id -> provider manager
 * @discussionion This entry is to be found within info.plist
 */
#define FT_IP_NODEID_2_PROVIDERMGR_DBNAME \
  @"FTDatabaseName.NodeId2ProviderManager"
  

/*!
 * @marco FT_IP_GRAPHID_2_GRAPH_DBNAME
 * @abstract name of database mapping graph identifiers to graph instances
 */
#define FT_IP_GRAPHID_2_GRAPH_DBNAME @"FTDatabaseName.graphid2Graph"


/*!
 * @define FT_IP_GlobalObject_2_IDMAPPER_DBNAME
 * @abstract name of database used by {@link FTDefaultObjectToIdMapper}.
 */
#define FT_IP_DefaultObject_2_IDMAPPER_DBNAME \
  @"FTDatabaseName.DefaultObject2IdMapper"
  
  
/*!
 * @define FT_IP_DEFAULT_DICTIONARYPROVIDER_DBNAME
 * @abstract name of database used for the default dictionary provider
 */
#define FT_IP_DEFAULT_DICTIONARYPROVIDER_DBNAME \
  @"FTDatabaseName.DefaultDictionaryProvider"


/*!
 * @define FT_IP_GRAPH_DBNAME_SCHEME
 * @abstract This entry determines the way graph databases are named.
 * It is based on a unique numbering
 */
#define FT_IP_GRAPH_DBNAME_SCHEME \
  @"FTDatabaseName.graphDBNameScheme"
  

/*!
 * @define FT_IP_NODES_DBNAME
 * @abstract name of the node database
 */
#define FT_IP_NODES_DBNAME \
  @"FTDatabaseName.nodes"
  
  
/*!
 * @define FT_IP_ID_2_RECNO_DBNAME
 * @abstract name of the database "idToNode" which contains the nodes as 
 *   values
 */
#define FT_IP_ID_2_RECNO_DBNAME \
  @"FTDatabaseName.id2Recno"
  
  
/*!
 * @define FT_IP_OBJECT_2_IDMAPPER
 * @abstract name of the database "objectToId" which is used within graphs.
 */
#define FT_IP_OBJECT_2_IDMAPPER \
  @"FTDatabaseName.objectToIdMapper"
  

/*!
 * @define FT_IP_KEY_2_GENERAL_GRAPH_INFO_DBNAME
 * @abstract name of database storing general information releated to a graph
 */
#define FT_IP_KEY_2_GENERAL_GRAPH_INFO_DBNAME \
  @"FTDatabaseName.keyToGeneralGraphInfo"
 

/*!
 * @define FT_THREAD_DICT_REF_SESSION
 * @abstract entry within a thread's dictionary which refers to the underlying
 *   session
 */
#define FT_THREAD_DICT_REF_SESSION @"_FT_SESSION"


/*!
 * @define FT_IP_SERVICES
 * @abstract this key refers to an entry that specifies all services to be 
 * loaded at startup
 */
#define FT_IP_SERVICES @"Services"


/*!
 * @macro PS_DEFAULT_MAX_ENTRIES_PER_CHUNCK
 * @abstract describes sepcifies the maximum numer of entries per set
 *   within a FTPersistentSet
 */
#define PS_DEFAULT_MAX_ENTRIES_PER_CHUNCK 8192
#endif
