00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef RESOURCEPOOL_ORACLE_COMMANDINTERFACE_HH
00025 #define RESOURCEPOOL_ORACLE_COMMANDINTERFACE_HH
00026
00027 #ifndef RESOURCEPOOL_ORACLE_RESOURCEFWD_HH
00028 #include "ResourceFwd.hh"
00029 #endif
00030
00031 #ifndef RESOURCEPOOL_COMMAND_HH
00032 #include "ResourcePool/Command.hh"
00033 #endif
00034
00035 #ifndef RESOURCEPOOL_ORACLE_STATEMENTCACHE_HH
00036 #include "StatementCache.hh"
00037 #endif
00038
00039 namespace fatalmind {
00040 namespace oracle {
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 class CommandBase
00053 {
00054 public:
00055 CommandBase()
00056 {
00057 }
00058
00059 virtual ~CommandBase() {
00060 }
00061 };
00062
00063 template<class TM, template<class> class SLMDC>
00064 class Transaction;
00065
00073 template<class TM, template<class> class SLMDC>
00074 class CommandInterface
00075 : public Command<fatalmind::oracle::ResourceType<TM, SLMDC> >
00076 , protected CommandBase
00077 {
00078 public:
00079 virtual ~CommandInterface() {
00080 };
00081
00082 virtual void execute(oracleResource<TM>& hand);
00083
00084 protected:
00085 virtual void _execute(oracleResource<TM>&, StatementCache&) {
00086 throw Exception("_execute not properly overloaded");
00087 };
00088
00089 friend
00090 class Transaction<TM, SLMDC>;
00091 };
00092
00093 }
00094 }
00095 #endif