fatalmind::SQL::RTSQLTransaction< TM > Class Template Reference

#include <RTSQLTransaction.hh>

Inherits fatalmind::Command< PT >< fatalmind::SQL::ResourceType< TM > >.

List of all members.


Detailed Description

template<class TM>
class fatalmind::SQL::RTSQLTransaction< TM >

This class implements the concept of a database transaction.

It takes a Command to be executed within a transaction. In case you would like to put more commands into one transactions, combine them first as BatchCommand and pass the BatchCommand to the Transaction command. The command will be executed within one transaction which is automatically committed on success. On failure (every exception) a rollback is performed.

Public Types

typedef Command
< ResourceType< TM > > 
innercommand_t
typedef PT pool_type

Public Member Functions

 RTSQLTransaction (const ResourcePool< ResourceType< TM > > &p, const innercommand_t &cmd)
 Creates a new Transaction object which manages the provided command.
 RTSQLTransaction (const RTSQLTransaction< TM > &rho)
void execute (typename ResourceType< TM >::resource_t &hand)
virtual void execute (typename PT::resource_t &rr)=0
 The execute method is the one which actually carries out the work.

Protected Member Functions

virtual Clone * DoClone () const
const PT::factory_t & getFactory (const ResourcePool< PT > &p) const

Friends

class ResourcePool< PT >


Member Function Documentation

template<class PT>
virtual void fatalmind::Command< PT >::execute ( typename PT::resource_t &  rr  )  [pure virtual, inherited]

The execute method is the one which actually carries out the work.

This method gets called by ResourcePool with a (valid) plain resource which was obtained from the pool.

On normal execution (no exception) the resource will be free()ed, on abnormal execution (exception) the resource will be failed. If you need to throw an functional exception which should not cause failing of the resource, derive this exception from NoFailoverException.


The documentation for this class was generated from the following files:
Generated on Mon Nov 9 16:21:24 2009 for ResourcePool by  doxygen 1.5.3