Files
EWF/library/ewsgi/src/gw_request_variables.e
Jocelyn Fiat f1d8d18811 a few renaming
better GW_ENVIRONMENT interface
2011-07-07 17:24:21 +02:00

138 lines
2.8 KiB
Plaintext

note
description: "[
Variables/field related to the current request.
]"
legal: "See notice at end of class."
status: "See notice at end of class."
date: "$Date$"
revision: "$Revision$"
class
GW_REQUEST_VARIABLES
inherit
GW_VARIABLES [STRING_32]
ITERABLE [STRING_32]
create
make--,
-- make_from_urlencoded
feature -- Initialization
make (n: INTEGER)
do
create table.make (n)
table.compare_objects
end
-- make_from_urlencoded (a_content: STRING; decoding: BOOLEAN)
-- do
-- make (a_content.occurrences ('&') + 1)
-- import_urlencoded (a_content, decoding)
-- end
feature -- Status report
count: INTEGER
-- Variables count
do
Result := table.count
end
variable (a_name: STRING): detachable STRING_32
do
Result := table.item (a_name)
end
has_variable (a_name: STRING): BOOLEAN
do
Result := table.has (a_name)
end
feature -- Import urlencoded
-- import_urlencoded (a_content: STRING; decoding: BOOLEAN)
-- -- Import `a_content'
-- local
-- n, p, i, j: INTEGER
-- s: STRING
-- l_name,l_value: STRING_32
-- do
-- n := a_content.count
-- if n > 0 then
-- from
-- p := 1
-- until
-- p = 0
-- loop
-- i := a_content.index_of ('&', p)
-- if i = 0 then
-- s := a_content.substring (p, n)
-- p := 0
-- else
-- s := a_content.substring (p, i - 1)
-- p := i + 1
-- end
-- if not s.is_empty then
-- j := s.index_of ('=', 1)
-- if j > 0 then
-- l_name := s.substring (1, j - 1)
-- l_value := s.substring (j + 1, s.count)
-- if decoding then
-- l_name := url_encoder.decoded_string (l_name)
-- l_value := url_encoder.decoded_string (l_value)
-- end
-- add_variable (l_value, l_name)
-- end
-- end
-- end
-- end
-- end
feature -- Access: table
new_cursor: HASH_TABLE_ITERATION_CURSOR [STRING_32, STRING_32]
-- Fresh cursor associated with current structure
do
create Result.make (table)
end
feature {GW_REQUEST_CONTEXT} -- Element change
add_variable (v: STRING_32; k: STRING_32)
-- Added `k,v' to variables table
-- Not exported to common client
-- Simulate Read Only Access
require
k_attached: k /= Void
v_attached: v /= Void
do
table.force (v, k)
end
feature {GW_REQUEST_CONTEXT} -- Element change
table: HASH_TABLE [STRING_32, STRING_32]
-- Variables table
feature {NONE} -- Implementation
-- url_encoder: URL_ENCODER
-- once
-- create Result
-- end
note
copyright: "2011-2011, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software
5949 Hollister Ave., Goleta, CA 93117 USA
Telephone 805-685-1006, Fax 805-685-6869
Website http://www.eiffel.com
Customer support http://support.eiffel.com
]"
end