/****************************************************************************** @header FTSessionImpl @abstract implementation of FTSession @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
  -------------------------------------------------------------------------
  Modification history

  31.01.2005 ola     initial version
  23.08.2006 ola     license changed
  -------------------------------------------------------------------------
  
******************************************************************************/ #if !defined(__FTSESSIONIMPL_H) #define __FTSESSIONIMPL_H #include #include #include #include #include @class FTSessionManagerImpl; @class FTServerImpl; /** * @class FTSessionImpl */ @interface FTSessionImpl : FTObject { @private FTSessionManagerImpl *sessionManager; FTServerImpl *server; id sessionId; } /*! * @method currentSession * @result the session associated to the currently running thread. nil, if not * attached to this thread */ + (FTSessionImpl *) currentSession; /** * @method initForSessionManager * @abstract initializes the instance with the given session manager. * for internal purposes only * @param theSessionManager * @param theServer underlying server instance */ - initForSessionManager: (FTSessionManagerImpl *) theSessionManager server: (FTServerImpl *) theServer useSessionId: (id) aSessionId; - (void) dealloc; /*! * @method beginTransactionWithParent * @abstract Used to begin a transaction * @param parentTransaction may be nil. If not then the specified * transaction will be used as parent transaction and the new transaction * will be executed as nested transaction. At present only nil values are * supported. * @param transactionSettings an instance specifying settings for this * transaction. At present, only nil values are supported. * @result underlying transaction */ - (id ) beginTransactionWithParent: (id ) parentTransaction withSettings: (id ) transactionSettings; /** * @method close * @abstract used to close this session. * @discussionion after calling this method the session instances may not be used * any more. */ - close; /*! * @method currentTransaction * @result current transaction of the given session */ - (FTTransactionImpl *) currentTransaction; /*! * @method defaultObjectToIdMapper * @result return the default object to id mapper used e.g. to get id's * of graphs */ - (id ) defaultObjectToIdMapper; /*! * @method graphManager * @result return the manager used to fetch, create etc. graphs */ - (id ) graphManager; /*! * @method server * @abstract This method is meant for derived classes * @result returns the reference to the server instance */ - (FTServerImpl *) server; /*! * @method sessionId * @result return the id of this session */ - (id) sessionId; @end #endif