Changeset 30963 in vbox
- Timestamp:
- Jul 21, 2010 1:46:23 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/idl/VirtualBox.xidl
r30956 r30963 679 679 The machine is about to be teleported to a different host or process. 680 680 It is possible to pause a machine in this state, but it will go to the 681 <link to="MachineState::PausedTeleporting"/>state and it will not be681 @c TeleportingPausedVM state and it will not be 682 682 possible to resume it again unless the teleportation fails. 683 683 </desc> … … 688 688 some of the runtime configuration options are inaccessible. Also, if 689 689 paused while in this state it will transition to 690 <link to="MachineState::Saving"/>and it will not be resume the690 @c Saving and it will not be resume the 691 691 execution until the snapshot operation has completed. 692 692 </desc> … … 720 720 The machine is being teleported to another host or process, but it is 721 721 not running. This is the paused variant of the 722 <link to="MachineState::Teleporting"/>state.722 @c state. 723 723 </desc> 724 724 </const> … … 2232 2232 <note> 2233 2233 On success, the 2234 <link to="IExtraDataChanged "/> notification2234 <link to="IExtraDataChangedEvent"/> notification 2235 2235 is called to inform all registered listeners about a successful data 2236 2236 change. … … 3940 3940 The only possible action you can perform on an inaccessible 3941 3941 machine is to unregister it using the 3942 <link to=" #unregisterMachine"/> call (or, to check3942 <link to="IMachine::unregister"/> call (or, to check 3943 3943 for the accessibility state once more by querying this 3944 3944 property). … … 4211 4211 by <link to="IVirtualBox::openMachine"/> but not 4212 4212 yet registered, or on unregistered machines after calling 4213 <link to=" #unregisterMachine"/>. For all other4213 <link to="IMachine::unregister"/>. For all other 4214 4214 cases, the settings can never be modified. 4215 4215 </note> … … 4289 4289 Current snapshot of this machine. This is @c null if the machine 4290 4290 currently has no snapshots. If it is not @c null, then it was 4291 set by one of <link to=" Console::takeSnapshot" />,4292 <link to=" Console::deleteSnapshot" />4293 or <link to=" Console::restoreSnapshot" />, depending on which4291 set by one of <link to="IConsole::takeSnapshot" />, 4292 <link to="IConsole::deleteSnapshot" /> 4293 or <link to="IConsole::restoreSnapshot" />, depending on which 4294 4294 was called last. See <link to="ISnapshot"/> for details. 4295 4295 </desc> … … 4504 4504 This method is intended for managing storage devices in general (it works 4505 4505 for both fixed and removable media). For storage devices supporting removable 4506 media (such as DVDs and floppies), you can also use <link to="IM edium::mountMedium"/>4506 media (such as DVDs and floppies), you can also use <link to="IMachine::mountMedium"/> 4507 4507 for changing the media while the machine is running. 4508 4508 … … 5170 5170 created by <link to="IVirtualBox::createMachine"/> but not 5171 5171 yet registered, or on unregistered machines after calling 5172 <link to=" #unregisterMachine"/>.5172 <link to="IMachine::unregister"/>. 5173 5173 </note> 5174 5174 … … 5197 5197 opened by <link to="IVirtualBox::openMachine"/> but not 5198 5198 yet registered, or on unregistered machines after calling 5199 <link to=" #unregisterMachine"/>.5199 <link to="IMachine::unregister"/>. 5200 5200 </note> 5201 5201 … … 5271 5271 opened by <link to="IVirtualBox::openMachine"/> but not 5272 5272 yet registered, or on unregistered machines after calling 5273 <link to=" #unregisterMachine"/>.5273 <link to="IMachine::unregister"/>. 5274 5274 </note> 5275 5275 <note> … … 7088 7088 <param name="name" type="wstring" dir="in"> 7089 7089 <desc> 7090 Filter name. See <link to="IHostUSBDeviceFilter::name"/> 7091 for more info. 7090 Filter name. See <link to="IUSBDeviceFilter::name"/> for more information. 7092 7091 </desc> 7093 7092 </param> … … 7473 7472 7474 7473 The list of supported medium formats may be obtained by the 7475 <link to="#medi aFormats"/> call. Note that the default medium7474 <link to="#mediumFormats"/> call. Note that the default medium 7476 7475 format must have a capability to create differencing media; 7477 7476 otherwise operations that create media implicitly may fail … … 7487 7486 7488 7487 <see> 7489 <link to="#medi aFormats"/>,7488 <link to="#mediumFormats"/>, 7490 7489 <link to="IMediumFormat::id"/>, 7491 7490 <link to="IVirtualBox::createHardDisk"/> … … 9159 9158 For media whose state is <link to="#state"/> is <link 9160 9159 to="MediumState_Inaccessible"/>, the value of this property is the 9161 last known logical size. For <link to="Medium aState_NotCreated"/>9160 last known logical size. For <link to="MediumState_NotCreated"/> 9162 9161 media, the returned value is zero. 9163 9162 </note> … … 10041 10040 10042 10041 The list of all supported medium formats can be obtained using 10043 <link to="ISystemProperties::medi aFormats"/>.10042 <link to="ISystemProperties::mediumFormats"/>. 10044 10043 10045 10044 <see>IMedium</see> … … 12062 12061 12063 12062 <note> 12064 The <link to=" #remote"/> attribute is ignored by this type of12063 The <link to="IUSBDeviceFilter::remote"/> attribute is ignored by this type of 12065 12064 filters, because it makes sense only for 12066 12065 <link to="IUSBController::deviceFilters">machine USB filters</link>. … … 13762 13761 <desc> 13763 13762 Type of an event. 13763 See <link to="IEvent" /> for an introduction to VirtualBox event handling. 13764 13764 </desc> 13765 13765 … … 13977 13977 <desc> 13978 13978 Event source. Generally, any object which could generate events can be an event source, 13979 or aggregate one. To simplify using one-way protocols, such as webservices running on top of HTTP(S), 13980 event source can work with listeners in either active or passive mode. In active mode it's up to 13981 IEventSource implementation to call handleEvent(), in passive mode event source keeps track of 13982 pending events for each listener and returns available events on demand. 13979 or aggregate one. To simplify using one-way protocols such as webservices running on top of HTTP(S), 13980 an event source can work with listeners in either active or passive mode. In active mode it is up to 13981 the IEventSource implementation to call <link to="IEventListener::handleEvent" />, in passive mode the 13982 event source keeps track of pending events for each listener and returns available events on demand. 13983 13984 See <link to="IEvent" /> for an introduction to VirtualBox event handling. 13983 13985 </desc> 13984 13986 13985 13987 <method name="createListener"> 13986 13988 <desc> 13987 Creates new listener object, useful for passive mode. 13988 <see>IEventListener</see> 13989 Creates a new listener object, useful for passive mode. 13989 13990 </desc> 13990 13991 <param name="listener" type="IEventListener" dir="return"/> … … 14006 14007 <param name="active" type="boolean" dir="in"> 14007 14008 <desc> 14008 Which mode this listener shall function in. 14009 If in active mode, IEventListener's handleEvent() is called directly. 14010 If in passive mode - for this IEventListener internal event queue is created. 14011 When next event comes, it's added to queues for all interested registered passive 14012 listeners. It's up to external code to call listener's handleEvent() then. 14013 When done with event, it shall call source's eventComplete(). 14009 Which mode this listener is operating in. 14010 In active mode, <link to="IEventListener::handleEvent" /> is called directly. 14011 In passive mode, an internal event queue is created for this this IEventListener. 14012 For each event coming in, it is added to queues for all interested registered passive 14013 listeners. It is then up to the external code to call the listener's 14014 <link to="IEventListener::handleEvent" /> method. When done with an event, the 14015 external code must call eventComplete(). 14014 14016 </desc> 14015 14017 </param> … … 14047 14049 <desc> 14048 14050 Get events from this peer's event queue (for passive mode). Consumer's implementation 14049 must call listener's handleEvent() once event is available.14051 must call <link to="IEventListener::handleEvent" /> once the event is available. 14050 14052 </desc> 14051 14053 <param name="listener" type="IEventListener" dir="in"> … … 14082 14084 > 14083 14085 <desc> 14084 Event listener. Event listener can work in either active, or passive mode, depending on the way it's registered. 14086 Event listener. An event listener can work in either active or passive mode, depending on the way 14087 it was registered. 14088 See <link to="IEvent" /> for an introduction to VirtualBox event handling. 14085 14089 </desc> 14086 14090 … … 14103 14107 > 14104 14108 <desc> 14105 Generic event. Usually events implements some of IEvent subinterfaces, so 14106 standard use pattern is to check 'type' attribute and downcast (with QueryInterface()) 14107 appropraitely. 14109 Abstract parent interface for VirtualBox events. Actual events will typically implement 14110 a more specific interface which derives from this (see below). 14111 14112 <b>Introduction to VirtualBox events</b> 14113 14114 Starting with VirtualBox 3.3, support for generic events was introduced. 14115 It provides a uniform mechanism to register for and consume specific events. 14116 Previously, several callback interfaces were used which means that clients 14117 were called for each event in the interface. Also, this mechanism was not 14118 compatible with scripting languages, local Java bindings and remote web 14119 services as they do not support callbacks. 14120 14121 To overcome those issues, the notion of events and listeners was introduced. 14122 Generally speaking, an event represents the information that something happened, 14123 while a listener represents an entity that is interested in certain events. 14124 In order for this to work with unidirectional protocols (i.e. web services), 14125 the concept of passive and active listeners is used. 14126 14127 Event consumers can register themselves as listeners, providing an array of 14128 events they are interested in. When an event triggers, the listener is 14129 notified about the event. The exact mechanism of the notification 14130 depends on the way the listener was registered - as an active or passive listener: 14131 14132 <ul> 14133 <li>An active listener is very similar to a traditional callback - i.e. it is a 14134 function invoked by the API implementation. 14135 The main difference here is that there's an event object notion, not individual 14136 callback parameters.</li> 14137 14138 <li>Passive listeners are somewhat trickier: internally the 14139 <link to="IEventSource" /> implementation maintains an event queue for each passive 14140 listener, and newly arrived events are put in this queue. When the listener calls 14141 <link to="IEventSource::getEvent"/>, all elements from its internal event queue are 14142 returned. When the client completes processing of an event, the 14143 <link to="IEventSource::eventProcessed" /> function must be called, acknowledging 14144 that the events were processed. It supports implementing waitable events. On passive 14145 listener unregistration, all events from its queue are auto-acknowledged.</li> 14146 </ul> 14147 14148 Waitable events are useful in situations where the event generator wants to track 14149 delivery or a party wants to wait until all listeners have completed the event. A 14150 typical example would be a vetoable event where a listeners might put a veto on 14151 a certain action, and thus the event producer has to make sure that all listeners have 14152 processed the event and not vetoed before taking the action. 14153 14154 A given event may have both passive and active listeners at the same time. 14155 14156 <b>Using events</b> 14157 14158 Any VirtualBox object capable of producing externally visible events provides an 14159 @c eventSource read-only attribute, which is of the type <link to="IEventSource" />. 14160 This event source object is notified by VirtualBox once something has happened, so 14161 consumers may register event listeners with this event source. To register a listener, 14162 an object implementing the <link to="IEventListener" /> interface must be provided. 14163 For active listeners, such an object is typically created by the consumer, while for 14164 passive listeners <link to="IEventSource::createListener" /> should be used. Please 14165 note that a listener created with @c CreateListener() must not be used as an active listener. 14166 14167 Once created, the listener must be registered to listen for the desired events, providing 14168 an array of <link to="VBoxEventType" /> enums. Those elements can either be the individual 14169 event IDs or wildcards matching multiple event IDs. 14170 14171 After registration, the callback's <link to="IEventListener::handleEvent" /> method is 14172 called automatically when the event is triggered, while passive listeners have to call 14173 <link to="IEventSource::getEvent" /> and <link to="IEventSource::eventProcessed" /> in 14174 an event processing loop. 14175 14176 This interface (IEvent) is an abstract parent interface for all such VirtualBox events 14177 coming in. As a result, the standard use pattern inside <link to="IEventListener::handleEvent" /> 14178 or the event processing loop is to check the <link to="#type" /> attribute of the event and 14179 then cast to the appropriate specific interface using @c QueryInterface(). 14108 14180 </desc> 14109 14181 … … 14580 14652 <desc> 14581 14653 Notification when the status of the VRDP server changes. Interested callees 14582 should use <link to="IConsole:: RemoteDisplayInfo">IRemoteDisplayInfo</link>14654 should use <link to="IConsole::remoteDisplayInfo">IRemoteDisplayInfo</link> 14583 14655 attributes to find out what is the current status. 14584 14656 </desc>
Note:
See TracChangeset
for help on using the changeset viewer.