Changeset 54

Show
Ignore:
Timestamp:
04/28/05 20:11:17 (4 years ago)
Author:
pragma
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/dsp/servlet/IDSPRequest.d

    r49 r54  
    2929 
    3030interface IDSPRequest : IServletRequest{ 
    31     void setException(Exception e); 
    3231} 
  • trunk/dsp/servlet/IDSPResponse.d

    r49 r54  
    2727 
    2828private import mango.servlet.model.IServletResponse; 
     29private import mango.http.HttpWriter; 
    2930 
    3031interface IDSPResponse : IServletResponse{ 
    3132    HttpWriter getWriter(); 
     33    void setException(char[] e); 
     34    bit isExceptionSet(); 
     35    char[] getException(); 
    3236} 
    33  
    34 class HttpWriter{ 
    35     void put(char[] value){ 
    36     } 
    37 } 
  • trunk/dsp/servlet/ServletRegistry.d

    r49 r54  
    3131alias void function(IDSPRequest request,IDSPResponse response) ServletHandle; 
    3232 
    33  
    3433class ServletRegistry{ 
    3534    static ServletHandle[char[]] registry; 
    3635 
    37     static void register(ServletHandle handle,char[] path){ 
    38         registry[path] = handle; 
     36    static void register(ServletHandle handle,char[] name){ 
     37        //TODO: enable use of nested servlets 
     38        registry[name] = handle; 
    3939    } 
    4040 
    41     static synchronized void doService(char[] path,IDSPRequest request,IDSPResponse response){ 
    42         if(path in registry){ 
    43             try{ 
    44                 registry[path](request,response); 
    45             } 
    46             catch(Exception e){ 
    47                 request.setException(e);     
    48             } 
    49             catch(Object o){ 
    50                 request.setException(new Exception("general exception: " ~ o.toString()));   
    51             } 
     41    static /*synchronized*/ void doService(IDSPRequest request,IDSPResponse response){ 
     42        //TODO: enable use of nested servlets 
     43        char[] name = "default"; 
     44         
     45        if(name in registry){ 
     46            registry[name](request,response); 
    5247        } 
    5348        else{ 
    54             request.setException(new Exception("servlet not found"));      
     49            response.setException("servlet not found");        
    5550        } 
    5651    } 
     
    6156} 
    6257 
    63 export void service(char[] path,IDSPRequest request,IDSPResponse response){ 
    64     ServletRegistry.doService(path,request,response); 
     58extern(C) export void service(IDSPRequest request,IDSPResponse response){ 
     59    try{ 
     60        ServletRegistry.doService(request,response); 
     61    } 
     62    catch(Exception e){ 
     63        response.setException(e.toString());     
     64    } 
     65    catch(Object o){ 
     66        response.setException("general exception: " ~ o.toString());     
     67    }    
    6568}