//
@co_call(par_area,par_class,'getPath',par_id=>par_id,par_area=>par_area,par_class=>par_class);
partial_path = cou_getReturnValue( cnx, CO_STRING, &err );
file_path = ap_psprintf( p, "%s/%s", cou_getCODataPath() , partial_path );

cou_logError( cnx, CO_LOG_DEBUG, "filename %s",file_path);


@co_call(par_area,par_class,'getContentType',par_id=>par_id,par_area=>par_area,par_class=>par_class);
cnx->request->content_type = (char*)cou_getReturnValue( cnx, CO_STRING, &err );

ap_send_http_header(r);

fh = ap_pfopen( p, file_path, "r" );

if (!fh)
{
__SEND_MESG_DEBUG("filename %s",file_path)
cou_error( cnx, "Could not open file");
}

ap_send_fd( fh, cnx->request ); /* returns total of bytes sent */
ap_pfclose(p,fh);

__SEND_MESG_DEBUG("getFile")