[Cppcms-users] Fwd: Fwd: cppcms::rpc::json_rpc_server usage.
Brought to you by:
artyom-beilis
From: le ba <hma...@gm...> - 2012-05-23 12:49:40
|
By default cppcms::rpc::json_rpc_server don't dispatches Url by default like cppcms::application. My problem is how to dispatch a dynamic page and activate the json_rpc call after. ---------- Forwarded message ---------- From: le ba <hma...@gm...> Date: 2012/5/23 Subject: Re: [Cppcms-users] Fwd: cppcms::rpc::json_rpc_server usage. To: Artyom Beilis <art...@ya...>, cpp...@li... Hi, What is the wrong in my code?: This is my code. class master : public cppcms::rpc::json_rpc_server { public: master(cppcms::service &s); ~master(); void init(); void clear(); void ini(content::master &c); cppdb::session sql; std::string connection; }; master::master(cppcms::service &s) : cppcms::rpc::json_rpc_server(s) { connection="odbc:dsn=ajaxex;user=root;password=root"; } master::~master(){ } void master::init() { sql.open(connection); if (sql.is_open()) { std::cout << "Data Base ouverte" << std::endl; } else { std::cout << "Data Base non ouverte" << std::endl; } } void master::clear() { sql.close(); } void master::ini(content::master &c) { c.title = "My Web Site"; c.image = settings().get<std::string>("myjsonappli.image"); c.media = settings().get<std::string>("myjsonappli.media"); c.scrpt = settings().get<std::string>("myjsonappli.scrpt"); } class pages : public master { public: pages(cppcms::service &s) : master(s) { bind("softwares",cppcms::rpc::json_method(&pages::softwares,this),method_role);//methode that I would to call with ajax dispatcher().assign("/page",&pages::page,this); mapper().assign("page","/page"); } void softwares(int id) { cppdb::result r; cppcms::json::value val; cppcms::json::array softs; std::cout << id << std::endl; r = sql<< "SELECT id,name,idEditor " "FROM ajax_example_softwares WHERE idEditor=?" "ORDER BY id" << id; int i=0; while(r.next()) { cppcms::json::value soft; soft["id"] = r.get<int>("id"); soft["name"] = r.get<std::string>("name"); soft["ideditor"] = r.get<int>("idEditor"); softs.push_back(soft); std::cout << soft << std::endl; i++; } std::cout << "Nombre de ligne " << i << std::endl; val.array(softs); return_result(val); } void page() { content::page c; ini(c); c.page_title = "Multiflex-3 Update-7 / Header-1"; c.page_content = "<p>A page about this web site</p>"; render("page",c); } void main(std::string url) { cppcms::http::content_type ct = request().content_type_parsed(); if(!dispatcher().dispatch(url)){ response().make_error_response(cppcms::http::response::not_found); } cppcms::rpc::json_rpc_server::main(url); std::string type = ct.type(); std::cout<<type<<std::endl; std::string subtype = ct.subtype(); std::cout<<subtype<<std::endl; std::cout<<request().request_method()<<std::endl; } }; Thank in advance for your help Artyom. 2012/5/22 Artyom Beilis <art...@ya...> > > > > > > > void main(std:string url) > > { > > if(!dispatcher().dispatch(url)) { > >response().make_error_response(http::response::not_found); > > } > > cppcms::rpc::json_rpc_server::main(url); > > } > >}; > > > > > You really mixing stuff incorrectly because you will never > > be able to execute cppcms::rpc::json_rpc_server::main(url); properly > as you already have an output > Artyom > > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |