You've already forked lazarus-ccr
Apache module extension to be a dll/so hosting env
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@278 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value="./"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="0"/>
|
||||
<ActiveEditorIndexAtStart Value="3"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@@ -24,121 +24,482 @@
|
||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<Units Count="14">
|
||||
<Units Count="56">
|
||||
<Unit0>
|
||||
<Filename Value="mod_wst.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="mod_wst"/>
|
||||
<CursorPos X="3" Y="11"/>
|
||||
<CursorPos X="38" Y="11"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="36"/>
|
||||
<UsageCount Value="68"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<UnitName Value="wst_apache_binding"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="249"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="18"/>
|
||||
<CursorPos X="19" Y="74"/>
|
||||
<TopLine Value="70"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="33"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="..\..\metadata_wsdl.pas"/>
|
||||
<UnitName Value="metadata_wsdl"/>
|
||||
<CursorPos X="70" Y="30"/>
|
||||
<TopLine Value="16"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="18"/>
|
||||
<Loaded Value="True"/>
|
||||
<CursorPos X="5" Y="82"/>
|
||||
<TopLine Value="67"/>
|
||||
<UsageCount Value="33"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="..\user_service_intf_imp.pas"/>
|
||||
<UnitName Value="user_service_intf_imp"/>
|
||||
<CursorPos X="71" Y="20"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="18"/>
|
||||
<Loaded Value="True"/>
|
||||
<CursorPos X="8" Y="225"/>
|
||||
<TopLine Value="191"/>
|
||||
<UsageCount Value="21"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-1.3\httpd.pas"/>
|
||||
<UnitName Value="httpd"/>
|
||||
<CursorPos X="5" Y="26"/>
|
||||
<TopLine Value="25"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-1.3\httpd.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="75"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\httpd.pas"/>
|
||||
<UnitName Value="httpd"/>
|
||||
<CursorPos X="35" Y="44"/>
|
||||
<TopLine Value="61"/>
|
||||
<UsageCount Value="9"/>
|
||||
<UsageCount Value="6"/>
|
||||
</Unit6>
|
||||
<Unit7>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\http_protocol.inc"/>
|
||||
<CursorPos X="47" Y="799"/>
|
||||
<TopLine Value="777"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit7>
|
||||
<Unit8>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\httpd.inc"/>
|
||||
<CursorPos X="5" Y="794"/>
|
||||
<TopLine Value="777"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-2.0\apr\apr_tables.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="16"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\http_config.inc"/>
|
||||
<CursorPos X="71" Y="66"/>
|
||||
<TopLine Value="32"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\httpd.pas"/>
|
||||
<UnitName Value="httpd"/>
|
||||
<CursorPos X="41" Y="134"/>
|
||||
<TopLine Value="117"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\ap_mmn.inc"/>
|
||||
<CursorPos X="3" Y="111"/>
|
||||
<TopLine Value="96"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\base\httpd\httpd-2.0\apr\apr_pools.inc"/>
|
||||
<CursorPos X="3" Y="48"/>
|
||||
<TopLine Value="678"/>
|
||||
<UsageCount Value="10"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="..\..\wst_rtti_filter\cursor_intf.pas"/>
|
||||
<UnitName Value="cursor_intf"/>
|
||||
<CursorPos X="16" Y="18"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit14>
|
||||
<Unit15>
|
||||
<Filename Value="..\user_service_intf_binder.pas"/>
|
||||
<UnitName Value="user_service_intf_binder"/>
|
||||
<CursorPos X="3" Y="252"/>
|
||||
<TopLine Value="250"/>
|
||||
<UsageCount Value="13"/>
|
||||
</Unit15>
|
||||
<Unit16>
|
||||
<Filename Value="..\imp_helper.pas"/>
|
||||
<UnitName Value="imp_helper"/>
|
||||
<CursorPos X="1" Y="76"/>
|
||||
<TopLine Value="33"/>
|
||||
<UsageCount Value="20"/>
|
||||
</Unit16>
|
||||
<Unit17>
|
||||
<Filename Value="..\..\metadata_service_binder.pas"/>
|
||||
<UnitName Value="metadata_service_binder"/>
|
||||
<CursorPos X="29" Y="43"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="25"/>
|
||||
</Unit17>
|
||||
<Unit18>
|
||||
<Filename Value="..\..\metadata_service.pas"/>
|
||||
<UnitName Value="metadata_service"/>
|
||||
<CursorPos X="71" Y="76"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="25"/>
|
||||
</Unit18>
|
||||
<Unit19>
|
||||
<Filename Value="..\..\metadata_service_imp.pas"/>
|
||||
<UnitName Value="metadata_service_imp"/>
|
||||
<CursorPos X="61" Y="21"/>
|
||||
<TopLine Value="13"/>
|
||||
<UsageCount Value="24"/>
|
||||
</Unit19>
|
||||
<Unit20>
|
||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
||||
<UnitName Value="library_imp_utils"/>
|
||||
<CursorPos X="42" Y="35"/>
|
||||
<TopLine Value="73"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="24"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit20>
|
||||
<Unit21>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\apr\apr.pas"/>
|
||||
<UnitName Value="apr"/>
|
||||
<CursorPos X="18" Y="182"/>
|
||||
<TopLine Value="173"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit21>
|
||||
<Unit22>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\apr\apr_file_info.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="151"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit22>
|
||||
<Unit23>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\apr\apr_file_io.inc"/>
|
||||
<CursorPos X="124" Y="665"/>
|
||||
<TopLine Value="778"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit23>
|
||||
<Unit24>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\apr\apr_dso.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="66"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit24>
|
||||
<Unit25>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\apr\apr_lib.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="192"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit25>
|
||||
<Unit26>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\apr\apr_general.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="199"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit26>
|
||||
<Unit27>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\apr\apr_strings.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="329"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit27>
|
||||
<Unit28>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-1.3\httpd.inc"/>
|
||||
<CursorPos X="21" Y="23"/>
|
||||
<TopLine Value="10"/>
|
||||
<UsageCount Value="12"/>
|
||||
</Unit28>
|
||||
<Unit29>
|
||||
<Filename Value="..\..\library_base_intf.pas"/>
|
||||
<UnitName Value="library_base_intf"/>
|
||||
<CursorPos X="29" Y="17"/>
|
||||
<TopLine Value="73"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="23"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit29>
|
||||
<Unit30>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-1.3\ap_alloc.inc"/>
|
||||
<CursorPos X="3" Y="45"/>
|
||||
<TopLine Value="30"/>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit30>
|
||||
<Unit31>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\apr\apr_pools.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="678"/>
|
||||
<UsageCount Value="7"/>
|
||||
</Unit31>
|
||||
<Unit32>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-1.3\httpd.pas"/>
|
||||
<UnitName Value="httpd"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="82"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit32>
|
||||
<Unit33>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-1.3\http_log.inc"/>
|
||||
<CursorPos X="11" Y="75"/>
|
||||
<TopLine Value="60"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit33>
|
||||
<Unit34>
|
||||
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
||||
<UnitName Value="server_service_xmlrpc"/>
|
||||
<CursorPos X="17" Y="57"/>
|
||||
<TopLine Value="42"/>
|
||||
<UsageCount Value="13"/>
|
||||
</Unit34>
|
||||
<Unit35>
|
||||
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
|
||||
<UnitName Value="base_xmlrpc_formatter"/>
|
||||
<CursorPos X="3" Y="29"/>
|
||||
<TopLine Value="14"/>
|
||||
<UsageCount Value="13"/>
|
||||
</Unit35>
|
||||
<Unit36>
|
||||
<Filename Value="..\..\server_service_intf.pas"/>
|
||||
<UnitName Value="server_service_intf"/>
|
||||
<CursorPos X="5" Y="18"/>
|
||||
<TopLine Value="3"/>
|
||||
<UsageCount Value="21"/>
|
||||
</Unit36>
|
||||
<Unit37>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\win32\classes.pp"/>
|
||||
<UnitName Value="Classes"/>
|
||||
<CursorPos X="8" Y="46"/>
|
||||
<TopLine Value="21"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit37>
|
||||
<Unit38>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\objpas\classes\classes.inc"/>
|
||||
<CursorPos X="11" Y="1674"/>
|
||||
<TopLine Value="1665"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit38>
|
||||
<Unit39>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-1.3\http_config.inc"/>
|
||||
<CursorPos X="24" Y="165"/>
|
||||
<TopLine Value="150"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit39>
|
||||
<Unit40>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.2\apr\apr_pools.inc"/>
|
||||
<CursorPos X="3" Y="48"/>
|
||||
<TopLine Value="33"/>
|
||||
<UsageCount Value="8"/>
|
||||
</Unit40>
|
||||
<Unit41>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.2\http_config.inc"/>
|
||||
<CursorPos X="25" Y="154"/>
|
||||
<TopLine Value="117"/>
|
||||
<UsageCount Value="17"/>
|
||||
</Unit41>
|
||||
<Unit42>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.2\httpd.pas"/>
|
||||
<UnitName Value="httpd"/>
|
||||
<CursorPos X="3" Y="70"/>
|
||||
<TopLine Value="55"/>
|
||||
<UsageCount Value="15"/>
|
||||
</Unit42>
|
||||
<Unit43>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.2\httpd.inc"/>
|
||||
<CursorPos X="5" Y="1029"/>
|
||||
<TopLine Value="1014"/>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit43>
|
||||
<Unit44>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.2\http_log.inc"/>
|
||||
<CursorPos X="15" Y="34"/>
|
||||
<TopLine Value="17"/>
|
||||
<UsageCount Value="11"/>
|
||||
</Unit44>
|
||||
<Unit45>
|
||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\base\httpd\httpd-2.0\http_config.inc"/>
|
||||
<CursorPos X="1" Y="136"/>
|
||||
<TopLine Value="113"/>
|
||||
<UsageCount Value="13"/>
|
||||
</Unit45>
|
||||
<Unit46>
|
||||
<Filename Value="..\..\wst.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit46>
|
||||
<Unit47>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<UnitName Value="base_service_intf"/>
|
||||
<CursorPos X="25" Y="1252"/>
|
||||
<TopLine Value="1237"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="13"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit47>
|
||||
<Unit48>
|
||||
<Filename Value="..\..\imp_utils.pas"/>
|
||||
<UnitName Value="imp_utils"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="38"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit48>
|
||||
<Unit49>
|
||||
<Filename Value="..\..\wst_resources_imp.pas"/>
|
||||
<UnitName Value="wst_resources_imp"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="13"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit49>
|
||||
<Unit50>
|
||||
<Filename Value="..\..\record_rtti.pas"/>
|
||||
<UnitName Value="record_rtti"/>
|
||||
<CursorPos X="5" Y="66"/>
|
||||
<TopLine Value="51"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit50>
|
||||
<Unit51>
|
||||
<Filename Value="..\..\server_service_imputils.pas"/>
|
||||
<UnitName Value="server_service_imputils"/>
|
||||
<CursorPos X="5" Y="18"/>
|
||||
<TopLine Value="3"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit51>
|
||||
<Unit52>
|
||||
<Filename Value="..\..\server_service_soap.pas"/>
|
||||
<UnitName Value="server_service_soap"/>
|
||||
<CursorPos X="15" Y="22"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit52>
|
||||
<Unit53>
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<UnitName Value="base_soap_formatter"/>
|
||||
<CursorPos X="5" Y="356"/>
|
||||
<TopLine Value="342"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit53>
|
||||
<Unit54>
|
||||
<Filename Value="..\..\server_binary_formatter.pas"/>
|
||||
<UnitName Value="server_binary_formatter"/>
|
||||
<CursorPos X="5" Y="18"/>
|
||||
<TopLine Value="3"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit54>
|
||||
<Unit55>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<UnitName Value="metadata_repository"/>
|
||||
<CursorPos X="5" Y="117"/>
|
||||
<TopLine Value="102"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit55>
|
||||
</Units>
|
||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||
<JumpHistory Count="22" HistoryIndex="21">
|
||||
<Position1>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="72" Column="16" TopLine="70"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="20" Column="5" TopLine="5"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="..\..\base_service_intf.pas"/>
|
||||
<Caret Line="1252" Column="25" TopLine="1237"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="73" Column="19" TopLine="70"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="73" Column="34" TopLine="70"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="74" Column="22" TopLine="70"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\server_service_soap.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="..\..\server_service_soap.pas"/>
|
||||
<Caret Line="22" Column="18" TopLine="3"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<Caret Line="18" Column="5" TopLine="3"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="74" Column="41" TopLine="70"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="74" Column="56" TopLine="70"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="75" Column="22" TopLine="70"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="..\..\metadata_repository.pas"/>
|
||||
<Caret Line="18" Column="5" TopLine="3"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="75" Column="36" TopLine="70"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="76" Column="12" TopLine="70"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="wst_apache_binding.pas"/>
|
||||
<Caret Line="74" Column="19" TopLine="70"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="..\..\server_service_soap.pas"/>
|
||||
<Caret Line="22" Column="15" TopLine="1"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<Caret Line="1" Column="1" TopLine="7"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||
<Caret Line="18" Column="58" TopLine="3"/>
|
||||
</Position22>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
@@ -147,9 +508,10 @@
|
||||
<Filename Value="mod_wst.so"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\;$(LazarusDir)\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\;$(LazarusDir)\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\apr\;$(LazarusDir)\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\apriconv\;$(LazarusDir)\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\aprutil\"/>
|
||||
<IncludeFiles Value="..\..\"/>
|
||||
<OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\;$(FPCSrcDir)\packages\base\httpd\httpd-2.0\;$(FPCSrcDir)\packages\base\httpd\httpd-2.0\apr\;$(FPCSrcDir)\packages\base\httpd\httpd-2.0\apriconv\;$(FPCSrcDir)\packages\base\httpd\httpd-2.0\aprutil\"/>
|
||||
<UnitOutputDirectory Value="obj"/>
|
||||
<SrcPath Value="$(LazarusDir)\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\;$(LazarusDir)\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\apr\;$(LazarusDir)\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\apriconv\;$(LazarusDir)\fpc\2.1.3\source\packages\base\httpd\httpd-2.2\aprutil\"/>
|
||||
<SrcPath Value="$(FPCSrcDir)\packages\base\httpd\httpd-2.0\;$(FPCSrcDir)\packages\base\httpd\httpd-2.0\apr\;$(FPCSrcDir)\packages\base\httpd\httpd-2.0\apriconv\;$(FPCSrcDir)\packages\base\httpd\httpd-2.0\aprutil\"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<Generate Value="Faster"/>
|
||||
|
||||
@@ -41,6 +41,7 @@ end;
|
||||
|
||||
begin
|
||||
default_module_ptr := @wst_module;
|
||||
wst_apache_binding.wst_module_ptr := default_module_ptr;
|
||||
FillChar(default_module_ptr^, SizeOf(default_module_ptr^), 0);
|
||||
STANDARD20_MODULE_STUFF(default_module_ptr^);
|
||||
with wst_module do
|
||||
@@ -48,5 +49,9 @@ begin
|
||||
name := MODULE_NAME;
|
||||
magic := MODULE_MAGIC_COOKIE;
|
||||
register_hooks := @RegisterHooks;
|
||||
create_dir_config := @wst_create_dir_config;
|
||||
cmds := WstCommandStructArray;
|
||||
end;
|
||||
WstCommandStructArray[0].cmd_data := @WstConfigData^.BasePath;
|
||||
FillChar(WstCommandStructArray[1],SizeOf(command_rec),#0);
|
||||
end.
|
||||
|
||||
@@ -1,4 +1,27 @@
|
||||
{$DEFINE WST_DBG}
|
||||
{$UNDEF WST_DBG}
|
||||
|
||||
(*WST_BROKER enable the service brokering :
|
||||
if enabled, this module just forwards the request to the
|
||||
implementation libraries contained in the WstRootPath path.
|
||||
WST load these libraries in the local file system folder
|
||||
configured by the value of WstRootPath.
|
||||
WstRootPath is a configuration directive which must be
|
||||
in the wst "Location" scope.
|
||||
Example :
|
||||
|
||||
<Location /wst>
|
||||
SetHandler wst-handler
|
||||
WstRootPath "C:/Programmes/lazarus/wst/trunk/samples/library_server/"
|
||||
</Location>
|
||||
|
||||
Services can then be invoked through the following addressing schema
|
||||
http://127.0.0.1:8080/wst/services/lib_server/UserService
|
||||
|
||||
lib_server : the library name ( without extension )
|
||||
UserService : the target service
|
||||
wst/services : constant.
|
||||
*)
|
||||
{$DEFINE WST_BROKER}
|
||||
|
||||
unit wst_apache_binding;
|
||||
|
||||
@@ -17,25 +40,82 @@ const
|
||||
sWSDL = 'WSDL';
|
||||
sHTTP_BINARY_CONTENT_TYPE = 'application/octet-stream';
|
||||
sCONTENT_TYPE = 'Content-Type';
|
||||
|
||||
sWstRootPath = 'WstRootPath'; // The WST local file system path configure in apache
|
||||
sWST_LIBRARY_EXTENSION = '.wml';
|
||||
|
||||
type
|
||||
PWstConfigData = ^TWstConfigData;
|
||||
TWstConfigData = record
|
||||
Dir : PChar;
|
||||
BasePath : PChar;
|
||||
end;
|
||||
|
||||
var
|
||||
wst_module_ptr : Pmodule = nil;
|
||||
WstConfigData : PWstConfigData = nil;
|
||||
WstCommandStructArray : array[0..1] of command_rec = (
|
||||
( name : sWstRootPath;
|
||||
func : ( func_take1 : @ap_set_string_slot );
|
||||
cmd_data : ( nil {@WstConfigData^.BasePath} );
|
||||
req_override : OR_ALL;
|
||||
args_how : TAKE1;
|
||||
errmsg : 'usage : WstRootPath <path>' + LineEnding + ' path is the path to the WST root path.';
|
||||
),
|
||||
()
|
||||
);
|
||||
|
||||
function wst_RequestHandler(r: Prequest_rec): Integer;
|
||||
function wst_create_dir_config(p: Papr_pool_t; dir: PChar) : Pointer;cdecl;
|
||||
|
||||
implementation
|
||||
uses base_service_intf,
|
||||
server_service_intf, server_service_imputils,
|
||||
server_service_soap, server_binary_formatter,
|
||||
metadata_repository, metadata_wsdl, DOM, XMLWrite,
|
||||
|
||||
user_service_intf, user_service_intf_binder, user_service_intf_imp,
|
||||
server_service_soap, server_binary_formatter, server_service_xmlrpc,
|
||||
metadata_repository, metadata_wsdl,
|
||||
imp_utils, binary_streamer, library_base_intf, library_imp_utils,
|
||||
DOM, XMLWrite,
|
||||
metadata_service, metadata_service_binder, metadata_service_imp;
|
||||
|
||||
procedure wst_initialize();
|
||||
begin
|
||||
RegisterStdTypes();
|
||||
Server_service_RegisterBinaryFormat();
|
||||
Server_service_RegisterSoapFormat();
|
||||
//Server_service_RegisterXmlRpcFormat();
|
||||
|
||||
RegisterWSTMetadataServiceImplementationFactory();
|
||||
Server_service_RegisterWSTMetadataServiceService();
|
||||
end;
|
||||
|
||||
function wst_create_dir_config(p: Papr_pool_t; dir: PChar) : Pointer; cdecl;
|
||||
begin
|
||||
WstConfigData := PWstConfigData(apr_palloc(p,SizeOf(TWstConfigData)));
|
||||
FillChar(WstConfigData^,SizeOf(TWstConfigData),#0);
|
||||
WstConfigData^.Dir := apr_pstrdup(p,dir);
|
||||
Result := WstConfigData;
|
||||
end;
|
||||
|
||||
function GetWstPath(): PChar;inline;
|
||||
begin
|
||||
Result := WstConfigData^.BasePath;
|
||||
end;
|
||||
|
||||
type
|
||||
PRequestArgument = ^TRequestArgument;
|
||||
TRequestArgument = record
|
||||
Name : shortstring;
|
||||
Value : shortstring;
|
||||
Next : PRequestArgument;
|
||||
end;
|
||||
TRequestInfo = record
|
||||
Root : string;
|
||||
URI : string;
|
||||
ContentType : string;
|
||||
Buffer : string;
|
||||
Argument : string;
|
||||
InnerRequest : Pointer;
|
||||
Root : string;
|
||||
URI : string;
|
||||
ContentType : string;
|
||||
Buffer : string;
|
||||
Arguments : string;
|
||||
ArgList : PRequestArgument;
|
||||
end;
|
||||
|
||||
TResponseInfo = record
|
||||
@@ -43,6 +123,52 @@ type
|
||||
ContentType : string;
|
||||
end;
|
||||
|
||||
function ParseArgs(
|
||||
const APool : Papr_pool_t;
|
||||
const AArgs : string;
|
||||
const ASeparator : Char = '&'
|
||||
) : PRequestArgument;
|
||||
var
|
||||
locBuffer, locArg : string;
|
||||
locPrev, locTmpArg : PRequestArgument;
|
||||
begin
|
||||
Result := nil;
|
||||
locBuffer := Trim(AArgs);
|
||||
if not IsStrEmpty(locBuffer) then begin
|
||||
locTmpArg := nil;
|
||||
locPrev := nil;
|
||||
while True do begin
|
||||
locArg := GetToken(locBuffer,ASeparator);
|
||||
if IsStrEmpty(locArg) then
|
||||
Break;
|
||||
locPrev := locTmpArg;
|
||||
locTmpArg := PRequestArgument(apr_palloc(APool,SizeOf(TRequestArgument)));
|
||||
FillChar(locTmpArg^,SizeOf(TRequestArgument),#0);
|
||||
if ( Result = nil ) then begin
|
||||
Result := locTmpArg;
|
||||
end else begin
|
||||
locPrev^.Next := locTmpArg;
|
||||
end;
|
||||
locTmpArg^.Name := GetToken(locArg,'=');
|
||||
locTmpArg^.Value := locArg;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function FindArg(const AArgs : PRequestArgument; const AName : string) : PRequestArgument;
|
||||
var
|
||||
p : PRequestArgument;
|
||||
begin
|
||||
Result := nil;
|
||||
p := AArgs;
|
||||
while Assigned(p) do begin
|
||||
if AnsiSameText(AName,AArgs^.Name) then begin
|
||||
Result := p;
|
||||
Break;
|
||||
end;
|
||||
p := p^.Next;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure SaveStringToFile(const AStr,AFile:string;const AKeepExisting : Boolean);
|
||||
begin
|
||||
@@ -154,7 +280,7 @@ begin
|
||||
Result := '<html>' +
|
||||
'<head>'+
|
||||
'<title>'+
|
||||
'The Web Service Toolkit generated Metadata table'+
|
||||
'The Web Service Toolkit generated Metadata table XXXXX'+
|
||||
'</title>'+
|
||||
'<body>' +
|
||||
'<p BGCOLOR="#DDEEFF"><FONT FACE="Arial" COLOR="#0000A0" SIZE="+2">The following repositories has available. Click on the link to view the corresponding WSDL.</FONT></p>'+
|
||||
@@ -233,7 +359,7 @@ begin
|
||||
AResponseInfo.ContentType := sHTTP_BINARY_CONTENT_TYPE
|
||||
else
|
||||
AResponseInfo.ContentType := ctntyp;
|
||||
rqst := TRequestBuffer.Create(trgt,ctntyp,inStream,outStream,'');
|
||||
rqst := TRequestBuffer.Create(trgt,ctntyp,inStream,outStream,ARequestInfo.ContentType);
|
||||
HandleServiceRequest(rqst);
|
||||
i := outStream.Size;
|
||||
if ( i > 0 ) then begin
|
||||
@@ -244,7 +370,7 @@ begin
|
||||
outStream.Free();
|
||||
inStream.Free();
|
||||
{$IFDEF WST_DBG}
|
||||
SaveStringToFile('RequestInfo.ContentType=' + ARequestInfo.Argument + LineEnding,'c:\log.log',False);
|
||||
SaveStringToFile('RequestInfo.ContentType=' + ARequestInfo.Arguments + LineEnding,'c:\log.log',False);
|
||||
{SaveStringToFile('RequestInfo.Buffer=' + ARequestInfo.Buffer + LineEnding,'E:\Inoussa\Sources\lazarus\wst\v0.3\tests\apache_module\log.log',True);
|
||||
SaveStringToFile('RequestInfo.URI=' + ARequestInfo.URI + LineEnding,'E:\Inoussa\Sources\lazarus\wst\v0.3\tests\apache_module\log.log',True);
|
||||
SaveStringToFile('ResponseInfo.ContentType=' + AResponseInfo.ContentType + LineEnding,'E:\Inoussa\Sources\lazarus\wst\v0.3\tests\apache_module\log.log',True);
|
||||
@@ -254,14 +380,94 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
const MAX_ERR_LEN = 500;
|
||||
function ProcessServiceRequestLibrary(
|
||||
const ARequestInfo : TRequestInfo;
|
||||
out AResponseInfo : TResponseInfo
|
||||
) : Boolean;
|
||||
var
|
||||
loc_path, ctntyp : string;
|
||||
targetModuleName, targetFormat, targetService : string;
|
||||
wrtr : IDataStore;
|
||||
buffStream : TMemoryStream;
|
||||
strBuff : string;
|
||||
intfBuffer : IwstStream;
|
||||
bl : LongInt;
|
||||
targetModule : IwstModule;
|
||||
handlerProc : TwstLibraryHandlerFunction;
|
||||
pArg : PRequestArgument;
|
||||
i : Integer;
|
||||
begin
|
||||
try
|
||||
FillChar(AResponseInfo,SizeOf(TResponseInfo),#0);
|
||||
loc_path := ARequestInfo.URI;
|
||||
targetModuleName := ExtractNextPathElement(loc_path);
|
||||
Result := False;
|
||||
targetModule := LibraryManager.Get(GetWstPath() + targetModuleName + sWST_LIBRARY_EXTENSION);
|
||||
handlerProc := TwstLibraryHandlerFunction(targetModule.GetProc(WST_LIB_HANDLER));
|
||||
if not Assigned(handlerProc) then
|
||||
Exit;
|
||||
targetService := ExtractNextPathElement(loc_path);
|
||||
if AnsiSameText(sWSDL,targetService) then
|
||||
Exit;
|
||||
pArg := FindArg(ARequestInfo.ArgList,'format');
|
||||
if Assigned(pArg) then
|
||||
targetFormat := pArg^.Value;
|
||||
if IsStrEmpty(targetFormat) then
|
||||
targetFormat := ARequestInfo.ContentType;
|
||||
buffStream := TMemoryStream.Create();
|
||||
try
|
||||
wrtr := CreateBinaryWriter(buffStream);
|
||||
wrtr.WriteInt32S(0);
|
||||
wrtr.WriteStr(targetService);
|
||||
wrtr.WriteStr(ARequestInfo.ContentType);
|
||||
wrtr.WriteStr(targetFormat);
|
||||
wrtr.WriteStr(ARequestInfo.Buffer);
|
||||
buffStream.Position := 0;
|
||||
wrtr.WriteInt32S(buffStream.Size-4);
|
||||
|
||||
buffStream.Position := 0;
|
||||
intfBuffer := TwstStream.Create(buffStream);
|
||||
bl := MAX_ERR_LEN;
|
||||
strBuff := StringOfChar(#0,bl);
|
||||
i := handlerProc(intfBuffer,Pointer(strBuff),bl);
|
||||
if ( i <> RET_OK ) then
|
||||
raise Exception.CreateFmt('Library server error :'#13'Code : %d'#13'Message : %s',[i,strBuff]);
|
||||
|
||||
if AnsiSameText(sBINARY_CONTENT_TYPE,ARequestInfo.ContentType) then
|
||||
AResponseInfo.ContentType := sHTTP_BINARY_CONTENT_TYPE
|
||||
else
|
||||
AResponseInfo.ContentType := ARequestInfo.ContentType;
|
||||
buffStream.Position := 0;
|
||||
if ( buffStream.Size > 0 ) then begin
|
||||
SetLength(AResponseInfo.ContentText,buffStream.Size);
|
||||
buffStream.Read(AResponseInfo.ContentText[1],Length(AResponseInfo.ContentText));
|
||||
end else begin
|
||||
AResponseInfo.ContentText := '';
|
||||
end;
|
||||
finally
|
||||
buffStream.Free();
|
||||
end;
|
||||
|
||||
Result := True;
|
||||
except
|
||||
on e : Exception do begin
|
||||
Result := False;
|
||||
ap_log_rerror(PCHAR('wst_apache_binding'),392,APLOG_ERR,0,Prequest_rec(ARequestInfo.InnerRequest),PCHAR(e.Message),[]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function wst_RequestHandler(r: Prequest_rec): Integer;
|
||||
|
||||
function FillRequestInfo(var ARequestInfo : TRequestInfo):Integer;
|
||||
begin
|
||||
ARequestInfo.InnerRequest := r;
|
||||
ARequestInfo.ContentType := apr_table_get(r^.headers_in,sCONTENT_TYPE);
|
||||
ARequestInfo.Root := ap_get_server_name(r) + sSEPARATOR + sWST_ROOT + sSEPARATOR;
|
||||
ARequestInfo.URI := r^.uri;
|
||||
ARequestInfo.Argument := r^.args;
|
||||
ARequestInfo.Arguments := r^.args;
|
||||
ARequestInfo.ArgList := ParseArgs(r^.pool,ARequestInfo.Arguments);
|
||||
Result := ReadBuffer(r,ARequestInfo.Buffer);
|
||||
end;
|
||||
|
||||
@@ -279,8 +485,14 @@ begin
|
||||
|
||||
try
|
||||
if AnsiSameText(sSERVICES_PREFIXE,ExtractNextPathElement(loc_RequestInfo.URI)) then begin
|
||||
|
||||
{$IFDEF WST_BROKER}
|
||||
if not ProcessServiceRequestLibrary(loc_RequestInfo,loc_ResponseInfo) then
|
||||
ProcessWSDLRequest(loc_RequestInfo,loc_ResponseInfo);
|
||||
{$ELSE}
|
||||
if not ProcessServiceRequest(loc_RequestInfo,loc_ResponseInfo) then
|
||||
ProcessWSDLRequest(loc_RequestInfo,loc_ResponseInfo);
|
||||
{$ENDIF}
|
||||
end else begin
|
||||
ProcessWSDLRequest(loc_RequestInfo,loc_ResponseInfo);
|
||||
end;
|
||||
@@ -294,7 +506,6 @@ begin
|
||||
ap_rputs(PCHAR(loc_ResponseInfo.ContentText), r);
|
||||
end;
|
||||
Result := OK;
|
||||
Exit;
|
||||
except
|
||||
on e : Exception do begin
|
||||
ap_set_content_type(r, 'text/html');
|
||||
@@ -307,14 +518,6 @@ begin
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterStdTypes();
|
||||
Server_service_RegisterBinaryFormat();
|
||||
Server_service_RegisterSoapFormat();
|
||||
|
||||
RegisterUserServiceImplementationFactory();
|
||||
Server_service_RegisterUserServiceService();
|
||||
|
||||
RegisterWSTMetadataServiceImplementationFactory();
|
||||
Server_service_RegisterWSTMetadataServiceService();
|
||||
|
||||
wst_initialize();
|
||||
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user