def __out_declaration(self,stream): # build up the constructor argument list, the initialisation # list and the data members list if self.__exceptions: user_exceptions_decl = \ "void userException(cdrStream&, _OMNI_NS(IOP_C)*, const char*);" else: user_exceptions_decl = "" in_arguments_decl = "" out_arguments_decl = "" if self.__has_in_args or self.__contexts: in_arguments_decl = "void marshalArguments(cdrStream&);\n" + \ "void unmarshalArguments(cdrStream&);\n" if self.__has_out_args or self.__has_return_value: out_arguments_decl = \ "void unmarshalReturnedValues(cdrStream&);\n" + \ "void marshalReturnedValues(cdrStream&);\n" data_members = [] containsValues = 0 for n, argument in enumerate(self.__arguments): ptype = argument.paramType() if idltype.containsValueType(ptype): if (isinstance(ptype, idltype.Declared) and ptype.scopedName() == ["Messaging", "ExceptionHolder"]): # We don't declare that Messaging::ExceptionHolder # is a valuetype, to prevent unnecessary # marshalling of it in _excep callbacks. pass else: containsValues = 1 holder_n = "arg_" + str(n) argtype = types.Type(argument.paramType()) ((h_is_const,h_is_ptr),\ (s_is_holder,s_is_var)) = _arg_info(argtype,argument.direction()) if s_is_var: storage = argtype._var() else: storage = argtype.base() storage_n = holder_n if not s_is_holder: storage_n = storage_n + "_" data_members.append(storage + " " + storage_n + ";") if not s_is_holder: holder = argtype.base() if h_is_const: holder = "const " + holder if argtype.array(): holder = holder + "_slice*" if h_is_ptr: holder = holder + "*" if argtype.value() or argtype.valuebox(): holder = holder + "*" data_members.append(holder + " " + holder_n + ";") if self.__has_return_value: containsValues = (containsValues or idltype.containsValueType(self.__returntype)) returntype = types.Type(self.__returntype) ((h_is_const,h_is_ptr),\ (s_is_holder,s_is_var)) = _arg_info(returntype,3) holder_n = "result" if s_is_var: storage = returntype._var() else: storage = returntype.base() storage_n = holder_n if not s_is_holder: storage_n = storage_n + "_" data_members.append(storage + " " + storage_n + ";") if self.__contexts: data_members.append("::CORBA::Context_var ctxt;"); if containsValues: contains_values = "containsValues(1);" else: contains_values = "" # Write the proxy class definition if self.__ami: tmpl = template.interface_proxy_class_ami else: tmpl = template.interface_proxy_class stream.out(tmpl, signature = self.__signature, call_descriptor = self.__name, oneway = self.__oneway, exn_len = len(self.__exceptions), contains_values = contains_values, in_arguments_decl = in_arguments_decl, out_arguments_decl = out_arguments_decl, user_exceptions_decl = user_exceptions_decl, member_data = "\n".join(data_members))
def __out_declaration(self,stream): # build up the constructor argument list, the initialisation # list and the data members list ctor_args = ["LocalCallFn lcfn", "const char* op_", "size_t oplen", "_CORBA_Boolean upcall=0" ] base_ctor = ("omniCallDescriptor(lcfn, op_, oplen, %s, _user_exns, " "%d, upcall)" % (self.__oneway, len(self.__exceptions))) if self.__exceptions: user_exceptions_decl = \ "void userException(cdrStream&,_OMNI_NS(IOP_C)*,const char*);" else: user_exceptions_decl = "" in_arguments_decl = "" out_arguments_decl = "" if self.__has_in_args or self.__contexts: in_arguments_decl = "void marshalArguments(cdrStream&);\n" + \ "void unmarshalArguments(cdrStream&);\n" if self.__has_out_args or self.__has_return_value: out_arguments_decl = \ "void unmarshalReturnedValues(cdrStream&);\n" + \ "void marshalReturnedValues(cdrStream&);\n" data_members = [] n = -1 containsValues = 0 for argument in self.__arguments: containsValues = (containsValues or idltype.containsValueType(argument.paramType())) n = n + 1 holder_n = "arg_" + str(n) argtype = types.Type(argument.paramType()) ((h_is_const,h_is_ptr),\ (s_is_holder,s_is_var)) = _arg_info(argtype,argument.direction()) if s_is_var: storage = argtype._var() else: storage = argtype.base() storage_n = holder_n if not s_is_holder: storage_n = storage_n + "_" data_members.append(storage + " " + storage_n + ";") if not s_is_holder: holder = argtype.base() if h_is_const: holder = "const " + holder if argtype.array(): holder = holder + "_slice*" if h_is_ptr: holder = holder + "*" if argtype.value() or argtype.valuebox(): holder = holder + "*" data_members.append(holder + " " + holder_n + ";") if self.__has_return_value: containsValues = (containsValues or idltype.containsValueType(self.__returntype)) returntype = types.Type(self.__returntype) ((h_is_const,h_is_ptr),\ (s_is_holder,s_is_var)) = _arg_info(returntype,3) holder_n = "result" if s_is_var: storage = returntype._var() else: storage = returntype.base() storage_n = holder_n if not s_is_holder: storage_n = storage_n + "_" data_members.append(storage + " " + storage_n + ";") if self.__contexts: data_members.append("::CORBA::Context_var ctxt;"); if containsValues: contains_values = "containsValues(1);" else: contains_values = "" # Write the proxy class definition stream.out(template.interface_proxy_class, signature = self.__signature, call_descriptor = self.__name, ctor_args = string.join(ctor_args,","), base_ctor = base_ctor, contains_values = contains_values, in_arguments_decl = in_arguments_decl, out_arguments_decl = out_arguments_decl, user_exceptions_decl = user_exceptions_decl, member_data = string.join(data_members,"\n"))
def __out_declaration(self, stream): # build up the constructor argument list, the initialisation # list and the data members list if self.__exceptions: user_exceptions_decl = \ "void userException(cdrStream&, _OMNI_NS(IOP_C)*, const char*);" else: user_exceptions_decl = "" in_arguments_decl = "" out_arguments_decl = "" if self.__has_in_args or self.__contexts: in_arguments_decl = "void marshalArguments(cdrStream&);\n" + \ "void unmarshalArguments(cdrStream&);\n" if self.__has_out_args or self.__has_return_value: out_arguments_decl = \ "void unmarshalReturnedValues(cdrStream&);\n" + \ "void marshalReturnedValues(cdrStream&);\n" data_members = [] containsValues = 0 for n, argument in enumerate(self.__arguments): ptype = argument.paramType() if idltype.containsValueType(ptype): if (isinstance(ptype, idltype.Declared) and ptype.scopedName() == ["Messaging", "ExceptionHolder"]): # We don't declare that Messaging::ExceptionHolder # is a valuetype, to prevent unnecessary # marshalling of it in _excep callbacks. pass else: containsValues = 1 holder_n = "arg_" + str(n) argtype = types.Type(argument.paramType()) ((h_is_const,h_is_ptr),\ (s_is_holder,s_is_var)) = _arg_info(argtype,argument.direction()) if s_is_var: storage = argtype._var() else: storage = argtype.base() storage_n = holder_n if not s_is_holder: storage_n = storage_n + "_" data_members.append(storage + " " + storage_n + ";") if not s_is_holder: holder = argtype.base() if h_is_const: holder = "const " + holder if argtype.array(): holder = holder + "_slice*" if h_is_ptr: holder = holder + "*" if argtype.value() or argtype.valuebox(): holder = holder + "*" data_members.append(holder + " " + holder_n + ";") if self.__has_return_value: containsValues = (containsValues or idltype.containsValueType(self.__returntype)) returntype = types.Type(self.__returntype) ((h_is_const,h_is_ptr),\ (s_is_holder,s_is_var)) = _arg_info(returntype,3) holder_n = "result" if s_is_var: storage = returntype._var() else: storage = returntype.base() storage_n = holder_n if not s_is_holder: storage_n = storage_n + "_" data_members.append(storage + " " + storage_n + ";") if self.__contexts: data_members.append("::CORBA::Context_var ctxt;") if containsValues: contains_values = "containsValues(1);" else: contains_values = "" # Write the proxy class definition if self.__ami: tmpl = template.interface_proxy_class_ami else: tmpl = template.interface_proxy_class stream.out(tmpl, signature=self.__signature, call_descriptor=self.__name, oneway=self.__oneway, exn_len=len(self.__exceptions), contains_values=contains_values, in_arguments_decl=in_arguments_decl, out_arguments_decl=out_arguments_decl, user_exceptions_decl=user_exceptions_decl, member_data="\n".join(data_members))
def __out_declaration(self, stream): # build up the constructor argument list, the initialisation # list and the data members list ctor_args = [ "LocalCallFn lcfn", "const char* op_", "size_t oplen", "_CORBA_Boolean upcall=0" ] base_ctor = ("omniCallDescriptor(lcfn, op_, oplen, %s, _user_exns, " "%d, upcall)" % (self.__oneway, len(self.__exceptions))) if self.__exceptions: user_exceptions_decl = \ "void userException(cdrStream&,_OMNI_NS(IOP_C)*,const char*);" else: user_exceptions_decl = "" in_arguments_decl = "" out_arguments_decl = "" if self.__has_in_args or self.__contexts: in_arguments_decl = "void marshalArguments(cdrStream&);\n" + \ "void unmarshalArguments(cdrStream&);\n" if self.__has_out_args or self.__has_return_value: out_arguments_decl = \ "void unmarshalReturnedValues(cdrStream&);\n" + \ "void marshalReturnedValues(cdrStream&);\n" data_members = [] n = -1 containsValues = 0 for argument in self.__arguments: containsValues = (containsValues or idltype.containsValueType( argument.paramType())) n = n + 1 holder_n = "arg_" + str(n) argtype = types.Type(argument.paramType()) ((h_is_const,h_is_ptr),\ (s_is_holder,s_is_var)) = _arg_info(argtype,argument.direction()) if s_is_var: storage = argtype._var() else: storage = argtype.base() storage_n = holder_n if not s_is_holder: storage_n = storage_n + "_" data_members.append(storage + " " + storage_n + ";") if not s_is_holder: holder = argtype.base() if h_is_const: holder = "const " + holder if argtype.array(): holder = holder + "_slice*" if h_is_ptr: holder = holder + "*" if argtype.value() or argtype.valuebox(): holder = holder + "*" data_members.append(holder + " " + holder_n + ";") if self.__has_return_value: containsValues = (containsValues or idltype.containsValueType(self.__returntype)) returntype = types.Type(self.__returntype) ((h_is_const,h_is_ptr),\ (s_is_holder,s_is_var)) = _arg_info(returntype,3) holder_n = "result" if s_is_var: storage = returntype._var() else: storage = returntype.base() storage_n = holder_n if not s_is_holder: storage_n = storage_n + "_" data_members.append(storage + " " + storage_n + ";") if self.__contexts: data_members.append("::CORBA::Context_var ctxt;") if containsValues: contains_values = "containsValues(1);" else: contains_values = "" # Write the proxy class definition stream.out(template.interface_proxy_class, signature=self.__signature, call_descriptor=self.__name, ctor_args=string.join(ctor_args, ","), base_ctor=base_ctor, contains_values=contains_values, in_arguments_decl=in_arguments_decl, out_arguments_decl=out_arguments_decl, user_exceptions_decl=user_exceptions_decl, member_data=string.join(data_members, "\n"))