Skip to content

Instantly share code, notes, and snippets.

@paulbarbu
Created August 3, 2012 17:18
Show Gist options
  • Save paulbarbu/3249714 to your computer and use it in GitHub Desktop.
Save paulbarbu/3249714 to your computer and use it in GitHub Desktop.
booster::regex:unmatched parentheses, at offset 4
{
"service" : {
"api" : "http",
"port" : 8080
},
"http" : {
"script" : "/myapp"
}
}
#include <cppcms/application.h>
#include <cppcms/applications_pool.h>
#include <cppcms/service.h>
#include <cppcms/http_response.h>
#include <cppcms/url_dispatcher.h>
#include <cppcms/url_mapper.h>
#include <exception>
using std::exception;
using std::cerr;
class number : public cppcms::application{
public:
number(cppcms::service &srv);
void even();
void odd();
void prime();
void all();
};
number::number(cppcms::service &srv) : cppcms::application(srv){
dispatcher().assign("/odd)", &number::odd, this);
mapper().assign("odd", "/odd");
dispatcher().assign("/even", &number::even, this);
mapper().assign("even", "/even");
dispatcher().assign("/prime", &number::prime, this);
mapper().assign("prime", "/prime");
dispatcher().assign("", &number::all, this);
mapper().assign("");
}
void number::odd(){
response().out()<<"Odd";
}
void number::even(){
response().out()<<"Even";
}
void number::prime(){
response().out()<<"Prime";
}
void number::all(){
response().out()<<url(".")<<"<br>"<<url("/")<<"<br>"<<url("/letter");
}
class letter : public cppcms::application{
public:
letter(cppcms::service &srv);
void capital();
void small();
void all();
};
letter::letter(cppcms::service &srv) : cppcms::application(srv){
dispatcher().assign("/capital)", &letter::capital, this);
mapper().assign("capital", "/capital");
dispatcher().assign("/small", &letter::small, this);
mapper().assign("small", "/small");
dispatcher().assign("", &letter::all, this);
mapper().assign("");
}
void letter::small(){
response().out()<<"Small";
}
void letter::capital(){
response().out()<<"Cap";
}
void letter::all(){
response().out()<<url(".")<<"<br>"<<url("/")<<"<br>"<<url("/number");
}
class myapp : public cppcms::application{
public:
myapp(cppcms::service &srv);
void describe();
};
myapp::myapp(cppcms::service &srv) : cppcms::application(srv){
attach(new number(srv), "number", "/number{1}", "/number(/(.*))?", 1);
attach(new letter(srv), "letter", "/letter{1}", "/letter(/(.*))?", 1);
dispatcher().assign("", &myapp::describe, this);
mapper().assign("");
mapper().root("/myapp");
}
void myapp::describe(){
response().out()<<url(".")<<"<br>"<<url("/")<<"<br>"<<url("/letter")<<
"\n"<<url("/number");
}
int main(int argc, char *argv[]){
try{
cppcms::service srv(argc, argv);
srv.applications_pool().mount(cppcms::applications_factory<myapp>());
srv.run();
}
catch(exception const &e){
cerr<<e.what()<<"\n";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment