Exemple #1
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="isAdminOverride">
        /// Optionally overrides detection of elevated permissions enabled for the
        /// current process.  This is used for testing.
        /// </param>
        /// <param name="socketPath">
        /// Optionally overrides the default desktop service unix socket path.  This
        /// is used for testing purposes.
        /// </param>
        public HyperVProxy(bool?isAdminOverride = null, string socketPath = null)
        {
            if (isAdminOverride.HasValue)
            {
                isAdmin = isAdminOverride.Value;
            }
            else
            {
                isAdmin = NeonHelper.HasElevatedPermissions;
            }

            if (isAdmin)
            {
                hypervClient = new HyperVClient();
            }
            else
            {
                grpcChannel    = NeonGrpcServices.CreateDesktopServiceChannel(socketPath);
                desktopService = grpcChannel.CreateGrpcService <IGrpcDesktopService>();
            }
        }
Exemple #2
0
        /// <inheritdoc/>
        public void Dispose()
        {
            if (isDisposed)
            {
                return;
            }

            isDisposed = true;

            if (isAdmin)
            {
                hypervClient.Dispose();
                hypervClient = null;
            }
            else
            {
                grpcChannel.Dispose();

                grpcChannel    = null;
                desktopService = null;
            }
        }