sms

states

sms
Feb 21st, 2016
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void SwitchboardUnit::change_online_state(const OnlineState new_state)
  2. {
  3.     const OnlineState old_state = online;
  4.     bool same = false;
  5.     switch (old_state) {
  6.     case OnlineState::online: {
  7.         switch (new_state) {
  8.         case OnlineState::online: {
  9.             same = true;
  10.             break; }
  11.         case OnlineState::offline: {
  12.             emit online_offline_transition();
  13.             break; }
  14.         case OnlineState::unknown: {
  15.             emit online_unknown_transition();
  16.             break; }
  17.         }
  18.         break; }
  19.     case OnlineState::offline: {
  20.         switch (new_state) {
  21.         case OnlineState::online: {
  22.             emit offline_online_transition();
  23.             break; }
  24.         case OnlineState::offline: {
  25.             same = true;
  26.             break; }
  27.         case OnlineState::unknown: {
  28.             emit offline_unknown_transition();
  29.             break; }
  30.         }
  31.         break; }
  32.     case OnlineState::unknown: {
  33.         switch (new_state) {
  34.         case OnlineState::online: {
  35.             emit unknown_online_transition();
  36.             break; }
  37.         case OnlineState::offline: {
  38.             emit unknown_offline_transition();
  39.             break; }
  40.         case OnlineState::unknown: {
  41.             same = true;
  42.             break; }
  43.         }
  44.         break; }
  45.     }
  46.     if (same) {
  47.         emit warning(
  48.                     "void SwitchboardUnit::change_online_state(OnlineState new_state)"
  49.                     "\nold_state == new_state == "
  50.                     + QString::number(static_cast<qint32>(old_state)));
  51.     }
  52.     else {
  53.         online = new_state;
  54.     }
  55.     switch (online) {
  56.     case OnlineState::online: {
  57.         emit is_online();
  58.         break; }
  59.     case OnlineState::offline: {
  60.         emit is_offline();
  61.         break; }
  62.     case OnlineState::unknown: {
  63.         emit is_in_unknown_online_state();
  64.         break; }
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment