An event source object is responsible for channeling the emission
of signals on an object to the appropriate attached listeners.
The API is extremely simple and allows implementations to notify
their listeners of a new event occuring.
To notify a listener, you need to construct a textual string,
this is done by the bonobo_event functions
( see BonoboListener ) ':' delimiting the fields. It is reccommended
that the IDL module path of the interface be used as the first
part of the string. This is because many interfaces can be aggregated
together and need to share the same event namespace without conflicts.
So for example the bonobo property bag notification code
uses the IDL path "Bonobo/Property" the "change" kind and sets the
sub-type to the property name:
NB. it is reccommended that you make it clear that the event
structure is intended for use with the BonoboEventSource /
BonoboListener by naming it XYZEvent, ie. with the 'Event'
suffix.
Creates a new BonoboEventSource object. Typically this
object will be exposed to clients through CORBA and they
will register and unregister functions to be notified
of events that this EventSource generates.
This will notify all clients that have registered with this EventSource
(through the addListener or addListenerWithMask methods) of the availability
of the event named event_name. The value CORBA::any value is passed to
all listeners.
event_name can not contain comma separators, as commas are used to
separate the various event names.
event_source :
the Event Source that will emit the event.
event_name :
Name of the event being emitted
value :
A CORBA_any value that contains the data that is passed to interested clients
opt_ev :
A CORBA_Environment where a failure code can be returned, can be NULL.