VirtualBox

Changeset 30310 in vbox for trunk/src/VBox/Main/idl


Ignore:
Timestamp:
Jun 18, 2010 1:00:09 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
62858
Message:

Main: some events work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r30207 r30310  
    1454614546  </interface>
    1454714547
     14548  <enum
     14549     name="VBoxEventType"
     14550     uuid="dc336827-bc9b-4acc-8880-691f6943bb8b">
     14551
     14552    <desc>
     14553      Type of an event.
     14554    </desc>
     14555
     14556    <const name="Invalid" value="0">
     14557      <desc>
     14558        Invalid event.
     14559      </desc>
     14560    </const>
     14561
     14562    <const name="Any" value="1">
     14563      <desc>
     14564        Wildcard for all events. Events of this type are never delivered, and only used in
     14565        registerListener() call to simplify registration.
     14566      </desc>
     14567    </const>
     14568
     14569    <const name="MachineEvent" value="2">
     14570      <desc>
     14571        Wildcard for all machine events. Events of this type are never delivered, and only used in
     14572        registerListener() call to simplify registration.
     14573      </desc>
     14574    </const>
     14575
     14576    <const name="OnMachineStateChange" value="32">
     14577      <desc>
     14578        <see>IVirtualBoxCallback::onMachineStateChange</see>
     14579      </desc>
     14580    </const>
     14581    <const name="OnMachineDataChange" value="33">
     14582      <desc>
     14583        <see>IVirtualBoxCallback::onMachineDataChange</see>
     14584      </desc>
     14585    </const>
     14586    <const name="OnExtraDataChange" value="34">
     14587      <desc>
     14588        <see>IVirtualBoxCallback::onExtraDataChange</see>
     14589      </desc>
     14590    </const>
     14591
     14592  </enum>
     14593
     14594  <interface
     14595     name="IEventSource" extends="$unknown"
     14596     uuid="3c670618-f727-4fe9-94d2-8243f489a033"
     14597     wsmap="managed"
     14598     >
     14599    <desc>
     14600      Event source. Generally, any object which could generate events can be an event source,
     14601      or aggregate one. To simplify using one-way protocols, such as webservices running on top of HTTP(S),
     14602      event source can work with listeners in either active or passive mode. In active mode it's up to
     14603      IEventSource implementation to call handleEvent(), in passive mode event source keeps track of
     14604      pending events for each listener and returns available events on demand.
     14605    </desc>
     14606
     14607    <method name="registerListener">
     14608      <desc>
     14609        Register an event listener.
     14610      </desc>
     14611      <param name="listener" type="IEventListener" dir="in">
     14612        <desc>Listener to register.</desc>
     14613      </param>
     14614      <param name="interesting" type="VBoxEventType" dir="in" safearray="yes">
     14615        <desc>
     14616          Event types listener is interested in. One can use wildcards like Any -
     14617          <see>VBoxEventType::Any</see> to specify wildcards.
     14618        </desc>
     14619      </param>
     14620      <param name="active" type="boolean" dir="in">
     14621        <desc>
     14622          Which mode this listener shall function in.
     14623          If in active mode, IEventListener's handleEvent() is called directly.
     14624          If in passive mode - for this IEventListener internal event queue is created.
     14625          When next event comes, it's added to queues for all interested registered passive
     14626          listeners. It's up to external code to call listener's handleEvent() then.
     14627          When done with event, it shall call source's eventComplete().
     14628        </desc>
     14629      </param>
     14630    </method>
     14631
     14632    <method name="unregisterListener">
     14633      <desc>
     14634        Unregister an event listener. If listener is passive, and some waitable events are still
     14635        in queue they are marked as processed automatically.
     14636      </desc>
     14637      <param name="listener" type="IEventListener" dir="in">
     14638        <desc>Listener to unregister.</desc>
     14639      </param>
     14640    </method>
     14641
     14642    <method name="fireEvent">
     14643      <desc>
     14644        Fire an event for this source.
     14645      </desc>
     14646      <param name="event" type="IEvent" dir="in">
     14647        <desc>Event to deliver.</desc>
     14648      </param>
     14649      <param name="timeout" type="long" dir="in">
     14650        <desc>
     14651          Timeout to wait until event processed in ms (if event is waitable),
     14652          0 - no wait, -1 - forever until delivered.
     14653        </desc>
     14654      </param>
     14655      <param name="result" type="boolean" dir="return">
     14656        <desc>true if an event was delivered to all targets, or is non-waitable.</desc>
     14657      </param>
     14658    </method>
     14659
     14660    <method name="getEvent">
     14661      <desc>
     14662        Get events from this peer's event queue (for passive mode). Consumer's implementation
     14663        must call listener's handleEvent() once event is available.
     14664      </desc>
     14665      <param name="listener" type="IEventListener" dir="in">
     14666        <desc>Which listener get data for.</desc>
     14667      </param>
     14668      <param name="timeout" type="long" dir="in">
     14669        <desc>Timeout to wait until event available in ms, 0 - no wait, -1 - forever until available.</desc>
     14670      </param>
     14671      <param name="event" type="IEvent" dir="return">
     14672        <desc>Event retrieved, or null if none available.</desc>
     14673      </param>
     14674    </method>
     14675
     14676    <method name="eventProcessed">
     14677      <desc>
     14678        Must be called for waitable events when particular listener finished event processing.
     14679        When all listeners who this event was aimed to call eventProcessed() event source
     14680        can call event's setProcessed().
     14681      </desc>
     14682      <param name="listener" type="IEventListener" dir="in">
     14683        <desc>Which listener processed event.</desc>
     14684      </param>
     14685      <param name="event" type="IEvent" dir="in">
     14686        <desc>Which event.</desc>
     14687      </param>
     14688    </method>
     14689
     14690  </interface>
     14691
     14692  <interface
     14693     name="IEventListener" extends="$unknown"
     14694     uuid="67099191-32e7-4f6c-85ee-422304c71b90"
     14695     wsmap="managed"
     14696     >
     14697    <desc>
     14698      Event listener. Event listener can work in either active, or passive mode, depending on the way it's registered.
     14699    </desc>
     14700
     14701    <method name="handleEvent">
     14702      <desc>
     14703        Handle event callback (called directly by IEventSource in active mode, or by event processor thread
     14704        in passive mode).
     14705      </desc>
     14706      <param name="event" type="IEvent" dir="in">
     14707        <desc>Event available.</desc>
     14708      </param>
     14709    </method>
     14710
     14711  </interface>
     14712
     14713  <interface
     14714     name="IEvent" extends="$unknown"
     14715     uuid="0ca2adba-8f30-401b-a8cd-fe31dbe839c0"
     14716     wsmap="managed"
     14717     >
     14718    <desc>Generic event, aiming to replace callbacks mechanism.</desc>
     14719
     14720    <attribute name="type" readonly="yes" type="VBoxEventType">
     14721      <desc>
     14722        Event type.
     14723      </desc>
     14724    </attribute>
     14725
     14726    <attribute name="source" readonly="yes" type="IEventSource">
     14727      <desc>
     14728        Source of this event.
     14729      </desc>
     14730    </attribute>
     14731
     14732    <attribute name="waitable" readonly="yes" type="boolean">
     14733      <desc>
     14734        If we can wait for this event being processed. If false, waitProcessed() returns immediately,
     14735        and setProcessed() doesn't make sense. Non-waitable events are generally better performing,
     14736        as no additional overhead associated with waitability imposed.
     14737        Waitable events are needed when some need to be able to wait for particular event processed,
     14738        for example for vetoable changes, or if event refers to some resource which need to be kept immutable
     14739        until all consumers confirmed events.
     14740      </desc>
     14741    </attribute>
     14742
     14743    <method name="setProcessed">
     14744      <desc>
     14745         Called to mark the moment when this event is considered processed.
     14746      </desc>
     14747    </method>
     14748
     14749    <method name="waitProcessed">
     14750      <desc>
     14751        Wait until time outs, or this event is processed. Event must be waitable for this operation to have
     14752        described semantics, for non-waitable returns true immediately.
     14753      </desc>
     14754      <param name="timeout" type="long" dir="in">
     14755        <desc>Timeout to wait until event processed in ms, 0 - no wait, -1 - forever until processed.</desc>
     14756      </param>
     14757      <param name="result" type="boolean" dir="return">
     14758        <desc>If this event was processed before timeout.</desc>
     14759      </param>
     14760    </method>
     14761  </interface>
     14762
     14763  <interface
     14764      name="IMachineStateChangeEvent" extends="IEvent"
     14765      uuid="5748F794-48DF-438D-85EB-98FFD70D18C9"
     14766      wsmap="managed"
     14767      >
     14768    <desc>Machine state change event.</desc>
     14769
     14770    <attribute name="machineId" readonly="yes" type="uuid" mod="string">
     14771      <desc>ID of the machine this event relates to.</desc>
     14772    </attribute>
     14773
     14774     <attribute name="state" readonly="yes" type="MachineState">
     14775       <desc>New execution state.</desc>
     14776     </attribute>
     14777  </interface>
     14778
     14779  <interface
     14780      name="IMachineDataChangeEvent" extends="IEvent"
     14781      uuid="6AA70A6C-0DCA-4810-8C5C-457B278E3D49"
     14782      wsmap="managed"
     14783      >
     14784    <desc>
     14785      Any of the settings of the given machine has changed.
     14786    </desc>
     14787
     14788    <attribute name="machineId" readonly="yes" type="uuid" mod="string">
     14789      <desc>ID of the machine this event relates to.</desc>
     14790    </attribute>
     14791
     14792  </interface>
     14793
     14794  <interface
     14795      name="IExtraDataChangeEvent" extends="IEvent"
     14796      uuid="024F00CE-6E0B-492A-A8D0-968472A94DC7"
     14797      wsmap="managed"
     14798      >
     14799    <desc>
     14800      Notification when machine specific or global extra data
     14801      has changed.
     14802    </desc>
     14803    <attribute name="machineId" type="uuid" mod="string" readonly="yes">
     14804      <desc>
     14805        ID of the machine this event relates to.
     14806        Null for global extra data changes.
     14807      </desc>
     14808    </attribute>
     14809    <attribute name="key" type="wstring" readonly="yes">
     14810      <desc>
     14811        Extra data key that has changed.
     14812      </desc>
     14813    </attribute>
     14814    <attribute name="value" type="wstring" readonly="yes">
     14815      <desc>
     14816        Extra data value for the given key.
     14817      </desc>
     14818    </attribute>
     14819  </interface>
     14820
    1454814821  <module name="VBoxSVC" context="LocalServer">
    1454914822    <class name="VirtualBox" uuid="B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F"
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette