85 lines
2.4 KiB
Plaintext
85 lines
2.4 KiB
Plaintext
note
|
|
description: "Simple file execution, serving home.html, ewf.png and 404.html"
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
|
|
class
|
|
SERVICE_FILE_EXECUTION
|
|
|
|
inherit
|
|
WSF_EXECUTION
|
|
|
|
create
|
|
make
|
|
|
|
feature {NONE} -- Initialization
|
|
|
|
execute
|
|
local
|
|
mesg: WSF_RESPONSE_MESSAGE
|
|
not_found: WSF_NOT_FOUND_RESPONSE
|
|
s: STRING
|
|
n: INTEGER
|
|
do
|
|
if request.path_info.is_case_insensitive_equal_general ("/") then
|
|
create {WSF_FILE_RESPONSE} mesg.make_html ("home.html")
|
|
elseif request.path_info.is_case_insensitive_equal_general ("/ewf.png") then
|
|
create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.image_png ,"ewf.png")
|
|
elseif request.path_info.is_case_insensitive_equal_general ("/big.png") then
|
|
create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.image_png ,"big.png")
|
|
elseif request.path_info.is_case_insensitive_equal_general ("/huge.png") then
|
|
create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.image_png ,"huge.png")
|
|
|
|
elseif request.path_info.ends_with_general ("mb.txt") then
|
|
s := request.path_info
|
|
s.remove_head (1)
|
|
s.remove_tail (6)
|
|
if s.is_integer then
|
|
n := s.to_integer
|
|
end
|
|
build_txt_file (n)
|
|
create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.text_plain , n.out + "mb.txt")
|
|
-- elseif request.path_info.is_case_insensitive_equal_general ("/5mb.txt") then
|
|
-- create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.text_plain ,"5mb.txt")
|
|
-- elseif request.path_info.is_case_insensitive_equal_general ("/10mb.txt") then
|
|
-- create {WSF_FILE_RESPONSE} mesg.make_with_content_type ({HTTP_MIME_TYPES}.text_plain ,"10mb.txt")
|
|
else
|
|
create not_found.make (request)
|
|
not_found.add_suggested_location (request.absolute_script_url (""), "Home", "Back to home page")
|
|
|
|
mesg := not_found
|
|
end
|
|
response.send (mesg)
|
|
end
|
|
|
|
build_txt_file (a_nb_mb: INTEGER)
|
|
local
|
|
f: RAW_FILE
|
|
i: INTEGER
|
|
s: STRING
|
|
do
|
|
create f.make_with_name (a_nb_mb.out + "mb.txt")
|
|
if not f.exists then
|
|
f.create_read_write
|
|
from
|
|
i := 1
|
|
until
|
|
i > 10_000 * a_nb_mb
|
|
loop
|
|
s := i.out
|
|
from
|
|
until
|
|
s.count >= 9
|
|
loop
|
|
s.prepend_character ('_')
|
|
end
|
|
f.put_string (s)
|
|
f.put_string (":01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678%N")
|
|
i := i + 1
|
|
end
|
|
f.close
|
|
end
|
|
end
|
|
|
|
end
|