99 lines
1.9 KiB
Plaintext
99 lines
1.9 KiB
Plaintext
note
|
|
description: "Implementation for the FCGI_I interface"
|
|
legal: "See notice at end of class."
|
|
status: "See notice at end of class."
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
|
|
class FCGI_IMP
|
|
|
|
inherit
|
|
FCGI_I
|
|
|
|
feature -- Access
|
|
|
|
environ: POINTER
|
|
-- Get the (char**) environ variable from the DLL.
|
|
external
|
|
"C inline use %"fcgi_stdio.h%""
|
|
alias
|
|
"return (char**) environ;"
|
|
end
|
|
|
|
feature -- FCGI connection
|
|
|
|
fcgi_listen: INTEGER
|
|
-- Listen to the FCGI input stream
|
|
-- Return 0 for successful calls, -1 otherwise.
|
|
do
|
|
-- Set state on first call to prevent looping indefinitely
|
|
if fcgi_has_run then
|
|
Result := -1
|
|
else --if not is_interactive then
|
|
fcgi_has_run := True
|
|
end
|
|
end
|
|
|
|
fcgi_has_run: BOOLEAN
|
|
-- For emulation only; Has fcgi_listen been called?
|
|
|
|
fcgi_finish
|
|
-- Finish current request from HTTP server started from
|
|
-- the most recent call to `fcgi_accept'.
|
|
do
|
|
end
|
|
|
|
set_fcgi_exit_status (v: INTEGER)
|
|
do
|
|
end
|
|
|
|
feature -- FCGI output
|
|
|
|
put_string (a_str: STRING)
|
|
-- Put `a_str' on the FastCGI stdout.
|
|
do
|
|
io.put_string (a_str)
|
|
end
|
|
|
|
feature -- FCGI Input
|
|
|
|
read_from_stdin (n: INTEGER)
|
|
-- Read up to n bytes from stdin and store in input buffer
|
|
do
|
|
end
|
|
|
|
copy_from_stdin (n: INTEGER; tf: FILE)
|
|
-- Read up to n bytes from stdin and write to given file
|
|
do
|
|
end
|
|
|
|
feature -- Status
|
|
|
|
buffer_contents: STRING
|
|
do
|
|
if attached private_input_buffer as buf then
|
|
Result := buf
|
|
else
|
|
Result := ""
|
|
end
|
|
end
|
|
|
|
buffer_capacity: INTEGER
|
|
do
|
|
if attached private_input_buffer as bug then
|
|
Result := buf.capacity
|
|
end
|
|
end
|
|
|
|
note
|
|
copyright: "Copyright (c) 1984-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
|