Previous Table of Contents Next


22.10.1 Basic Type-Specific Poller


   For each interface, the IDL compiler generates a type-specific Poller value. A Poller is created by the ORB for each asynchronous invocation that uses the polling model operations. The name of the basic type-specific Poller is AMI_<ifaceName>Poller, where ifaceName is the unqualified name of the interface for which the Poller is being generated. If the interface ifaceName derives from some other IDL interface baseName, then the Poller for ifaceName is derived from AMI_<baseName>Poller, but if it does not, then it is derived from Messaging::Poller. If this name conflicts with definitions in the original IDL, additional AMI_ prefixes are prepended before <ifaceName> until a unique valuetype name is generated (such as “AMI_AMI_FooPoller? for interface Foo).

   22.10.1.1 Poller operations for Interface operations

   For each operation declared in the interface, a polling operation with the following signature is declared:

   The remaining arguments, if any, are in order (all “out? parameters):

   When a polling call is made, the operation returns in one of the following ways:

   22.10.1.2 Poller operations for Interface attributes

   For each attribute declared in the interface, a polling operation with the following signature is declared. Setter polling operations are only generated for attributes that are not declared readonly: return type void followed by the name of the generated operation, which to distinguish between the getter and setter operations for an attribute is given by (respectively):

   For the getter operation only

   An additional argument out <attrType> ami_return_val where attrType is the type of the attribute.

   The set operation takes no additional arguments.

   Raises (CORBA::WrongTransaction) - If the deferred synchronous model is being used, the poll raises the CORBA::WrongTransaction user exception if the request has an associated transaction context, and the polling thread either has a null transaction context or a non-null transaction context that differs from that of the request.

   When a polling call is made, the operation returns in one of the following ways: