1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-15 05:57:49 +03:00

r26110: Create separate function for connecting, add helper for creating result typemaps.

This commit is contained in:
Jelmer Vernooij 2007-11-25 04:53:54 +01:00 committed by Stefan Metzmacher
parent 3e04846b3f
commit 9b5b77c399

View File

@ -36,6 +36,22 @@ sub IgnoreInterface($$)
} }
} }
sub GenerateResultTypemap($)
{
my $name = shift;
pidl "%typemap(in,numinputs=0) $name*result ($name tmp) {";
indent;
pidl "\$1 = &tmp;";
deindent;
pidl "}";
pidl "";
pidl "%typemap(argout) $name*result {";
indent;
pidl "\$result = SWIG_NewPointerObj(*\$1, \$1_descriptor, 0);";
deindent;
pidl "}";
}
sub ParseInterface($$) sub ParseInterface($$)
{ {
my ($basename,$if) = @_; my ($basename,$if) = @_;
@ -46,12 +62,16 @@ sub ParseInterface($$)
pidl ""; pidl "";
pidl "\%extend $if->{NAME} {"; pidl "\%extend $if->{NAME} {";
indent(); indent();
pidl "NTSTATUS $if->{NAME} (const char *binding, struct cli_credentials *cred, TALLOC_CTX *mem_ctx, struct event_context *event, struct $if->{NAME} **result)"; pidl "$if->{NAME} () {";
indent;
pidl "return talloc(NULL, struct $if->{NAME});";
deindent;
pidl "}";
pidl "";
pidl "NTSTATUS connect (const char *binding, struct cli_credentials *cred, struct event_context *event)";
pidl "{"; pidl "{";
indent; indent;
pidl "*result = talloc(mem_ctx, struct $if->{NAME});"; pidl "return dcerpc_pipe_connect(\$self, &\$self->pipe, binding, &ndr_table_$if->{NAME}, cred, event);";
pidl "";
pidl "return dcerpc_pipe_connect(mem_ctx, &(*result)->pipe, binding, &ndr_table_$if->{NAME}, cred, event);";
deindent; deindent;
pidl "}"; pidl "}";
pidl ""; pidl "";
@ -85,7 +105,7 @@ sub ParseInterface($$)
} }
pidl ""; pidl "";
pidl "status = dcerpc_$fn->{NAME}(self->pipe, mem_ctx, &r);"; pidl "status = dcerpc_$fn->{NAME}(\$self->pipe, mem_ctx, &r);";
pidl "if (NT_STATUS_IS_ERR(status)) {"; pidl "if (NT_STATUS_IS_ERR(status)) {";
pidl "\treturn status;"; pidl "\treturn status;";
pidl "}"; pidl "}";