Пример #1
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        protected int CreatePort(IDebugPortRequest2 portRequest, out IDebugPort2 port)
        {
            LoggingUtils.PrintFunction();

            try
            {
                string requestPortName;

                LoggingUtils.RequireOk(portRequest.GetPortName(out requestPortName));

                if (string.IsNullOrWhiteSpace(requestPortName))
                {
                    throw new InvalidOperationException("Invalid/empty port name");
                }

                AndroidDevice device = AndroidAdb.GetConnectedDeviceById(requestPortName);

                if (device == null)
                {
                    throw new InvalidOperationException("Failed to find a device with the name: " + requestPortName);
                }

                port = new DebuggeePort(this, device);

                return(Constants.S_OK);
            }
            catch (Exception e)
            {
                LoggingUtils.HandleException(e);

                port = null;

                return(Constants.E_FAIL);
            }
        }
Пример #2
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        protected DebuggeePort CreatePort(IDebugPortRequest2 portRequest)
        {
            AndroidAdb.Refresh();

            string requestPortName;

            LoggingUtils.RequireOk(portRequest.GetPortName(out requestPortName));

            AndroidDevice device = AndroidAdb.GetConnectedDeviceById(requestPortName);

            return(new DebuggeePort(this, device));
        }
Пример #3
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public int EnumPersistedPorts(BSTR_ARRAY PortNames, out IEnumDebugPorts2 ppEnum)
        {
            //
            // This method retrieves an object that allows enumeration of the list of persisted ports.
            //

            LoggingUtils.PrintFunction();

            try
            {
#if false
                AndroidAdb.Refresh();

                if (PortNames.dwCount > 0)
                {
                    // TODO: This conversion process is tricky, and still broken.
                    _BSTR_ARRAY portNames = (_BSTR_ARRAY)Marshal.PtrToStructure(PortNames.Members, typeof(_BSTR_ARRAY));

                    for (int i = 0; i < PortNames.dwCount; ++i)
                    {
                        IDebugPort2 ppPort;

                        AndroidDevice device = AndroidAdb.GetConnectedDeviceById(portNames.Members [i]);

                        LoggingUtils.RequireOk(AddPort(new DevicePortRequest(device), out ppPort));
                    }
                }
#endif

                LoggingUtils.RequireOk(EnumPorts(out ppEnum));

                return(Constants.S_OK);
            }
            catch (Exception e)
            {
                LoggingUtils.HandleException(e);

                ppEnum = null;

                return(Constants.E_FAIL);
            }
        }