diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-09-21 18:31:14 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-09-21 18:31:14 +0000 |
commit | 368bc6e9b09a9bb5c36b39257dbf6f291b6d9182 (patch) | |
tree | f46209e332818b92dcf95a451813546026d2d27e /TAO/CIAO/docs | |
parent | edd17588a711cb87256a23cb09c2f8e707f85a43 (diff) | |
download | ATCD-368bc6e9b09a9bb5c36b39257dbf6f291b6d9182.tar.gz |
ChangeLogTag: Tue Sep 21 13:28:40 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/CIAO/docs')
-rw-r--r-- | TAO/CIAO/docs/value_factory_registration.html | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/TAO/CIAO/docs/value_factory_registration.html b/TAO/CIAO/docs/value_factory_registration.html new file mode 100644 index 00000000000..3c2a45d6815 --- /dev/null +++ b/TAO/CIAO/docs/value_factory_registration.html @@ -0,0 +1,49 @@ +<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="Author" content="Jeff Parsons"> + <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]"> + <title>Registration of Valuetype Factories for Event Sinks</title> + <!-- $Id$ --> + </head> + <body> + <h3>Registration of Valuetype Factories for Event Sinks</h3> + <p>Components with one or more event sink (consumer) ports will need to have a + valuetype factory registered with the underlying ORB in order to correctly + demarshal the state of eventtypes it receives over the wire.</p> + <p>For the common case (eventtypes that contain only one or more state members), + the IDL compiler generates a concrete class with a name constructed from the + valuetype name and an '_init' suffix, and the CIDL compiler generates a macro + in the servant constructor that registers this factory with the container's + ORB. However, an eventtype, like any valuetype, may also contain operation + and/or factory declarations. In these cases things are not so simple. For + example a factory declaration in an IDL valuetype or eventtype will generate a + pure virtual function of the same name in the associated _init class, meaning + that ORB factory registration for this type must be with a derived factory + class written by the application developer. The table below shows all possible + cases of IDL compiler factory generation.</p> + <TABLE BORDER="4" CELLSPACING="4" CELLPADDING="4" ID="Table1"> + <TR> + <TD></TD> + <TD><b>Has Operation</b></TD> + <TD><b>Has No Operation</b></TD> + </TR> + <tr> + <td><b>Has Factory</b></td> + <td>ABSTRACT FACTORY</td> + <td>ABSTRACT FACTORY</td> + </tr> + <tr> + <td><b>Has No Factory</b></td> + <td>NO FACTORY</td> + <td>CONCRETE FACTORY</td> + </tr> + </TABLE> + <p>The CIAO CIDL compiler will generate a macro to register the factory with the + container's ORB only in the case where a concrete factory is generated by the + IDL compiler, and thus no subclassing is necessary. There is also a command + line option for the CIDL compiler, <tt>--suppress-register-factory</tt>, + that turns off generation of the macro in all cases.</p> + </body> +</html> |