VirtualBox

Changeset 29185 in vbox for trunk/src/libs/xpcom18a4/java


Ignore:
Timestamp:
May 7, 2010 9:03:34 AM (15 years ago)
Author:
vboxsync
Message:

java bridge: callbacks (not yet works due to DCOM issues)

Location:
trunk/src/libs/xpcom18a4/java
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/java/src/nsJavaXPCOMGlue.cpp

    r29140 r29185  
    158158};
    159159
    160 NS_IMPL_ISUPPORTS1(nsXPTCJStub, nsISupports);
     160NS_IMPL_ADDREF(nsXPTCJStub)
     161NS_IMPL_RELEASE(nsXPTCJStub)
     162
     163NS_IMETHODIMP nsXPTCJStub::QueryInterface(REFNSIID aIID, void** aInstancePtr)
     164{
     165    return mOuter->QueryInterface(aIID, aInstancePtr);
     166}
    161167
    162168nsresult
  • trunk/src/libs/xpcom18a4/java/src/org/virtualbox/VirtualBoxManager.java

    r29140 r29185  
    114114        return true;
    115115    }
     116
     117    public Mozilla getMozilla()
     118    {
     119        return mozilla;
     120    }
     121
     122    public void waitForEvents(long tmo)
     123    {
     124        mozilla.waitForEvents(tmo);
     125    }
     126
     127    public ILocalOwner makeWrapper(nsISupports obj)
     128    {
     129
     130       ILocalOwner lo = (ILocalOwner) this.componentManager
     131               .createInstanceByContractID("@virtualbox.org/CallbackWrapper;1",
     132                                           null,
     133                                           ILocalOwner.ILOCALOWNER_IID);
     134       lo.setLocalObject(obj);
     135       return lo;
     136    }
     137
     138    public IVirtualBoxCallback makeVirtualBoxCallback(IVirtualBoxCallback obj)
     139    {
     140       ILocalOwner lo = makeWrapper(obj);
     141       return (IVirtualBoxCallback)lo.queryInterface(IVirtualBoxCallback.IVIRTUALBOXCALLBACK_IID);
     142    }
    116143}
  • trunk/src/libs/xpcom18a4/java/tests/TestVBox.java

    r29183 r29185  
    3434        /** @todo long -> MachineState */
    3535        public void onMachineStateChange(String machineId, long state) { System.out.println("onMachineStateChange -- VM: " + machineId + ", state: " + state); };
    36        
     36
    3737        /** @todo ugly reimplementation of queryInterface, should have base class to derive from */
    3838        public nsISupports queryInterface(String iid) { return org.mozilla.xpcom.Mozilla.queryInterface(this, iid); }
    3939    };
    40        
    41        
     40
     41
    4242    public static void main(String[] args)
    4343    {
     
    6868            }
    6969
    70 //            VBoxCallbacks vboxCallbacks = new VBoxCallbacks();
    71 //            vbox.registerCallback(vboxCallbacks);
     70            VBoxCallbacks vboxCallbacks = new VBoxCallbacks();
     71            vbox.registerCallback(mgr.makeVirtualBoxCallback(vboxCallbacks));
    7272
    7373            /* do something silly, start the first VM in the list */
     
    7676            if (mgr.startVm(m, 7000))
    7777            {
    78                 System.out.println("started, presss any key...");
    79                 int ch = System.in.read();
     78                VBoxCbImpl cb = new VBoxCbImpl();
     79                vbox.registerCallback(mgr.makeVirtualBoxCallback(cb));
     80
     81                if (false)
     82                {
     83                    System.out.println("started, presss any key...");
     84                    int ch = System.in.read();
     85                } else {
     86                    while (true)
     87                    {
     88                        mgr.waitForEvents(500);
     89                    }
     90                }
    8091            }
    8192            else
     
    8394                System.out.println("cannot start machine "+m);
    8495            }
    85            
    86 //            vbox.unregisterCallback(vboxCallbacks);
     96
     97            vbox.unregisterCallback(vboxCallbacks);
    8798        }
    8899        catch (Throwable e)
Note: See TracChangeset for help on using the changeset viewer.

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