Exemple #1
0
        /// <summary>
        /// Sends a request to the java process with one of the invoke options.
        /// Receives the response from the java process and it encapsulates it in JavaObject.
        /// Throws an exception if the result state is not Successful.
        /// </summary>
        /// <param name="requestType"></param>
        /// <param name="ct"></param>
        /// <param name="className"></param>
        /// <param name="methodName"></param>
        /// <param name="fieldName"></param>
        /// <param name="javaObject"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        private async Task <JavaObject> SendJavaRequest(RequestType requestType, CancellationToken ct,
                                                        string className         = null, string methodName     = null,
                                                        string fieldName         = null, JavaObject javaObject = null,
                                                        List <object> parameters = null, List <Type> parametersTypes = null)
        {
            var request = new JavaRequest()
            {
                RequestType = requestType,
                MethodName  = methodName,
                ClassName   = className,
                FieldName   = fieldName,
                Instance    = javaObject?.Instance,
            };

            request.AddParametersToRequest(parameters);

            JavaResponse response = await _javaService.RequestAsync(request, ct);

            ct.ThrowIfCancellationRequested();
            response.ThrowExceptionIfNeeded();

            return(new JavaObject()
            {
                Instance = response.Result
            });
        }
Exemple #2
0
        public async Task StopJavaService()
        {
            var request = new JavaRequest {
                RequestType = RequestType.StopConnection
            };

            using (var cts = new CancellationTokenSource(_timeout))
            {
                await _javaService.RequestAsync(request, cts.Token);
            }
        }
Exemple #3
0
        public async Task LoadJar(string jarPath, CancellationToken ct)
        {
            var request = new JavaRequest()
            {
                RequestType = RequestType.LoadJar, JarPath = jarPath
            };

            JavaResponse response = await _javaService.RequestAsync(request, ct);

            ct.ThrowIfCancellationRequested();
            response.ThrowExceptionIfNeeded();
        }