#include <acsncSupplier.h>
Inheritance diagram for nc::Supplier:
Public Member Functions | |
Supplier (const char *channelName, acscomponent::ACSComponentImpl *component) | |
Supplier (const char *channelName, CORBA::ORB_ptr orb_mp, acscomponent::ACSComponentImpl *component) | |
Supplier (const char *channelName, int argc, char *argv[], acscomponent::ACSComponentImpl *component) | |
virtual void | disconnect () |
void | publishEvent (const CosNotification::StructuredEvent &event) |
virtual void | publishEvent (const CORBA::Any &eventData) |
virtual void | disconnect_structured_push_supplier () |
virtual void | subscription_change (const CosNotification::EventTypeSeq &eventsAdded, const CosNotification::EventTypeSeq &eventsRemoved) |
Protected Member Functions | |
virtual | ~Supplier () |
void | populateHeader (CosNotification::StructuredEvent &event) |
virtual void | populateHeader (const CORBA::Any &any) |
void | setEventType (const char *) |
void | createSupplier () |
void | destroyNotificationChannel () |
void | init (CORBA::ORB_ptr orb) |
Protected Attributes | |
CosNotifyChannelAdmin::SupplierAdmin_var | SupplierAdmin_m |
CosNotifyChannelAdmin::StructuredProxyPushConsumer_var | proxyConsumer_m |
CosNotifyComm::StructuredPushSupplier_var | reference_m |
acscomponent::ACSComponentImpl * | component_mp |
char * | typeName_mp |
unsigned long long | count_m |
Logging::RepeatGuardLogger< Logging::BaseLog > | guardbl |
CosNotification::StructuredEvent | event_m |
Private Member Functions | |
void | operator= (const Supplier &) |
Supplier (const Supplier &) |
For those who "know what they're doing", Supplier can be used directly in lieu of the SimpleSupplier class to publish entire CORBA structured events (see the publishEvent() methods). This functionality should be used with extreme caution if used at all.
TODO:
|
Standard constructor - used within a component. If this constructor is used, we use container's ORB to access Manager and then retrieve a reference to the Naming Service.
|
|
Generic constructor. This constructor is provided for API users who create their own ORB that has a reference to the Naming Service. SimpleClient provides such access to an ORB.
|
|
Optional constructor - used outside of ACS. This constructor is very resource intensive (it spawns it's own ORB) and should only to be utilized when there is a reason not to use Manager to get at the Naming Service. If argc==0, default parameters (i.e., environment variables) specify how to get to the Naming Service.
|
|
Destructor is protected. |
|
ALMA C++ coding standards state copy constructors should be disabled. |
|
Utility method. Create the Supplier Admin; create & init the supplier.
|
|
Utility method. Destroys a notification channel. ONLY USE THIS METHOD IF YOU KNOW FOR CERTAIN THERE IS ONLY ONE SUPPLIER FOR THE CHANNEL!!! Use with extreme caution! This method will most likely become deprecated in future releases of ACS!
|
|
Called to disconnect the Supplier from the channel. Must be used instead of deleting the object.
Reimplemented in nc::RTSupplier.
|
|
Do not under any circumstances invoke this method from your code! ACE/TAO (implementor of the Notification Service) is notorious about changing the behaviour of the underlying NC CORBA objects with each release. As of ACS 3.1, this method disconnects all consumers from the channel!
|
|
Utility method. Initialization method where code common to all constructors is kept.
|
|
ALMA C++ coding standards state assignment operators should be disabled. |
|
Extracts the event type name from the any parameter and encodes that into the current structured event to be published. So if any contains a FRIDGE::temperatureDataBlockEvent structure, "temperatureDataBlock" is encoded into the type_name field of event_m.
|
|
Fills the fixed header with Event Description information.
|
|
Call this to publish a CORBA Any and implicitly have the structured event "filled-out". It actually makes a call to the push_structured_event() method of consumers.
|
|
Call this to publish an entire CORBA structured event. This is a blocking call which does not return control until the event has arrived whereever the Notification Service is actually running. Makes a call to the push_structured_event() method of consumers.
|
|
Sets the type_name field in the structured event. Method should probably be removed sometime in the near future but what impact will this have?
|
|
Called by supplier's consumer proxy object to inform us of changes to the subscription information by the notification channel's consumers. Essentially, this is called each time a consumer subscribes to the NC or disconnects. Do not call it from your code!
|
|
This is a reference to the component this supplier is contained within. The Executive subsystem has requested that the component's name be packed into structured events and that is the reason we need this. |
|
The total number of events sent from this particular supplier. |
|
A single structured event. This was taken out of the publishEvent() method for a small performance gain. |
|
|
|
The proxy consumer object used by supplier to push events onto the NC |
|
Handle destruction cleanly using our own CORBA reference. |
|
Supplier Admin object is responsible for creating & managing proxy consumers w/ a common set of QoS property settings & filter objects. |
|
The so-called "type" of the event being sent. |