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


bondcpp
Author(s): Stuart Glaser
autogenerated on Thu Aug 17 2017 03:12:47