summaryrefslogtreecommitdiff
path: root/source4/build/pidl/README
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-02-21 14:30:49 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:10:50 -0500
commit80d3047333fceb3805ccd10a08cdf95021f57ff4 (patch)
tree16ccb10ace9efe6b52d80e8bfd3f0fd483762f23 /source4/build/pidl/README
parent6b4cac2c00bd77c34bfe47f35729a60782b8c9c2 (diff)
downloadsamba-80d3047333fceb3805ccd10a08cdf95021f57ff4.tar.gz
samba-80d3047333fceb3805ccd10a08cdf95021f57ff4.tar.bz2
samba-80d3047333fceb3805ccd10a08cdf95021f57ff4.zip
r5490: The big (D)COM commit! :-) Contains most of the changes described in the
DCOM paper in lorikeet. This is the result of 1.5 months work (mainly figuring out how things *really* work) at the end of 2004. In general: - Clearer distinction between COM and DCOM. DCOM is now merely the glue between DCE/RPC+ORPC and COM. COM can also work without DCOM now. This makes the code a lot clearer. - Clearer distinction between NDR and DCOM. Before, NDR had a couple of "if"s to cope with DCOM, which are now gone. - Use "real" arguments rather then structures for function arguments in COM, mainly because most of these calls are local so packing/unpacking data for every call is too much overhead (both speed- and code-wise) - Support several mechanisms to load class objects: - from memory (e.g. part of the current executable, registered at start-up) - from shared object files - remotely - Most things are now also named COM rather then DCOM because that's what it really is. After an object is created, it no longer matters whether it was created locally or remotely. There is a very simple example class that contains both a class factory and a class that implements the IStream interface. It can be tested (locally only, remotely is broken at the moment) by running the COM-SIMPLE smbtorture test. Still to-do: - Autogenerate parts of the class implementation code (using the coclass definitions in IDL) - Test server-side - Implement some of the common classes, add definitions for common interfaces. (This used to be commit 71fd3e5c3aac5f0002001ab29d2248e6c6842d6f)
Diffstat (limited to 'source4/build/pidl/README')
-rw-r--r--source4/build/pidl/README24
1 files changed, 18 insertions, 6 deletions
diff --git a/source4/build/pidl/README b/source4/build/pidl/README
index c6432a8c0e..4b675ce210 100644
--- a/source4/build/pidl/README
+++ b/source4/build/pidl/README
@@ -13,20 +13,32 @@ After a parse tree is present, pidl will call one of it's backends
(which one depends on the options given on the command-line). Here is
a list of current backends:
-client.pm - Generates client call functions in C
+-- Generic --
dump.pm - Converts the parse tree back to an IDL file
-eparser.pm - Generates a parser for the ethereal network sniffer
+validator.pm - Validates the parse tree
+
+-- DCE/RPC+NDR --
+client.pm - Generates client call functions in C
+eparser.pm - Generates a parser for the ethereal network sniffer by
+ applying regexes to the output of parser.pm
+swig.pm - Generates SWIG interface files (.i)
header.pm - Generates a header file with structures
parser.pm - Generates pull/push functions for parsing
server.pm - Generates server side implementation in C
template.pm - Generates stubs in C for server implementation
-validator.pm - Validates the parse tree
-proxy.pm - Generates proxy object for DCOM (client-side)
-stub.pm - Generates stub call handler for DCOM (server-side)
-Other files in this directory are:
+-- COM / DCOM --
+odl.pm - Generates IDL structures from ODL structures for use in
+ the NDR parser generator
+dcom_proxy.pm - Generates proxy object for DCOM (client-side)
+dcom_stub.pm - Generates stub call handler for DCOM (server-side)
+com_header.pm - Generates header file for COM interface(s)
+
+-- Utility modules --
tables.pl - Generates a table of available interfaces from a list of IDL files
util.pm - Misc utility functions used by *.pm and pidl.pl
+typelist.pm - Utility functions for keeping track of known types and their
+ representation in C
Tips for hacking on pidl:
- Look at the pidl's parse tree by using the --keep option and looking