Files
EWF/examples/simple_file/service_file_execution.e
2017-04-13 15:01:34 +02:00

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