BondSM_sm.cpp
Go to the documentation of this file.
00001 /*
00002  * ex: set ro:
00003  * DO NOT EDIT.
00004  * generated by smc (http://smc.sourceforge.net/)
00005  * from file : BondSM_sm.sm
00006  */
00007 
00008 #include "bondcpp/bond.h"
00009 #include "bondcpp/BondSM_sm.h"
00010 
00011 using namespace statemap;
00012 
00013 // Static class declarations.
00014 SM_WaitingForSister SM::WaitingForSister("SM::WaitingForSister", 0);
00015 SM_Alive SM::Alive("SM::Alive", 1);
00016 SM_AwaitSisterDeath SM::AwaitSisterDeath("SM::AwaitSisterDeath", 2);
00017 SM_Dead SM::Dead("SM::Dead", 3);
00018 
00019 void BondSMState::ConnectTimeout(BondSMContext& context)
00020 {
00021     Default(context);
00022     return;
00023 }
00024 
00025 void BondSMState::Die(BondSMContext& context)
00026 {
00027     Default(context);
00028     return;
00029 }
00030 
00031 void BondSMState::DisconnectTimeout(BondSMContext& context)
00032 {
00033     Default(context);
00034     return;
00035 }
00036 
00037 void BondSMState::HeartbeatTimeout(BondSMContext& context)
00038 {
00039     Default(context);
00040     return;
00041 }
00042 
00043 void BondSMState::SisterAlive(BondSMContext& context)
00044 {
00045     Default(context);
00046     return;
00047 }
00048 
00049 void BondSMState::SisterDead(BondSMContext& context)
00050 {
00051     Default(context);
00052     return;
00053 }
00054 
00055 void BondSMState::Default(BondSMContext& context)
00056 {
00057     throw (
00058         TransitionUndefinedException(
00059             context.getState().getName(),
00060             context.getTransition()));
00061 
00062     return;
00063 }
00064 
00065 void SM_WaitingForSister::ConnectTimeout(BondSMContext& context)
00066 {
00067     BondSM& ctxt(context.getOwner());
00068 
00069     (context.getState()).Exit(context);
00070     context.clearState();
00071     try
00072     {
00073         ctxt.Death();
00074         context.setState(SM::Dead);
00075     }
00076     catch (...)
00077     {
00078         context.setState(SM::Dead);
00079         throw;
00080     }
00081     (context.getState()).Entry(context);
00082 
00083     return;
00084 }
00085 
00086 void SM_WaitingForSister::Die(BondSMContext& context)
00087 {
00088     BondSM& ctxt(context.getOwner());
00089 
00090     (context.getState()).Exit(context);
00091     context.clearState();
00092     try
00093     {
00094         ctxt.Death();
00095         context.setState(SM::Dead);
00096     }
00097     catch (...)
00098     {
00099         context.setState(SM::Dead);
00100         throw;
00101     }
00102     (context.getState()).Entry(context);
00103 
00104     return;
00105 }
00106 
00107 void SM_WaitingForSister::SisterAlive(BondSMContext& context)
00108 {
00109     BondSM& ctxt(context.getOwner());
00110 
00111     (context.getState()).Exit(context);
00112     context.clearState();
00113     try
00114     {
00115         ctxt.Connected();
00116         context.setState(SM::Alive);
00117     }
00118     catch (...)
00119     {
00120         context.setState(SM::Alive);
00121         throw;
00122     }
00123     (context.getState()).Entry(context);
00124 
00125     return;
00126 }
00127 
00128 void SM_WaitingForSister::SisterDead(BondSMContext& context)
00129 {
00130     BondSM& ctxt(context.getOwner());
00131 
00132     (context.getState()).Exit(context);
00133     context.clearState();
00134     try
00135     {
00136         ctxt.Connected();
00137         ctxt.SisterDied();
00138         ctxt.Death();
00139         context.setState(SM::Dead);
00140     }
00141     catch (...)
00142     {
00143         context.setState(SM::Dead);
00144         throw;
00145     }
00146     (context.getState()).Entry(context);
00147 
00148     return;
00149 }
00150 
00151 void SM_Alive::Die(BondSMContext& context)
00152 {
00153     BondSM& ctxt(context.getOwner());
00154 
00155     (context.getState()).Exit(context);
00156     context.clearState();
00157     try
00158     {
00159         ctxt.StartDying();
00160         context.setState(SM::AwaitSisterDeath);
00161     }
00162     catch (...)
00163     {
00164         context.setState(SM::AwaitSisterDeath);
00165         throw;
00166     }
00167     (context.getState()).Entry(context);
00168 
00169     return;
00170 }
00171 
00172 void SM_Alive::HeartbeatTimeout(BondSMContext& context)
00173 {
00174     BondSM& ctxt(context.getOwner());
00175 
00176     (context.getState()).Exit(context);
00177     context.clearState();
00178     try
00179     {
00180         ctxt.Death();
00181         context.setState(SM::Dead);
00182     }
00183     catch (...)
00184     {
00185         context.setState(SM::Dead);
00186         throw;
00187     }
00188     (context.getState()).Entry(context);
00189 
00190     return;
00191 }
00192 
00193 void SM_Alive::SisterAlive(BondSMContext& context)
00194 {
00195     BondSM& ctxt(context.getOwner());
00196 
00197     (context.getState()).Exit(context);
00198     context.clearState();
00199     try
00200     {
00201         ctxt.Heartbeat();
00202         context.setState(SM::Alive);
00203     }
00204     catch (...)
00205     {
00206         context.setState(SM::Alive);
00207         throw;
00208     }
00209     (context.getState()).Entry(context);
00210 
00211     return;
00212 }
00213 
00214 void SM_Alive::SisterDead(BondSMContext& context)
00215 {
00216     BondSM& ctxt(context.getOwner());
00217 
00218     (context.getState()).Exit(context);
00219     context.clearState();
00220     try
00221     {
00222         ctxt.SisterDied();
00223         ctxt.Death();
00224         context.setState(SM::Dead);
00225     }
00226     catch (...)
00227     {
00228         context.setState(SM::Dead);
00229         throw;
00230     }
00231     (context.getState()).Entry(context);
00232 
00233     return;
00234 }
00235 
00236 void SM_AwaitSisterDeath::Die(BondSMContext& context)
00237 {
00238 
00239     (context.getState()).Exit(context);
00240     context.setState(SM::AwaitSisterDeath);
00241     (context.getState()).Entry(context);
00242 
00243     return;
00244 }
00245 
00246 void SM_AwaitSisterDeath::DisconnectTimeout(BondSMContext& context)
00247 {
00248     BondSM& ctxt(context.getOwner());
00249 
00250     (context.getState()).Exit(context);
00251     context.clearState();
00252     try
00253     {
00254         ctxt.Death();
00255         context.setState(SM::Dead);
00256     }
00257     catch (...)
00258     {
00259         context.setState(SM::Dead);
00260         throw;
00261     }
00262     (context.getState()).Entry(context);
00263 
00264     return;
00265 }
00266 
00267 void SM_AwaitSisterDeath::HeartbeatTimeout(BondSMContext& context)
00268 {
00269 
00270     (context.getState()).Exit(context);
00271     context.setState(SM::AwaitSisterDeath);
00272     (context.getState()).Entry(context);
00273 
00274     return;
00275 }
00276 
00277 void SM_AwaitSisterDeath::SisterAlive(BondSMContext& context)
00278 {
00279 
00280     (context.getState()).Exit(context);
00281     context.setState(SM::AwaitSisterDeath);
00282     (context.getState()).Entry(context);
00283 
00284     return;
00285 }
00286 
00287 void SM_AwaitSisterDeath::SisterDead(BondSMContext& context)
00288 {
00289     BondSM& ctxt(context.getOwner());
00290 
00291     (context.getState()).Exit(context);
00292     context.clearState();
00293     try
00294     {
00295         ctxt.Death();
00296         context.setState(SM::Dead);
00297     }
00298     catch (...)
00299     {
00300         context.setState(SM::Dead);
00301         throw;
00302     }
00303     (context.getState()).Entry(context);
00304 
00305     return;
00306 }
00307 
00308 void SM_Dead::ConnectTimeout(BondSMContext& context)
00309 {
00310 
00311     (context.getState()).Exit(context);
00312     context.setState(SM::Dead);
00313     (context.getState()).Entry(context);
00314 
00315     return;
00316 }
00317 
00318 void SM_Dead::Die(BondSMContext& context)
00319 {
00320 
00321     (context.getState()).Exit(context);
00322     context.setState(SM::Dead);
00323     (context.getState()).Entry(context);
00324 
00325     return;
00326 }
00327 
00328 void SM_Dead::DisconnectTimeout(BondSMContext& context)
00329 {
00330 
00331     (context.getState()).Exit(context);
00332     context.setState(SM::Dead);
00333     (context.getState()).Entry(context);
00334 
00335     return;
00336 }
00337 
00338 void SM_Dead::HeartbeatTimeout(BondSMContext& context)
00339 {
00340 
00341     (context.getState()).Exit(context);
00342     context.setState(SM::Dead);
00343     (context.getState()).Entry(context);
00344 
00345     return;
00346 }
00347 
00348 void SM_Dead::SisterAlive(BondSMContext& context)
00349 {
00350 
00351     (context.getState()).Exit(context);
00352     context.setState(SM::Dead);
00353     (context.getState()).Entry(context);
00354 
00355     return;
00356 }
00357 
00358 void SM_Dead::SisterDead(BondSMContext& context)
00359 {
00360 
00361     (context.getState()).Exit(context);
00362     context.setState(SM::Dead);
00363     (context.getState()).Entry(context);
00364 
00365     return;
00366 }
00367 
00368 /*
00369  * Local variables:
00370  *  buffer-read-only: t
00371  * End:
00372  */


bondcpp
Author(s): Stuart Glaser
autogenerated on Sun Oct 5 2014 22:32:29