代码拉取完成,页面将自动刷新
#include "fsm_cpp1.h"
namespace fsm_cpp1 {
class fsmStartup;
class fsmOnline;
class fsmOffline;
fsm* sFSM[3];
fsm* sCurrent = nullptr;
class fsmStartup :public fsm {
void onPlay(void* arg) override {
std::cout << "fsmStartup onPlay" << std::endl;
}
void onStart(void* arg) override {
std::cout << "fsmStartup onStart" << std::endl;
sCurrent = sFSM[1];
}
};
class fsmOnline :public fsm {
void onPlay(void* arg) override {
std::cout << "fsmOnline onPlay" << std::endl;
}
void onStop(void* arg)override {
std::cout << "fsmOnline onStop" << std::endl;
sCurrent = sFSM[2];
}
void onNext(void* arg)override {
std::cout << "fsmOnline onNext" << std::endl;
}
void onPrev(void* arg) override {
std::cout << "fsmOnline onPrev" << std::endl;
}
void onStart(void* arg)override {
std::cout << "fsmOnline onStart" << std::endl;
}
};
class fsmOffline :public fsm {
void onPlay(void* arg) override {
std::cout << "fsmOffline onPlay" << std::endl;
sCurrent = sFSM[1];
}
void onStop(void* arg) override {
std::cout << "fsmOffline onStop" << std::endl;
}
void onStart(void* arg)override {
std::cout << "fsmOffline onStart" << std::endl;
sCurrent = sFSM[0];
}
};
}
using namespace fsm_cpp1;
void fsm_cpp1_test() {
sFSM[0] = new fsmStartup();
sFSM[1] = new fsmOnline();
sFSM[2] = new fsmOffline();
sCurrent = sFSM[0];
for (int i = 0; i < 100; i++) {
switch (rand() % 5) {
case 0:sCurrent->onPlay(0); break;
case 1:sCurrent->onStop(0); break;
case 2:sCurrent->onNext(0); break;
case 3:sCurrent->onPrev(0); break;
default:sCurrent->onStart(0); break;
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。