a few renaming
better GW_ENVIRONMENT interface
This commit is contained in:
137
library/ewsgi/src/gw_request_variables.e
Normal file
137
library/ewsgi/src/gw_request_variables.e
Normal file
@@ -0,0 +1,137 @@
|
||||
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
|
||||
Reference in New Issue
Block a user