def produce_signature(returnType, parameters, raises, oneway, ami): returnType = types.Type(returnType) d_returnType = returnType.deref() # return type if d_returnType.void(): sig = "void" else: sig = canonTypeName(returnType, useScopedName = 1) if oneway: # Can only validly happen with void return, but you never know # what the future may hold. sig = ONEWAY_SEPARATOR + sig # parameter list for param in parameters: if param.is_in() and param.is_out(): sig = sig + INOUT_SEPARATOR elif param.is_in(): sig = sig + IN_SEPARATOR elif param.is_out(): sig = sig + OUT_SEPARATOR sig = sig + canonTypeName(types.Type(param.paramType()), useScopedName = 1) # exception list raises = skutil.sort_exceptions(raises) def exception_signature(exception): cname = CANNON_NAME_SEPARATOR +\ id.Name(exception.scopedName()).guard() return EXCEPTION_SEPARATOR + cname raises_sigs = map(exception_signature, raises) raises_str = "".join(raises_sigs) sig = sig + raises_str if ami: sig = sig + ASYNC_TAG return sig
def produce_signature(returnType, parameters, raises, oneway, ami): returnType = types.Type(returnType) d_returnType = returnType.deref() # return type if d_returnType.void(): sig = "void" else: sig = canonTypeName(returnType, useScopedName=1) if oneway: # Can only validly happen with void return, but you never know # what the future may hold. sig = ONEWAY_SEPARATOR + sig # parameter list for param in parameters: if param.is_in() and param.is_out(): sig = sig + INOUT_SEPARATOR elif param.is_in(): sig = sig + IN_SEPARATOR elif param.is_out(): sig = sig + OUT_SEPARATOR sig = sig + canonTypeName(types.Type(param.paramType()), useScopedName=1) # exception list raises = skutil.sort_exceptions(raises) def exception_signature(exception): cname = CANNON_NAME_SEPARATOR +\ id.Name(exception.scopedName()).guard() return EXCEPTION_SEPARATOR + cname raises_sigs = list(map(exception_signature, raises)) raises_str = "".join(raises_sigs) sig = sig + raises_str if ami: sig = sig + ASYNC_TAG return sig
def __out_userException(self, stream): if self.__exceptions != []: block = output.StringStream() exceptions = skutil.sort_exceptions(self.__exceptions) repoIDs = [] for exception in exceptions: scopedName = exception.scopedName() repoID = scopedName + ["_PD_repoId"] repoID_str = id.Name(repoID).fullyQualify() repoIDs.append(repoID_str) exname = id.Name(scopedName).fullyQualify() block.out(template.interface_proxy_exn_handle, repoID_str = repoID_str, exname = exname) # write the user exception template stream.out(template.interface_proxy_exn, call_descriptor = self.__name, exception_block = str(block), exception_namelist = string.join(repoIDs,",\n"))
def __out_userException(self, stream): if self.__exceptions: block = output.StringStream() exceptions = skutil.sort_exceptions(self.__exceptions) repoIDs = [] for exception in exceptions: scopedName = exception.scopedName() repoID = scopedName + ["_PD_repoId"] repoID_str = id.Name(repoID).fullyQualify() repoIDs.append(repoID_str) exname = id.Name(scopedName).fullyQualify() block.out(template.interface_proxy_exn_handle, repoID_str = repoID_str, exname = exname) # write the user exception template stream.out(template.interface_proxy_exn, call_descriptor = self.__name, exception_block = str(block), exception_namelist = ",\n".join(repoIDs)) else: stream.out(template.interface_proxy_empty_exn, call_descriptor = self.__name)