cppcms-users Mailing List for CppCMS C++ Web Framework (Page 49)
Brought to you by:
artyom-beilis
You can subscribe to this list here.
| 2009 |
Jan
|
Feb
(22) |
Mar
|
Apr
(3) |
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
(15) |
Nov
(16) |
Dec
(13) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(4) |
Feb
|
Mar
(8) |
Apr
(8) |
May
(8) |
Jun
(36) |
Jul
(63) |
Aug
(126) |
Sep
(47) |
Oct
(66) |
Nov
(46) |
Dec
(42) |
| 2011 |
Jan
(87) |
Feb
(24) |
Mar
(54) |
Apr
(21) |
May
(22) |
Jun
(18) |
Jul
(22) |
Aug
(101) |
Sep
(57) |
Oct
(33) |
Nov
(34) |
Dec
(66) |
| 2012 |
Jan
(64) |
Feb
(76) |
Mar
(73) |
Apr
(105) |
May
(93) |
Jun
(83) |
Jul
(84) |
Aug
(88) |
Sep
(57) |
Oct
(59) |
Nov
(35) |
Dec
(49) |
| 2013 |
Jan
(67) |
Feb
(17) |
Mar
(49) |
Apr
(64) |
May
(87) |
Jun
(64) |
Jul
(93) |
Aug
(23) |
Sep
(15) |
Oct
(16) |
Nov
(62) |
Dec
(73) |
| 2014 |
Jan
(5) |
Feb
(23) |
Mar
(21) |
Apr
(11) |
May
(1) |
Jun
(19) |
Jul
(27) |
Aug
(16) |
Sep
(5) |
Oct
(37) |
Nov
(12) |
Dec
(9) |
| 2015 |
Jan
(7) |
Feb
(7) |
Mar
(44) |
Apr
(28) |
May
(5) |
Jun
(12) |
Jul
(8) |
Aug
|
Sep
(39) |
Oct
(34) |
Nov
(30) |
Dec
(34) |
| 2016 |
Jan
(66) |
Feb
(23) |
Mar
(33) |
Apr
(15) |
May
(11) |
Jun
(15) |
Jul
(26) |
Aug
(4) |
Sep
(1) |
Oct
(30) |
Nov
(10) |
Dec
|
| 2017 |
Jan
(52) |
Feb
(9) |
Mar
(24) |
Apr
(16) |
May
(9) |
Jun
(12) |
Jul
(33) |
Aug
(8) |
Sep
|
Oct
(1) |
Nov
(2) |
Dec
(6) |
| 2018 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
(14) |
Jun
(1) |
Jul
(9) |
Aug
(1) |
Sep
(13) |
Oct
(8) |
Nov
(2) |
Dec
(2) |
| 2019 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(9) |
Jul
(6) |
Aug
(25) |
Sep
(10) |
Oct
(10) |
Nov
(6) |
Dec
|
| 2021 |
Jan
|
Feb
|
Mar
(7) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(9) |
Oct
(1) |
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
|
From: bruce x. <bru...@gm...> - 2013-07-24 01:57:47
|
Hi, everybody. I want to forbid some IP to access my site dynamically. Does cppcms provide this interface? Or, how can I get the IP by cppcms? -- ZhiXin XIU Computer Science & Engineering Dept., Shanghai Jiao Tong University, 800 Dongchuan Rd., Shanghai, CHINA |
|
From: Petr J. <ele...@ex...> - 2013-07-21 21:55:11
|
Hi, There are 2 different implementations of fastcgi. one is mod_fastcgi and the other is mod_fcgid. I'm not sure if they are 100% compatible in configuration. On 21/07/2013 4:36 PM, Szilágyi Zoltán wrote: > Hi, > > Thank you, I posted on fastcgi mailing list, but meanwhile I found the binaries in: > > http://www.apache.org/dist/httpd/binaries/win32/ > > http://www.apache.org/dist/httpd/binaries/win32/mod_fcgid-2.3.6-win32-x86.zip > > > I like to try hello world example using the link bellow: > http://cppcms.com/wikipp/en/page/cppcms_1x_tut_web_server_config#Lighttpd..FastCGI..Start.by.Web.Server > > > I look into: > > 1. FastCgiIpcDir /var/lib/apache2/fastcgi > 2. # Usually it is given in fastcgi.conf by default > 3. > 4. FastCgiServer /opt/app/bin/hello -initial-env CPPCMS_CONFIG=/opt/app/etc/config.js -socket /tmp/hello-fcgi-socket > 5. # CPPCMS_CONFIG should hold the path to configuration file. > 6. # Note: you can't pass command line parameter > 7. # so you pass the location of configuration file > 8. # via CPPCMS_CONFIG environment variable > 9. > 10. FastCGIConfig -maxProcesses 1 -processSlack 1 > 11. # This is important - we want apache to use only > 12. # one process as we have cache and many other > 13. # goodies handled by outsefs > 14. > 15. ScriptAliasMatch ^/hello(.*)$ /opt/app/bin/hello$1 > 16. # We map script "/hello" to our application > 17. > 18. AddHandler fastcgi-script /opt/app/bin/hello > > I dont have fastcgi.conf.: The above lines can be written in httpconf.conf? If not where should I place fastcgi.conf? > Windows dont have tmp folder and I only have mod_fcgid.so , I guess /tmp/hello-fcgi-socket is a path? > How would be translated > 1. FastCgiServer /opt/app/bin/hello -initial-env CPPCMS_CONFIG=/opt/app/etc/config.js -socket /tmp/hello-fcgi-socket > for a windows system? > > What does ScriptAliasMatch ^/hello(.*)$ /opt/app/bin/hello$1 line? > > Thank you > > Regards > Zoltán > > > > > > > > > > ________________________________ > From: Petr Janda <ele...@ex...> > To: Szilágyi Zoltán <zol...@ya...>; cpp...@li... > Sent: Sunday, July 21, 2013 12:21 AM > Subject: Re: [Cppcms-users] FastCgi > > > Hi, > > Sorry, you should be posting this to Apache or FastCGI mailing list. > > Petr > > On 21/07/2013 1:32 AM, Szilágyi Zoltán wrote: >> Hi, >> >> I like to configure Apache2.0 working with fastcgi on xp. This is not direct related with cppcms, but indirect is. >> >> I don't find any good tutorial. >> Their official page: >> http://www.fastcgi.com/drupal/ I think just choosing the right words, everything except awesome >> regarding documentation. >> What can understand newbies from: http://www.fastcgi.com/drupal/node/2?q=node/9 ? >> >> >> I found this: >> http://www.farinspace.com/windows-apache-php-fastcgi/ >> >> http://httpd.apache.org/download.cgi#mod_fcgid >> >> >> Using visual studio 2008 I get: >> >> >> Error1error LNK2019: unresolved external symbol _SetInformationJobObject referenced in function _set_win32_prevent_process_orphansfcgid_conf.objmod_fcgid >> Error2error LNK2019: unresolved external symbol _CreateJobObject referenced in function _set_win32_prevent_process_orphansfcgid_conf.objmod_fcgid >> Error3error LNK2019: unresolved external symbol _AssignProcessToJobObject referenced in function _proc_spawn_processfcgid_proc_win.objmod_fcgid >> Error4fatal error LNK1120: 3 unresolved externalsDebug/mod_fcgid.somod_fcgid >> >> Should I consider maybe SCGI ? It is easier to build and configure with apache 2.0? >> >> Regards, >> Zoltán >> >> >> >> ------------------------------------------------------------------------------ >> See everything from the browser to the database with AppDynamics >> Get end-to-end visibility with application monitoring from AppDynamics >> Isolate bottlenecks and diagnose root cause in seconds. >> Start your free trial of AppDynamics Pro today! >> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >> >> >> >> _______________________________________________ >> Cppcms-users mailing list >> Cpp...@li... >> https://lists.sourceforge.net/lists/listinfo/cppcms-users >> > > > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > > > > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > -- Please use PGP to encrypt your email to ensure our privacy is respected. |
|
From: Artyom B. <art...@ya...> - 2013-07-21 18:38:16
|
- if same page is displayed in different languages the page key should include it. - if when the page is updated it should be updated in all languages add a page specific trigger for example "page_123_ru" with trigger "page_123" Now when you want to update page and invalidate it in all languages just fire "page_123" and all cached "page_123_ru" , page_123_en would be invalidated immediately. Creating page for every user is in general counterproductive as user visit it once/twice and that's it. You need to cache pages that are generated frequently such that cache would provide significant boost. If you have some shared parts between multiple pages you can cache them (special frames) as well. If you want to invalidate _all_ pages whatever they are you may either add a trigger "page" to all pages and fire it or simply clear the cache - if pages in 99% of the cache content. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >________________________________ > From: Marcel Hellwig <ke...@co...> >To: "cpp...@li..." <cpp...@li...> >Sent: Sunday, July 21, 2013 8:56 PM >Subject: [Cppcms-users] translate and cache > > >Hi everyone, > >I'm approaching a little problem when I combine the techniques above. >Let's say the client can define the language it wants. But my >web-application use caching, that means there will be one version for >everyone. >What is a good solution: > > * create a cache page for every user and its corresponding language >(plus triggers!) > * create a cache page for every language (plus triggers for every >page, plus a trigger for all pages) > * disable caching? ;) > >Are there any other solution that were made while designing cppcms? > >Regards >Marcel > >------------------------------------------------------------------------------ >See everything from the browser to the database with AppDynamics >Get end-to-end visibility with application monitoring from AppDynamics >Isolate bottlenecks and diagnose root cause in seconds. >Start your free trial of AppDynamics Pro today! >http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >_______________________________________________ >Cppcms-users mailing list >Cpp...@li... >https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > |
|
From: Marcel H. <ke...@co...> - 2013-07-21 17:56:34
|
Hi everyone, I'm approaching a little problem when I combine the techniques above. Let's say the client can define the language it wants. But my web-application use caching, that means there will be one version for everyone. What is a good solution: * create a cache page for every user and its corresponding language (plus triggers!) * create a cache page for every language (plus triggers for every page, plus a trigger for all pages) * disable caching? ;) Are there any other solution that were made while designing cppcms? Regards Marcel |
|
From: Szilágyi Z. <zol...@ya...> - 2013-07-21 06:37:04
|
Hi, Thank you, I posted on fastcgi mailing list, but meanwhile I found the binaries in: http://www.apache.org/dist/httpd/binaries/win32/ http://www.apache.org/dist/httpd/binaries/win32/mod_fcgid-2.3.6-win32-x86.zip I like to try hello world example using the link bellow: http://cppcms.com/wikipp/en/page/cppcms_1x_tut_web_server_config#Lighttpd..FastCGI..Start.by.Web.Server I look into: 1. FastCgiIpcDir /var/lib/apache2/fastcgi 2. # Usually it is given in fastcgi.conf by default 3. 4. FastCgiServer /opt/app/bin/hello -initial-env CPPCMS_CONFIG=/opt/app/etc/config.js -socket /tmp/hello-fcgi-socket 5. # CPPCMS_CONFIG should hold the path to configuration file. 6. # Note: you can't pass command line parameter 7. # so you pass the location of configuration file 8. # via CPPCMS_CONFIG environment variable 9. 10. FastCGIConfig -maxProcesses 1 -processSlack 1 11. # This is important - we want apache to use only 12. # one process as we have cache and many other 13. # goodies handled by outsefs 14. 15. ScriptAliasMatch ^/hello(.*)$ /opt/app/bin/hello$1 16. # We map script "/hello" to our application 17. 18. AddHandler fastcgi-script /opt/app/bin/hello I dont have fastcgi.conf.: The above lines can be written in httpconf.conf? If not where should I place fastcgi.conf? Windows dont have tmp folder and I only have mod_fcgid.so , I guess /tmp/hello-fcgi-socket is a path? How would be translated 1. FastCgiServer /opt/app/bin/hello -initial-env CPPCMS_CONFIG=/opt/app/etc/config.js -socket /tmp/hello-fcgi-socket for a windows system? What does ScriptAliasMatch ^/hello(.*)$ /opt/app/bin/hello$1 line? Thank you Regards Zoltán ________________________________ From: Petr Janda <ele...@ex...> To: Szilágyi Zoltán <zol...@ya...>; cpp...@li... Sent: Sunday, July 21, 2013 12:21 AM Subject: Re: [Cppcms-users] FastCgi Hi, Sorry, you should be posting this to Apache or FastCGI mailing list. Petr On 21/07/2013 1:32 AM, Szilágyi Zoltán wrote: > Hi, > > I like to configure Apache2.0 working with fastcgi on xp. This is not direct related with cppcms, but indirect is. > > I don't find any good tutorial. > Their official page: > http://www.fastcgi.com/drupal/ I think just choosing the right words, everything except awesome > regarding documentation. > What can understand newbies from: http://www.fastcgi.com/drupal/node/2?q=node/9 ? > > > I found this: > http://www.farinspace.com/windows-apache-php-fastcgi/ > > http://httpd.apache.org/download.cgi#mod_fcgid > > > Using visual studio 2008 I get: > > > Error1error LNK2019: unresolved external symbol _SetInformationJobObject referenced in function _set_win32_prevent_process_orphansfcgid_conf.objmod_fcgid > Error2error LNK2019: unresolved external symbol _CreateJobObject referenced in function _set_win32_prevent_process_orphansfcgid_conf.objmod_fcgid > Error3error LNK2019: unresolved external symbol _AssignProcessToJobObject referenced in function _proc_spawn_processfcgid_proc_win.objmod_fcgid > Error4fatal error LNK1120: 3 unresolved externalsDebug/mod_fcgid.somod_fcgid > > Should I consider maybe SCGI ? It is easier to build and configure with apache 2.0? > > Regards, > Zoltán > > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > > > > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > -- Please use PGP to encrypt your email to ensure our privacy is respected. |
|
From: Petr J. <ele...@ex...> - 2013-07-20 21:22:12
|
Hi, Sorry, you should be posting this to Apache or FastCGI mailing list. Petr On 21/07/2013 1:32 AM, Szilágyi Zoltán wrote: > Hi, > > I like to configure Apache2.0 working with fastcgi on xp. This is not direct related with cppcms, but indirect is. > > I don't find any good tutorial. > Their official page: > http://www.fastcgi.com/drupal/ I think just choosing the right words, everything except awesome > regarding documentation. > What can understand newbies from: http://www.fastcgi.com/drupal/node/2?q=node/9 ? > > > I found this: > http://www.farinspace.com/windows-apache-php-fastcgi/ > > http://httpd.apache.org/download.cgi#mod_fcgid > > > Using visual studio 2008 I get: > > > Error1error LNK2019: unresolved external symbol _SetInformationJobObject referenced in function _set_win32_prevent_process_orphansfcgid_conf.objmod_fcgid > Error2error LNK2019: unresolved external symbol _CreateJobObject referenced in function _set_win32_prevent_process_orphansfcgid_conf.objmod_fcgid > Error3error LNK2019: unresolved external symbol _AssignProcessToJobObject referenced in function _proc_spawn_processfcgid_proc_win.objmod_fcgid > Error4fatal error LNK1120: 3 unresolved externalsDebug/mod_fcgid.somod_fcgid > > Should I consider maybe SCGI ? It is easier to build and configure with apache 2.0? > > Regards, > Zoltán > > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > > > > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > -- Please use PGP to encrypt your email to ensure our privacy is respected. |
|
From: Szilágyi Z. <zol...@ya...> - 2013-07-20 15:32:47
|
Hi, I like to configure Apache2.0 working with fastcgi on xp. This is not direct related with cppcms, but indirect is. I don't find any good tutorial. Their official page: http://www.fastcgi.com/drupal/ I think just choosing the right words, everything except awesome regarding documentation. What can understand newbies from: http://www.fastcgi.com/drupal/node/2?q=node/9 ? I found this: http://www.farinspace.com/windows-apache-php-fastcgi/ http://httpd.apache.org/download.cgi#mod_fcgid Using visual studio 2008 I get: Error1error LNK2019: unresolved external symbol _SetInformationJobObject referenced in function _set_win32_prevent_process_orphansfcgid_conf.objmod_fcgid Error2error LNK2019: unresolved external symbol _CreateJobObject referenced in function _set_win32_prevent_process_orphansfcgid_conf.objmod_fcgid Error3error LNK2019: unresolved external symbol _AssignProcessToJobObject referenced in function _proc_spawn_processfcgid_proc_win.objmod_fcgid Error4fatal error LNK1120: 3 unresolved externalsDebug/mod_fcgid.somod_fcgid Should I consider maybe SCGI ? It is easier to build and configure with apache 2.0? Regards, Zoltán |
|
From: Shiv S. D. <shi...@gm...> - 2013-07-19 11:31:31
|
I have never done that but I believe you can achieve that by using http://liboauth.sourceforge.net/ On Fri, Jul 19, 2013 at 4:50 PM, ccppprogrammer <ccp...@gm...>wrote: > Hello community! > > Does somebody have an example of using OAuth with cppcms? > > Thanks in advance! > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > > -- Best regards, Shiv Shankar Dayal |
|
From: ccppprogrammer <ccp...@gm...> - 2013-07-19 11:20:40
|
Hello community! Does somebody have an example of using OAuth with cppcms? Thanks in advance! |
|
From: Petr J. <ele...@ex...> - 2013-07-15 13:36:31
|
> This is how I do it, expect that you don't create a specific mount point > for the dispatcher. I tried it, no luck :/ Then Artyom should explain why matching ^webapi$ and "^index$" works, but ^webapi$ and ^(.*)$ doesn't. Logically, the regular expression defined first should be the one evaluated first. > Async is "better" than sync, because it does not run in the main loop > and therefore can handle more connections. I'm curious now, because synchronous application should have a higher performance than asynchronous. Synchronous application is designed to utilize multiple CPUs/cores in a non-blocking way. The 2nd link even recommends to dispatch any having lifting from an async app to a sync app. So it boils down to this - if you need long polling or process any server-side events, use an async app. I don't know what exactly your WebAPI does, but by the sounds of it, most of the work should be done synchronously. Generally APIs are synchronous (request->response cycle) but yours may be different. |
|
From: Artyom B. <art...@ya...> - 2013-07-15 11:09:17
|
I mean attach only small class that does mapping only (no dispatching). There is attach function that does only mapping for example. http://cppcms.com/cppcms_ref/1.0.0/classcppcms_1_1application.html#ab31985c608cfb176bbbf0958f438fbf7 So also it would be "mounted synchronously" it is just some base class for sharing the mapping, not actual dispatching. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ ----- Original Message ----- > From: Marcel Hellwig <ke...@co...> > To: cpp...@li... > Cc: > Sent: Monday, July 15, 2013 1:36 PM > Subject: Re: [Cppcms-users] mapping across mount_points > > On 15.07.2013 12:26, Artyom Beilis wrote: >> Unfortunately not. >> >> Technically asynchronous applications can be unmounted during their life > time so mapping can be invalid. >> or new applications can be mounted. > I know, a very usefull technique btw.. >> What you can do it to do something like that. >> >> class dummy_async_mapping : public cppcms::application { >> dummy_async_mapping(...) >> { >> // all mapping (not dispatching) goes there >> } >> } >> >> class async_app : public dummy_async_mapping ... >> >> class sync_app : public cppcms::application { >> sync_app(...) >> { >> attach("/webapi/" , new dummy_async_mapping() >> ... >> } >> } >> >> Such that they both would get the mapping you need. > So, this will work? When I attach an async app in a sync context? The > last time I tried it like Petr suggested, it was mounted as sync. >> >> >> Artyom Beilis >> -------------- >> CppCMS - C++ Web Framework: http://cppcms.com/ >> CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >> > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |
|
From: Marcel H. <ke...@co...> - 2013-07-15 10:36:33
|
On 15.07.2013 12:26, Artyom Beilis wrote:
> Unfortunately not.
>
> Technically asynchronous applications can be unmounted during their life time so mapping can be invalid.
> or new applications can be mounted.
I know, a very usefull technique btw..
> What you can do it to do something like that.
>
> class dummy_async_mapping : public cppcms::application {
> dummy_async_mapping(...)
> {
> // all mapping (not dispatching) goes there
> }
> }
>
> class async_app : public dummy_async_mapping ...
>
> class sync_app : public cppcms::application {
> sync_app(...)
> {
> attach("/webapi/" , new dummy_async_mapping()
> ...
> }
> }
>
> Such that they both would get the mapping you need.
So, this will work? When I attach an async app in a sync context? The
last time I tried it like Petr suggested, it was mounted as sync.
>
>
> Artyom Beilis
> --------------
> CppCMS - C++ Web Framework: http://cppcms.com/
> CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/
>
|
|
From: Marcel H. <ke...@co...> - 2013-07-15 10:33:21
|
On 15.07.2013 12:19, Artyom Beilis wrote: > You can use nagative look-around > > http://stackoverflow.com/questions/406230/regular-expression-to-match-string-not-containing-a-word > > Something like that > > > cppcms::mount_point("/webapi(/(.*))", 1) > cppcms::mount_point("^(?!/webapi)(/(.*))", 1) > > Not sure about exact syntax but the general idea should be clear, the > second mount point should match all but /webapi Awesome. Never hear of negative look-around regex. It works, thank you. And also thank you Petr, you made me thinking ;) > > Artyom Beilis > -------------- > CppCMS - C++ Web Framework: http://cppcms.com/ > CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ |
|
From: Artyom B. <art...@ya...> - 2013-07-15 10:26:52
|
>________________________________
> From: Marcel Hellwig <ke...@co...>
>To: cpp...@li...
>Sent: Sunday, July 14, 2013 5:22 PM
>Subject: Re: [Cppcms-users] mapping across mount_points
>
>
>
>On 14.07.2013 16:01, Artyom Beilis wrote:
>
>The url/mapping works for a specific application hierarchy. And each application hierarchy is mounted to a specific mount point.
>>So you can't access to the url mapper of different hierarchy.
>>
Hmm, is there a way to specify application wide mappings?
>
Unfortunately not.
Technically asynchronous applications can be unmounted during their life time so mapping can be invalid.
or new applications can be mounted.
What you can do it to do something like that.
class dummy_async_mapping : public cppcms::application {
dummy_async_mapping(...)
{
// all mapping (not dispatching) goes there
}
}
class async_app : public dummy_async_mapping ...
class sync_app : public cppcms::application {
sync_app(...)
{
attach("/webapi/" , new dummy_async_mapping()
...
}
}
Such that they both would get the mapping you need.
Artyom Beilis
--------------
CppCMS - C++ Web Framework: http://cppcms.com/
CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/
|
|
From: Artyom B. <art...@ya...> - 2013-07-15 10:19:40
|
You can use nagative look-around http://stackoverflow.com/questions/406230/regular-expression-to-match-string-not-containing-a-word Something like that cppcms::mount_point("/webapi(/(.*))", 1) cppcms::mount_point("^(?!/webapi)(/(.*))", 1) Not sure about exact syntax but the general idea should be clear, the second mount point should match all but /webapi Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ >________________________________ > From: Marcel Hellwig <ke...@co...> >To: cpp...@li... >Sent: Monday, July 15, 2013 1:16 AM >Subject: [Cppcms-users] non-greedy moint points > > >Hi everybody, > >now my seconds problem :/ >I have a json rpc server running a async app via an intrusive ptr. >Also I'd like to have a sync app that will serve my "static" HTML-pages. > >The current setup is > >> booster::intrusive_ptr<WebAPI> bgworker(new WebAPI(srv)); >> >> srv.applications_pool().mount(bgworker, >> cppcms::mount_point("/webapi(/(.*))", 1)); >> srv.applications_pool().mount(cppcms::applications_factory<Dispatcher>(), >> cppcms::mount_point("/index(/(.*))", 1)); >But this is not what I want. I want to provide all rpc calls under the >webapi domain and everything else under /, so nothing more. >Now I have to write /index/edit, instead of /edit -> that's annoying. > >Any help? > > >------------------------------------------------------------------------------ >See everything from the browser to the database with AppDynamics >Get end-to-end visibility with application monitoring from AppDynamics >Isolate bottlenecks and diagnose root cause in seconds. >Start your free trial of AppDynamics Pro today! >http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >_______________________________________________ >Cppcms-users mailing list >Cpp...@li... >https://lists.sourceforge.net/lists/listinfo/cppcms-users > > > |
|
From: Marcel H. <ke...@co...> - 2013-07-15 09:19:15
|
On 15.07.2013 02:03, Petr Janda wrote:
> If you are dead-set on making WebAPI asynchronous, why not rewrite your
> mapping like this:
>
>
> booster::intrusive_ptr<WebAPI> bgworker(new WebAPI(srv));
>
> srv.applications_pool().mount(bgworker,
> cppcms::mount_point("/webapi(/(.*))", 1));
> srv.applications_pool().mount(cppcms::applications_factory<Dispatcher>());
This is how I do it, expect that you don't create a specific mount point
for the dispatcher. I tried it, no luck :/
> Specify your mapping for Dispatcher class in the constructor of
> Dispatcher as:
>
> mapper().root(settings().get<string>("myapp.root"));
>
> dispatcher().assign("^/somefunction$", &Dispatcher::index, this);
> mapper().assign("somefunction", "/somefunction")
>
> dispatcher().assign("^(.*)$", &Dispatcher::index, this); //catch all regexp
>
> mapper().assign("")
The only difference is, that you do mapper.assign(""), the rest is still
the same.
> What is your specific reason to run RPC server as an async app?
Async is "better" than sync, because it does not run in the main loop
and therefore can handle more connections.
http://cppcms.com/wikipp/en/page/cppcms_1x_application_lifetime
http://permalink.gmane.org/gmane.comp.lib.cppcms.user/580
> attach(new WebAPI(srv), "webapi", "/webapi{1}", "^/webapi(/(.*))?$", 1);
> attach(new Index(srv), "index", "/index{1}", "^/(.*)?$", 1);
Here you mount WebAPI as sync app, that's not what I want. :/
|
|
From: <la...@sa...> - 2013-07-15 08:17:29
|
Ok, thanks. was able to compile without errors. ///////////////////////////////////////////////////// cd cppdb-trunk mkdir build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=arm -DCMAKE_C_COMPILER=/home/common/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc -DCMAKE_CXX_COMPILER=/home/common/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-g++ -DCMAKE_FINd_ROOt_PATH=/home/common/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi -DSQLITE3_PATH=/home/common/SQLITE/sqlite -DSQLITE3_LIB=/home/common/SQLITE/sqliteinstall/lib/libsqlite3.a -DCMAKE_LINKER=/home/Modusat/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/bin/gcc -DCMAKE_FIND_ROOT_PATH_MODEPROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_CXX_FLAGS_RELEASE="-fPIC -shared" -DCMAKE_CXX_FLAGS="-fPIC -shared" make make install /////////////////////////////////////////////////// It had some warnings, but I don't think this may be a problem: ///////////////////////////////// Linking CXX executable example [ 84%] Built target example Scanning dependencies of target test_backend [ 88%] Building CXX object CMakeFiles/test_backend.dir/test/test_backend.cpp.o /home/Modusat/cppdb-trunk/test/test_backend.cpp:495: warning: this decimal constant is unsigned only in ISO C90 /home/Modusat/cppdb-trunk/test/test_backend.cpp: In function 'void test7(cppdb::ref_ptr<cppdb::backend::connection>)': /home/Modusat/cppdb-trunk/test/test_backend.cpp:495: warning: comparison between signed and unsigned integer expressions /////////////////////////////// Now that I created the cppdb lib file, tried to compile my project with it, but gives an error on cppdb frontend.h class, don't know if the lib is not correctly created ... I know is a c++ error and not a cppdb error, but can this mean that the cppdb lib still is not created properly? ////////////////////////////////// /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:52: error: expected constructor, destructor, or type conversion before 'char' /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:58: error: expected constructor, destructor, or type conversion before 'int' /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:207: error: function definition does not declare parameters /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:598: error: function definition does not declare parameters /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h: In function 'void cppdb::exec(cppdb::statement&)': /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:954: error: invalid use of incomplete type 'struct cppdb::statement' /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:42: error: forward declaration of 'struct cppdb::statement' /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h: In function 'void cppdb::null(cppdb::statement&)': /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:966: error: invalid use of incomplete type 'struct cppdb::statement' /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:42: error: forward declaration of 'struct cppdb::statement' /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h: In function 'cppdb::result cppdb::row(cppdb::statement&)': /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:987: error: return type 'struct cppdb::result' is incomplete /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:989: error: invalid use of incomplete type 'struct cppdb::statement' /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:42: error: forward declaration of 'struct cppdb::statement' /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h: At global scope: /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:998: error: function definition does not declare parameters /home/common/source/Units/Comms/Backends/../../../../../Modusat/cppdb-trunk/cppdb/frontend.h:1269: error: function definition does not declare parameters ////////////////////////////////// Quoting Marcel Hellwig <ke...@co...>: > On 12.07.2013 09:56, la...@sa... wrote: >> Nonrepresentable section on output > Have you googled your problem? > > http://stackoverflow.com/questions/1521859/nonrepresentable-section-on-output-error-during-linking-on-linux > > This is a mailinglist regarding cppcms/cppdb not c++ specific errors, sorry. > > Regards |
|
From: Petr J. <ele...@ex...> - 2013-07-15 00:03:42
|
If you are dead-set on making WebAPI asynchronous, why not rewrite your
mapping like this:
booster::intrusive_ptr<WebAPI> bgworker(new WebAPI(srv));
srv.applications_pool().mount(bgworker,
cppcms::mount_point("/webapi(/(.*))", 1));
srv.applications_pool().mount(cppcms::applications_factory<Dispatcher>());
Specify your mapping for Dispatcher class in the constructor of
Dispatcher as:
mapper().root(settings().get<string>("myapp.root"));
dispatcher().assign("^/somefunction$", &Dispatcher::index, this);
mapper().assign("somefunction", "/somefunction")
dispatcher().assign("^(.*)$", &Dispatcher::index, this); //catch all regexp
mapper().assign("")
On 15/07/2013 9:24 AM, Petr Janda wrote:
> What is your specific reason to run RPC server as an async app?
>
>
>>
>> On 15/07/2013 8:58 AM, Marcel Hellwig wrote:
>>> On 15.07.2013 00:43, Petr Janda wrote:
>>>> Do you really need an asynchronous application?
>>> I WANT an rpc server in background ;)
>>>> Does WebAPI deviate from
>>>> the normal working scenario of request -> response ?
>>>>
>>>> I'm trying to understand your problem.
>>>>
>>> webAPI is a class, derived from cppcms::rpc::json_rpc_server, as
>>> mentioned before.
>>> There is no problem running both, sync and async apps, afaik, but my
>>> problem is the mount_point. In dispatching the order of "attach" is
>>> relevant, that means /webapi before / is legal and webapi will be
>>> called, mounts in appliation_pool does not follow this rule :/
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> See everything from the browser to the database with AppDynamics
>>> Get end-to-end visibility with application monitoring from AppDynamics
>>> Isolate bottlenecks and diagnose root cause in seconds.
>>> Start your free trial of AppDynamics Pro today!
>>> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
>>>
>>>
>>>
>>> _______________________________________________
>>> Cppcms-users mailing list
>>> Cpp...@li...
>>> https://lists.sourceforge.net/lists/listinfo/cppcms-users
>>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> See everything from the browser to the database with AppDynamics
>> Get end-to-end visibility with application monitoring from AppDynamics
>> Isolate bottlenecks and diagnose root cause in seconds.
>> Start your free trial of AppDynamics Pro today!
>> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
>>
>>
>>
>> _______________________________________________
>> Cppcms-users mailing list
>> Cpp...@li...
>> https://lists.sourceforge.net/lists/listinfo/cppcms-users
>>
>
>
>
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Cppcms-users mailing list
> Cpp...@li...
> https://lists.sourceforge.net/lists/listinfo/cppcms-users
>
--
Please use PGP to encrypt your email to ensure our privacy is respected.
|
|
From: Petr J. <ele...@ex...> - 2013-07-14 23:24:24
|
What is your specific reason to run RPC server as an async app? > > On 15/07/2013 8:58 AM, Marcel Hellwig wrote: >> On 15.07.2013 00:43, Petr Janda wrote: >>> Do you really need an asynchronous application? >> I WANT an rpc server in background ;) >>> Does WebAPI deviate from >>> the normal working scenario of request -> response ? >>> >>> I'm trying to understand your problem. >>> >> webAPI is a class, derived from cppcms::rpc::json_rpc_server, as >> mentioned before. >> There is no problem running both, sync and async apps, afaik, but my >> problem is the mount_point. In dispatching the order of "attach" is >> relevant, that means /webapi before / is legal and webapi will be >> called, mounts in appliation_pool does not follow this rule :/ >> >> >> >> ------------------------------------------------------------------------------ >> See everything from the browser to the database with AppDynamics >> Get end-to-end visibility with application monitoring from AppDynamics >> Isolate bottlenecks and diagnose root cause in seconds. >> Start your free trial of AppDynamics Pro today! >> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >> >> >> >> _______________________________________________ >> Cppcms-users mailing list >> Cpp...@li... >> https://lists.sourceforge.net/lists/listinfo/cppcms-users >> > > > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > > > > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > -- Please use PGP to encrypt your email to ensure our privacy is respected. |
|
From: Petr J. <ele...@ex...> - 2013-07-14 23:15:30
|
Your mountpoints seem to be an issue because you are creating 2 separate
applications that have no common parent.
I explained to you that you need to rethink your application design so
that sub applications (your Index and your WebAPI) have a common parent.
Mounts in application_pool follow the same rule. you need to write your
regular expressions properly.
Theres no reason why something like this should not work:
MyMainApp constructor:
attach(new WebAPI(srv), "webapi", "/webapi{1}", "^/webapi(/(.*))?$", 1);
attach(new Index(srv), "index", "/index{1}", "^/(.*)?$", 1);
On 15/07/2013 8:58 AM, Marcel Hellwig wrote:
> On 15.07.2013 00:43, Petr Janda wrote:
>> Do you really need an asynchronous application?
> I WANT an rpc server in background ;)
>> Does WebAPI deviate from
>> the normal working scenario of request -> response ?
>>
>> I'm trying to understand your problem.
>>
> webAPI is a class, derived from cppcms::rpc::json_rpc_server, as
> mentioned before.
> There is no problem running both, sync and async apps, afaik, but my
> problem is the mount_point. In dispatching the order of "attach" is
> relevant, that means /webapi before / is legal and webapi will be
> called, mounts in appliation_pool does not follow this rule :/
>
>
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Cppcms-users mailing list
> Cpp...@li...
> https://lists.sourceforge.net/lists/listinfo/cppcms-users
>
--
Please use PGP to encrypt your email to ensure our privacy is respected.
|
|
From: Marcel H. <ke...@co...> - 2013-07-14 22:59:00
|
On 15.07.2013 00:43, Petr Janda wrote: > Do you really need an asynchronous application? I WANT an rpc server in background ;) > Does WebAPI deviate from > the normal working scenario of request -> response ? > > I'm trying to understand your problem. > webAPI is a class, derived from cppcms::rpc::json_rpc_server, as mentioned before. There is no problem running both, sync and async apps, afaik, but my problem is the mount_point. In dispatching the order of "attach" is relevant, that means /webapi before / is legal and webapi will be called, mounts in appliation_pool does not follow this rule :/ |
|
From: Petr J. <ele...@ex...> - 2013-07-14 22:43:59
|
Do you really need an asynchronous application? Does WebAPI deviate from
the normal working scenario of request -> response ?
I'm trying to understand your problem.
On 15/07/2013 8:16 AM, Marcel Hellwig wrote:
> Hi everybody,
>
> now my seconds problem :/
> I have a json rpc server running a async app via an intrusive ptr.
> Also I'd like to have a sync app that will serve my "static" HTML-pages.
>
> The current setup is
>
>> booster::intrusive_ptr<WebAPI> bgworker(new WebAPI(srv));
>>
>> srv.applications_pool().mount(bgworker,
>> cppcms::mount_point("/webapi(/(.*))", 1));
>> srv.applications_pool().mount(cppcms::applications_factory<Dispatcher>(),
>> cppcms::mount_point("/index(/(.*))", 1));
> But this is not what I want. I want to provide all rpc calls under the
> webapi domain and everything else under /, so nothing more.
> Now I have to write /index/edit, instead of /edit -> that's annoying.
>
> Any help?
>
>
>
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Cppcms-users mailing list
> Cpp...@li...
> https://lists.sourceforge.net/lists/listinfo/cppcms-users
>
--
Please use PGP to encrypt your email to ensure our privacy is respected.
|
|
From: Petr J. <ele...@ex...> - 2013-07-14 22:38:22
|
I'd advise to call the application something else than Index because
it's not a good class name, and you're likely going to confuse everyone.
You need to setup your application hierarchy structure correctly. I
strongly recommend reading some of the cppcms examples (blog, forum).
Your main.cpp should be calling your Application like this:
app.applications_pool().mount(applications_factory<apps::MyMainApp>());
app.run();
MyMainApp::MyMainApp constructor should contain something like this
attach(new Foo(srv), "foo", "/foo{1}", "^/foo(/(.*))?$", 1);
attach(new Bar(srv), "bar", "/bar{1}", "^/bar(/(.*))?$", 1);
On 15/07/2013 8:12 AM, Marcel Hellwig wrote:
> On 15.07.2013 00:00, Petr Janda wrote:
>> Suggest you use mapper(value), instead of mapper(key, value) for
>> index-style pages. Saves typing and is more clear, imo.
>>
>> ie. call to url("") will create a link to the root(the so called "index"
>> page) of the current application.
>>> And calling url("/bar/index") doesn't work? It should if Bar is a
>>> sub-application.
>
> Hmmm, nope. Everything throws an exception. I have another problem with
> mount_points but this is not the current topic. I will provide my
> current mapping here:
>
> main.cpp
>> app.mount(...<dispatcher>...);
> dispatcher.cpp
>> attach(new Index(srv),
>> "index", "/index{1}",
>> "/index(/(.*))?", 1);
>>
>> mapper().root(settings().get<std::string>("app.root"));
> index.cpp
>> dispatcher().assign(".*", &Index::index, this);
>> mapper().assign("index", "/index");
> Tell me whats wrong. I'm not an expert in mapping, in fact I'm very
> miserable.
>
>
>
>
> ------------------------------------------------------------------------------
> See everything from the browser to the database with AppDynamics
> Get end-to-end visibility with application monitoring from AppDynamics
> Isolate bottlenecks and diagnose root cause in seconds.
> Start your free trial of AppDynamics Pro today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
>
>
>
> _______________________________________________
> Cppcms-users mailing list
> Cpp...@li...
> https://lists.sourceforge.net/lists/listinfo/cppcms-users
>
--
Please use PGP to encrypt your email to ensure our privacy is respected.
|
|
From: Marcel H. <ke...@co...> - 2013-07-14 22:17:03
|
Hi everybody,
now my seconds problem :/
I have a json rpc server running a async app via an intrusive ptr.
Also I'd like to have a sync app that will serve my "static" HTML-pages.
The current setup is
> booster::intrusive_ptr<WebAPI> bgworker(new WebAPI(srv));
>
> srv.applications_pool().mount(bgworker,
> cppcms::mount_point("/webapi(/(.*))", 1));
> srv.applications_pool().mount(cppcms::applications_factory<Dispatcher>(),
> cppcms::mount_point("/index(/(.*))", 1));
But this is not what I want. I want to provide all rpc calls under the
webapi domain and everything else under /, so nothing more.
Now I have to write /index/edit, instead of /edit -> that's annoying.
Any help?
|
|
From: Marcel H. <ke...@co...> - 2013-07-14 22:13:10
|
On 15.07.2013 00:00, Petr Janda wrote:
> Suggest you use mapper(value), instead of mapper(key, value) for
> index-style pages. Saves typing and is more clear, imo.
>
> ie. call to url("") will create a link to the root(the so called "index"
> page) of the current application.
>> And calling url("/bar/index") doesn't work? It should if Bar is a
>> sub-application.
Hmmm, nope. Everything throws an exception. I have another problem with
mount_points but this is not the current topic. I will provide my
current mapping here:
main.cpp
> app.mount(...<dispatcher>...);
dispatcher.cpp
> attach(new Index(srv),
> "index", "/index{1}",
> "/index(/(.*))?", 1);
>
> mapper().root(settings().get<std::string>("app.root"));
index.cpp
> dispatcher().assign(".*", &Index::index, this);
> mapper().assign("index", "/index");
Tell me whats wrong. I'm not an expert in mapping, in fact I'm very
miserable.
|