Index: openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl,v
diff -u -r1.19 -r1.20
--- openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl 10 Sep 2003 14:52:01 -0000 1.19
+++ openacs-4/packages/acs-service-contract/tcl/acs-service-contract-procs.tcl 11 Dec 2003 21:39:55 -0000 1.20
@@ -77,7 +77,7 @@
@author Neophytos Demetriou
} {
- return [db_string binding_exists_p {select acs_sc_binding__exists_p(:contract,:impl)}]
+ return [db_string binding_exists_p {*SQL*}]
}
@@ -107,18 +107,12 @@
} {
# LARS
set exists_p [acs_sc_binding_exists_p $contract $impl]
-
+
#set exists_p [util_memoize "acs_sc_binding_exists_p $contract $impl"]
-
+
if ![set exists_p] {return ""}
- db_0or1row get_alias {
- select impl_alias, impl_pl
- from acs_sc_impl_aliases
- where impl_contract_name = :contract
- and impl_operation_name = :operation
- and impl_name = :impl
- }
+ db_0or1row get_alias {*SQL*}
return [list $impl_alias $impl_pl]
@@ -151,50 +145,22 @@
error "ACS-SC: Cannot find alias for $proc_name"
}
- if {![db_0or1row get_operation_definition {
- select
- operation_desc,
- operation_iscachable_p,
- operation_nargs,
- operation_inputtype_id,
- operation_outputtype_id
- from acs_sc_operations
- where contract_name = :contract
- and operation_name = :operation
- }]} {
+ if {![db_0or1row get_operation_definition {*SQL*}]} {
ns_log warning "ACS-SC: operation definition not found for contract $contract operation $operation"
return 0
}
append docblock "\nacs-service-contract operation. Call via acs_sc_call.\n\n$operation_desc\n\n"
- db_foreach operation_inputtype_element {
- select
- element_name,
- acs_sc_msg_type__get_name(element_msg_type_id) as element_msg_type_name,
- element_msg_type_isset_p,
- element_pos
- from acs_sc_msg_type_elements
- where msg_type_id = :operation_inputtype_id
- order by element_pos asc
- } {
+ db_foreach operation_inputtype_element {*SQL*} {
lappend arguments "$element_name"
append docblock "\n@param $element_name $element_msg_type_name"
if { $element_msg_type_isset_p } {
append docblock " \[\]"
}
}
- db_foreach operation_outputtype_element {
- select
- element_name,
- acs_sc_msg_type__get_name(element_msg_type_id) as element_msg_type_name,
- element_msg_type_isset_p,
- element_pos
- from acs_sc_msg_type_elements
- where msg_type_id = :operation_outputtype_id
- order by element_pos asc
- } {
+ db_foreach operation_outputtype_element {*SQL*} {
append docblock "\n@return $element_name - $element_msg_type_name"
if { $element_msg_type_isset_p } {
append docblock " \[\]"
@@ -270,6 +236,8 @@
{arguments ""}
{impl ""}
} {
+ Additional documentation and commentary at http://openacs.org/forums/message-view?message_id=108614.
+
@param contract the contract name
@param operation the method to invoke
@param arguments list of arguments to pass to the method