⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hello_world.cpp

📁 C++ web POSIX framewark
💻 CPP
字号:
#include "application.h"#include "manager.h"#include "hello_world_view.h"using namespace cppcms;class my_hello_world : public application {public:	my_hello_world(worker_thread &w) :		application(w)	{		url.add("^/?$",			boost::bind(&my_hello_world::std,this));		url.add("^/test$",boost::bind(&my_hello_world::test,this));		url.add("^/test2$",boost::bind(&my_hello_world::test2,this));		url.add("^/cache$",boost::bind(&my_hello_world::cache_test,this));		url.add("^/png$",boost::bind(&my_hello_world::png,this));		use_template("view2");	};	void test();	void png();	void test2();	void std();	void cache_test();};void my_hello_world::png(){	ifstream file("test.png");	if(!file) {		cout<<"File test.png not found";		return ;	}	vector<char> buffer(1024);	set_header(new cgicc::HTTPContentHeader("image/png"));		set_user_io();	ostream &cout=cgi_conn->cout();	for(;;) {		file.read(&buffer.front(),1024);		cout.write(&buffer.front(),file.gcount());		if(file.eof())			break;	}	file.close();}void my_hello_world::test2(){	if(!session.is_set("test")) {		session["test"]="1";		cout<<"Set 1";	}	else {		int state=session.get<int>("test");		switch(state) {		case 1:			if(!session.is_exposed("test")) {				cout<<"Expose 1";				session.expose("test");			}			else {				session["test"]="2";				cout<<"Change exposed to 2";			}			break;		case 2:			if(session.is_exposed("test")) {				session.hide("test");				cout<<"Hidden 2";			}			else {				session["test"]="3";				cout<<"Hidden 2 moved to 3 and exposed";				session.expose("test");			}			break;		case 3:			session.del("test");			cout<<"Remove 3 and remove from hidden";			break;		default:			cout<<"Error";		}	}}void my_hello_world::test(){	if(!session.is_set("time")) {		cout<<"No Time\n";	}	else {		time_t given=session.get<time_t>("time");		cout<<asctime(gmtime(&given))<<"<br/>\n";		if(session.is_set("msg")) {			cout<<session["msg"]<<"<br/>";		}		if(given % 3 == 0) {			cout<<"SET LONG MESSAGE";			session["msg"]="Looooooooooooooooooooooooooooooong msg";		}		else {			cout<<"UNSET LONG MESSAGE";			session.del("msg");		}		cout<<"<br/>"<<endl;		if(session.is_set("msg")) {			int val=given % 2;			session.expose("msg",val);			cout<<(val ? "exposed" : "hidden")<<endl;		}		//session.clear();	}	session.set<time_t>("time",time(NULL));}void my_hello_world::std(){	view::hello v(this);	if(env->getRequestMethod()=="POST") {		v.form.load(*cgi);		if(v.form.validate()) {			session["name"]=v.form.username.get();			v.username=v.form.username.get();			v.realname=v.form.name.get();			v.ok=v.form.ok.get();			v.password=v.form.p1.get();			v.form.clear();		}	}	v.title="Cool";	if(session.is_set("name"))		v.title+=":"+session["name"];	v.msg=gettext("Hello World");	for(int i=0;i<15;i++)		v.numbers.push_back(i);	v.lst.push_back(view::data("Hello",10));	render("hello",v);}void my_hello_world::cache_test(){	string tmp;	bool from_cache=true;	if(!cache.fetch_frame("test",tmp,true)) {		tmp="test value";		from_cache=false;		cache.store_frame("test",tmp,5);	}	if(from_cache)		cout <<"Fetched ["<<tmp<<"] from cache";	else		cout <<"Fetched ["<<tmp<<"] from start";}int main(int argc,char ** argv){	try {		manager app(argc,argv);		app.set_worker(new application_factory<my_hello_world>());		app.execute();	}	catch(std::exception const &e) {		cerr<<e.what()<<endl;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -