Changeset 30310 in vbox for trunk/src/VBox/Main/idl
- Timestamp:
- Jun 18, 2010 1:00:09 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 62858
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/idl/VirtualBox.xidl
r30207 r30310 14546 14546 </interface> 14547 14547 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 14548 14821 <module name="VBoxSVC" context="LocalServer"> 14549 14822 <class name="VirtualBox" uuid="B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F"
Note:
See TracChangeset
for help on using the changeset viewer.