svn commit: samba r8925 - in branches/SAMBA_4_0/source/script: .

tpot at samba.org tpot at samba.org
Tue Aug 2 17:02:26 GMT 2005


Author: tpot
Date: 2005-08-02 17:02:25 +0000 (Tue, 02 Aug 2005)
New Revision: 8925

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8925

Log:
Start generating header and implementation files for smb_interfaces.h

Modified:
   branches/SAMBA_4_0/source/script/build_smb_interfaces.pl


Changeset:
Modified: branches/SAMBA_4_0/source/script/build_smb_interfaces.pl
===================================================================
--- branches/SAMBA_4_0/source/script/build_smb_interfaces.pl	2005-08-02 17:02:01 UTC (rev 8924)
+++ branches/SAMBA_4_0/source/script/build_smb_interfaces.pl	2005-08-02 17:02:25 UTC (rev 8925)
@@ -1,10 +1,54 @@
 #!/usr/bin/perl
+#
+# Create ejs interfaces for structures in a C header file
+#
 
-my $idl_file = shift;
+use File::Basename;
+my $file = shift;
+my $basename = basename($file, ".h");
 
 require smb_interfaces;
-my $idl_parser = new smb_interfaces;
-$parse = $idl_parser->parse($idl_file);
+my $parser = new smb_interfaces;
+$header = $parser->parse($file);
 
-use Data::Dumper;
-print Dumper($parse);
+#use Data::Dumper;
+#print Dumper($header);
+
+# Create header
+
+open(FILE, ">ejs_${basename}.h");
+
+print FILE "/* header auto-generated by build_smb_interfaces.pl */\n\n";
+
+print FILE "#ifndef _ejs_${basename}_h\n";
+print FILE "#define _ejs_${basename}_h\n\n";
+
+foreach my $x (@{$header}) {
+    print FILE "NTSTATUS ejs_push_$x->{NAME}(struct ejs_rpc *, struct MprVar *, const char *, const uint32_t *);\n";
+    print FILE "NTSTATUS ejs_pull_$x->{NAME}(struct ejs_rpc *, struct MprVar *, const char *, const uint32_t *);\n";
+}
+
+print FILE "#endif\n";
+
+close(FILE);
+
+# Create file
+
+open(FILE, ">ejs_${basename}.c");
+
+print FILE "/* EJS wrapper functions auto-generated by build_smb_interfaces.pl */\n\n";
+
+# Top level functions
+
+foreach my $x (@{$header}) {
+    print FILE "NTSTATUS ejs_push_$x->{NAME}(struct ejs_rpc *, struct MprVar *, const char *, const uint32_t *)\n";
+    print FILEq "{\n";
+    print FILE "\treturn NT_STATUS_OK;\n";
+    print FILE "}\n\n";
+    print FILE "NTSTATUS ejs_pull_$x->{NAME}(struct ejs_rpc *, struct MprVar *, const char *, const uint32_t *)\n";
+    print FILE "{\n";
+    print FILE "\treturn NT_STATUS_OK;\n";
+    print FILE "}\n\n";
+}
+
+close(FILE);



More information about the samba-cvs mailing list