📄 session_dual.cpp
字号:
#include "session_dual.h"#include "session_interface.h"using namespace std;namespace cppcms {void session_dual::save(session_interface *session,string const &data,time_t timeout,bool isnew){ if(data.size() > limit) { server->save(session,data,timeout,isnew); } else { if(session->get_session_cookie().size() == 32) { server->clear(session); } client->save(session,data,timeout,isnew); }}bool session_dual::load(session_interface *session,string &data,time_t &timeout){ if(session->get_session_cookie().size()==32) { return server->load(session,data,timeout); } else { return client->load(session,data,timeout); }}void session_dual::clear(session_interface *session){ if(session->get_session_cookie().size()==32) { server->clear(session); } else { client->clear(session); }}namespace {struct builder { session_backend_factory client,server; size_t limit; builder(session_backend_factory c,session_backend_factory s,size_t l) : client(c), server(s), limit(l) { } boost::shared_ptr<session_api> operator()(worker_thread &w) { boost::shared_ptr<session_api> c,s; c=client(w); s=server(w); return boost::shared_ptr<session_api>(new session_dual(c,s,limit)); }};}session_backend_factory session_dual::factory(session_backend_factory c,session_backend_factory s,size_t l){ return builder(c,s,l);}} // cppcms
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -