f



[tao-users] Notification Service: Call to SupplierAdmin.obtain_notification_push_consumer succeeds in ACE 5.4.7, fails in ACE 5.5

This is a multi-part message in MIME format.

------_=_NextPart_001_01C6D8EE.522E99AC
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

(Code Best viewed as HTML, then Rich Text, then Plain Text - Sorry!)

=20

ACE VERSION: 5.5  TAO VERSION 1.5 (Fails)

ACE VERSION: 5.4.7 TAO VERSION 1.4.7 (Succeeds)

=20

HOST MACHINE and OPERATING SYSTEM:

DELL XPS 700 Pentium D, Windows XP Pro w/ all patches. (Fails)

DELL Optiplex G250 Pentium 4; Windows XP Pro w/ all patches (Succeeds)

=20

COMPILER NAME AND VERSION (AND PATCHLEVEL): (Same on both Succeed and
Fail machines)

Microsoft Visual Studio 2005=20

Version 8.0.50727.42 (RTM.050727-4200)

Microsoft .NET Framework Version 2.0.50727

=20

THE $ACE_ROOT/ace/config.h FILE: (Same on both Succeed and Fail
machines)

#include "ace/config-win32.h"

=20

SYNOPSIS:

=20

On execution, identical call to
omg.org.CosNotifyChannelAdmin.SupplierAdmin.obtain_notification_push_con
sumer(this.clientType, out proxyID) returns successfully from ACE 5.4.7,
but throws: $exception    {"CORBA system exception :
omg.org.CORBA.UNKNOWN, completed: Completed_MayBe minor: 1413546624"}
from ACE 5.5.

=20

DESCRIPTION:

=20

I bought a new computer, and attempted to move a working application
from my old computer.  I installed ACE 5.5 TAO 1.5 on the new machine.
The older installation used ACE 5.4.7 TAO 1.4.7, and had worked
successfully for some time.  Unfortunately, the application now appears
to be broken on the newer version of ACE/TAO.  I have stepped through
the identical code on both machines and have obtained session
transcripts at -ORBDebugLevel 10, which seems to show that the
Notification Service is receiving slightly different inputs from the
same call, for unknown reasons, presumably as a result of differences
between the versions. I don't know how these differences arise, or if
they are significant.

=20

The successful call:

=20

TAO (3232|2992) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104
data bytes, other endian, Type Request[7]

GIOP message - HEXDUMP 116 bytes

47 49 4f 50 01 02 00 00  00 00 00 68 00 00 00 07   GIOP.......h....

03 00 00 00 00 00 00 00  00 00 00 23 14 01 0f 00   ...........#....

4e 55 54 7b ce 09 45 37  05 0f 00 01 00 00 00 01   NUT{..E7........

00 00 00 02 00 00 00 01  00 00 00 03 00 00 00 00   ................

00 00 00 22 6f 62 74 61  69 6e 5f 6e 6f 74 69 66   ..."obtain_notif

69 63 61 74 69 6f 6e 5f  70 75 73 68 5f 63 6f 6e   ication_push_con

73 75 6d 65 72 00 00 00  00 00 00 00 00 00 00 00   sumer...........

00 00 00 01                                        ....

object:e07ae0  created

=20

The failing call:

=20

TAO (2408|1856) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104
data bytes, other endian, Type Request[7]

GIOP message - HEXDUMP 116 bytes

47 49 4f 50 01 02 00 00  00 00 00 68 00 00 00 07   GIOP.......h....

03 00 00 00 00 00 00 00  00 00 00 23 14 01 0f 00   ...........#....

4e 55 54 8e c3 09 45 b2  ba 08 00 01 00 00 00 01   NUT...E.........

00 00 00 06 00 00 00 01  00 00 00 07 00 00 00 00   ................

00 00 00 22 6f 62 74 61  69 6e 5f 6e 6f 74 69 66   ..."obtain_notif

69 63 61 74 69 6f 6e 5f  70 75 73 68 5f 63 6f 6e   ication_push_con

73 75 6d 65 72 00 00 00  00 00 00 00 00 00 00 00   sumer...........

00 00 00 01                                        ....

object:102de80  created

=20

=20

AREA/CLASS/EXAMPLE AFFECTED:

=20

My C# application class that both succeeds and fails is the following:

=20

    /// <summary>

    /// The MiroNotifyPushSupplier class implements the OMG
CosNotifyComm.PushSupplier, StructuredPushSupplier, and
SequencePushSupplier.

    /// The main business of this class is to expose a=20

    /// SendDataToConsumer(object data) method that a containing
application or class can call to call, through the MyProxyPushConsumer
property, the=20

    /// push(object data) method on the consumer.

    /// </summary>

    public class MiroNotifyPushSupplier : MiroNotifyServiceUser,
IMiroNotifyPushSupplier=20

    {

=20

        private omg.org.CosNotification._EventType[] offered;   // Types
of Events being offered

        private omg.org.CosNotification._Property[] qos;        //
Quality of Service Properties

=20

        /// <summary>

        /// The SupplierAdmin object that can be used to manage this
supplier.

        /// </summary>

        public omg.org.CosNotifyChannelAdmin.SupplierAdmin
MySupplierAdmin;

        /// <summary>

        /// The proxy for any of the ANY Consumer objects that are using
this supplier.

        /// </summary>

        public omg.org.CosNotifyChannelAdmin.ProxyPushConsumer
MyProxyPushConsumer;

        /// <summary>

        /// The proxy for any of the Structured Consumer objects that
are using this supplier.

        /// </summary>

        public omg.org.CosNotifyChannelAdmin.StructuredProxyPushConsumer
MyStructuredProxyPushConsumer;

        /// <summary>

        /// The proxy for any of the Sequence Consumer objects that are
using this supplier.

        /// </summary>

        public omg.org.CosNotifyChannelAdmin.SequenceProxyPushConsumer
MySequenceProxyPushConsumer;

=20

        /// <summary>

        /// The default constructor.

        /// </summary>

        /// <param name=3D"host">The named or IP host where the
NameService hosting the NotificationService can be found.</param>

        /// <param name=3D"port">The port on the host where the
NameService hosting the NotificationService can be found.</param>

        /// <param name=3D"namespaceName">The Domain or Namespace branch
on the NameService where the NotificationService can be found (try
netMiro).</param>

        /// <param name=3D"interfaceName">The Interface or Object leaf =
on
the NameService where the NotificationService can be found (try
INotifyChannel).</param>

        /// <param name=3D"proxyType">The type of proxy that this =
supplier
will use: PUSH_ANY, PUSH_SEQUENCE, or PUSH_STRUCTURED.</param>

        /// <param name=3D"opType">The type of Filter Group Operator =
that
this supplier will use: AND_OP or OR_OP.</param>

        /// <param name=3D"offeredEvents">An array of notification =
events
being offered by this supplier.</param>

        /// <param name=3D"qos">The array of properties that define the
Quality of Service for this supplier.</param>

        public MiroNotifyPushSupplier(string host, int port, string
namespaceName, string interfaceName, ProxyType proxyType,
InterFilterGroupOperator opType, _EventType[] offeredEvents, _Property[]
qos)

            : base(host, port, ChannelType.IIOP, namespaceName,
interfaceName, proxyType, opType)

        {

            Debug.WriteLine(String.Format("MiroNotifyPushSupplier
Constructor Called: host=3D{0}, port=3D{1}, domain=3D{2}, =
endpoint=3D{3},
proxyType=3D{0}, opType=3D{1}"

                , host, port, namespaceName, interfaceName,
proxyType.ToString(), opType.ToString()));

            Debug.WriteLine("\nOffering the following events:");

            for (int i =3D 0; i < offeredEvents.Length; i++)

            {

                Debug.WriteLine(String.Format("domain=3D{0}, =
type=3D{1}",
offeredEvents[i].domain_name, offeredEvents[i].type_name));

            }

            Debug.WriteLine("\nOffering the following Quality of Service
properties:");

            for (int i =3D 0; i < qos.Length; i++)

            {

                Debug.WriteLine(String.Format("name=3D{0}, value=3D{1}",
qos[i].name, qos[i].value));

            }

            this.userType =3D
MiroUserType.NotificationServicePushSupplier;

=20

            this.offered =3D offeredEvents;

            this.qos =3D qos;

=20

            try

            {

                // Create and register the callback channel that the
consumer will use to communicate with the supplier.

                SetupCallbackChannel("PushSupplierCallbackChannel",
this.port + 1);

                // Use the eventChannel for suppliers...

                int supplierAdminID;    // dummy to hold out value.

                this.MySupplierAdmin =3D
this.notifyEventChannel.new_for_suppliers(this.opType, out
supplierAdminID);

                int proxyID;    // dummy to hold out value.

                switch (this.clientType)

                {

                    case ClientType.ANY_EVENT:

                        this.MyProxyPushConsumer =3D
(omg.org.CosNotifyChannelAdmin.ProxyPushConsumer)this.MySupplierAdmin.ob
tain_notification_push_consumer(this.clientType, out proxyID);

                        // Next connect this PushConsumer...

=20
this.MyProxyPushConsumer.connect_any_push_supplier(this);

                        break;

                    case ClientType.SEQUENCE_EVENT:

                        this.MySequenceProxyPushConsumer =3D
(omg.org.CosNotifyChannelAdmin.SequenceProxyPushConsumer)this.MySupplier
Admin.obtain_notification_push_consumer(this.clientType, out proxyID);

                        // Next connect this PushConsumer...

=20
this.MySequenceProxyPushConsumer.connect_sequence_push_supplier(this);

                        break;

                    case ClientType.STRUCTURED_EVENT:

                        this.MyStructuredProxyPushConsumer =3D
(omg.org.CosNotifyChannelAdmin.StructuredProxyPushConsumer)this.MySuppli
erAdmin.obtain_notification_push_consumer(this.clientType, out proxyID);

                        // Next connect this PushConsumer...

=20
this.MyStructuredProxyPushConsumer.connect_structured_push_supplier(this
);

                        break;

                    default:

                        throw new Exception("MiroNotifyPushSupplier
Exception: Unknown ClientType " + this.clientType.ToString());

                }

                // Publish this suppliers offering of events...

                _EventType[] removed =3D { new _EventType("", "") };    =
//
empty dummy array.

                this.subscription_change(this.offered, removed);

                // Set this suppliers quality of service...

                //this.MySupplierAdmin.set_qos(this.qos);

                // Now get a reference to the PushConsumer...

=20

                // If we have not thrown an exception then we are
successfully connected...

                Debug.WriteLine(String.Format("PushSupplier is now
connected to the NotificationService at host=3D{0}, port=3D{1}, =
domain=3D{2},
endpoint=3D{3}"

                    , this.host, this.port, this.namespaceName,
this.interfaceName));

                // Now loop in the calling program, handling events,
until we are disconnected...

            }

            catch (Exception ex)

            {

                string message =3D "MiroNotifyPushSupplier Exception: " =
+
ex.Message;

                Debug.WriteLine(message);

                throw new Exception(message, ex);

            }

        }

=20

=20

I also wrote a custom Notification Server startup program, which both
succeeds and fails.

=20

/// @file NetMiroNotifyServer.cpp=20

//

// @author Stephen.Bogner@drdc-rddc.gc.ca

// @date 19 July 2006

//

// The netMiro NetMiroNotifyServer instantiates an OMG Notification
Service on the ACE/TAO NameService. It registers the

// CosNotifyChannelAdmin.EventChannelFactory at TAO/EventChannelFactory,
and it registers the CosNotifyChannelAdmin.EventChannel

// at netMiro/INotifyChannel.

//

// This implementation uses the original TAO Notify_Service.cpp and
Notify_Service.h code files.  The Notify_Service.h file is modified

// to make some protected methods and fields public, so that they can be
used within this main() method.

//=20

// Most of the TAO Notify_Server command line parameters are ignored in
this implementation, in favor of hard coded default values.  One

// exception is the -ORBRunThreads <int threads> parameter, which can be
used to set up a thread pool to be used by the ORB to support the=20

// Notification Service.  If not specified, the default is to use a
single thread in the thread pool.

//

// The NetMiroNotifyServer should be started onto a running NameService
with a normal Corba command line, similiar to the following:

// NetMiroNotifyServer.exe -ORBInitRef
NameService=3Diiop://<host>:<port>/NameService -ORBDebugLevel 4
-ORBRunThreads 1

=20

#include "stdafx.h"

#include "Notify_Service.h"

#include "orbsvcs\CosNamingC.h"

#include "orbsvcs\CosNotificationC.h"

#include "orbsvcs\Notify\Service.h"

#include "tao\ORB_Core.h"

#include "ace\Dynamic_Service.h"

#include "ace\Argv_Type_Converter.h"

#include "ace\streams.h"

#include "ace\Sched_Params.h"

#include "ace\OS_main.h"

=20

int main( int argc, char *argv[] )

{

  try

  {

        cout <<
"***********************************************************************
*************************" << endl;

        cout << "**
NetMiroNotifyServer                                     **" << endl;

        cout <<
"***********************************************************************
*************************" << endl << endl;

        cout << "If used, the following command line parameters will be
ignored in favor of hard coded defaults: " << endl;

        cout << "\t -Factory -Boot -NameSvc -NoNameSvc -IORoutput
-ChannelName -Channel -Notify_TPReactor" << endl << endl;

        cout << "If used, the following command line parameters will
override the hard coded defaults: " << endl;

        cout << "\t -ORBRunThreads [int threads]" << endl << endl;

        cout << "Default Configuration: " << endl;

        cout << "\tUse TAO Naming Service NameService" << endl;

        cout << "\tUse a Thread Pool of 1 Server Thread" << endl;

        cout << "\tRegister CosNotifyChannelAdmin.EventChannelFactory at
TAO/EventChannelFactory" << endl;

        cout << "\tRegister CosNotifyChannelAdmin.EventChannel at
netMiro/INotifyChannel" << endl << endl;

        cout <<
"***********************************************************************
*************************" << endl << endl;

=20

        // Step 1: Construct the Notification Service Driver. =20

        TAO_Notify_Service_Driver driver;

=20

        // Step 2: Initialize the Notification Service Driver.

        cout << "Initializing the TAO Notification Service Driver..." <<
endl << endl;

=20

        // Step 2.1: Parse the command line arguments

        cerr << "\tParsing the command line arguments..." ;

        if(driver.parse_args(argc,argv)!=3D 0)

        {

              cerr << "Failure: Unable to parse the command line
arguments!" << endl;

              throw 0;

        };

        cerr << " Success!" << endl << endl;

       =20

        // Step 2.2: Initialize CORBA Object Request Broker

        cerr << "\tInitializing the ORB..." << endl;=20

      CORBA::ORB_var orb =3D CORBA::ORB_init( argc, argv );   // For
VS2005 complile with "Treat wchar_t as Built-in type" =3D no.

=20

        // Step 2.3: Get reference to Root POA

        CORBA::Object_var obj =3D orb->resolve_initial_references(
"RootPOA" );

        PortableServer::POA_var poa =3D PortableServer::POA::_narrow(
obj.in() );

=20

        // Step 2.4: Activate POA Manager

        PortableServer::POAManager_var mgr =3D poa->the_POAManager();

        mgr->activate();

        cerr << "\t... Success!" << endl << endl;

=20

        // Step 2.5: Obtain a pointer to an instance of an
ACE_Dynamic_Service<TAO_Notify_Service>

        cerr << "\tTrying to obtain an instance of
TAO_Notify_Service...." << endl;

        driver.notify_service_ =3D
ACE_Dynamic_Service<TAO_Notify_Service>::instance(TAO_NOTIFICATION_SERVI
CE_NAME);

        if(driver.notify_service_ =3D=3D 0)   // not found, look
elsewhere...

        {

              driver.notify_service_ =3D
ACE_Dynamic_Service<TAO_Notify_Service>::instance(TAO_NOTIFY_DEF_EMO_FAC
TORY_NAME);

        }

        if(driver.notify_service_ =3D=3D 0)   // still not found, so =
give
up..

        {

              cerr << "Failure! The Service was not found! Check the
conf.file." << endl;

              throw 0;

        }

=20

        // Step 2.6: Assuming we now have it, use the pointer to pass
the orb to the init_service method

        driver.notify_service_->init_service(orb.in());

        cout << "\t... Success!" << endl << endl;

        cout << "...Success! The TAO Notification Service Driver is now
initialized." << endl << endl;

=20

        // Step 3: Setup the thread pool.

        if(driver.nthreads_ > 0)    // we are using a thread pool

        {

              cout << "Attempting to use a thread pool of " <<
driver.nthreads_ << " server threads..." ;

              driver.worker_.orb(orb.in());

              // Task activation flags...

              long flags =3D THR_NEW_LWP | THR_JOINABLE |
orb->orb_core()->orb_params()->thread_creation_flags();

              int priority =3D ACE_Sched_Params::priority_min
(orb->orb_core()->orb_params()->sched_policy(),

=20
orb->orb_core()->orb_params()->scope_policy());

=20
if(driver.worker_.activate(flags,driver.nthreads_,0,priority) !=3D 0)

              {

                    cerr << "Failure: Cannot activate the client
threads!" << endl;

                    throw 0;

              }

              cout << "Success!  The thread pool is now active." << endl
<< endl;

        }

       =20

        // Step 4: Find the Naming Service

        cout << "Finding the Naming Service ... " << endl;

        CORBA::Object_var naming_obj =3D
orb->resolve_initial_references("NameService");

        CosNaming::NamingContext_var root =3D
CosNaming::NamingContext::_narrow(naming_obj.in());

        if(CORBA::is_nil(root.in()))

        {

              cerr << "Failure: Could not narrow NameService to
NamingContext!" << endl;

              throw 0;

        }

        cout << "... Success!" << endl << endl;

=20

        // Step 5: Obtain a reference to the
CosNotifyChannelAdmin.EventChannelFactory.=20

        cout << "Obtaining a reference to the EventChannelFactory ... "
<< endl;

        driver.notify_factory_ =3D
driver.notify_service_->create(poa.in());

        cout << "... Success!" << endl << endl;

=20

        // Step 6: Register the EventChannelFactory on the NameService
at "TAO/EventChannelFactory".

        cout << "Registering the EventChannelFactory on the NameService
...." << endl;

        CosNaming::Name name;

        name.length(1);

        name[0].id =3D CORBA::string_dup("TAO");  // Namespace is really
"omg.org.CosNotifyChannelAdmin", but use this instead.

        try=20

        {

              CORBA::Object_var dummy =3D root->resolve(name);

        }

        catch (CosNaming::NamingContext::NotFound& )=20

        {

              // If the binding for that name does not already exist on
NameService, then create it...

              CosNaming::NamingContext_var dummy =3D
root->bind_new_context(name);

        }

        // ... and use the class name for the second entry.

        name.length(2);

        name[1].id =3D CORBA::string_dup( "EventChannelFactory" );  //
class "omg.org.CosNotifyChannelAdmin.EventChannelFactory"

        // and finally bind the object to the name.

        root->rebind(name,driver.notify_factory_.in());

        cout << "... Success!" << endl << endl;

        cout << "The TAO EventChannelFactory has been registered on the
Naming Service at TAO/EventChannelFactory." << endl;

        cout << "Suppliers and Consumers can now connect to the
CosNotifyChannelAdmin.EventChannelFactory object." << endl << endl;

=20

        // Step 7: Create an CosNotifyChannelAdmin.EventChannel.

        cout << "Creating an CosNotifyChannelAdmin.EventChannel ... " <<
endl;

        CosNotifyChannelAdmin::ChannelID id;

        CosNotification::QoSProperties initial_qos;

        CosNotification::AdminProperties initial_admin;

        CosNotifyChannelAdmin::EventChannel_var eventChannel=3D
driver.notify_factory_->create_channel(initial_qos,initial_admin,id);

        cout << "... Success!" << endl << endl;

=20

        // Step 8: Register the EventChannel on the NameService at
netMiro/INotifyChannel.

        cout << "Registering the EventChannel on the NameService... " <<
endl;

        CosNaming::Name name2;

        name2.length(1);

        name2[0].id =3D CORBA::string_dup("netMiro");   // Namespace is
really "omg.org.CosNotifyChannelAdmin", but use this instead.

        try=20

        {

              CORBA::Object_var dummy =3D root->resolve(name2);

        }

        catch (CosNaming::NamingContext::NotFound& )=20

        {

              // If the binding for that name does not already exist on
NameService, then create it...

              CosNaming::NamingContext_var dummy =3D
root->bind_new_context(name2);

        }

        // ... and to use the IDL-defined Interface (interface or class)
for the second entry.

        name2.length(2);

        name2[1].id =3D CORBA::string_dup( "INotifyChannel" );      //
(interface) class "omg.org.CosNotifyChannelAdmin.EventChannel"

        // and finally bind the object to the name.

        root->rebind(name2,eventChannel.in());

        cout << "... Success!" << endl << endl;

        cout << "The netMiro INotifyChannel interface has been
registered on the Naming Service at netMiro/INotifyChannel." << endl;

        cout << "Suppliers and Consumers can now connect to the
CosNotifyChannelAdmin.EventChannel object on this interface." << endl <<
endl;

     =20

        // Step 9: Accept requests

        orb->run();

=20

        // Step 10: Destroy

        orb->destroy();

  }

  catch( CORBA::Exception& ex )=20

  {

        cerr << "Caught a CORBA exception: " << ex << endl;

        return 1;

  }

  return 0;

}

=20

=20

Debug Log from the Successful version (ACE  5.4.7 TAO 1.4.7):

=20

TAO (3232|1740) - Connection_Handler[1516]::handle_input, handle =3D
1516/1516, retval =3D 0

TAO (3232|1740) - ORB_Core::run, handle_events() returns 1

TAO (3232|1740) - ORB_Core::run, calling handle_events()

TAO (3232|2992) - Connection_Handler[1516]::handle_input, handle =3D
1516/1516

TAO (3232|2992) - Transport[1516]::handle_input

TAO (3232|2992) - Transport[1516]::process_queue_head

TAO (3232|2992) - Transport[1516]::handle_input, read 116 bytes

TAO (3232|2992) - GIOP_Message_State::parse_message_header_i

TAO (3232|2992) - GIOP_Message_State::get_version_info

TAO (3232|2992) - GIOP_Message_State::get_byte_order_info

TAO (3232|1740) - ORB_Core::run, handle_events() returns 0

TAO (3232|1740) - ORB_Core::run, calling handle_events()

TAO (3232|2992) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104
data bytes, other endian, Type Request[7]

GIOP message - HEXDUMP 116 bytes

47 49 4f 50 01 02 00 00  00 00 00 68 00 00 00 07   GIOP.......h....

03 00 00 00 00 00 00 00  00 00 00 23 14 01 0f 00   ...........#....

4e 55 54 7b ce 09 45 37  05 0f 00 01 00 00 00 01   NUT{..E7........

00 00 00 02 00 00 00 01  00 00 00 03 00 00 00 00   ................

00 00 00 22 6f 62 74 61  69 6e 5f 6e 6f 74 69 66   ..."obtain_notif

69 63 61 74 69 6f 6e 5f  70 75 73 68 5f 63 6f 6e   ication_push_con

73 75 6d 65 72 00 00 00  00 00 00 00 00 00 00 00   sumer...........

00 00 00 01                                        ....

object:e07ae0  created

object:e07cf0  created

object:e07ea0  created

object:e07ae0 incr refcount =3D 1

object:da0358 incr refcount =3D 3

object:da0290 incr refcount =3D 3

object:deb070 incr refcount =3D 3

Activating object with id =3D 4 in  POA : 1

object:e07ae0 incr refcount =3D 2

object:e07ae0 incr refcount =3D 3

object:e07ae0  decr refcount =3D 2

TAO (3232|2992) - GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 220
data bytes, my endian, Type Reply[7]

GIOP message - HEXDUMP 232 bytes

47 49 4f 50 01 02 01 01  dc 00 00 00 07 00 00 00   GIOP............

00 00 00 00 00 00 00 00  42 00 00 00 49 44 4c 3a   ........B...IDL:

6f 6d 67 2e 6f 72 67 2f  43 6f 73 4e 6f 74 69 66   omg.org/CosNotif

79 43 68 61 6e 6e 65 6c  41 64 6d 69 6e 2f 53 74   yChannelAdmin/St

72 75 63 74 75 72 65 64  50 72 6f 78 79 50 75 73   ructuredProxyPus

68 43 6f 6e 73 75 6d 65  72 3a 31 2e 30 00 a5 71   hConsumer:1.0..q

01 00 00 00 00 00 00 00  78 00 00 00 01 01 02 00   ........x.......

10 00 00 00 31 33 31 2e  31 33 35 2e 31 33 33 2e   ....131.135.133.

31 30 30 00 dd 04 00 00  23 00 00 00 14 01 0f 00   100.....#.......

4e 55 54 7b ce 09 45 37  05 0f 00 01 00 00 00 01   NUT{..E7........

00 00 00 03 00 00 00 01  00 00 00 04 00 00 00 00   ................

02 00 00 00 00 00 00 00  08 00 00 00 01 00 00 00   ................

00 4f 41 54 01 00 00 00  18 00 00 00 01 00 00 00   .OAT............

01 00 01 00 01 00 00 00  01 00 01 05 09 01 01 00   ................

00 00 00 00 04 00 00 00                            ........

TAO (3232|2992) - Transport[1516]::cleanup_queue, byte_count =3D 232

TAO (3232|2992) - Transport[1516]::cleanup_queue, after transfer, bc =3D
0, all_sent =3D 1, ml =3D 0

TAO (3232|2992) - Transport[1516]::drain_queue_helper, byte_count =3D =
232,
head_is_empty =3D 1

TAO (3232|2992) - Transport[1516]::drain_queue_i, helper retval =3D 1

TAO (3232|2992) - Connection_Handler[1516]::handle_input, handle =3D
1516/1516, retval =3D 0

TAO (3232|2992) - ORB_Core::run, handle_events() returns 1

TAO (3232|2992) - ORB_Core::run, calling handle_events()

=20

=20

Debug Log from the Failing Version (ACE 5.5 TAO 1.5)

=20

TAO (2408|384) - ORB_Core::run, handle_events() returns 1

TAO (2408|384) - ORB_Core::run, calling handle_events()

TAO (2408|1856) - Connection_Handler[1380]::handle_input, handle =3D
1380/1380

TAO (2408|1856) - Transport[1380]::handle_input

TAO (2408|1856) - Transport[1380]::process_queue_head, 0 enqueued

TAO (2408|1856) - Transport[1380]::handle_input_parse_data, enter

TAO (2408|1856) - Transport[1380]::handle_input_parse_data, read 116
bytes

TAO (2408|1856) - GIOP_Message_State::parse_message_header_i

TAO (2408|1856) - GIOP_Message_State::get_version_info

TAO (2408|1856) - GIOP_Message_State::get_byte_order_info

TAO (2408|1856) - Transport[1380]::process_parsed_messages, entering
(missing data =3D=3D 0)

TAO (2408|384) - ORB_Core::run, handle_events() returns 0

TAO (2408|384) - ORB_Core::run, calling handle_events()

TAO (2408|1856) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104
data bytes, other endian, Type Request[7]

GIOP message - HEXDUMP 116 bytes

47 49 4f 50 01 02 00 00  00 00 00 68 00 00 00 07   GIOP.......h....

03 00 00 00 00 00 00 00  00 00 00 23 14 01 0f 00   ...........#....

4e 55 54 8e c3 09 45 b2  ba 08 00 01 00 00 00 01   NUT...E.........

00 00 00 06 00 00 00 01  00 00 00 07 00 00 00 00   ................

00 00 00 22 6f 62 74 61  69 6e 5f 6e 6f 74 69 66   ..."obtain_notif

69 63 61 74 69 6f 6e 5f  70 75 73 68 5f 63 6f 6e   ication_push_con

73 75 6d 65 72 00 00 00  00 00 00 00 00 00 00 00   sumer...........

00 00 00 01                                        ....

object:102de80  created

object:102e0a8  created

object:102e270  created

object:102de80 incr refcount =3D 1

object:f8b458 incr refcount =3D 7

object:f8b818 incr refcount =3D 7

object:1ae00c0 incr refcount =3D 3

object:102de80 decr refcount =3D 0

object:1ae00c0 decr refcount =3D 2

object:102e270  destroyed

object:102e0a8  destroyed

object:102de80  destroyed

object:f8b818 decr refcount =3D 6

object:f8b458 decr refcount =3D 6

TAO (2408|1856) - GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 56
data bytes, my endian, Type Reply[7]

GIOP message - HEXDUMP 68 bytes

47 49 4f 50 01 02 01 01  38 00 00 00 07 00 00 00   GIOP....8.......

02 00 00 00 00 00 00 00  1e 00 00 00 49 44 4c 3a   ............IDL:

6f 6d 67 2e 6f 72 67 2f  43 4f 52 42 41 2f 55 4e   omg.org/CORBA/UN

4b 4e 4f 57 4e 3a 31 2e  30 00 91 7c 80 02 41 54   KNOWN:1.0..|..AT

02 00 00 00                                        ....

TAO (2408|1856) - Transport[1380]::cleanup_queue, byte_count =3D 68

TAO (2408|1856) - Transport[1380]::cleanup_queue, after transfer, bc =3D
0, all_sent =3D 1, ml =3D 0

TAO (2408|1856) - Transport[1380]::drain_queue_helper, byte_count =3D =
68,
head_is_empty =3D 1

TAO (2408|1856) - Transport[1380]::drain_queue_i, helper retval =3D 1

TAO (2408|1856) - Connection_Handler[1380]::handle_input, handle =3D
1380/1380, retval =3D 0

TAO (2408|1856) - ORB_Core::run, handle_events() returns 1

TAO (2408|1856) - ORB_Core::run, calling handle_events()

=20

REPEATABILITY:

The problem repeats successes and failures identically over several
sessions, and over several Rebuilds.

=20

SAMPLE FIX/WORKAROUND:

I have been unable to find a fix.  A workaround might be to revert to
ACE 5.4.7.

=20

=20

=20


------_=_NextPart_001_01C6D8EE.522E99AC
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"country-region"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>(Code Best viewed as HTML, then Rich Text, then Plain Text =
&#8211;
Sorry!)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>ACE VERSION: 5.5&nbsp; TAO VERSION 1.5 =
(Fails)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>ACE VERSION: 5.4.7 TAO VERSION 1.4.7 =
(Succeeds)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>HOST MACHINE and OPERATING SYSTEM:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>DELL XPS 700 Pentium D, Windows XP Pro w/ all patches. =
(Fails)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>DELL Optiplex G250 Pentium 4; Windows XP Pro w/ all patches =
(Succeeds)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>COMPILER NAME AND VERSION (AND PATCHLEVEL): (Same on both =
Succeed and
Fail machines)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>Microsoft Visual Studio 2005 <o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>Version 8.0.50727.42 =
(RTM.050727-4200)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>Microsoft .NET Framework Version =
2.0.50727<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>THE $ACE_ROOT/ace/config.h FILE: (Same on both Succeed and Fail
machines)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>#include =
&quot;ace/config-win32.h&quot;<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>SYNOPSIS:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>On execution, identical call to =
omg.org.CosNotifyChannelAdmin.SupplierAdmin.obtain_notification_push_cons=
umer(this.clientType,
out proxyID) returns successfully from ACE 5.4.7, but throws:
$exception&nbsp;&nbsp;&nbsp; {&quot;CORBA system exception :
omg.org.CORBA.UNKNOWN, completed: Completed_MayBe minor: =
1413546624&quot;} from
ACE 5.5.<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>DESCRIPTION:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>I bought a new computer, and attempted to move a working =
application
from my old computer.&nbsp; I installed ACE 5.5 TAO 1.5 on the new
machine.&nbsp; The older installation used ACE 5.4.7 TAO 1.4.7, and had =
worked
successfully for some time.&nbsp; Unfortunately, the application now =
appears to
be broken on the newer version of ACE/TAO.&nbsp; I have stepped through =
the
identical code on both machines and have obtained session transcripts at
&#8211;ORBDebugLevel 10, which seems to show that the Notification =
Service is
receiving slightly different inputs from the same call, for unknown =
reasons,
presumably as a result of differences between the versions. I =
don&#8217;t know
how these differences arise, or if they are =
significant.<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>The successful call:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104 data bytes, other =
endian,
Type Request[7]<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
HEXDUMP 116
bytes<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
00 00&nbsp;
00 00 00 68 00 00 00 07&nbsp;&nbsp; =
GIOP.......h....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>03 00 00 00 00 00 =
00 00&nbsp;
00 00 00 23 14 01 0f 00&nbsp;&nbsp; =
............#....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 7b ce 09 =
45 37&nbsp;
05 0f 00 01 00 00 00 01&nbsp;&nbsp; NUT<span =
style=3D'background:yellow'>{..E7</span>........<o:p></o:p></span></font>=
</p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 02 00 00 =
00 01&nbsp;
00 00 00 03 00 00 00 00&nbsp;&nbsp; =
.................<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 22 6f 62 =
74 61&nbsp;
69 6e 5f 6e 6f 74 69 66&nbsp;&nbsp; =
....&quot;obtain_notif<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>69 63 61 74 69 6f =
6e 5f&nbsp;
70 75 73 68 5f 63 6f 6e&nbsp;&nbsp; =
ication_push_con<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>73 75 6d 65 72 00 =
00 00&nbsp;
00 00 00 00 00 00 00 00&nbsp;&nbsp; <st1:place =
w:st=3D"on"><st1:country-region
 =
w:st=3D"on">sumer</st1:country-region></st1:place>...........<o:p></o:p><=
/span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00
01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
.....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:e07ae0&nbsp; =
created<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>The failing =
call:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104 data bytes, other =
endian,
Type Request[7]<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
HEXDUMP 116
bytes<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
00 00&nbsp;
00 00 00 68 00 00 00 07&nbsp;&nbsp; =
GIOP.......h....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>03 00 00 00 00 00 =
00 00&nbsp;
00 00 00 23 14 01 0f 00&nbsp;&nbsp; =
............#....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 8e c3 09 =
45 b2&nbsp;
ba 08 00 01 00 00 00 01&nbsp;&nbsp; NUT<span =
style=3D'background:yellow'>...E.</span>........<o:p></o:p></span></font>=
</p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 06 00 00 =
00 01&nbsp;
00 00 00 07 00 00 00 00&nbsp;&nbsp; =
.................<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 22 6f 62 =
74 61&nbsp;
69 6e 5f 6e 6f 74 69 66&nbsp;&nbsp; =
....&quot;obtain_notif<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>69 63 61 74 69 6f =
6e 5f&nbsp;
70 75 73 68 5f 63 6f 6e&nbsp;&nbsp; =
ication_push_con<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>73 75 6d 65 72 00 =
00 00&nbsp;
00 00 00 00 00 00 00 00&nbsp;&nbsp; <st1:place =
w:st=3D"on"><st1:country-region
 =
w:st=3D"on">sumer</st1:country-region></st1:place>...........<o:p></o:p><=
/span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00
01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<o:p></o:p>=
</span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:102de80&nbsp; =
created<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>&nbsp;<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>AREA/CLASS/EXAMPLE AFFECTED:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>My C# application class that both succeeds and fails is the =
following:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
style=3D'color:green'>
</span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
style=3D'color:green'>
The MiroNotifyPushSupplier class implements the OMG =
CosNotifyComm.PushSupplier,
StructuredPushSupplier, and =
SequencePushSupplier.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
style=3D'color:green'>
The main business of this class is to expose a =
<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
style=3D'color:green'>
SendDataToConsumer(object data) method that a containing application or =
class
can call to call, through the MyProxyPushConsumer property, the =
<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
style=3D'color:green'>
push(object data) method on the =
consumer.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
style=3D'color:green'>
</span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
nt></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dblue><span
style=3D'color:blue'>public</span></font> <font color=3Dblue><span
style=3D'color:blue'>class</span></font> <font color=3Dteal><span =
style=3D'color:
teal'>MiroNotifyPushSupplier</span></font> : <font color=3Dteal><span
style=3D'color:teal'>MiroNotifyServiceUser</span></font>, <font =
color=3Dteal><span
style=3D'color:teal'>IMiroNotifyPushSupplier</span></font> =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dblue><span style=3D'color:blue'>private</span></font>
omg.org.CosNotification.<font color=3Dteal><span =
style=3D'color:teal'>_EventType</span></font>[]
offered;&nbsp;&nbsp; <font color=3Dgreen><span style=3D'color:green'>// =
Types of
Events being offered<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dblue><span style=3D'color:blue'>private</span></font>
omg.org.CosNotification.<font color=3Dteal><span =
style=3D'color:teal'>_Property</span></font>[]
qos;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span
style=3D'color:green'>// Quality of Service =
Properties<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> The SupplierAdmin object that can be used to =
manage this
supplier.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
nt></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dblue><span style=3D'color:blue'>public</span></font>
omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
style=3D'color:teal'>SupplierAdmin</span></font>
MySupplierAdmin;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> The proxy for any of the ANY Consumer objects =
that are
using this supplier.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
nt></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dblue><span style=3D'color:blue'>public</span></font>
omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
style=3D'color:teal'>ProxyPushConsumer</span></font>
MyProxyPushConsumer;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> The proxy for any of the Structured Consumer =
objects that
are using this supplier.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
nt></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dblue><span style=3D'color:blue'>public</span></font>
omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
style=3D'color:teal'>StructuredProxyPushConsumer</span></font>
MyStructuredProxyPushConsumer;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> The proxy for any of the Sequence Consumer =
objects that
are using this supplier.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
nt></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dblue><span style=3D'color:blue'>public</span></font>
omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
style=3D'color:teal'>SequenceProxyPushConsumer</span></font>
MySequenceProxyPushConsumer;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> The default =
constructor.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
nt></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;param
name=3D&quot;host&quot;&gt;</span></font><font color=3Dgreen><span
style=3D'color:green'>The named or IP host where the NameService hosting =
the
NotificationService can be found.</span></font><font color=3Dgray><span
style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;param
name=3D&quot;port&quot;&gt;</span></font><font color=3Dgreen><span
style=3D'color:green'>The port on the host where the NameService hosting =
the
NotificationService can be found.</span></font><font color=3Dgray><span
style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;param
name=3D&quot;namespaceName&quot;&gt;</span></font><font =
color=3Dgreen><span
style=3D'color:green'>The Domain or Namespace branch on the NameService =
where the
NotificationService can be found (try netMiro).</span></font><font =
color=3Dgray><span
style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;param
name=3D&quot;interfaceName&quot;&gt;</span></font><font =
color=3Dgreen><span
style=3D'color:green'>The Interface or Object leaf on the NameService =
where the
NotificationService can be found (try =
INotifyChannel).</span></font><font
color=3Dgray><span =
style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;param
name=3D&quot;proxyType&quot;&gt;</span></font><font color=3Dgreen><span
style=3D'color:green'>The type of proxy that this supplier will use: =
PUSH_ANY,
PUSH_SEQUENCE, or PUSH_STRUCTURED.</span></font><font color=3Dgray><span
style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;param
name=3D&quot;opType&quot;&gt;</span></font><font color=3Dgreen><span
style=3D'color:green'>The type of Filter Group Operator that this =
supplier will
use: AND_OP or OR_OP.</span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;param
name=3D&quot;offeredEvents&quot;&gt;</span></font><font =
color=3Dgreen><span
style=3D'color:green'>An array of notification events being offered by =
this
supplier.</span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dgray><span style=3D'color:gray'>///</span></font><font =
color=3Dgreen><span
style=3D'color:green'> </span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;param
name=3D&quot;qos&quot;&gt;</span></font><font color=3Dgreen><span =
style=3D'color:
green'>The array of properties that define the Quality of Service for =
this
supplier.</span></font><font color=3Dgray><span =
style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<font
color=3Dblue><span style=3D'color:blue'>public</span></font>
MiroNotifyPushSupplier(<font color=3Dblue><span =
style=3D'color:blue'>string</span></font>
host, <font color=3Dblue><span style=3D'color:blue'>int</span></font> =
port, <font
color=3Dblue><span style=3D'color:blue'>string</span></font> =
namespaceName, <font
color=3Dblue><span style=3D'color:blue'>string</span></font> =
interfaceName, <font
color=3Dteal><span style=3D'color:teal'>ProxyType</span></font> =
proxyType, <font
color=3Dteal><span =
style=3D'color:teal'>InterFilterGroupOperator</span></font>
opType, <font color=3Dteal><span =
style=3D'color:teal'>_EventType</span></font>[]
offeredEvents, <font color=3Dteal><span =
style=3D'color:teal'>_Property</span></font>[]
qos)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
: <font color=3Dblue><span style=3D'color:blue'>base</span></font>(host, =
port, <font
color=3Dteal><span style=3D'color:teal'>ChannelType</span></font>.IIOP,
namespaceName, interfaceName, proxyType, =
opType)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dteal><span =
style=3D'color:teal'>Debug</span></font>.WriteLine(<font
color=3Dteal><span =
style=3D'color:teal'>String</span></font>.Format(<font
color=3Dmaroon><span style=3D'color:maroon'>&quot;MiroNotifyPushSupplier
Constructor Called: host=3D{0}, port=3D{1}, domain=3D{2}, =
endpoint=3D{3},
proxyType=3D{0}, =
opType=3D{1}&quot;<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, host, port,
namespaceName, interfaceName, proxyType.ToString(), =
opType.ToString()));<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dteal><span =
style=3D'color:teal'>Debug</span></font>.WriteLine(<font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\nOffering the =
following
events:&quot;</span></font>);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>for</span></font> (<font =
color=3Dblue><span
style=3D'color:blue'>int</span></font> i =3D 0; i &lt; =
offeredEvents.Length; i++)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dteal><span =
style=3D'color:teal'>Debug</span></font>.WriteLine(<font
color=3Dteal><span =
style=3D'color:teal'>String</span></font>.Format(<font
color=3Dmaroon><span style=3D'color:maroon'>&quot;domain=3D{0}, =
type=3D{1}&quot;</span></font>,
offeredEvents[i].domain_name, =
offeredEvents[i].type_name));<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dteal><span =
style=3D'color:teal'>Debug</span></font>.WriteLine(<font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\nOffering the =
following Quality
of Service =
properties:&quot;</span></font>);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>for</span></font> (<font =
color=3Dblue><span
style=3D'color:blue'>int</span></font> i =3D 0; i &lt; qos.Length; =
i++)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dteal><span =
style=3D'color:teal'>Debug</span></font>.WriteLine(<font
color=3Dteal><span =
style=3D'color:teal'>String</span></font>.Format(<font
color=3Dmaroon><span style=3D'color:maroon'>&quot;name=3D{0}, =
value=3D{1}&quot;</span></font>,
qos[i].name, qos[i].value));<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>this</span></font>.userType =3D <font
color=3Dteal><span =
style=3D'color:teal'>MiroUserType</span></font>.NotificationServicePushSu=
pplier;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>this</span></font>.offered =
=3D
offeredEvents;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;<font color=3Dblue><span =
style=3D'color:blue'>this</span></font>.qos
=3D qos;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>try<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Create and register =
the callback
channel that the consumer will use to communicate with the =
supplier.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
SetupCallbackChannel(<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;PushSupplierCallbackChannel&quot;</span></fo=
nt>,
<font color=3Dblue><span style=3D'color:blue'>this</span></font>.port + =
1);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Use the eventChannel =
for
suppliers...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>int</span></font>
supplierAdminID;&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span =
style=3D'color:green'>//
dummy to hold out value.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MySupplierAdmin =3D <font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>.notifyEventChannel.new_for_suppli=
ers(<font
color=3Dblue><span style=3D'color:blue'>this</span></font>.opType, <font
color=3Dblue><span style=3D'color:blue'>out</span></font> =
supplierAdminID);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
&nbsp;<font color=3Dblue><span style=3D'color:blue'>int</span></font>
proxyID;&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span =
style=3D'color:green'>// dummy
to hold out value.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>switch</span></font> =
(<font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>.clientType)<o:p></o:p></span></fo=
nt></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>case</span></font> <font =
color=3Dteal><span
style=3D'color:teal'>ClientType</span></font>.ANY_EVENT:<o:p></o:p></span=
></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MyProxyPushConsumer
=3D (omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
style=3D'color:teal'>ProxyPushConsumer</span></font>)<font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MySupplierAdmin.obtain_notificati=
on_push_consumer(<font
color=3Dblue><span style=3D'color:blue'>this</span></font>.clientType, =
<font
color=3Dblue><span style=3D'color:blue'>out</span></font> =
proxyID);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Next connect this
PushConsumer...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MyProxyPushConsumer.connect_any_p=
ush_supplier(<font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>break</span></font>;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>case</span></font> <font =
color=3Dteal><span
style=3D'color:teal'>ClientType</span></font>.SEQUENCE_EVENT:<o:p></o:p><=
/span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MySequenceProxyPushConsumer
=3D (omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
style=3D'color:teal'>SequenceProxyPushConsumer</span></font>)<font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MySupplierAdmin.obtain_notificati=
on_push_consumer(<font
color=3Dblue><span style=3D'color:blue'>this</span></font>.clientType, =
<font
color=3Dblue><span style=3D'color:blue'>out</span></font> =
proxyID);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Next connect this
PushConsumer...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MySequenceProxyPushConsumer.conne=
ct_sequence_push_supplier(<font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>break</span></font>;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>case</span></font> <font =
color=3Dteal><span
style=3D'color:teal'>ClientType</span></font>.STRUCTURED_EVENT:<o:p></o:p=
></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font =
color=3Dblue><span
style=3D'color:blue;background:yellow'>this</span></font><span =
style=3D'background:
yellow'>.MyStructuredProxyPushConsumer =3D =
(omg.org.CosNotifyChannelAdmin.<font
color=3Dteal><span =
style=3D'color:teal'>StructuredProxyPushConsumer</span></font>)<font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MySupplierAdmin.obtain_notificati=
on_push_consumer(<font
color=3Dblue><span style=3D'color:blue'>this</span></font>.clientType, =
<font
color=3Dblue><span style=3D'color:blue'>out</span></font> =
proxyID);</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Next connect this
PushConsumer...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>.MyStructuredProxyPushConsumer.con=
nect_structured_push_supplier(<font
color=3Dblue><span =
style=3D'color:blue'>this</span></font>);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>break</span></font>;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>default</span></font>:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>throw</span></font> <font =
color=3Dblue><span
style=3D'color:blue'>new</span></font> <font color=3Dteal><span =
style=3D'color:teal'>Exception</span></font>(<font
color=3Dmaroon><span style=3D'color:maroon'>&quot;MiroNotifyPushSupplier =
Exception:
Unknown ClientType &quot;</span></font> + <font color=3Dblue><span
style=3D'color:blue'>this</span></font>.clientType.ToString());<o:p></o:p=
></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Publish this =
suppliers offering
of events...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dteal><span style=3D'color:teal'>_EventType</span></font>[] =
removed =3D
{ <font color=3Dblue><span style=3D'color:blue'>new</span></font> <font =
color=3Dteal><span
style=3D'color:teal'>_EventType</span></font>(<font color=3Dmaroon><span
style=3D'color:maroon'>&quot;&quot;</span></font>, <font =
color=3Dmaroon><span
style=3D'color:maroon'>&quot;&quot;</span></font>) };&nbsp;&nbsp;&nbsp; =
<font
color=3Dgreen><span style=3D'color:green'>// empty dummy =
array.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span =
style=3D'color:blue'>this</span></font>.subscription_change(<font
color=3Dblue><span style=3D'color:blue'>this</span></font>.offered, =
removed);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Set this suppliers =
quality of
service...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span =
style=3D'color:green'>//this.MySupplierAdmin.set_qos(this.qos);<o:p></o:p=
></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Now get a reference =
to the
PushConsumer...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// If we have not thrown =
an
exception then we are successfully =
connected...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dteal><span =
style=3D'color:teal'>Debug</span></font>.WriteLine(<font
color=3Dteal><span =
style=3D'color:teal'>String</span></font>.Format(<font
color=3Dmaroon><span style=3D'color:maroon'>&quot;PushSupplier is now =
connected to
the NotificationService at host=3D{0}, port=3D{1}, domain=3D{2}, =
endpoint=3D{3}&quot;<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
, <font color=3Dblue><span style=3D'color:blue'>this</span></font>.host, =
<font
color=3Dblue><span style=3D'color:blue'>this</span></font>.port, <font =
color=3Dblue><span
style=3D'color:blue'>this</span></font>.namespaceName, <font =
color=3Dblue><span
style=3D'color:blue'>this</span></font>.interfaceName));<o:p></o:p></span=
></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Now loop in the =
calling program,
handling events, until we are =
disconnected...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>catch</span></font> (<font
color=3Dteal><span style=3D'color:teal'>Exception</span></font> =
ex)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>string</span></font> =
message =3D <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;MiroNotifyPushSupplier =
Exception:
&quot;</span></font> + ex.Message;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dteal><span =
style=3D'color:teal'>Debug</span></font>.WriteLine(message);<o:p></o:p></=
span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;
<font color=3Dblue><span style=3D'color:blue'>throw</span></font> <font =
color=3Dblue><span
style=3D'color:blue'>new</span></font> <font color=3Dteal><span =
style=3D'color:teal'>Exception</span></font>(message,
ex);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>I also wrote a custom Notification Server =
startup
program, which both succeeds and fails.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>/// =
@file
NetMiroNotifyServer.cpp <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'>//<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
@author
Stephen.Bogner@drdc-rddc.gc.ca<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
@date 19 July
2006<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'>//<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// The =
netMiro
NetMiroNotifyServer instantiates an OMG Notification Service on the =
ACE/TAO
NameService. It registers the<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>//
CosNotifyChannelAdmin.EventChannelFactory at TAO/EventChannelFactory, =
and it
registers the =
CosNotifyChannelAdmin.EventChannel<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// at
netMiro/INotifyChannel.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'>//<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// This
implementation uses the original TAO Notify_Service.cpp and =
Notify_Service.h
code files.&nbsp; The Notify_Service.h file is =
modified<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// to =
make some
protected methods and fields public, so that they can be used within =
this
main() method.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// Most =
of the
TAO Notify_Server command line parameters are ignored in this =
implementation,
in favor of hard coded default values.&nbsp; =
One<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
exception is
the -ORBRunThreads &lt;int threads&gt; parameter, which can be used to =
set up a
thread pool to be used by the ORB to support the =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
Notification
Service.&nbsp; If not specified, the default is to use a single thread =
in the
thread pool.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'>//<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// The
NetMiroNotifyServer should be started onto a running NameService with a =
normal
Corba command line, similiar to the =
following:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>//
NetMiroNotifyServer.exe -ORBInitRef =
NameService=3Diiop://&lt;host&gt;:&lt;port&gt;/NameService
-ORBDebugLevel 4 -ORBRunThreads 1<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;stdafx.h&quot;<o:p></o:p></span></font></spa=
n></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;Notify_Service.h&quot;<o:p></o:p></span></fo=
nt></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;orbsvcs\CosNamingC.h&quot;<o:p></o:p></span>=
</font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;orbsvcs\CosNotificationC.h&quot;<o:p></o:p><=
/span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;orbsvcs\Notify\Service.h&quot;<o:p></o:p></s=
pan></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;tao\ORB_Core.h&quot;<o:p></o:p></span></font=
></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;ace\Dynamic_Service.h&quot;<o:p></o:p></span=
></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;ace\Argv_Type_Converter.h&quot;<o:p></o:p></=
span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;ace\streams.h&quot;<o:p></o:p></span></font>=
</span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;ace\Sched_Params.h&quot;<o:p></o:p></span></=
font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>#include</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;ace\OS_main.h&quot;<o:p></o:p></span></font>=
</span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dmaroon face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:maroon'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:blue'>int</span></font><font
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>
main( <font color=3Dblue><span style=3D'color:blue'>int</span></font> =
argc, <font
color=3Dblue><span style=3D'color:blue'>char</span></font> *argv[] =
)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <font color=3Dblue><span =
style=3D'color:blue'>try<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; {<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span =
style=3D'color:maroon'>&quot;********************************************=
****************************************************&quot;</span></font>
&lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span =
style=3D'color:maroon'>&quot;**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;NetMiroNotifyServer&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
**&quot;</span></font> &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span =
style=3D'color:maroon'>&quot;********************************************=
****************************************************&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;If used, the following =
command
line parameters will be ignored in favor of hard coded defaults: =
&quot;</span></font>
&lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\t -Factory -Boot =
-NameSvc
-NoNameSvc -IORoutput -ChannelName -Channel =
-Notify_TPReactor&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;If used, the following =
command
line parameters will override the hard coded defaults: =
&quot;</span></font>
&lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\t -ORBRunThreads [int
threads]&quot;</span></font> &lt;&lt; endl &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Default Configuration: =
&quot;</span></font>
&lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\tUse TAO Naming =
Service
NameService&quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\tUse a Thread Pool of =
1 Server
Thread&quot;</span></font> &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\tRegister
CosNotifyChannelAdmin.EventChannelFactory at =
TAO/EventChannelFactory&quot;</span></font>
&lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\tRegister
CosNotifyChannelAdmin.EventChannel at =
netMiro/INotifyChannel&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span =
style=3D'color:maroon'>&quot;********************************************=
****************************************************&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 1: Construct the =
Notification
Service Driver.&nbsp; <o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
TAO_Notify_Service_Driver driver;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 2: Initialize the =
Notification
Service Driver.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Initializing the TAO =
Notification
Service Driver...&quot;</span></font> &lt;&lt; endl &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 2.1: Parse the command =
line
arguments<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\tParsing the command =
line
arguments...&quot;</span></font> ;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span =
style=3D'color:blue'>if</span></font>(driver.parse_args(argc,argv)!=3D
0)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; cerr &lt;&lt; <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;Failure:
Unable to parse the command line arguments!&quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dblue><span style=3D'color:blue'>throw</span></font> =
0;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
};<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot; =
Success!&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 2.2: Initialize CORBA =
Object
Request Broker<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\tInitializing the =
ORB...&quot;</span></font>
&lt;&lt; endl; <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::ORB_var =
orb =3D
CORBA::ORB_init( argc, argv );&nbsp;&nbsp; <font color=3Dgreen><span
style=3D'color:green'>// For VS2005 complile with &quot;Treat wchar_t as =
Built-in
type&quot; =3D no.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:green'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 2.3: Get reference to =
Root POA<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CORBA::Object_var obj =3D orb-&gt;resolve_initial_references( <font =
color=3Dmaroon><span
style=3D'color:maroon'>&quot;RootPOA&quot;</span></font> =
);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
PortableServer::POA_var poa =3D PortableServer::POA::_narrow( obj.in() =
);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 2.4: Activate POA =
Manager<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
PortableServer::POAManager_var mgr =3D =
poa-&gt;the_POAManager();<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
mgr-&gt;activate();<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\t... =
Success!&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 2.5: Obtain a pointer =
to an instance
of an =
ACE_Dynamic_Service&lt;TAO_Notify_Service&gt;<o:p></o:p></span></font></s=
pan></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\tTrying to obtain an =
instance of
TAO_Notify_Service....&quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
driver.notify_service_ =3D
ACE_Dynamic_Service&lt;TAO_Notify_Service&gt;::instance(TAO_NOTIFICATION_=
SERVICE_NAME);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span =
style=3D'color:blue'>if</span></font>(driver.notify_service_ =3D=3D
0)&nbsp;&nbsp; <font color=3Dgreen><span style=3D'color:green'>// not =
found, look
elsewhere...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; driver.notify_service_ =3D
ACE_Dynamic_Service&lt;TAO_Notify_Service&gt;::instance(TAO_NOTIFY_DEF_EM=
O_FACTORY_NAME);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span =
style=3D'color:blue'>if</span></font>(driver.notify_service_ =3D=3D
0)&nbsp;&nbsp; <font color=3Dgreen><span style=3D'color:green'>// still =
not found,
so give up..<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; cerr &lt;&lt; <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;Failure!
The Service was not found! Check the conf.file.&quot;</span></font> =
&lt;&lt;
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dblue><span style=3D'color:blue'>throw</span></font> =
0;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 2.6: Assuming we now =
have it, use
the pointer to pass the orb to the init_service =
method<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
driver.notify_service_-&gt;init_service(orb.in());<o:p></o:p></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;\t... =
Success!&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;...Success! The TAO =
Notification
Service Driver is now initialized.&quot;</span></font> &lt;&lt; endl =
&lt;&lt;
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 3: Setup the thread =
pool.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span =
style=3D'color:blue'>if</span></font>(driver.nthreads_ &gt;
0)&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span style=3D'color:green'>// =
we are
using a thread pool<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; cout &lt;&lt; <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;Attempting
to use a thread pool of &quot;</span></font> &lt;&lt; driver.nthreads_ =
&lt;&lt;
<font color=3Dmaroon><span style=3D'color:maroon'>&quot; server =
threads...&quot;</span></font>
;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; driver.worker_.orb(orb.in());<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dgreen><span style=3D'color:green'>// Task =
activation flags...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dblue><span style=3D'color:blue'>long</span></font> =
flags =3D
THR_NEW_LWP | THR_JOINABLE |
orb-&gt;orb_core()-&gt;orb_params()-&gt;thread_creation_flags();<o:p></o:=
p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dblue><span style=3D'color:blue'>int</span></font> =
priority =3D
ACE_Sched_Params::priority_min
(orb-&gt;orb_core()-&gt;orb_params()-&gt;sched_policy(),<o:p></o:p></span=
></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
orb-&gt;orb_core()-&gt;orb_params()-&gt;scope_policy());<o:p></o:p></span=
></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dblue><span =
style=3D'color:blue'>if</span></font>(driver.worker_.activate(flags,drive=
r.nthreads_,0,priority)
!=3D 0)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; {<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; cerr &lt;&lt; <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;Failure:
Cannot activate the client threads!&quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dblue><span style=3D'color:blue'>throw</span></font> =
0;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; }<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; cout &lt;&lt; <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;Success!&nbsp;
The thread pool is now active.&quot;</span></font> &lt;&lt; endl =
&lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 4: Find the Naming =
Service<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Finding the Naming =
Service ...
&quot;</span></font> &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CORBA::Object_var naming_obj =3D =
orb-&gt;resolve_initial_references(<font
color=3Dmaroon><span =
style=3D'color:maroon'>&quot;NameService&quot;</span></font>);<o:p></o:p>=
</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CosNaming::NamingContext_var root =3D
CosNaming::NamingContext::_narrow(naming_obj.in());<o:p></o:p></span></fo=
nt></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span =
style=3D'color:blue'>if</span></font>(CORBA::is_nil(root.in()))<o:p></o:p=
></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; cerr &lt;&lt; <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;Failure:
Could not narrow NameService to NamingContext!&quot;</span></font> =
&lt;&lt;
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dblue><span style=3D'color:blue'>throw</span></font> =
0;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
Success!&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 5: Obtain a reference =
to the
CosNotifyChannelAdmin.EventChannelFactory. =
<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Obtaining a reference =
to the
EventChannelFactory ... &quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
driver.notify_factory_ =3D =
driver.notify_service_-&gt;create(poa.in());<o:p></o:p></span></font></p>=


<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
Success!&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 6: Register the =
EventChannelFactory
on the NameService at =
&quot;TAO/EventChannelFactory&quot;.<o:p></o:p></span></font></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Registering the
EventChannelFactory on the NameService ...&quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CosNaming::Name name;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
name.length(1);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
name[0].id =3D
CORBA::string_dup(<font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;TAO&quot;</span></font>);&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Namespace is really
&quot;omg.org.CosNotifyChannelAdmin&quot;, but use this =
instead.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span style=3D'color:blue'>try</span></font> =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; CORBA::Object_var dummy =3D =
root-&gt;resolve(name);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span style=3D'color:blue'>catch</span></font>
(CosNaming::NamingContext::NotFound&amp; ) <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dgreen><span style=3D'color:green'>// If the binding =
for that
name does not already exist on NameService, then create =
it...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; CosNaming::NamingContext_var dummy =3D =
root-&gt;bind_new_context(name);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// ... and use the class name =
for the
second entry.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
name.length(2);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
name[1].id =3D
CORBA::string_dup( <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;EventChannelFactory&quot;</span></font>
);&nbsp; <font color=3Dgreen><span style=3D'color:green'>// class
&quot;omg.org.CosNotifyChannelAdmin.EventChannelFactory&quot;<o:p></o:p><=
/span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// and finally bind the object =
to the
name.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
root-&gt;rebind(name,driver.notify_factory_.in());<o:p></o:p></span></fon=
t></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
Success!&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;The TAO =
EventChannelFactory has
been registered on the Naming Service at =
TAO/EventChannelFactory.&quot;</span></font>
&lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Suppliers and =
Consumers can now
connect to the CosNotifyChannelAdmin.EventChannelFactory =
object.&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 7: Create an
CosNotifyChannelAdmin.EventChannel.<o:p></o:p></span></font></span></font=
></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;cout
&lt;&lt; <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;Creating an
CosNotifyChannelAdmin.EventChannel ... &quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CosNotifyChannelAdmin::ChannelID id;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CosNotification::QoSProperties initial_qos;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CosNotification::AdminProperties =
initial_admin;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CosNotifyChannelAdmin::EventChannel_var eventChannel=3D
driver.notify_factory_-&gt;create_channel(initial_qos,initial_admin,id);<=
o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
Success!&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 8: Register the =
EventChannel on
the NameService at =
netMiro/INotifyChannel.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Registering the =
EventChannel on
the NameService... &quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
CosNaming::Name name2;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
name2.length(1);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
name2[0].id =3D CORBA::string_dup(<font
color=3Dmaroon><span =
style=3D'color:maroon'>&quot;netMiro&quot;</span></font>);&nbsp;&nbsp;
<font color=3Dgreen><span style=3D'color:green'>// Namespace is really
&quot;omg.org.CosNotifyChannelAdmin&quot;, but use this =
instead.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span style=3D'color:blue'>try</span></font> =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; CORBA::Object_var dummy =3D =
root-&gt;resolve(name2);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span style=3D'color:blue'>catch</span></font>
(CosNaming::NamingContext::NotFound&amp; ) <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
{<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; <font color=3Dgreen><span style=3D'color:green'>// If the binding =
for that
name does not already exist on NameService, then create =
it...<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp; CosNaming::NamingContext_var dummy =3D =
root-&gt;bind_new_context(name2);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// ... and to use the =
IDL-defined Interface
(interface or class) for the second =
entry.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
name2.length(2);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
name2[1].id =3D
CORBA::string_dup( <font color=3Dmaroon><span =
style=3D'color:maroon'>&quot;INotifyChannel&quot;</span></font>
);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span =
style=3D'color:green'>//
(interface) class =
&quot;omg.org.CosNotifyChannelAdmin.EventChannel&quot;<o:p></o:p></span><=
/font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// and finally bind the object =
to the
name.<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
root-&gt;rebind(name2,eventChannel.in());<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
Success!&quot;</span></font>
&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;The netMiro =
INotifyChannel
interface has been registered on the Naming Service at
netMiro/INotifyChannel.&quot;</span></font> &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Suppliers and =
Consumers can now
connect to the CosNotifyChannelAdmin.EventChannel object on this
interface.&quot;</span></font> &lt;&lt; endl &lt;&lt; =
endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 9: Accept =
requests<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
orb-&gt;run();<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dgreen><span style=3D'color:green'>// Step 10: =
Destroy<o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
orb-&gt;destroy();<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; }<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <font color=3Dblue><span =
style=3D'color:blue'>catch</span></font>(
CORBA::Exception&amp; ex ) <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; {<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
&lt;&lt; <font
color=3Dmaroon><span style=3D'color:maroon'>&quot;Caught a CORBA =
exception: &quot;</span></font>
&lt;&lt; ex &lt;&lt; endl;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
color=3Dblue><span style=3D'color:blue'>return</span></font> =
1;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; }<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>&nbsp; <font color=3Dblue><span =
style=3D'color:blue'>return</span></font>
0;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'>}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>Debug Log from the =
Successful
version (ACE&nbsp; 5.4.7 TAO 1.4.7):<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) - =
Connection_Handler[1516]::handle_input,
handle =3D 1516/1516, retval =3D 0<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) -
ORB_Core::run, handle_events() returns 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) -
ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
Connection_Handler[1516]::handle_input, handle =3D =
1516/1516<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
Transport[1516]::handle_input<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
Transport[1516]::process_queue_head<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
Transport[1516]::handle_input, read 116 =
bytes<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
GIOP_Message_State::parse_message_header_i<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) - =
GIOP_Message_State::get_version_info<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
GIOP_Message_State::get_byte_order_info<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) -
ORB_Core::run, handle_events() returns 0<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) -
ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104 data bytes, other =
endian,
Type Request[7]<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
HEXDUMP 116
bytes<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
00 00&nbsp;
00 00 00 68 00 00 00 07&nbsp;&nbsp; =
GIOP.......h....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>03 00 00 00 00 00 =
00 00&nbsp;
00 00 00 23 14 01 0f 00&nbsp;&nbsp; =
............#....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 7b ce 09 =
45 37&nbsp;
05 0f 00 01 00 00 00 01&nbsp;&nbsp; =
NUT{..E7........<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 02 00 00 =
00 01&nbsp;
00 00 00 03 00 00 00 00&nbsp;&nbsp; =
.................<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 22 6f 62 =
74 61&nbsp;
69 6e 5f 6e 6f 74 69 66&nbsp;&nbsp; =
....&quot;obtain_notif<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>69 63 61 74 69 6f =
6e 5f&nbsp;
70 75 73 68 5f 63 6f 6e&nbsp;&nbsp; =
ication_push_con<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>73 75 6d 65 72 00 =
00 00&nbsp;
00 00 00 00 00 00 00 00&nbsp;&nbsp; <st1:place =
w:st=3D"on"><st1:country-region
 =
w:st=3D"on">sumer</st1:country-region></st1:place>...........<o:p></o:p><=
/span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00
01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
.....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:e07ae0&nbsp; =
created<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:e07cf0&nbsp; =
created<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:e07ea0&nbsp; =
created<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:e07ae0 incr =
refcount =3D
1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:da0358 incr =
refcount =3D
3<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:da0290 incr =
refcount =3D
3<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:deb070 incr =
refcount =3D
3<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>Activating object =
with id =3D 4
in&nbsp; POA : 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:e07ae0 incr =
refcount =3D
2<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:e07ae0 incr =
refcount =3D
3<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:e07ae0&nbsp; decr
refcount =3D 2<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 220 data bytes, my =
endian,
Type Reply[7]<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
HEXDUMP 232
bytes<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
01 01&nbsp;
dc 00 00 00 07 00 00 00&nbsp;&nbsp; =
GIOP............<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 00 00 00 =
00 00&nbsp;
42 00 00 00 49 44 4c 3a&nbsp;&nbsp; =
.........B...IDL:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>6f 6d 67 2e 6f 72 =
67 2f&nbsp;
43 6f 73 4e 6f 74 69 66&nbsp;&nbsp; =
omg.org/CosNotif<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>79 43 68 61 6e 6e =
65 6c&nbsp;
41 64 6d 69 6e 2f 53 74&nbsp;&nbsp; =
yChannelAdmin/St<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>72 75 63 74 75 72 =
65 64&nbsp;
50 72 6f 78 79 50 75 73&nbsp;&nbsp; =
ructuredProxyPus<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>68 43 6f 6e 73 75 =
6d 65&nbsp;
72 3a 31 2e 30 00 a5 71&nbsp;&nbsp; =
hConsumer:1.0..q<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>01 00 00 00 00 00 =
00 00&nbsp;
78 00 00 00 01 01 02 00&nbsp;&nbsp; =
.........x.......<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>10 00 00 00 31 33 =
31 2e&nbsp;
31 33 35 2e 31 33 33 2e&nbsp;&nbsp; =
.....131.135.133.<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>31 30 30 00 dd 04 =
00 00&nbsp;
23 00 00 00 14 01 0f 00&nbsp;&nbsp; =
100.....#.......<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 7b ce 09 =
45 37&nbsp;
05 0f 00 01 00 00 00 01&nbsp;&nbsp; =
NUT{..E7........<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 03 00 00 =
00 01&nbsp;
00 00 00 04 00 00 00 00&nbsp;&nbsp; =
.................<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>02 00 00 00 00 00 =
00 00&nbsp;
08 00 00 00 01 00 00 00&nbsp;&nbsp; =
.................<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 4f 41 54 01 00 =
00 00&nbsp;
18 00 00 00 01 00 00 00&nbsp;&nbsp; =
..OAT............<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>01 00 01 00 01 00 =
00 00&nbsp;
01 00 01 05 09 01 01 00&nbsp;&nbsp; =
.................<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 00 04 00 =
00
00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;
.........<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
Transport[1516]::cleanup_queue, byte_count =3D =
232<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
Transport[1516]::cleanup_queue, after transfer, bc =3D 0, all_sent =3D =
1, ml =3D 0<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) - =
Transport[1516]::drain_queue_helper,
byte_count =3D 232, head_is_empty =3D 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
Transport[1516]::drain_queue_i, helper retval =3D =
1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
Connection_Handler[1516]::handle_input, handle =3D 1516/1516, retval =3D =
0<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) - =
ORB_Core::run,
handle_events() returns 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>Debug Log from the =
Failing
Version (ACE 5.5 TAO 1.5)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|384) -
ORB_Core::run, handle_events() returns 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|384) -
ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Connection_Handler[1380]::handle_input, handle =3D =
1380/1380<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Transport[1380]::handle_input<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Transport[1380]::process_queue_head, 0 =
enqueued<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Transport[1380]::handle_input_parse_data, =
enter<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Transport[1380]::handle_input_parse_data, read 116 =
bytes<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
GIOP_Message_State::parse_message_header_i<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
GIOP_Message_State::get_version_info<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
GIOP_Message_State::get_byte_order_info<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Transport[1380]::process_parsed_messages, entering (missing data =3D=3D =
0)<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|384) -
ORB_Core::run, handle_events() returns 0<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|384) -
ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104 data bytes, other =
endian,
Type Request[7]<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
HEXDUMP 116
bytes<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
00 00&nbsp;
00 00 00 68 00 00 00 07&nbsp;&nbsp; =
GIOP.......h....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>03 00 00 00 00 00 =
00 00&nbsp;
00 00 00 23 14 01 0f 00&nbsp;&nbsp; =
............#....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 8e c3 09 =
45 b2&nbsp;
ba 08 00 01 00 00 00 01&nbsp;&nbsp; =
NUT...E.........<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 06 00 00 =
00 01&nbsp;
00 00 00 07 00 00 00 00&nbsp;&nbsp; =
.................<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 22 6f 62 =
74 61&nbsp;
69 6e 5f 6e 6f 74 69 66&nbsp;&nbsp; =
....&quot;obtain_notif<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>69 63 61 74 69 6f =
6e 5f&nbsp;
70 75 73 68 5f 63 6f 6e&nbsp;&nbsp; =
ication_push_con<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>73 75 6d 65 72 00 =
00 00&nbsp;
00 00 00 00 00 00 00 00&nbsp;&nbsp; <st1:place =
w:st=3D"on"><st1:country-region
 =
w:st=3D"on">sumer</st1:country-region></st1:place>...........<o:p></o:p><=
/span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00
01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<o:p></o:p>=
</span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:102de80&nbsp; =
created<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:102e0a8&nbsp; =
created<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:102e270&nbsp; =
created<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:102de80 =
incr refcount
=3D 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:f8b458 incr =
refcount =3D
7<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:f8b818 incr =
refcount =3D
7<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:1ae00c0 =
incr refcount
=3D 3<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:102de80 =
decr refcount
=3D 0<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:1ae00c0 =
decr refcount
=3D 2<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:102e270&nbsp;
destroyed<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:102e0a8&nbsp;
destroyed<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>object:102de80&nbsp;
destroyed<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:f8b818 decr =
refcount =3D
6<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:f8b458 decr =
refcount =3D
6<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 56 data bytes, my =
endian, Type
Reply[7]<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
HEXDUMP 68
bytes<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
01 01&nbsp;
38 00 00 00 07 00 00 00&nbsp;&nbsp; =
GIOP....8.......<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>02 00 00 00 00 00 =
00 00&nbsp;
1e 00 00 00 49 44 4c 3a&nbsp;&nbsp; =
.............IDL:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>6f 6d 67 2e 6f 72 =
67 2f&nbsp;
43 4f 52 42 41 2f 55 4e&nbsp;&nbsp; =
omg.org/CORBA/UN<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>4b 4e 4f 57 4e 3a =
31 2e&nbsp;
30 00 91 7c 80 02 41 54&nbsp;&nbsp; =
KNOWN:1.0..|..AT<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>02 00 00
00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
.....<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) - =
Transport[1380]::cleanup_queue,
byte_count =3D 68<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Transport[1380]::cleanup_queue, after transfer, bc =3D 0, all_sent =3D =
1, ml =3D 0<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Transport[1380]::drain_queue_helper, byte_count =3D 68, head_is_empty =
=3D 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) - =
Transport[1380]::drain_queue_i,
helper retval =3D 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
Connection_Handler[1380]::handle_input, handle =3D 1380/1380, retval =3D =
0<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
ORB_Core::run, handle_events() returns 1<o:p></o:p></span></font></p>

<p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>REPEATABILITY:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>The problem repeats successes and failures identically over =
several
sessions, and over several Rebuilds.<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>SAMPLE FIX/WORKAROUND:<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'>I have been unable to find a fix.&nbsp; A workaround might be to =
revert
to ACE 5.4.7.<o:p></o:p></span></font></p>

<p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C6D8EE.522E99AC--

0
Bogner
9/15/2006 5:42:31 PM
comp.soft-sys.ace 20326 articles. 1 followers. marlow.andrew (167) is leader. Post Follow

1 Replies
712 Views

Similar Articles

[PageSpeed] 53

Hi,

        Thanks for using the PRF.

>ACE VERSION: 5.5  TAO VERSION 1.5 (Fails)
>
>ACE VERSION: 5.4.7 TAO VERSION 1.4.7 (Succeeds)
>
>=20
>
>HOST MACHINE and OPERATING SYSTEM:
>
>DELL XPS 700 Pentium D, Windows XP Pro w/ all patches. (Fails)
>
>DELL Optiplex G250 Pentium 4; Windows XP Pro w/ all patches (Succeeds)
>
>=20
>
>COMPILER NAME AND VERSION (AND PATCHLEVEL): (Same on both Succeed and
>Fail machines)
>
>Microsoft Visual Studio 2005=20
>
>Version 8.0.50727.42 (RTM.050727-4200)
>
>Microsoft .NET Framework Version 2.0.50727
>
>=20
>
>THE $ACE_ROOT/ace/config.h FILE: (Same on both Succeed and Fail
>machines)
>
>#include "ace/config-win32.h"
>
>=20
>
>SYNOPSIS:
>
>=20
>
>On execution, identical call to
>omg.org.CosNotifyChannelAdmin.SupplierAdmin.obtain_notification_push_con
>sumer(this.clientType, out proxyID) returns successfully from ACE 5.4.7,
>but throws: $exception    {"CORBA system exception :
>omg.org.CORBA.UNKNOWN, completed: Completed_MayBe minor: 1413546624"}
>from ACE 5.5.
>
>=20
>
>DESCRIPTION:
>
>=20
>
>I bought a new computer, and attempted to move a working application
>from my old computer.  I installed ACE 5.5 TAO 1.5 on the new machine.
>The older installation used ACE 5.4.7 TAO 1.4.7, and had worked
>successfully for some time.  Unfortunately, the application now appears
>to be broken on the newer version of ACE/TAO.  I have stepped through
>the identical code on both machines and have obtained session
>transcripts at -ORBDebugLevel 10, which seems to show that the
>Notification Service is receiving slightly different inputs from the
>same call, for unknown reasons, presumably as a result of differences
>between the versions. I don't know how these differences arise, or if
>they are significant.

I recommend you contact taosupport@ociweb.com for help here since OCI
has been working on the Notification Service for the past several years.

Thanks,

        Doug

>=20
>
>The successful call:
>
>=20
>
>TAO (3232|2992) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104
>data bytes, other endian, Type Request[7]
>
>GIOP message - HEXDUMP 116 bytes
>
>47 49 4f 50 01 02 00 00  00 00 00 68 00 00 00 07   GIOP.......h....
>
>03 00 00 00 00 00 00 00  00 00 00 23 14 01 0f 00   ...........#....
>
>4e 55 54 7b ce 09 45 37  05 0f 00 01 00 00 00 01   NUT{..E7........
>
>00 00 00 02 00 00 00 01  00 00 00 03 00 00 00 00   ................
>
>00 00 00 22 6f 62 74 61  69 6e 5f 6e 6f 74 69 66   ..."obtain_notif
>
>69 63 61 74 69 6f 6e 5f  70 75 73 68 5f 63 6f 6e   ication_push_con
>
>73 75 6d 65 72 00 00 00  00 00 00 00 00 00 00 00   sumer...........
>
>00 00 00 01                                        ....
>
>object:e07ae0  created
>
>=20
>
>The failing call:
>
>=20
>
>TAO (2408|1856) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104
>data bytes, other endian, Type Request[7]
>
>GIOP message - HEXDUMP 116 bytes
>
>47 49 4f 50 01 02 00 00  00 00 00 68 00 00 00 07   GIOP.......h....
>
>03 00 00 00 00 00 00 00  00 00 00 23 14 01 0f 00   ...........#....
>
>4e 55 54 8e c3 09 45 b2  ba 08 00 01 00 00 00 01   NUT...E.........
>
>00 00 00 06 00 00 00 01  00 00 00 07 00 00 00 00   ................
>
>00 00 00 22 6f 62 74 61  69 6e 5f 6e 6f 74 69 66   ..."obtain_notif
>
>69 63 61 74 69 6f 6e 5f  70 75 73 68 5f 63 6f 6e   ication_push_con
>
>73 75 6d 65 72 00 00 00  00 00 00 00 00 00 00 00   sumer...........
>
>00 00 00 01                                        ....
>
>object:102de80  created
>
>=20
>
>=20
>
>AREA/CLASS/EXAMPLE AFFECTED:
>
>=20
>
>My C# application class that both succeeds and fails is the following:
>
>=20
>
>    /// <summary>
>
>    /// The MiroNotifyPushSupplier class implements the OMG
>CosNotifyComm.PushSupplier, StructuredPushSupplier, and
>SequencePushSupplier.
>
>    /// The main business of this class is to expose a=20
>
>    /// SendDataToConsumer(object data) method that a containing
>application or class can call to call, through the MyProxyPushConsumer
>property, the=20
>
>    /// push(object data) method on the consumer.
>
>    /// </summary>
>
>    public class MiroNotifyPushSupplier : MiroNotifyServiceUser,
>IMiroNotifyPushSupplier=20
>
>    {
>
>=20
>
>        private omg.org.CosNotification._EventType[] offered;   // Types
>of Events being offered
>
>        private omg.org.CosNotification._Property[] qos;        //
>Quality of Service Properties
>
>=20
>
>        /// <summary>
>
>        /// The SupplierAdmin object that can be used to manage this
>supplier.
>
>        /// </summary>
>
>        public omg.org.CosNotifyChannelAdmin.SupplierAdmin
>MySupplierAdmin;
>
>        /// <summary>
>
>        /// The proxy for any of the ANY Consumer objects that are using
>this supplier.
>
>        /// </summary>
>
>        public omg.org.CosNotifyChannelAdmin.ProxyPushConsumer
>MyProxyPushConsumer;
>
>        /// <summary>
>
>        /// The proxy for any of the Structured Consumer objects that
>are using this supplier.
>
>        /// </summary>
>
>        public omg.org.CosNotifyChannelAdmin.StructuredProxyPushConsumer
>MyStructuredProxyPushConsumer;
>
>        /// <summary>
>
>        /// The proxy for any of the Sequence Consumer objects that are
>using this supplier.
>
>        /// </summary>
>
>        public omg.org.CosNotifyChannelAdmin.SequenceProxyPushConsumer
>MySequenceProxyPushConsumer;
>
>=20
>
>        /// <summary>
>
>        /// The default constructor.
>
>        /// </summary>
>
>        /// <param name=3D"host">The named or IP host where the
>NameService hosting the NotificationService can be found.</param>
>
>        /// <param name=3D"port">The port on the host where the
>NameService hosting the NotificationService can be found.</param>
>
>        /// <param name=3D"namespaceName">The Domain or Namespace branch
>on the NameService where the NotificationService can be found (try
>netMiro).</param>
>
>        /// <param name=3D"interfaceName">The Interface or Object leaf =
>on
>the NameService where the NotificationService can be found (try
>INotifyChannel).</param>
>
>        /// <param name=3D"proxyType">The type of proxy that this =
>supplier
>will use: PUSH_ANY, PUSH_SEQUENCE, or PUSH_STRUCTURED.</param>
>
>        /// <param name=3D"opType">The type of Filter Group Operator =
>that
>this supplier will use: AND_OP or OR_OP.</param>
>
>        /// <param name=3D"offeredEvents">An array of notification =
>events
>being offered by this supplier.</param>
>
>        /// <param name=3D"qos">The array of properties that define the
>Quality of Service for this supplier.</param>
>
>        public MiroNotifyPushSupplier(string host, int port, string
>namespaceName, string interfaceName, ProxyType proxyType,
>InterFilterGroupOperator opType, _EventType[] offeredEvents, _Property[]
>qos)
>
>            : base(host, port, ChannelType.IIOP, namespaceName,
>interfaceName, proxyType, opType)
>
>        {
>
>            Debug.WriteLine(String.Format("MiroNotifyPushSupplier
>Constructor Called: host=3D{0}, port=3D{1}, domain=3D{2}, =
>endpoint=3D{3},
>proxyType=3D{0}, opType=3D{1}"
>
>                , host, port, namespaceName, interfaceName,
>proxyType.ToString(), opType.ToString()));
>
>            Debug.WriteLine("\nOffering the following events:");
>
>            for (int i =3D 0; i < offeredEvents.Length; i++)
>
>            {
>
>                Debug.WriteLine(String.Format("domain=3D{0}, =
>type=3D{1}",
>offeredEvents[i].domain_name, offeredEvents[i].type_name));
>
>            }
>
>            Debug.WriteLine("\nOffering the following Quality of Service
>properties:");
>
>            for (int i =3D 0; i < qos.Length; i++)
>
>            {
>
>                Debug.WriteLine(String.Format("name=3D{0}, value=3D{1}",
>qos[i].name, qos[i].value));
>
>            }
>
>            this.userType =3D
>MiroUserType.NotificationServicePushSupplier;
>
>=20
>
>            this.offered =3D offeredEvents;
>
>            this.qos =3D qos;
>
>=20
>
>            try
>
>            {
>
>                // Create and register the callback channel that the
>consumer will use to communicate with the supplier.
>
>                SetupCallbackChannel("PushSupplierCallbackChannel",
>this.port + 1);
>
>                // Use the eventChannel for suppliers...
>
>                int supplierAdminID;    // dummy to hold out value.
>
>                this.MySupplierAdmin =3D
>this.notifyEventChannel.new_for_suppliers(this.opType, out
>supplierAdminID);
>
>                int proxyID;    // dummy to hold out value.
>
>                switch (this.clientType)
>
>                {
>
>                    case ClientType.ANY_EVENT:
>
>                        this.MyProxyPushConsumer =3D
>(omg.org.CosNotifyChannelAdmin.ProxyPushConsumer)this.MySupplierAdmin.ob
>tain_notification_push_consumer(this.clientType, out proxyID);
>
>                        // Next connect this PushConsumer...
>
>=20
>this.MyProxyPushConsumer.connect_any_push_supplier(this);
>
>                        break;
>
>                    case ClientType.SEQUENCE_EVENT:
>
>                        this.MySequenceProxyPushConsumer =3D
>(omg.org.CosNotifyChannelAdmin.SequenceProxyPushConsumer)this.MySupplier
>Admin.obtain_notification_push_consumer(this.clientType, out proxyID);
>
>                        // Next connect this PushConsumer...
>
>=20
>this.MySequenceProxyPushConsumer.connect_sequence_push_supplier(this);
>
>                        break;
>
>                    case ClientType.STRUCTURED_EVENT:
>
>                        this.MyStructuredProxyPushConsumer =3D
>(omg.org.CosNotifyChannelAdmin.StructuredProxyPushConsumer)this.MySuppli
>erAdmin.obtain_notification_push_consumer(this.clientType, out proxyID);
>
>                        // Next connect this PushConsumer...
>
>=20
>this.MyStructuredProxyPushConsumer.connect_structured_push_supplier(this
>);
>
>                        break;
>
>                    default:
>
>                        throw new Exception("MiroNotifyPushSupplier
>Exception: Unknown ClientType " + this.clientType.ToString());
>
>                }
>
>                // Publish this suppliers offering of events...
>
>                _EventType[] removed =3D { new _EventType("", "") };    =
>//
>empty dummy array.
>
>                this.subscription_change(this.offered, removed);
>
>                // Set this suppliers quality of service...
>
>                //this.MySupplierAdmin.set_qos(this.qos);
>
>                // Now get a reference to the PushConsumer...
>
>=20
>
>                // If we have not thrown an exception then we are
>successfully connected...
>
>                Debug.WriteLine(String.Format("PushSupplier is now
>connected to the NotificationService at host=3D{0}, port=3D{1}, =
>domain=3D{2},
>endpoint=3D{3}"
>
>                    , this.host, this.port, this.namespaceName,
>this.interfaceName));
>
>                // Now loop in the calling program, handling events,
>until we are disconnected...
>
>            }
>
>            catch (Exception ex)
>
>            {
>
>                string message =3D "MiroNotifyPushSupplier Exception: " =
>+
>ex.Message;
>
>                Debug.WriteLine(message);
>
>                throw new Exception(message, ex);
>
>            }
>
>        }
>
>=20
>
>=20
>
>I also wrote a custom Notification Server startup program, which both
>succeeds and fails.
>
>=20
>
>/// @file NetMiroNotifyServer.cpp=20
>
>//
>
>// @author Stephen.Bogner@drdc-rddc.gc.ca
>
>// @date 19 July 2006
>
>//
>
>// The netMiro NetMiroNotifyServer instantiates an OMG Notification
>Service on the ACE/TAO NameService. It registers the
>
>// CosNotifyChannelAdmin.EventChannelFactory at TAO/EventChannelFactory,
>and it registers the CosNotifyChannelAdmin.EventChannel
>
>// at netMiro/INotifyChannel.
>
>//
>
>// This implementation uses the original TAO Notify_Service.cpp and
>Notify_Service.h code files.  The Notify_Service.h file is modified
>
>// to make some protected methods and fields public, so that they can be
>used within this main() method.
>
>//=20
>
>// Most of the TAO Notify_Server command line parameters are ignored in
>this implementation, in favor of hard coded default values.  One
>
>// exception is the -ORBRunThreads <int threads> parameter, which can be
>used to set up a thread pool to be used by the ORB to support the=20
>
>// Notification Service.  If not specified, the default is to use a
>single thread in the thread pool.
>
>//
>
>// The NetMiroNotifyServer should be started onto a running NameService
>with a normal Corba command line, similiar to the following:
>
>// NetMiroNotifyServer.exe -ORBInitRef
>NameService=3Diiop://<host>:<port>/NameService -ORBDebugLevel 4
>-ORBRunThreads 1
>
>=20
>
>#include "stdafx.h"
>
>#include "Notify_Service.h"
>
>#include "orbsvcs\CosNamingC.h"
>
>#include "orbsvcs\CosNotificationC.h"
>
>#include "orbsvcs\Notify\Service.h"
>
>#include "tao\ORB_Core.h"
>
>#include "ace\Dynamic_Service.h"
>
>#include "ace\Argv_Type_Converter.h"
>
>#include "ace\streams.h"
>
>#include "ace\Sched_Params.h"
>
>#include "ace\OS_main.h"
>
>=20
>
>int main( int argc, char *argv[] )
>
>{
>
>  try
>
>  {
>
>        cout <<
>"***********************************************************************
>*************************" << endl;
>
>        cout << "**
>NetMiroNotifyServer                                     **" << endl;
>
>        cout <<
>"***********************************************************************
>*************************" << endl << endl;
>
>        cout << "If used, the following command line parameters will be
>ignored in favor of hard coded defaults: " << endl;
>
>        cout << "\t -Factory -Boot -NameSvc -NoNameSvc -IORoutput
>-ChannelName -Channel -Notify_TPReactor" << endl << endl;
>
>        cout << "If used, the following command line parameters will
>override the hard coded defaults: " << endl;
>
>        cout << "\t -ORBRunThreads [int threads]" << endl << endl;
>
>        cout << "Default Configuration: " << endl;
>
>        cout << "\tUse TAO Naming Service NameService" << endl;
>
>        cout << "\tUse a Thread Pool of 1 Server Thread" << endl;
>
>        cout << "\tRegister CosNotifyChannelAdmin.EventChannelFactory at
>TAO/EventChannelFactory" << endl;
>
>        cout << "\tRegister CosNotifyChannelAdmin.EventChannel at
>netMiro/INotifyChannel" << endl << endl;
>
>        cout <<
>"***********************************************************************
>*************************" << endl << endl;
>
>=20
>
>        // Step 1: Construct the Notification Service Driver. =20
>
>        TAO_Notify_Service_Driver driver;
>
>=20
>
>        // Step 2: Initialize the Notification Service Driver.
>
>        cout << "Initializing the TAO Notification Service Driver..." <<
>endl << endl;
>
>=20
>
>        // Step 2.1: Parse the command line arguments
>
>        cerr << "\tParsing the command line arguments..." ;
>
>        if(driver.parse_args(argc,argv)!=3D 0)
>
>        {
>
>              cerr << "Failure: Unable to parse the command line
>arguments!" << endl;
>
>              throw 0;
>
>        };
>
>        cerr << " Success!" << endl << endl;
>
>       =20
>
>        // Step 2.2: Initialize CORBA Object Request Broker
>
>        cerr << "\tInitializing the ORB..." << endl;=20
>
>      CORBA::ORB_var orb =3D CORBA::ORB_init( argc, argv );   // For
>VS2005 complile with "Treat wchar_t as Built-in type" =3D no.
>
>=20
>
>        // Step 2.3: Get reference to Root POA
>
>        CORBA::Object_var obj =3D orb->resolve_initial_references(
>"RootPOA" );
>
>        PortableServer::POA_var poa =3D PortableServer::POA::_narrow(
>obj.in() );
>
>=20
>
>        // Step 2.4: Activate POA Manager
>
>        PortableServer::POAManager_var mgr =3D poa->the_POAManager();
>
>        mgr->activate();
>
>        cerr << "\t... Success!" << endl << endl;
>
>=20
>
>        // Step 2.5: Obtain a pointer to an instance of an
>ACE_Dynamic_Service<TAO_Notify_Service>
>
>        cerr << "\tTrying to obtain an instance of
>TAO_Notify_Service...." << endl;
>
>        driver.notify_service_ =3D
>ACE_Dynamic_Service<TAO_Notify_Service>::instance(TAO_NOTIFICATION_SERVI
>CE_NAME);
>
>        if(driver.notify_service_ =3D=3D 0)   // not found, look
>elsewhere...
>
>        {
>
>              driver.notify_service_ =3D
>ACE_Dynamic_Service<TAO_Notify_Service>::instance(TAO_NOTIFY_DEF_EMO_FAC
>TORY_NAME);
>
>        }
>
>        if(driver.notify_service_ =3D=3D 0)   // still not found, so =
>give
>up..
>
>        {
>
>              cerr << "Failure! The Service was not found! Check the
>conf.file." << endl;
>
>              throw 0;
>
>        }
>
>=20
>
>        // Step 2.6: Assuming we now have it, use the pointer to pass
>the orb to the init_service method
>
>        driver.notify_service_->init_service(orb.in());
>
>        cout << "\t... Success!" << endl << endl;
>
>        cout << "...Success! The TAO Notification Service Driver is now
>initialized." << endl << endl;
>
>=20
>
>        // Step 3: Setup the thread pool.
>
>        if(driver.nthreads_ > 0)    // we are using a thread pool
>
>        {
>
>              cout << "Attempting to use a thread pool of " <<
>driver.nthreads_ << " server threads..." ;
>
>              driver.worker_.orb(orb.in());
>
>              // Task activation flags...
>
>              long flags =3D THR_NEW_LWP | THR_JOINABLE |
>orb->orb_core()->orb_params()->thread_creation_flags();
>
>              int priority =3D ACE_Sched_Params::priority_min
>(orb->orb_core()->orb_params()->sched_policy(),
>
>=20
>orb->orb_core()->orb_params()->scope_policy());
>
>=20
>if(driver.worker_.activate(flags,driver.nthreads_,0,priority) !=3D 0)
>
>              {
>
>                    cerr << "Failure: Cannot activate the client
>threads!" << endl;
>
>                    throw 0;
>
>              }
>
>              cout << "Success!  The thread pool is now active." << endl
><< endl;
>
>        }
>
>       =20
>
>        // Step 4: Find the Naming Service
>
>        cout << "Finding the Naming Service ... " << endl;
>
>        CORBA::Object_var naming_obj =3D
>orb->resolve_initial_references("NameService");
>
>        CosNaming::NamingContext_var root =3D
>CosNaming::NamingContext::_narrow(naming_obj.in());
>
>        if(CORBA::is_nil(root.in()))
>
>        {
>
>              cerr << "Failure: Could not narrow NameService to
>NamingContext!" << endl;
>
>              throw 0;
>
>        }
>
>        cout << "... Success!" << endl << endl;
>
>=20
>
>        // Step 5: Obtain a reference to the
>CosNotifyChannelAdmin.EventChannelFactory.=20
>
>        cout << "Obtaining a reference to the EventChannelFactory ... "
><< endl;
>
>        driver.notify_factory_ =3D
>driver.notify_service_->create(poa.in());
>
>        cout << "... Success!" << endl << endl;
>
>=20
>
>        // Step 6: Register the EventChannelFactory on the NameService
>at "TAO/EventChannelFactory".
>
>        cout << "Registering the EventChannelFactory on the NameService
>..." << endl;
>
>        CosNaming::Name name;
>
>        name.length(1);
>
>        name[0].id =3D CORBA::string_dup("TAO");  // Namespace is really
>"omg.org.CosNotifyChannelAdmin", but use this instead.
>
>        try=20
>
>        {
>
>              CORBA::Object_var dummy =3D root->resolve(name);
>
>        }
>
>        catch (CosNaming::NamingContext::NotFound& )=20
>
>        {
>
>              // If the binding for that name does not already exist on
>NameService, then create it...
>
>              CosNaming::NamingContext_var dummy =3D
>root->bind_new_context(name);
>
>        }
>
>        // ... and use the class name for the second entry.
>
>        name.length(2);
>
>        name[1].id =3D CORBA::string_dup( "EventChannelFactory" );  //
>class "omg.org.CosNotifyChannelAdmin.EventChannelFactory"
>
>        // and finally bind the object to the name.
>
>        root->rebind(name,driver.notify_factory_.in());
>
>        cout << "... Success!" << endl << endl;
>
>        cout << "The TAO EventChannelFactory has been registered on the
>Naming Service at TAO/EventChannelFactory." << endl;
>
>        cout << "Suppliers and Consumers can now connect to the
>CosNotifyChannelAdmin.EventChannelFactory object." << endl << endl;
>
>=20
>
>        // Step 7: Create an CosNotifyChannelAdmin.EventChannel.
>
>        cout << "Creating an CosNotifyChannelAdmin.EventChannel ... " <<
>endl;
>
>        CosNotifyChannelAdmin::ChannelID id;
>
>        CosNotification::QoSProperties initial_qos;
>
>        CosNotification::AdminProperties initial_admin;
>
>        CosNotifyChannelAdmin::EventChannel_var eventChannel=3D
>driver.notify_factory_->create_channel(initial_qos,initial_admin,id);
>
>        cout << "... Success!" << endl << endl;
>
>=20
>
>        // Step 8: Register the EventChannel on the NameService at
>netMiro/INotifyChannel.
>
>        cout << "Registering the EventChannel on the NameService... " <<
>endl;
>
>        CosNaming::Name name2;
>
>        name2.length(1);
>
>        name2[0].id =3D CORBA::string_dup("netMiro");   // Namespace is
>really "omg.org.CosNotifyChannelAdmin", but use this instead.
>
>        try=20
>
>        {
>
>              CORBA::Object_var dummy =3D root->resolve(name2);
>
>        }
>
>        catch (CosNaming::NamingContext::NotFound& )=20
>
>        {
>
>              // If the binding for that name does not already exist on
>NameService, then create it...
>
>              CosNaming::NamingContext_var dummy =3D
>root->bind_new_context(name2);
>
>        }
>
>        // ... and to use the IDL-defined Interface (interface or class)
>for the second entry.
>
>        name2.length(2);
>
>        name2[1].id =3D CORBA::string_dup( "INotifyChannel" );      //
>(interface) class "omg.org.CosNotifyChannelAdmin.EventChannel"
>
>        // and finally bind the object to the name.
>
>        root->rebind(name2,eventChannel.in());
>
>        cout << "... Success!" << endl << endl;
>
>        cout << "The netMiro INotifyChannel interface has been
>registered on the Naming Service at netMiro/INotifyChannel." << endl;
>
>        cout << "Suppliers and Consumers can now connect to the
>CosNotifyChannelAdmin.EventChannel object on this interface." << endl <<
>endl;
>
>     =20
>
>        // Step 9: Accept requests
>
>        orb->run();
>
>=20
>
>        // Step 10: Destroy
>
>        orb->destroy();
>
>  }
>
>  catch( CORBA::Exception& ex )=20
>
>  {
>
>        cerr << "Caught a CORBA exception: " << ex << endl;
>
>        return 1;
>
>  }
>
>  return 0;
>
>}
>
>=20
>
>=20
>
>Debug Log from the Successful version (ACE  5.4.7 TAO 1.4.7):
>
>=20
>
>TAO (3232|1740) - Connection_Handler[1516]::handle_input, handle =3D
>1516/1516, retval =3D 0
>
>TAO (3232|1740) - ORB_Core::run, handle_events() returns 1
>
>TAO (3232|1740) - ORB_Core::run, calling handle_events()
>
>TAO (3232|2992) - Connection_Handler[1516]::handle_input, handle =3D
>1516/1516
>
>TAO (3232|2992) - Transport[1516]::handle_input
>
>TAO (3232|2992) - Transport[1516]::process_queue_head
>
>TAO (3232|2992) - Transport[1516]::handle_input, read 116 bytes
>
>TAO (3232|2992) - GIOP_Message_State::parse_message_header_i
>
>TAO (3232|2992) - GIOP_Message_State::get_version_info
>
>TAO (3232|2992) - GIOP_Message_State::get_byte_order_info
>
>TAO (3232|1740) - ORB_Core::run, handle_events() returns 0
>
>TAO (3232|1740) - ORB_Core::run, calling handle_events()
>
>TAO (3232|2992) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104
>data bytes, other endian, Type Request[7]
>
>GIOP message - HEXDUMP 116 bytes
>
>47 49 4f 50 01 02 00 00  00 00 00 68 00 00 00 07   GIOP.......h....
>
>03 00 00 00 00 00 00 00  00 00 00 23 14 01 0f 00   ...........#....
>
>4e 55 54 7b ce 09 45 37  05 0f 00 01 00 00 00 01   NUT{..E7........
>
>00 00 00 02 00 00 00 01  00 00 00 03 00 00 00 00   ................
>
>00 00 00 22 6f 62 74 61  69 6e 5f 6e 6f 74 69 66   ..."obtain_notif
>
>69 63 61 74 69 6f 6e 5f  70 75 73 68 5f 63 6f 6e   ication_push_con
>
>73 75 6d 65 72 00 00 00  00 00 00 00 00 00 00 00   sumer...........
>
>00 00 00 01                                        ....
>
>object:e07ae0  created
>
>object:e07cf0  created
>
>object:e07ea0  created
>
>object:e07ae0 incr refcount =3D 1
>
>object:da0358 incr refcount =3D 3
>
>object:da0290 incr refcount =3D 3
>
>object:deb070 incr refcount =3D 3
>
>Activating object with id =3D 4 in  POA : 1
>
>object:e07ae0 incr refcount =3D 2
>
>object:e07ae0 incr refcount =3D 3
>
>object:e07ae0  decr refcount =3D 2
>
>TAO (3232|2992) - GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 220
>data bytes, my endian, Type Reply[7]
>
>GIOP message - HEXDUMP 232 bytes
>
>47 49 4f 50 01 02 01 01  dc 00 00 00 07 00 00 00   GIOP............
>
>00 00 00 00 00 00 00 00  42 00 00 00 49 44 4c 3a   ........B...IDL:
>
>6f 6d 67 2e 6f 72 67 2f  43 6f 73 4e 6f 74 69 66   omg.org/CosNotif
>
>79 43 68 61 6e 6e 65 6c  41 64 6d 69 6e 2f 53 74   yChannelAdmin/St
>
>72 75 63 74 75 72 65 64  50 72 6f 78 79 50 75 73   ructuredProxyPus
>
>68 43 6f 6e 73 75 6d 65  72 3a 31 2e 30 00 a5 71   hConsumer:1.0..q
>
>01 00 00 00 00 00 00 00  78 00 00 00 01 01 02 00   ........x.......
>
>10 00 00 00 31 33 31 2e  31 33 35 2e 31 33 33 2e   ....131.135.133.
>
>31 30 30 00 dd 04 00 00  23 00 00 00 14 01 0f 00   100.....#.......
>
>4e 55 54 7b ce 09 45 37  05 0f 00 01 00 00 00 01   NUT{..E7........
>
>00 00 00 03 00 00 00 01  00 00 00 04 00 00 00 00   ................
>
>02 00 00 00 00 00 00 00  08 00 00 00 01 00 00 00   ................
>
>00 4f 41 54 01 00 00 00  18 00 00 00 01 00 00 00   .OAT............
>
>01 00 01 00 01 00 00 00  01 00 01 05 09 01 01 00   ................
>
>00 00 00 00 04 00 00 00                            ........
>
>TAO (3232|2992) - Transport[1516]::cleanup_queue, byte_count =3D 232
>
>TAO (3232|2992) - Transport[1516]::cleanup_queue, after transfer, bc =3D
>0, all_sent =3D 1, ml =3D 0
>
>TAO (3232|2992) - Transport[1516]::drain_queue_helper, byte_count =3D =
>232,
>head_is_empty =3D 1
>
>TAO (3232|2992) - Transport[1516]::drain_queue_i, helper retval =3D 1
>
>TAO (3232|2992) - Connection_Handler[1516]::handle_input, handle =3D
>1516/1516, retval =3D 0
>
>TAO (3232|2992) - ORB_Core::run, handle_events() returns 1
>
>TAO (3232|2992) - ORB_Core::run, calling handle_events()
>
>=20
>
>=20
>
>Debug Log from the Failing Version (ACE 5.5 TAO 1.5)
>
>=20
>
>TAO (2408|384) - ORB_Core::run, handle_events() returns 1
>
>TAO (2408|384) - ORB_Core::run, calling handle_events()
>
>TAO (2408|1856) - Connection_Handler[1380]::handle_input, handle =3D
>1380/1380
>
>TAO (2408|1856) - Transport[1380]::handle_input
>
>TAO (2408|1856) - Transport[1380]::process_queue_head, 0 enqueued
>
>TAO (2408|1856) - Transport[1380]::handle_input_parse_data, enter
>
>TAO (2408|1856) - Transport[1380]::handle_input_parse_data, read 116
>bytes
>
>TAO (2408|1856) - GIOP_Message_State::parse_message_header_i
>
>TAO (2408|1856) - GIOP_Message_State::get_version_info
>
>TAO (2408|1856) - GIOP_Message_State::get_byte_order_info
>
>TAO (2408|1856) - Transport[1380]::process_parsed_messages, entering
>(missing data =3D=3D 0)
>
>TAO (2408|384) - ORB_Core::run, handle_events() returns 0
>
>TAO (2408|384) - ORB_Core::run, calling handle_events()
>
>TAO (2408|1856) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104
>data bytes, other endian, Type Request[7]
>
>GIOP message - HEXDUMP 116 bytes
>
>47 49 4f 50 01 02 00 00  00 00 00 68 00 00 00 07   GIOP.......h....
>
>03 00 00 00 00 00 00 00  00 00 00 23 14 01 0f 00   ...........#....
>
>4e 55 54 8e c3 09 45 b2  ba 08 00 01 00 00 00 01   NUT...E.........
>
>00 00 00 06 00 00 00 01  00 00 00 07 00 00 00 00   ................
>
>00 00 00 22 6f 62 74 61  69 6e 5f 6e 6f 74 69 66   ..."obtain_notif
>
>69 63 61 74 69 6f 6e 5f  70 75 73 68 5f 63 6f 6e   ication_push_con
>
>73 75 6d 65 72 00 00 00  00 00 00 00 00 00 00 00   sumer...........
>
>00 00 00 01                                        ....
>
>object:102de80  created
>
>object:102e0a8  created
>
>object:102e270  created
>
>object:102de80 incr refcount =3D 1
>
>object:f8b458 incr refcount =3D 7
>
>object:f8b818 incr refcount =3D 7
>
>object:1ae00c0 incr refcount =3D 3
>
>object:102de80 decr refcount =3D 0
>
>object:1ae00c0 decr refcount =3D 2
>
>object:102e270  destroyed
>
>object:102e0a8  destroyed
>
>object:102de80  destroyed
>
>object:f8b818 decr refcount =3D 6
>
>object:f8b458 decr refcount =3D 6
>
>TAO (2408|1856) - GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 56
>data bytes, my endian, Type Reply[7]
>
>GIOP message - HEXDUMP 68 bytes
>
>47 49 4f 50 01 02 01 01  38 00 00 00 07 00 00 00   GIOP....8.......
>
>02 00 00 00 00 00 00 00  1e 00 00 00 49 44 4c 3a   ............IDL:
>
>6f 6d 67 2e 6f 72 67 2f  43 4f 52 42 41 2f 55 4e   omg.org/CORBA/UN
>
>4b 4e 4f 57 4e 3a 31 2e  30 00 91 7c 80 02 41 54   KNOWN:1.0..|..AT
>
>02 00 00 00                                        ....
>
>TAO (2408|1856) - Transport[1380]::cleanup_queue, byte_count =3D 68
>
>TAO (2408|1856) - Transport[1380]::cleanup_queue, after transfer, bc =3D
>0, all_sent =3D 1, ml =3D 0
>
>TAO (2408|1856) - Transport[1380]::drain_queue_helper, byte_count =3D =
>68,
>head_is_empty =3D 1
>
>TAO (2408|1856) - Transport[1380]::drain_queue_i, helper retval =3D 1
>
>TAO (2408|1856) - Connection_Handler[1380]::handle_input, handle =3D
>1380/1380, retval =3D 0
>
>TAO (2408|1856) - ORB_Core::run, handle_events() returns 1
>
>TAO (2408|1856) - ORB_Core::run, calling handle_events()
>
>=20
>
>REPEATABILITY:
>
>The problem repeats successes and failures identically over several
>sessions, and over several Rebuilds.
>
>=20
>
>SAMPLE FIX/WORKAROUND:
>
>I have been unable to find a fix.  A workaround might be to revert to
>ACE 5.4.7.
>
>=20
>
>=20
>
>=20
>
>
>------_=_NextPart_001_01C6D8EE.522E99AC
>Content-Type: text/html;
>	charset="us-ascii"
>Content-Transfer-Encoding: quoted-printable
>
><html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
>xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
>xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
>xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" =
>xmlns=3D"http://www.w3.org/TR/REC-html40">
>
><head>
><META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
>charset=3Dus-ascii">
><meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
><o:SmartTagType =
>namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
> name=3D"country-region"/>
><o:SmartTagType =
>namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
> name=3D"place"/>
><!--[if !mso]>
><style>
>st1\:*{behavior:url(#default#ieooui) }
></style>
><![endif]-->
><style>
><!--
> /* Style Definitions */
> p.MsoNormal, li.MsoNormal, div.MsoNormal
>	{margin:0cm;
>	margin-bottom:.0001pt;
>	font-size:12.0pt;
>	font-family:"Times New Roman";}
>a:link, span.MsoHyperlink
>	{color:blue;
>	text-decoration:underline;}
>a:visited, span.MsoHyperlinkFollowed
>	{color:purple;
>	text-decoration:underline;}
>p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
>	{margin:0cm;
>	margin-bottom:.0001pt;
>	font-size:10.0pt;
>	font-family:"Courier New";}
>span.EmailStyle17
>	{mso-style-type:personal-compose;
>	font-family:Arial;
>	color:windowtext;}
>@page Section1
>	{size:612.0pt 792.0pt;
>	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
>div.Section1
>	{page:Section1;}
>-->
></style>
>
></head>
>
><body lang=3DEN-US link=3Dblue vlink=3Dpurple>
>
><div class=3DSection1>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>(Code Best viewed as HTML, then Rich Text, then Plain Text =
>&#8211;
>Sorry!)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>ACE VERSION: 5.5&nbsp; TAO VERSION 1.5 =
>(Fails)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>ACE VERSION: 5.4.7 TAO VERSION 1.4.7 =
>(Succeeds)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>HOST MACHINE and OPERATING SYSTEM:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>DELL XPS 700 Pentium D, Windows XP Pro w/ all patches. =
>(Fails)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>DELL Optiplex G250 Pentium 4; Windows XP Pro w/ all patches =
>(Succeeds)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>COMPILER NAME AND VERSION (AND PATCHLEVEL): (Same on both =
>Succeed and
>Fail machines)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>Microsoft Visual Studio 2005 <o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>Version 8.0.50727.42 =
>(RTM.050727-4200)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>Microsoft .NET Framework Version =
>2.0.50727<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>THE $ACE_ROOT/ace/config.h FILE: (Same on both Succeed and Fail
>machines)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>#include =
>&quot;ace/config-win32.h&quot;<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>SYNOPSIS:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>On execution, identical call to =
>omg.org.CosNotifyChannelAdmin.SupplierAdmin.obtain_notification_push_cons=
>umer(this.clientType,
>out proxyID) returns successfully from ACE 5.4.7, but throws:
>$exception&nbsp;&nbsp;&nbsp; {&quot;CORBA system exception :
>omg.org.CORBA.UNKNOWN, completed: Completed_MayBe minor: =
>1413546624&quot;} from
>ACE 5.5.<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>DESCRIPTION:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>I bought a new computer, and attempted to move a working =
>application
>from my old computer.&nbsp; I installed ACE 5.5 TAO 1.5 on the new
>machine.&nbsp; The older installation used ACE 5.4.7 TAO 1.4.7, and had =
>worked
>successfully for some time.&nbsp; Unfortunately, the application now =
>appears to
>be broken on the newer version of ACE/TAO.&nbsp; I have stepped through =
>the
>identical code on both machines and have obtained session transcripts at
>&#8211;ORBDebugLevel 10, which seems to show that the Notification =
>Service is
>receiving slightly different inputs from the same call, for unknown =
>reasons,
>presumably as a result of differences between the versions. I =
>don&#8217;t know
>how these differences arise, or if they are =
>significant.<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>The successful call:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104 data bytes, other =
>endian,
>Type Request[7]<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
>HEXDUMP 116
>bytes<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
>00 00&nbsp;
>00 00 00 68 00 00 00 07&nbsp;&nbsp; =
>GIOP.......h....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>03 00 00 00 00 00 =
>00 00&nbsp;
>00 00 00 23 14 01 0f 00&nbsp;&nbsp; =
>...........#....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 7b ce 09 =
>45 37&nbsp;
>05 0f 00 01 00 00 00 01&nbsp;&nbsp; NUT<span =
>style=3D'background:yellow'>{..E7</span>........<o:p></o:p></span></font>=
></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 02 00 00 =
>00 01&nbsp;
>00 00 00 03 00 00 00 00&nbsp;&nbsp; =
>................<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 22 6f 62 =
>74 61&nbsp;
>69 6e 5f 6e 6f 74 69 66&nbsp;&nbsp; =
>...&quot;obtain_notif<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>69 63 61 74 69 6f =
>6e 5f&nbsp;
>70 75 73 68 5f 63 6f 6e&nbsp;&nbsp; =
>ication_push_con<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>73 75 6d 65 72 00 =
>00 00&nbsp;
>00 00 00 00 00 00 00 00&nbsp;&nbsp; <st1:place =
>w:st=3D"on"><st1:country-region
> =
>w:st=3D"on">sumer</st1:country-region></st1:place>...........<o:p></o:p><=
>/span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00
>01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;
>....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:e07ae0&nbsp; =
>created<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>The failing =
>call:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104 data bytes, other =
>endian,
>Type Request[7]<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
>HEXDUMP 116
>bytes<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
>00 00&nbsp;
>00 00 00 68 00 00 00 07&nbsp;&nbsp; =
>GIOP.......h....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>03 00 00 00 00 00 =
>00 00&nbsp;
>00 00 00 23 14 01 0f 00&nbsp;&nbsp; =
>...........#....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 8e c3 09 =
>45 b2&nbsp;
>ba 08 00 01 00 00 00 01&nbsp;&nbsp; NUT<span =
>style=3D'background:yellow'>...E.</span>........<o:p></o:p></span></font>=
></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 06 00 00 =
>00 01&nbsp;
>00 00 00 07 00 00 00 00&nbsp;&nbsp; =
>................<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 22 6f 62 =
>74 61&nbsp;
>69 6e 5f 6e 6f 74 69 66&nbsp;&nbsp; =
>...&quot;obtain_notif<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>69 63 61 74 69 6f =
>6e 5f&nbsp;
>70 75 73 68 5f 63 6f 6e&nbsp;&nbsp; =
>ication_push_con<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>73 75 6d 65 72 00 =
>00 00&nbsp;
>00 00 00 00 00 00 00 00&nbsp;&nbsp; <st1:place =
>w:st=3D"on"><st1:country-region
> =
>w:st=3D"on">sumer</st1:country-region></st1:place>...........<o:p></o:p><=
>/span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00
>01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
>bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<o:p></o:p>=
></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:102de80&nbsp; =
>created<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>&nbsp;<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>AREA/CLASS/EXAMPLE AFFECTED:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>My C# application class that both succeeds and fails is the =
>following:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
>style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
>style=3D'color:green'>
></span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
>style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
>style=3D'color:green'>
>The MiroNotifyPushSupplier class implements the OMG =
>CosNotifyComm.PushSupplier,
>StructuredPushSupplier, and =
>SequencePushSupplier.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
>style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
>style=3D'color:green'>
>The main business of this class is to expose a =
><o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
>style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
>style=3D'color:green'>
>SendDataToConsumer(object data) method that a containing application or =
>class
>can call to call, through the MyProxyPushConsumer property, the =
><o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
>style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
>style=3D'color:green'>
>push(object data) method on the =
>consumer.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dgray><span
>style=3D'color:gray'>///</span></font><font color=3Dgreen><span =
>style=3D'color:green'>
></span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
>nt></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; <font color=3Dblue><span
>style=3D'color:blue'>public</span></font> <font color=3Dblue><span
>style=3D'color:blue'>class</span></font> <font color=3Dteal><span =
>style=3D'color:
>teal'>MiroNotifyPushSupplier</span></font> : <font color=3Dteal><span
>style=3D'color:teal'>MiroNotifyServiceUser</span></font>, <font =
>color=3Dteal><span
>style=3D'color:teal'>IMiroNotifyPushSupplier</span></font> =
><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dblue><span style=3D'color:blue'>private</span></font>
>omg.org.CosNotification.<font color=3Dteal><span =
>style=3D'color:teal'>_EventType</span></font>[]
>offered;&nbsp;&nbsp; <font color=3Dgreen><span style=3D'color:green'>// =
>Types of
>Events being offered<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dblue><span style=3D'color:blue'>private</span></font>
>omg.org.CosNotification.<font color=3Dteal><span =
>style=3D'color:teal'>_Property</span></font>[]
>qos;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span
>style=3D'color:green'>// Quality of Service =
>Properties<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> The SupplierAdmin object that can be used to =
>manage this
>supplier.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
>nt></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dblue><span style=3D'color:blue'>public</span></font>
>omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
>style=3D'color:teal'>SupplierAdmin</span></font>
>MySupplierAdmin;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> The proxy for any of the ANY Consumer objects =
>that are
>using this supplier.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
>nt></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dblue><span style=3D'color:blue'>public</span></font>
>omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
>style=3D'color:teal'>ProxyPushConsumer</span></font>
>MyProxyPushConsumer;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> The proxy for any of the Structured Consumer =
>objects that
>are using this supplier.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
>nt></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dblue><span style=3D'color:blue'>public</span></font>
>omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
>style=3D'color:teal'>StructuredProxyPushConsumer</span></font>
>MyStructuredProxyPushConsumer;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> The proxy for any of the Sequence Consumer =
>objects that
>are using this supplier.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
>nt></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dblue><span style=3D'color:blue'>public</span></font>
>omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
>style=3D'color:teal'>SequenceProxyPushConsumer</span></font>
>MySequenceProxyPushConsumer;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;summary&gt;<o:p></o:p></span></font></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> The default =
>constructor.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/summary&gt;<o:p></o:p></span></font></span></fo=
>nt></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;param
>name=3D&quot;host&quot;&gt;</span></font><font color=3Dgreen><span
>style=3D'color:green'>The named or IP host where the NameService hosting =
>the
>NotificationService can be found.</span></font><font color=3Dgray><span
>style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;param
>name=3D&quot;port&quot;&gt;</span></font><font color=3Dgreen><span
>style=3D'color:green'>The port on the host where the NameService hosting =
>the
>NotificationService can be found.</span></font><font color=3Dgray><span
>style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;param
>name=3D&quot;namespaceName&quot;&gt;</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'>The Domain or Namespace branch on the NameService =
>where the
>NotificationService can be found (try netMiro).</span></font><font =
>color=3Dgray><span
>style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;param
>name=3D&quot;interfaceName&quot;&gt;</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'>The Interface or Object leaf on the NameService =
>where the
>NotificationService can be found (try =
>INotifyChannel).</span></font><font
>color=3Dgray><span =
>style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;param
>name=3D&quot;proxyType&quot;&gt;</span></font><font color=3Dgreen><span
>style=3D'color:green'>The type of proxy that this supplier will use: =
>PUSH_ANY,
>PUSH_SEQUENCE, or PUSH_STRUCTURED.</span></font><font color=3Dgray><span
>style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;param
>name=3D&quot;opType&quot;&gt;</span></font><font color=3Dgreen><span
>style=3D'color:green'>The type of Filter Group Operator that this =
>supplier will
>use: AND_OP or OR_OP.</span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;param
>name=3D&quot;offeredEvents&quot;&gt;</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'>An array of notification events being offered by =
>this
>supplier.</span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgray><span style=3D'color:gray'>///</span></font><font =
>color=3Dgreen><span
>style=3D'color:green'> </span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;param
>name=3D&quot;qos&quot;&gt;</span></font><font color=3Dgreen><span =
>style=3D'color:
>green'>The array of properties that define the Quality of Service for =
>this
>supplier.</span></font><font color=3Dgray><span =
>style=3D'color:gray'>&lt;/param&gt;<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><font
>color=3Dblue><span style=3D'color:blue'>public</span></font>
>MiroNotifyPushSupplier(<font color=3Dblue><span =
>style=3D'color:blue'>string</span></font>
>host, <font color=3Dblue><span style=3D'color:blue'>int</span></font> =
>port, <font
>color=3Dblue><span style=3D'color:blue'>string</span></font> =
>namespaceName, <font
>color=3Dblue><span style=3D'color:blue'>string</span></font> =
>interfaceName, <font
>color=3Dteal><span style=3D'color:teal'>ProxyType</span></font> =
>proxyType, <font
>color=3Dteal><span =
>style=3D'color:teal'>InterFilterGroupOperator</span></font>
>opType, <font color=3Dteal><span =
>style=3D'color:teal'>_EventType</span></font>[]
>offeredEvents, <font color=3Dteal><span =
>style=3D'color:teal'>_Property</span></font>[]
>qos)<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>: <font color=3Dblue><span style=3D'color:blue'>base</span></font>(host, =
>port, <font
>color=3Dteal><span style=3D'color:teal'>ChannelType</span></font>.IIOP,
>namespaceName, interfaceName, proxyType, =
>opType)<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dteal><span =
>style=3D'color:teal'>Debug</span></font>.WriteLine(<font
>color=3Dteal><span =
>style=3D'color:teal'>String</span></font>.Format(<font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;MiroNotifyPushSupplier
>Constructor Called: host=3D{0}, port=3D{1}, domain=3D{2}, =
>endpoint=3D{3},
>proxyType=3D{0}, =
>opType=3D{1}&quot;<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, host, port,
>namespaceName, interfaceName, proxyType.ToString(), =
>opType.ToString()));<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dteal><span =
>style=3D'color:teal'>Debug</span></font>.WriteLine(<font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\nOffering the =
>following
>events:&quot;</span></font>);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>for</span></font> (<font =
>color=3Dblue><span
>style=3D'color:blue'>int</span></font> i =3D 0; i &lt; =
>offeredEvents.Length; i++)<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dteal><span =
>style=3D'color:teal'>Debug</span></font>.WriteLine(<font
>color=3Dteal><span =
>style=3D'color:teal'>String</span></font>.Format(<font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;domain=3D{0}, =
>type=3D{1}&quot;</span></font>,
>offeredEvents[i].domain_name, =
>offeredEvents[i].type_name));<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dteal><span =
>style=3D'color:teal'>Debug</span></font>.WriteLine(<font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\nOffering the =
>following Quality
>of Service =
>properties:&quot;</span></font>);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>for</span></font> (<font =
>color=3Dblue><span
>style=3D'color:blue'>int</span></font> i =3D 0; i &lt; qos.Length; =
>i++)<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dteal><span =
>style=3D'color:teal'>Debug</span></font>.WriteLine(<font
>color=3Dteal><span =
>style=3D'color:teal'>String</span></font>.Format(<font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;name=3D{0}, =
>value=3D{1}&quot;</span></font>,
>qos[i].name, qos[i].value));<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.userType =3D <font
>color=3Dteal><span =
>style=3D'color:teal'>MiroUserType</span></font>.NotificationServicePushSu=
>pplier;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>this</span></font>.offered =
>=3D
>offeredEvents;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp;&nbsp;&nbsp;<font color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.qos
>=3D qos;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>try<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Create and register =
>the callback
>channel that the consumer will use to communicate with the =
>supplier.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
>SetupCallbackChannel(<font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;PushSupplierCallbackChannel&quot;</span></fo=
>nt>,
><font color=3Dblue><span style=3D'color:blue'>this</span></font>.port + =
>1);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Use the eventChannel =
>for
>suppliers...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>int</span></font>
>supplierAdminID;&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span =
>style=3D'color:green'>//
>dummy to hold out value.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MySupplierAdmin =3D <font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.notifyEventChannel.new_for_suppli=
>ers(<font
>color=3Dblue><span style=3D'color:blue'>this</span></font>.opType, <font
>color=3Dblue><span style=3D'color:blue'>out</span></font> =
>supplierAdminID);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;
>&nbsp;<font color=3Dblue><span style=3D'color:blue'>int</span></font>
>proxyID;&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span =
>style=3D'color:green'>// dummy
>to hold out value.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>switch</span></font> =
>(<font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.clientType)<o:p></o:p></span></fo=
>nt></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>case</span></font> <font =
>color=3Dteal><span
>style=3D'color:teal'>ClientType</span></font>.ANY_EVENT:<o:p></o:p></span=
>></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MyProxyPushConsumer
>=3D (omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
>style=3D'color:teal'>ProxyPushConsumer</span></font>)<font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MySupplierAdmin.obtain_notificati=
>on_push_consumer(<font
>color=3Dblue><span style=3D'color:blue'>this</span></font>.clientType, =
><font
>color=3Dblue><span style=3D'color:blue'>out</span></font> =
>proxyID);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Next connect this
>PushConsumer...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MyProxyPushConsumer.connect_any_p=
>ush_supplier(<font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>break</span></font>;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>case</span></font> <font =
>color=3Dteal><span
>style=3D'color:teal'>ClientType</span></font>.SEQUENCE_EVENT:<o:p></o:p><=
>/span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MySequenceProxyPushConsumer
>=3D (omg.org.CosNotifyChannelAdmin.<font color=3Dteal><span =
>style=3D'color:teal'>SequenceProxyPushConsumer</span></font>)<font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MySupplierAdmin.obtain_notificati=
>on_push_consumer(<font
>color=3Dblue><span style=3D'color:blue'>this</span></font>.clientType, =
><font
>color=3Dblue><span style=3D'color:blue'>out</span></font> =
>proxyID);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Next connect this
>PushConsumer...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MySequenceProxyPushConsumer.conne=
>ct_sequence_push_supplier(<font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>break</span></font>;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>case</span></font> <font =
>color=3Dteal><span
>style=3D'color:teal'>ClientType</span></font>.STRUCTURED_EVENT:<o:p></o:p=
>></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font =
>color=3Dblue><span
>style=3D'color:blue;background:yellow'>this</span></font><span =
>style=3D'background:
>yellow'>.MyStructuredProxyPushConsumer =3D =
>(omg.org.CosNotifyChannelAdmin.<font
>color=3Dteal><span =
>style=3D'color:teal'>StructuredProxyPushConsumer</span></font>)<font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MySupplierAdmin.obtain_notificati=
>on_push_consumer(<font
>color=3Dblue><span style=3D'color:blue'>this</span></font>.clientType, =
><font
>color=3Dblue><span style=3D'color:blue'>out</span></font> =
>proxyID);</span><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Next connect this
>PushConsumer...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.MyStructuredProxyPushConsumer.con=
>nect_structured_push_supplier(<font
>color=3Dblue><span =
>style=3D'color:blue'>this</span></font>);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>break</span></font>;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>default</span></font>:<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>throw</span></font> <font =
>color=3Dblue><span
>style=3D'color:blue'>new</span></font> <font color=3Dteal><span =
>style=3D'color:teal'>Exception</span></font>(<font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;MiroNotifyPushSupplier =
>Exception:
>Unknown ClientType &quot;</span></font> + <font color=3Dblue><span
>style=3D'color:blue'>this</span></font>.clientType.ToString());<o:p></o:p=
>></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Publish this =
>suppliers offering
>of events...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dteal><span style=3D'color:teal'>_EventType</span></font>[] =
>removed =3D
>{ <font color=3Dblue><span style=3D'color:blue'>new</span></font> <font =
>color=3Dteal><span
>style=3D'color:teal'>_EventType</span></font>(<font color=3Dmaroon><span
>style=3D'color:maroon'>&quot;&quot;</span></font>, <font =
>color=3Dmaroon><span
>style=3D'color:maroon'>&quot;&quot;</span></font>) };&nbsp;&nbsp;&nbsp; =
><font
>color=3Dgreen><span style=3D'color:green'>// empty dummy =
>array.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span =
>style=3D'color:blue'>this</span></font>.subscription_change(<font
>color=3Dblue><span style=3D'color:blue'>this</span></font>.offered, =
>removed);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Set this suppliers =
>quality of
>service...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span =
>style=3D'color:green'>//this.MySupplierAdmin.set_qos(this.qos);<o:p></o:p=
>></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Now get a reference =
>to the
>PushConsumer...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// If we have not thrown =
>an
>exception then we are successfully =
>connected...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dteal><span =
>style=3D'color:teal'>Debug</span></font>.WriteLine(<font
>color=3Dteal><span =
>style=3D'color:teal'>String</span></font>.Format(<font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;PushSupplier is now =
>connected to
>the NotificationService at host=3D{0}, port=3D{1}, domain=3D{2}, =
>endpoint=3D{3}&quot;<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>, <font color=3Dblue><span style=3D'color:blue'>this</span></font>.host, =
><font
>color=3Dblue><span style=3D'color:blue'>this</span></font>.port, <font =
>color=3Dblue><span
>style=3D'color:blue'>this</span></font>.namespaceName, <font =
>color=3Dblue><span
>style=3D'color:blue'>this</span></font>.interfaceName));<o:p></o:p></span=
>></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Now loop in the =
>calling program,
>handling events, until we are =
>disconnected...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>catch</span></font> (<font
>color=3Dteal><span style=3D'color:teal'>Exception</span></font> =
>ex)<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>string</span></font> =
>message =3D <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;MiroNotifyPushSupplier =
>Exception:
>&quot;</span></font> + ex.Message;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dteal><span =
>style=3D'color:teal'>Debug</span></font>.WriteLine(message);<o:p></o:p></=
>span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;
><font color=3Dblue><span style=3D'color:blue'>throw</span></font> <font =
>color=3Dblue><span
>style=3D'color:blue'>new</span></font> <font color=3Dteal><span =
>style=3D'color:teal'>Exception</span></font>(message,
>ex);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>I also wrote a custom Notification Server =
>startup
>program, which both succeeds and fails.<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>/// =
>@file
>NetMiroNotifyServer.cpp <o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'>//<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
>@author
>Stephen.Bogner@drdc-rddc.gc.ca<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
>@date 19 July
>2006<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'>//<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// The =
>netMiro
>NetMiroNotifyServer instantiates an OMG Notification Service on the =
>ACE/TAO
>NameService. It registers the<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>//
>CosNotifyChannelAdmin.EventChannelFactory at TAO/EventChannelFactory, =
>and it
>registers the =
>CosNotifyChannelAdmin.EventChannel<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// at
>netMiro/INotifyChannel.<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'>//<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// This
>implementation uses the original TAO Notify_Service.cpp and =
>Notify_Service.h
>code files.&nbsp; The Notify_Service.h file is =
>modified<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// to =
>make some
>protected methods and fields public, so that they can be used within =
>this
>main() method.<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// Most =
>of the
>TAO Notify_Server command line parameters are ignored in this =
>implementation,
>in favor of hard coded default values.&nbsp; =
>One<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
>exception is
>the -ORBRunThreads &lt;int threads&gt; parameter, which can be used to =
>set up a
>thread pool to be used by the ORB to support the =
><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// =
>Notification
>Service.&nbsp; If not specified, the default is to use a single thread =
>in the
>thread pool.<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'>//<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>// The
>NetMiroNotifyServer should be started onto a running NameService with a =
>normal
>Corba command line, similiar to the =
>following:<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier New";color:green'>//
>NetMiroNotifyServer.exe -ORBInitRef =
>NameService=3Diiop://&lt;host&gt;:&lt;port&gt;/NameService
>-ORBDebugLevel 4 -ORBRunThreads 1<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;stdafx.h&quot;<o:p></o:p></span></font></spa=
>n></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;Notify_Service.h&quot;<o:p></o:p></span></fo=
>nt></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;orbsvcs\CosNamingC.h&quot;<o:p></o:p></span>=
></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;orbsvcs\CosNotificationC.h&quot;<o:p></o:p><=
>/span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;orbsvcs\Notify\Service.h&quot;<o:p></o:p></s=
>pan></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;tao\ORB_Core.h&quot;<o:p></o:p></span></font=
>></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;ace\Dynamic_Service.h&quot;<o:p></o:p></span=
>></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;ace\Argv_Type_Converter.h&quot;<o:p></o:p></=
>span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;ace\streams.h&quot;<o:p></o:p></span></font>=
></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;ace\Sched_Params.h&quot;<o:p></o:p></span></=
>font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>#include</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
><font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;ace\OS_main.h&quot;<o:p></o:p></span></font>=
></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dmaroon face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:maroon'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dblue face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:blue'>int</span></font><font
>size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;font-family:"Courier New"'>
>main( <font color=3Dblue><span style=3D'color:blue'>int</span></font> =
>argc, <font
>color=3Dblue><span style=3D'color:blue'>char</span></font> *argv[] =
>)<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp; <font color=3Dblue><span =
>style=3D'color:blue'>try<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp; {<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;********************************************=
>****************************************************&quot;</span></font>
>&lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
>bsp;&nbsp;&nbsp;&nbsp;&nbsp;NetMiroNotifyServer&nbsp;&nbsp;&nbsp;&nbsp;&n=
>bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
>sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
>p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>**&quot;</span></font> &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;********************************************=
>****************************************************&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;If used, the following =
>command
>line parameters will be ignored in favor of hard coded defaults: =
>&quot;</span></font>
>&lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\t -Factory -Boot =
>-NameSvc
>-NoNameSvc -IORoutput -ChannelName -Channel =
>-Notify_TPReactor&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;If used, the following =
>command
>line parameters will override the hard coded defaults: =
>&quot;</span></font>
>&lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\t -ORBRunThreads [int
>threads]&quot;</span></font> &lt;&lt; endl &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Default Configuration: =
>&quot;</span></font>
>&lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\tUse TAO Naming =
>Service
>NameService&quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\tUse a Thread Pool of =
>1 Server
>Thread&quot;</span></font> &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\tRegister
>CosNotifyChannelAdmin.EventChannelFactory at =
>TAO/EventChannelFactory&quot;</span></font>
>&lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\tRegister
>CosNotifyChannelAdmin.EventChannel at =
>netMiro/INotifyChannel&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;********************************************=
>****************************************************&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 1: Construct the =
>Notification
>Service Driver.&nbsp; <o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>TAO_Notify_Service_Driver driver;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 2: Initialize the =
>Notification
>Service Driver.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Initializing the TAO =
>Notification
>Service Driver...&quot;</span></font> &lt;&lt; endl &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 2.1: Parse the command =
>line
>arguments<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\tParsing the command =
>line
>arguments...&quot;</span></font> ;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span =
>style=3D'color:blue'>if</span></font>(driver.parse_args(argc,argv)!=3D
>0)<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; cerr &lt;&lt; <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;Failure:
>Unable to parse the command line arguments!&quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dblue><span style=3D'color:blue'>throw</span></font> =
>0;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>};<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot; =
>Success!&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 2.2: Initialize CORBA =
>Object
>Request Broker<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\tInitializing the =
>ORB...&quot;</span></font>
>&lt;&lt; endl; <o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::ORB_var =
>orb =3D
>CORBA::ORB_init( argc, argv );&nbsp;&nbsp; <font color=3Dgreen><span
>style=3D'color:green'>// For VS2005 complile with &quot;Treat wchar_t as =
>Built-in
>type&quot; =3D no.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 color=3Dgreen face=3D"Courier =
>New"><span
>style=3D'font-size:10.0pt;font-family:"Courier =
>New";color:green'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 2.3: Get reference to =
>Root POA<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CORBA::Object_var obj =3D orb-&gt;resolve_initial_references( <font =
>color=3Dmaroon><span
>style=3D'color:maroon'>&quot;RootPOA&quot;</span></font> =
>);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>PortableServer::POA_var poa =3D PortableServer::POA::_narrow( obj.in() =
>);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 2.4: Activate POA =
>Manager<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>PortableServer::POAManager_var mgr =3D =
>poa-&gt;the_POAManager();<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>mgr-&gt;activate();<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\t... =
>Success!&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 2.5: Obtain a pointer =
>to an instance
>of an =
>ACE_Dynamic_Service&lt;TAO_Notify_Service&gt;<o:p></o:p></span></font></s=
>pan></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\tTrying to obtain an =
>instance of
>TAO_Notify_Service....&quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>driver.notify_service_ =3D
>ACE_Dynamic_Service&lt;TAO_Notify_Service&gt;::instance(TAO_NOTIFICATION_=
>SERVICE_NAME);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span =
>style=3D'color:blue'>if</span></font>(driver.notify_service_ =3D=3D
>0)&nbsp;&nbsp; <font color=3Dgreen><span style=3D'color:green'>// not =
>found, look
>elsewhere...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; driver.notify_service_ =3D
>ACE_Dynamic_Service&lt;TAO_Notify_Service&gt;::instance(TAO_NOTIFY_DEF_EM=
>O_FACTORY_NAME);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span =
>style=3D'color:blue'>if</span></font>(driver.notify_service_ =3D=3D
>0)&nbsp;&nbsp; <font color=3Dgreen><span style=3D'color:green'>// still =
>not found,
>so give up..<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; cerr &lt;&lt; <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;Failure!
>The Service was not found! Check the conf.file.&quot;</span></font> =
>&lt;&lt;
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dblue><span style=3D'color:blue'>throw</span></font> =
>0;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 2.6: Assuming we now =
>have it, use
>the pointer to pass the orb to the init_service =
>method<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>driver.notify_service_-&gt;init_service(orb.in());<o:p></o:p></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;\t... =
>Success!&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;...Success! The TAO =
>Notification
>Service Driver is now initialized.&quot;</span></font> &lt;&lt; endl =
>&lt;&lt;
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 3: Setup the thread =
>pool.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span =
>style=3D'color:blue'>if</span></font>(driver.nthreads_ &gt;
>0)&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span style=3D'color:green'>// =
>we are
>using a thread pool<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; cout &lt;&lt; <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;Attempting
>to use a thread pool of &quot;</span></font> &lt;&lt; driver.nthreads_ =
>&lt;&lt;
><font color=3Dmaroon><span style=3D'color:maroon'>&quot; server =
>threads...&quot;</span></font>
>;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; driver.worker_.orb(orb.in());<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dgreen><span style=3D'color:green'>// Task =
>activation flags...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dblue><span style=3D'color:blue'>long</span></font> =
>flags =3D
>THR_NEW_LWP | THR_JOINABLE |
>orb-&gt;orb_core()-&gt;orb_params()-&gt;thread_creation_flags();<o:p></o:=
>p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dblue><span style=3D'color:blue'>int</span></font> =
>priority =3D
>ACE_Sched_Params::priority_min
>(orb-&gt;orb_core()-&gt;orb_params()-&gt;sched_policy(),<o:p></o:p></span=
>></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
>bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
>sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
>p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>orb-&gt;orb_core()-&gt;orb_params()-&gt;scope_policy());<o:p></o:p></span=
>></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dblue><span =
>style=3D'color:blue'>if</span></font>(driver.worker_.activate(flags,drive=
>r.nthreads_,0,priority)
>!=3D 0)<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; {<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; cerr &lt;&lt; <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;Failure:
>Cannot activate the client threads!&quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dblue><span style=3D'color:blue'>throw</span></font> =
>0;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; }<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; cout &lt;&lt; <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;Success!&nbsp;
>The thread pool is now active.&quot;</span></font> &lt;&lt; endl =
>&lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 4: Find the Naming =
>Service<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Finding the Naming =
>Service ...
>&quot;</span></font> &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CORBA::Object_var naming_obj =3D =
>orb-&gt;resolve_initial_references(<font
>color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;NameService&quot;</span></font>);<o:p></o:p>=
></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CosNaming::NamingContext_var root =3D
>CosNaming::NamingContext::_narrow(naming_obj.in());<o:p></o:p></span></fo=
>nt></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span =
>style=3D'color:blue'>if</span></font>(CORBA::is_nil(root.in()))<o:p></o:p=
>></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; cerr &lt;&lt; <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;Failure:
>Could not narrow NameService to NamingContext!&quot;</span></font> =
>&lt;&lt;
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dblue><span style=3D'color:blue'>throw</span></font> =
>0;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
>Success!&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 5: Obtain a reference =
>to the
>CosNotifyChannelAdmin.EventChannelFactory. =
><o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Obtaining a reference =
>to the
>EventChannelFactory ... &quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>driver.notify_factory_ =3D =
>driver.notify_service_-&gt;create(poa.in());<o:p></o:p></span></font></p>=
>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
>Success!&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 6: Register the =
>EventChannelFactory
>on the NameService at =
>&quot;TAO/EventChannelFactory&quot;.<o:p></o:p></span></font></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Registering the
>EventChannelFactory on the NameService ...&quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CosNaming::Name name;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>name.length(1);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>name[0].id =3D
>CORBA::string_dup(<font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;TAO&quot;</span></font>);&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Namespace is really
>&quot;omg.org.CosNotifyChannelAdmin&quot;, but use this =
>instead.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span style=3D'color:blue'>try</span></font> =
><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; CORBA::Object_var dummy =3D =
>root-&gt;resolve(name);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span style=3D'color:blue'>catch</span></font>
>(CosNaming::NamingContext::NotFound&amp; ) <o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dgreen><span style=3D'color:green'>// If the binding =
>for that
>name does not already exist on NameService, then create =
>it...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; CosNaming::NamingContext_var dummy =3D =
>root-&gt;bind_new_context(name);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// ... and use the class name =
>for the
>second entry.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>name.length(2);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>name[1].id =3D
>CORBA::string_dup( <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;EventChannelFactory&quot;</span></font>
>);&nbsp; <font color=3Dgreen><span style=3D'color:green'>// class
>&quot;omg.org.CosNotifyChannelAdmin.EventChannelFactory&quot;<o:p></o:p><=
>/span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// and finally bind the object =
>to the
>name.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>root-&gt;rebind(name,driver.notify_factory_.in());<o:p></o:p></span></fon=
>t></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
>Success!&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;The TAO =
>EventChannelFactory has
>been registered on the Naming Service at =
>TAO/EventChannelFactory.&quot;</span></font>
>&lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Suppliers and =
>Consumers can now
>connect to the CosNotifyChannelAdmin.EventChannelFactory =
>object.&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 7: Create an
>CosNotifyChannelAdmin.EventChannel.<o:p></o:p></span></font></span></font=
>></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
>&nbsp;&nbsp;cout
>&lt;&lt; <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;Creating an
>CosNotifyChannelAdmin.EventChannel ... &quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CosNotifyChannelAdmin::ChannelID id;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CosNotification::QoSProperties initial_qos;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CosNotification::AdminProperties =
>initial_admin;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CosNotifyChannelAdmin::EventChannel_var eventChannel=3D
>driver.notify_factory_-&gt;create_channel(initial_qos,initial_admin,id);<=
>o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
>Success!&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 8: Register the =
>EventChannel on
>the NameService at =
>netMiro/INotifyChannel.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Registering the =
>EventChannel on
>the NameService... &quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>CosNaming::Name name2;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>name2.length(1);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>name2[0].id =3D CORBA::string_dup(<font
>color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;netMiro&quot;</span></font>);&nbsp;&nbsp;
><font color=3Dgreen><span style=3D'color:green'>// Namespace is really
>&quot;omg.org.CosNotifyChannelAdmin&quot;, but use this =
>instead.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span style=3D'color:blue'>try</span></font> =
><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; CORBA::Object_var dummy =3D =
>root-&gt;resolve(name2);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span style=3D'color:blue'>catch</span></font>
>(CosNaming::NamingContext::NotFound&amp; ) <o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>{<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; <font color=3Dgreen><span style=3D'color:green'>// If the binding =
>for that
>name does not already exist on NameService, then create =
>it...<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier =
>New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp; CosNaming::NamingContext_var dummy =3D =
>root-&gt;bind_new_context(name2);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// ... and to use the =
>IDL-defined Interface
>(interface or class) for the second =
>entry.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>name2.length(2);<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>name2[1].id =3D
>CORBA::string_dup( <font color=3Dmaroon><span =
>style=3D'color:maroon'>&quot;INotifyChannel&quot;</span></font>
>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=3Dgreen><span =
>style=3D'color:green'>//
>(interface) class =
>&quot;omg.org.CosNotifyChannelAdmin.EventChannel&quot;<o:p></o:p></span><=
>/font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// and finally bind the object =
>to the
>name.<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>root-&gt;rebind(name2,eventChannel.in());<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;... =
>Success!&quot;</span></font>
>&lt;&lt; endl &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;The netMiro =
>INotifyChannel
>interface has been registered on the Naming Service at
>netMiro/INotifyChannel.&quot;</span></font> &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cout =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Suppliers and =
>Consumers can now
>connect to the CosNotifyChannelAdmin.EventChannel object on this
>interface.&quot;</span></font> &lt;&lt; endl &lt;&lt; =
>endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
><o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 9: Accept =
>requests<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
>orb-&gt;run();<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dgreen><span style=3D'color:green'>// Step 10: =
>Destroy<o:p></o:p></span></font></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
>orb-&gt;destroy();<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp; }<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp; <font color=3Dblue><span =
>style=3D'color:blue'>catch</span></font>(
>CORBA::Exception&amp; ex ) <o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp; {<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; cerr =
>&lt;&lt; <font
>color=3Dmaroon><span style=3D'color:maroon'>&quot;Caught a CORBA =
>exception: &quot;</span></font>
>&lt;&lt; ex &lt;&lt; endl;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <font
>color=3Dblue><span style=3D'color:blue'>return</span></font> =
>1;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp; }<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>&nbsp; <font color=3Dblue><span =
>style=3D'color:blue'>return</span></font>
>0;<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'>}<o:p></o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:10.0pt;
>font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>Debug Log from the =
>Successful
>version (ACE&nbsp; 5.4.7 TAO 1.4.7):<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) - =
>Connection_Handler[1516]::handle_input,
>handle =3D 1516/1516, retval =3D 0<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) -
>ORB_Core::run, handle_events() returns 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) -
>ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>Connection_Handler[1516]::handle_input, handle =3D =
>1516/1516<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>Transport[1516]::handle_input<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>Transport[1516]::process_queue_head<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>Transport[1516]::handle_input, read 116 =
>bytes<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>GIOP_Message_State::parse_message_header_i<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) - =
>GIOP_Message_State::get_version_info<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>GIOP_Message_State::get_byte_order_info<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) -
>ORB_Core::run, handle_events() returns 0<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|1740) -
>ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104 data bytes, other =
>endian,
>Type Request[7]<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
>HEXDUMP 116
>bytes<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
>00 00&nbsp;
>00 00 00 68 00 00 00 07&nbsp;&nbsp; =
>GIOP.......h....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>03 00 00 00 00 00 =
>00 00&nbsp;
>00 00 00 23 14 01 0f 00&nbsp;&nbsp; =
>...........#....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 7b ce 09 =
>45 37&nbsp;
>05 0f 00 01 00 00 00 01&nbsp;&nbsp; =
>NUT{..E7........<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 02 00 00 =
>00 01&nbsp;
>00 00 00 03 00 00 00 00&nbsp;&nbsp; =
>................<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 22 6f 62 =
>74 61&nbsp;
>69 6e 5f 6e 6f 74 69 66&nbsp;&nbsp; =
>...&quot;obtain_notif<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>69 63 61 74 69 6f =
>6e 5f&nbsp;
>70 75 73 68 5f 63 6f 6e&nbsp;&nbsp; =
>ication_push_con<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>73 75 6d 65 72 00 =
>00 00&nbsp;
>00 00 00 00 00 00 00 00&nbsp;&nbsp; <st1:place =
>w:st=3D"on"><st1:country-region
> =
>w:st=3D"on">sumer</st1:country-region></st1:place>...........<o:p></o:p><=
>/span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00
>01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;
>....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:e07ae0&nbsp; =
>created<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:e07cf0&nbsp; =
>created<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:e07ea0&nbsp; =
>created<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:e07ae0 incr =
>refcount =3D
>1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:da0358 incr =
>refcount =3D
>3<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:da0290 incr =
>refcount =3D
>3<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:deb070 incr =
>refcount =3D
>3<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>Activating object =
>with id =3D 4
>in&nbsp; POA : 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:e07ae0 incr =
>refcount =3D
>2<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:e07ae0 incr =
>refcount =3D
>3<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:e07ae0&nbsp; decr
>refcount =3D 2<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 220 data bytes, my =
>endian,
>Type Reply[7]<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
>HEXDUMP 232
>bytes<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
>01 01&nbsp;
>dc 00 00 00 07 00 00 00&nbsp;&nbsp; =
>GIOP............<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 00 00 00 =
>00 00&nbsp;
>42 00 00 00 49 44 4c 3a&nbsp;&nbsp; =
>........B...IDL:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>6f 6d 67 2e 6f 72 =
>67 2f&nbsp;
>43 6f 73 4e 6f 74 69 66&nbsp;&nbsp; =
>omg.org/CosNotif<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>79 43 68 61 6e 6e =
>65 6c&nbsp;
>41 64 6d 69 6e 2f 53 74&nbsp;&nbsp; =
>yChannelAdmin/St<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>72 75 63 74 75 72 =
>65 64&nbsp;
>50 72 6f 78 79 50 75 73&nbsp;&nbsp; =
>ructuredProxyPus<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>68 43 6f 6e 73 75 =
>6d 65&nbsp;
>72 3a 31 2e 30 00 a5 71&nbsp;&nbsp; =
>hConsumer:1.0..q<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>01 00 00 00 00 00 =
>00 00&nbsp;
>78 00 00 00 01 01 02 00&nbsp;&nbsp; =
>........x.......<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>10 00 00 00 31 33 =
>31 2e&nbsp;
>31 33 35 2e 31 33 33 2e&nbsp;&nbsp; =
>....131.135.133.<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>31 30 30 00 dd 04 =
>00 00&nbsp;
>23 00 00 00 14 01 0f 00&nbsp;&nbsp; =
>100.....#.......<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 7b ce 09 =
>45 37&nbsp;
>05 0f 00 01 00 00 00 01&nbsp;&nbsp; =
>NUT{..E7........<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 03 00 00 =
>00 01&nbsp;
>00 00 00 04 00 00 00 00&nbsp;&nbsp; =
>................<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>02 00 00 00 00 00 =
>00 00&nbsp;
>08 00 00 00 01 00 00 00&nbsp;&nbsp; =
>................<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 4f 41 54 01 00 =
>00 00&nbsp;
>18 00 00 00 01 00 00 00&nbsp;&nbsp; =
>.OAT............<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>01 00 01 00 01 00 =
>00 00&nbsp;
>01 00 01 05 09 01 01 00&nbsp;&nbsp; =
>................<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 00 04 00 =
>00
>00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
>&nbsp;&nbsp;&nbsp;
>........<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>Transport[1516]::cleanup_queue, byte_count =3D =
>232<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>Transport[1516]::cleanup_queue, after transfer, bc =3D 0, all_sent =3D =
>1, ml =3D 0<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) - =
>Transport[1516]::drain_queue_helper,
>byte_count =3D 232, head_is_empty =3D 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>Transport[1516]::drain_queue_i, helper retval =3D =
>1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>Connection_Handler[1516]::handle_input, handle =3D 1516/1516, retval =3D =
>0<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) - =
>ORB_Core::run,
>handle_events() returns 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (3232|2992) -
>ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>Debug Log from the =
>Failing
>Version (ACE 5.5 TAO 1.5)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|384) -
>ORB_Core::run, handle_events() returns 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|384) -
>ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Connection_Handler[1380]::handle_input, handle =3D =
>1380/1380<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Transport[1380]::handle_input<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Transport[1380]::process_queue_head, 0 =
>enqueued<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Transport[1380]::handle_input_parse_data, =
>enter<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Transport[1380]::handle_input_parse_data, read 116 =
>bytes<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>GIOP_Message_State::parse_message_header_i<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>GIOP_Message_State::get_version_info<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>GIOP_Message_State::get_byte_order_info<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Transport[1380]::process_parsed_messages, entering (missing data =3D=3D =
>0)<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|384) -
>ORB_Core::run, handle_events() returns 0<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|384) -
>ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 104 data bytes, other =
>endian,
>Type Request[7]<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
>HEXDUMP 116
>bytes<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
>00 00&nbsp;
>00 00 00 68 00 00 00 07&nbsp;&nbsp; =
>GIOP.......h....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>03 00 00 00 00 00 =
>00 00&nbsp;
>00 00 00 23 14 01 0f 00&nbsp;&nbsp; =
>...........#....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>4e 55 54 8e c3 09 =
>45 b2&nbsp;
>ba 08 00 01 00 00 00 01&nbsp;&nbsp; =
>NUT...E.........<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 06 00 00 =
>00 01&nbsp;
>00 00 00 07 00 00 00 00&nbsp;&nbsp; =
>................<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00 22 6f 62 =
>74 61&nbsp;
>69 6e 5f 6e 6f 74 69 66&nbsp;&nbsp; =
>...&quot;obtain_notif<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>69 63 61 74 69 6f =
>6e 5f&nbsp;
>70 75 73 68 5f 63 6f 6e&nbsp;&nbsp; =
>ication_push_con<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>73 75 6d 65 72 00 =
>00 00&nbsp;
>00 00 00 00 00 00 00 00&nbsp;&nbsp; <st1:place =
>w:st=3D"on"><st1:country-region
> =
>w:st=3D"on">sumer</st1:country-region></st1:place>...........<o:p></o:p><=
>/span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>00 00 00
>01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
>bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<o:p></o:p>=
></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:102de80&nbsp; =
>created<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:102e0a8&nbsp; =
>created<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:102e270&nbsp; =
>created<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:102de80 =
>incr refcount
>=3D 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:f8b458 incr =
>refcount =3D
>7<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:f8b818 incr =
>refcount =3D
>7<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:1ae00c0 =
>incr refcount
>=3D 3<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:102de80 =
>decr refcount
>=3D 0<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:1ae00c0 =
>decr refcount
>=3D 2<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:102e270&nbsp;
>destroyed<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:102e0a8&nbsp;
>destroyed<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span =
>style=3D'font-size:10.0pt'>object:102de80&nbsp;
>destroyed<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:f8b818 decr =
>refcount =3D
>6<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>object:f8b458 decr =
>refcount =3D
>6<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 56 data bytes, my =
>endian, Type
>Reply[7]<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>GIOP message - =
>HEXDUMP 68
>bytes<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>47 49 4f 50 01 02 =
>01 01&nbsp;
>38 00 00 00 07 00 00 00&nbsp;&nbsp; =
>GIOP....8.......<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>02 00 00 00 00 00 =
>00 00&nbsp;
>1e 00 00 00 49 44 4c 3a&nbsp;&nbsp; =
>............IDL:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>6f 6d 67 2e 6f 72 =
>67 2f&nbsp;
>43 4f 52 42 41 2f 55 4e&nbsp;&nbsp; =
>omg.org/CORBA/UN<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>4b 4e 4f 57 4e 3a =
>31 2e&nbsp;
>30 00 91 7c 80 02 41 54&nbsp;&nbsp; =
>KNOWN:1.0..|..AT<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>02 00 00
>00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
>nbsp;&nbsp;&nbsp;
>....<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) - =
>Transport[1380]::cleanup_queue,
>byte_count =3D 68<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Transport[1380]::cleanup_queue, after transfer, bc =3D 0, all_sent =3D =
>1, ml =3D 0<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Transport[1380]::drain_queue_helper, byte_count =3D 68, head_is_empty =
>=3D 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) - =
>Transport[1380]::drain_queue_i,
>helper retval =3D 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>Connection_Handler[1380]::handle_input, handle =3D 1380/1380, retval =3D =
>0<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>ORB_Core::run, handle_events() returns 1<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText style=3D'margin-right:-74.9pt'><font size=3D2
>face=3D"Courier New"><span style=3D'font-size:10.0pt'>TAO (2408|1856) -
>ORB_Core::run, calling handle_events()<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>REPEATABILITY:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>The problem repeats successes and failures identically over =
>several
>sessions, and over several Rebuilds.<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>SAMPLE FIX/WORKAROUND:<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'>I have been unable to find a fix.&nbsp; A workaround might be to =
>revert
>to ACE 5.4.7.<o:p></o:p></span></font></p>
>
><p class=3DMsoPlainText><font size=3D2 face=3D"Courier New"><span =
>style=3D'font-size:
>10.0pt'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3DArial><span =
>style=3D'font-size:10.0pt;
>font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>
>
><p class=3DMsoNormal><font size=3D2 face=3DArial><span =
>style=3D'font-size:10.0pt;
>font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>
>
></div>
>
></body>
>
></html>
>
>------_=_NextPart_001_01C6D8EE.522E99AC--
>


-- 
Dr. Douglas C. Schmidt                       Professor and Associate Chair
Electrical Engineering and Computer Science  TEL: (615) 343-8197
Vanderbilt University                        WEB: www.dre.vanderbilt.edu/~schmidt
Nashville, TN 37203                          NET: d.schmidt@vanderbilt.edu

0
schmidt
9/17/2006 1:20:44 AM
Reply:

Similar Artilces:

[ace-users] [ACE 5.5] Upgrade from ACE 5.4.7 to ACE 5.5
This is a multi-part message in MIME format. --Boundary_(ID_ogLNJ2XjtOnI/qoGYuqYNQ) Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT ACE VERSION: 5.5 HOST MACHINE and OPERATING SYSTEM: Intel, WindowsXp, Windows 2003 AREA/CLASS/EXAMPLE AFFECTED: Our team has upgraded from ACE 5.4.7 to ACE 5.5. I am submitting this email as a service for the ace members that considure upgrading to ACE 5.5 and using the same platform and features we are using from the ACE Frameworks library. After running a regression test the upgrade seemed to work without any problems. The only problem we encountered was a compilation error when construction ACE_Time_Value. The ACE_Time_Value cannot be constructed anymore from an integer. For example: ACE_Time_Value( 5 ) --> Compile error DESCRIPTION: We are using ACE_WIN32_Proactor with sockets, pipes and directory changes. BOTTOM LINE: If you are an ace user who are using the same platform and architecture you could upgrade to the new framework knowing that somewhere in the world (Israel/Onigma) the upgrade worked perfectly and nightly. ~ Ishay Software Architect Onigma Ltd. Tel: +972-3-6877315 Fax: +972-3-6877128 Mobile: +972-54-2325090 Email: ishay@onigma.com --Boundary_(ID_ogLNJ2XjtOnI/qoGYuqYNQ) Content-type: text/html; charset=us-ascii Content-transfer-encoding: 7BI...

RE: [ace-users] [ACE 5.5] Upgrade from ACE 5.4.7 to ACE 5.5
Hi, > ACE VERSION: 5.5 Thanks for using the PRF form. > HOST MACHINE and OPERATING SYSTEM: > > Intel, WindowsXp, Windows 2003 An important bit information is missing, which compiler did you use. > AREA/CLASS/EXAMPLE AFFECTED: > The only problem we encountered was a compilation error > when construction ACE_Time_Value. > > The ACE_Time_Value cannot be constructed anymore from an integer. > > For example: ACE_Time_Value( 5 ) --> Compile error Great to hear things work without problems. This errors sounds strange, we do have test cases like this in tests/Time_Value_Test.cpp. We do have made all constructors of ACE_Time_Value explicit. As a result if you have a method that expects a ACE_Time_Value&, you just can't pass for example 5, you have to pass an ACE_Time_Value(5). Regards, Johnny Willemsen Remedy IT Postbus 101 2650 AC Berkel en Rodenrijs The Netherlands www.theaceorb.nl / www.remedy.nl ...

Re: [ace-users] [ACE 5.5] Upgrade from ACE 5.4.7 to ACE 5.5 #2
Hi Ishay, >> Sorry, we are using DevStudio 7.1 (2003) We use this too. Please see ACE_ROOT/tests/Time_Value_Test.cpp for lots of examples that use ACE_Time_Value with integers. Please see if this works on your OS/compiler platform. Thanks, Doug >> ~ Ishay >> >> Software Architect >> Onigma Ltd. >> Tel: +972-3-6877315 >> Fax: +972-3-6877128 >> Mobile: +972-54-2325090 >> Email: ishay@onigma.com >> >> -----Original Message----- >> From: Johnny Willemsen [mailto:jwillemsen@remedy.nl] >> Sent: Tuesday, March 07, 2006 2:42 PM >> To: 'Ishay Green'; ace-users@cs.wustl.edu >> Subject: RE: [ace-users] [ACE 5.5] Upgrade from ACE 5.4.7 to ACE 5.5 >> >> Hi, >> >> > ACE VERSION: 5.5 >> >> Thanks for using the PRF form. >> >> > HOST MACHINE and OPERATING SYSTEM: >> > >> > Intel, WindowsXp, Windows 2003 >> >> An important bit information is missing, which compiler did you use. >> >> > AREA/CLASS/EXAMPLE AFFECTED: >> > The only problem we encountered was a compilation error >> > when construction ACE_Time_Value. >> > >> > The ACE_Time_Value cannot be constructed anymore from an integer. >> > >> > For example: ACE_Time_Value( 5 ) --> Compile error >>...

RE: [ace-users] [ACE 5.5] Upgrade from ACE 5.4.7 to ACE 5.5 #2
Hi, Sorry, we are using DevStudio 7.1 (2003) ~ Ishay Software Architect Onigma Ltd. Tel: +972-3-6877315 Fax: +972-3-6877128 Mobile: +972-54-2325090 Email: ishay@onigma.com -----Original Message----- From: Johnny Willemsen [mailto:jwillemsen@remedy.nl] Sent: Tuesday, March 07, 2006 2:42 PM To: 'Ishay Green'; ace-users@cs.wustl.edu Subject: RE: [ace-users] [ACE 5.5] Upgrade from ACE 5.4.7 to ACE 5.5 Hi, > ACE VERSION: 5.5 Thanks for using the PRF form. > HOST MACHINE and OPERATING SYSTEM: > > Intel, WindowsXp, Windows 2003 An important bit information is missing, which compiler did you use. > AREA/CLASS/EXAMPLE AFFECTED: > The only problem we encountered was a compilation error > when construction ACE_Time_Value. > > The ACE_Time_Value cannot be constructed anymore from an integer. > > For example: ACE_Time_Value( 5 ) --> Compile error Great to hear things work without problems. This errors sounds strange, we do have test cases like this in tests/Time_Value_Test.cpp. We do have made all constructors of ACE_Time_Value explicit. As a result if you have a method that expects a ACE_Time_Value&, you just can't pass for example 5, you have to pass an ACE_Time_Value(5). Regards, Johnny Willemsen Remedy IT Postbus 101 2650 AC Berkel en Rodenrijs The Netherlands www.theaceorb.nl / www.remedy.nl ...

[tao-users] RE: [ace-users] XML service configuration no longer works with ACE/TAO 5.4.5/1.4.5
Hi Lothar > � � ACE VERSION: 5.4.5 Thanks for using the PRF form. Could you try to find the problem and send us patches to fix this? Regards, Johnny Willemsen Remedy IT Postbus 101 2650 AC Berkel en Rodenrijs The Netherlands www.theaceorb.nl / www.remedy.nl > > � � HOST MACHINE and OPERATING SYSTEM: > uname -a > Linux janus 2.6.11.4-20a-default #1 Wed Mar 23 21:52:37 UTC > 2005 x86_64 x86_64 > x86_64 GNU/Linux > > � � TARGET MACHINE and OPERATING SYSTEM, if different from HOST: > � � COMPILER NAME AND VERSION (AND PATCHLEVEL): > gcc-4.0.0 --version > gcc-4.0.0 (GCC) 4.0.0 > > � � CONTENTS OF $ACE_ROOT/ace/config.h [if you use a link to > a platform- > � � specific file, simply state which one]: > cat /opt2/linux/x86_64/ACE/1.4.4/ACE_wrappers/ace/config.h > #define ACE_HAS_XML_SVC_CONF > #include "ace/config-linux.h" > > � � CONTENTS OF > $ACE_ROOT/include/makeinclude/platform_macros.GNU (unless > � � this isn't used in this case, e.g., with Microsoft Visual C++): > cat > /opt2/linux/x86_64/ACE/1.4.4/ACE_wrappers/include/makeinclude/ > platform_macros.GNU > > # configure ACE/TAO for our use > > debug=1 > optimize=1 > exceptions=1 > threads=1 > inline=1 > rtti=1 > versioned_so=1 > interface_repo=1 > ssl=1 > > include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU ...

RE: [tao-users] RE: [ace-users] XML service configuration no longer works with ACE/TAO 5.4.5/1.4.5
Hi, > > Hi Lothar > > > > > � � ACE VERSION: 5.4.5 > > > > Thanks for using the PRF form. Could you try to find the > problem and send > > us patches to fix this? > > > > Regards, > > > > Johnny Willemsen > > I have no problem committing some time to the problem. I do > however know as > much as nothing about the ACE XML parser and it's recent > changes. It seems to > me that (some) of the recent changes might have caused the > test failures. So > if someone working actively on ACEXML gives me directions I > am willing to > spend my time investigating the problem. I can't remember that work has been done the last months so I am also amazed things broke. Nobody is actively working on it, so I think there are not much directions at this moment. Regards, Johnny Willemsen Remedy IT Postbus 101 2650 AC Berkel en Rodenrijs The Netherlands www.theaceorb.nl / www.remedy.nl On Wednesday 18 May 2005 11:01, Johnny Willemsen wrote: > Hi, > I can't remember that work has been done the last months so I am also > amazed things broke. Nobody is actively working on it, so I think there are > not much directions at this moment. Well, it did definiteley work with 5.4.4. So any changes that broke it must have been made between 5.4.4 and 5.4.5. I also read in the release email of 5.4.5 in the CIAO...

RE: [ace-users] XML service configuration no longer works with ACE/TAO 5.4.5/1.4.5
Hi, > Well, it did definiteley work with 5.4.4. So any changes that > broke it must > have been made between 5.4.4 and 5.4.5. I also read in the > release email of > 5.4.5 in the CIAO section: > > The Config Handlers have been modified to use XML parsing code > � generated by the XML Schema Compiler (XSC). �Binary releases of XSC > � can currently be found at > (http://www.dre.vanderbilt.edu/~boris/xsc), > � and a recent snapshot of the CVS repository can be found at > � (http://www.dre.vanderbilt.edu/~wotte/xsc.tbz2). �We plan > to integrate > � XSC into the CVS repo and release soon. This is CIAO only, there must be a change in ACEXML or ACE that has done this. The ACEXML library has it own changelog > I don't know if that affects only CIAO or ACE as well, but it > might be > related. > > I would be still glad if someone has any pointers/ideas where > exactely I > should spend my time efficiently in order to investigate the problem. > > P.S. > Aren't there any nightly build configuration(s) that uses XML > rather than the > old service configuration? No, so far as I know there are no builds testing this. Another option you have is pass this on to a commercial support organization and also sponsor then an autobuild with xml service config files. Regards, Johnny Willemsen Remedy IT Postbus 101 2650 AC Berkel en Rodenrijs The ...

[ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86
Hi,all ACE VERSION: 5.4.3 HOST MACHINE and OPERATING SYSTEM: Solaris10 X86 TARGET MACHINE and OPERATING SYSTEM, if different from HOST: COMPILER NAME AND VERSION (AND PATCHLEVEL): Compiler: SUN CC 5.6 Make: GNU make 3.80 CONTENTS OF $ACE_ROOT/ace/config.h [if you use a link to a platform- specific file, simply state which one]: #include "ace/config-sunos5.9.h" CONTENTS OF $ACE_ROOT/include/makeinclude/platform_macros.GNU (unless this isn't used in this case, e.g., with Microsoft ...

[ace-users] ACE 5.4 does not read entries from the services file but ACE 5.1 reads.
--0-283632325-1098944450=:75935 Content-Type: text/plain; charset=us-ascii ACE VERSION: 5.4 HOST MACHINE and OPERATING SYSTEM: Windows 2000 Professional. TARGET MACHINE and OPERATING SYSTEM, if different from HOST: Windows 2000 Professional. COMPILER NAME AND VERSION (AND PATCHLEVEL): MicroSoft VC++ 6.0 AREA/CLASS/EXAMPLE AFFECTED: Our Application program. DOES THE PROBLEM AFFECT: COMPILATION? No LINKING? No EXECUTION? Yes OTHER (please specify)? SYNOPSIS: ACE 5.4 library does not re...

[ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi,all I rebuild the ACE package according the instruction above,but get the same result. my platform_macros.GNU file has the following lines: templates = implicit include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU When i rebuild the ACE library,get the following compile errors: $ make inline=0 -j 2 -k -f GNUmakefile.ACE .... .... CC -mt -g -DSUN_CC_HAS_PVFC_BUG -I/export/home/hua/DevTools/ACE_wrappers -DACE_HAS_EXCEPTIONS -DACE_NO_INLINE -I.. -DACE_HAS_ACE_TOKEN -DACE_HAS_ACE_SVCCONF -DACE_BUILD_DLL -c -KPIC -o .shobj/OS_NS_sys_stat.o OS_NS_sys_...

Re: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86
Hi, >> ACE VERSION: 5.4.3 Thakns for using the PRF! >> HOST MACHINE and OPERATING SYSTEM: >> Solaris10 X86 We (i.e., the DOC groups at UCI/VU/WU) don't have Solaris running on an x86 box (yet). It would therefore be great if you could figure out what patches need to be applied so that ACE compiles properly on this platform. BTW, Kitty/Bala, weren't we planning on running Solaris on an AMD box at some point? Thanks, Doug >> TARGET MACHINE and OPERATING SYSTEM, if different from HOST: >> COMPIL...

[ace-users] Re: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86
Hi Jin, >> The solaris 9/10 for sparc is not the same as solaris 9/10 for >> Intel X86,although it is almost free,and the SunStudio 9 (CC >> 5.6)for sparc is not the same as SunStudio 9(CC 5.6) for Intel X86. This is yet one more reason why you'll need to do the legwork on this. Please let us know what you find out. Thanks, Doug -- Dr. Douglas C. Schmidt, Professor TEL: (615) 343-8197 Electrical Engineering and Computer Science FAX: (615) 343-7440 Vanderbilt University WEB: www.cs.wustl.edu/~schmidt/ Nashvil...

[ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi, ACE VERSION: 5.4.3 HOST MACHINE and OPERATING SYSTEM: Solaris 10 x86 TARGET MACHINE and OPERATING SYSTEM, if different from HOST: COMPILER NAME AND VERSION (AND PATCHLEVEL): Sun Studio 9 (Sun CC 5.6) CONTENTS OF $ACE_ROOT/ace/config.h [if you use a link to a platform- specific file, simply state which one]: #define ACE_HAS_STANDARD_CPP_LIBRARY 1 #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1 #include "ace/config-sunos5.9.h" CONTENTS OF $ACE_ROOT/include/makeinclude/platform_macros.GNU (unless ...

Re: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi > > ACE VERSION: 5.4.3 > > > > HOST MACHINE and OPERATING SYSTEM: > > Solaris10 X86 > > TARGET MACHINE and OPERATING SYSTEM, if different from HOST: > > COMPILER NAME AND VERSION (AND PATCHLEVEL): > > Compiler: SUN CC 5.6 ^^^^^^^^^^^^^^^^^^^^^^^^ I don't think the DOC group supports this compiler anymore.. More particularly this compiler is buggy and you may land up with unresolved symbols even if you get past this part. My $0.02. Thanks Bala > > Make: ...

RE: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
> Ok. Steve, could you maybe make clear with the build names > which builds use explicit templates? I'll try to get this clarified. > Explicit templates in TAO are known to be broken at this > moment. None of the tests at Riverace try to build TAO. -Steve ...

Re: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Johnny- > > > > ACE VERSION: 5.4.3 > > > > > > > > HOST MACHINE and OPERATING SYSTEM: > > > > Solaris10 X86 > > > > TARGET MACHINE and OPERATING SYSTEM, if different from HOST: > > > > COMPILER NAME AND VERSION (AND PATCHLEVEL): > > > > Compiler: SUN CC 5.6 > > ^^^^^^^^^^^^^^^^^^^^^^^^ > > > > I don't think the DOC group supports this compiler anymore.. More > > particularly this compiler is buggy and you may land up with ...

Re: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Johnny- > Ok, the problem is in platform_sunos5_sunc++.GNU, when a not known forte > version is found, it defaults to explicit. I am updating right now, for 4.2 > and 5.3 we default to explicit, for all others to implicit Is this necessary? I mean make it implicit by default. The explicit is not even supported, and has no chance to work cleanly. Why should we patch broken stuff. Just a thought? > Qinghuajin and other Forte 9 users, you can work around this by added the > following line to your platform_macros.GNU file. > templates = implicit This is until w...

RE: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
> > Ok, the problem is in platform_sunos5_sunc++.GNU, when a > not known forte > > version is found, it defaults to explicit. I am updating > right now, for 4.2 > > and 5.3 we default to explicit, for all others to implicit This sounds good. > Is this necessary? I mean make it implicit by default. The > explicit is > not even supported, and has no chance to work cleanly. Why > should we patch > broken stuff. Just a thought? At least for ACE 5.5, Riverace supports the Forte compiler that requires explicit. After that, we can drop it....

Re: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi Jin, >> I rebuild the ACE package according the instruction above,but get >> the same result. It doesn't look to me like you've added -DACE_HAS_X86_STAT_MACROS to the build-line as recommended by Johnny Willemsen. >> my platform_macros.GNU file has the following lines: >> >> templates = implicit >> include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU >> >> When i rebuild the ACE library,get the following compile errors: >> $ make inline=0 -j 2 -k -f GNUmakefile.ACE >> ... >&...

Re: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi Jin, Thanks for using the PRF. >> ACE VERSION: 5.4.3 >> >> HOST MACHINE and OPERATING SYSTEM: >> Solaris 10 x86 >> >> TARGET MACHINE and OPERATING SYSTEM, if different from HOST: >> COMPILER NAME AND VERSION (AND PATCHLEVEL): >> Sun Studio 9 (Sun CC 5.6) As we've mentioned several times now, we don't have this compiler installed yet on this hardware platform, so if you want things to be fixed soon I recommend you figure out what's going wrong and send us the patches. Otherwise, pl...

RE: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi, > > > I don't think the DOC group supports this compiler anymore.. More > > > particularly this compiler is buggy and you may land up with > > > unresolved > > > symbols even if you get past this part. > > > > I missed the compiler version. But, Forte 8 gives output of > SUN C++ 5.5. Ok, the problem is in platform_sunos5_sunc++.GNU, when a not known forte version is found, it defaults to explicit. I am updating right now, for 4.2 and 5.3 we default to explicit, for all others to implicit Qinghuajin and other Forte...

RE: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi, > > Ok, the problem is in platform_sunos5_sunc++.GNU, when a > not known forte > > version is found, it defaults to explicit. I am updating > right now, for 4.2 > > and 5.3 we default to explicit, for all others to implicit > > Is this necessary? I mean make it implicit by default. The > explicit is > not even supported, and has no chance to work cleanly. Why > should we patch > broken stuff. Just a thought? I have thought also about this, but maybe there are users around we don't know if. We can drop all this after x.5 is released, until that time, I just keep it there, just as we have a lot of other stuff that is probably broken. > > Qinghuajin and other Forte 9 users, you can work around > this by added the > > following line to your platform_macros.GNU file. > > templates = implicit > > This is until we release x.4.4., right? Yes, with x.4.4 this will be done correctly. Johnny ...

RE: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi Steve, > > Is this necessary? I mean make it implicit by default. The > > explicit is > > not even supported, and has no chance to work cleanly. Why > > should we patch > > broken stuff. Just a thought? > > At least for ACE 5.5, Riverace supports the Forte compiler that > requires explicit. After that, we can drop it. Ok. Steve, could you maybe make clear with the build names which builds use explicit templates? Explicit templates in TAO are known to be broken at this moment. Johnny ...

Re: [ace-users]: ACE 5.4.2 and ACE 5.4.3 compile failed on Solaris 9 x86 and Solaris 10 x86 #2
Hi Everyon: My SunBlade 150 is back up and available, and has a Sun CC license, though I don't have a lot of bandwidth to admin it. Bala know where it is and has the root password. I'll probably move it into the server room once I have a chance to talk to Dan about it, but I my be out of town this week. [dhinton@blade DRM]$ uname -a SunOS blade 5.9 Generic_112233-03 sun4u sparc SUNW,Sun-Blade-100 Solaris [dhinton@blade DRM]$ CC -V CC: Forte Developer 7 C++ 5.4 2002/03/09 [dhinton@blade DRM]$ gcc --version gcc (GCC) 3.4.2 Copyright (C) 2004 Free Software Foundation, ...

Web resources about - [tao-users] Notification Service: Call to SupplierAdmin.obtain_notification_push_consumer succeeds in ACE 5.4.7, fails in ACE 5.5 - comp.soft-sys.ace

Resources last updated: 3/5/2016 6:33:57 AM