Exemple #1
0
 public void OnHttpRequest(ReefHttpRequest requet, ReefHttpResponse response)
 {
     LOGGER.Log(Level.Info, string.Format(CultureInfo.CurrentCulture, "HelloHttpHandler OnHttpRequest: URL: {0}, QueryString: {1}, inputStream: {2}.", requet.Url, requet.Querystring, ByteUtilities.ByteArrarysToString(requet.InputStream)));
     response.Status       = HttpStatusCode.OK;
     response.OutputStream =
         ByteUtilities.StringToByteArrays("Byte array returned from HelloHttpHandler in CLR!!!");
 }
Exemple #2
0
        public void OnHttpRequest(ReefHttpRequest request, ReefHttpResponse response)
        {
            string target = ParsePathInfo(request.PathInfo);

            LOGGER.Log(Level.Info, "Target: " + target + ". PathInfo: " + request.PathInfo);
            //if (target != null && target.ToLower(CultureInfo.CurrentCulture).Equals("driverstatus"))
            if (target != null && target.Equals("driverstatus"))
            {
                LOGGER.Log(Level.Info, "Target: " + target + ". Driver status: " + driveStatus.ToString());
                string msg = string.Format(CultureInfo.CurrentCulture, "Current Driver status: {0} ", driveStatus.ToString());
                BuildHttpResponse(response, HttpStatusCode.OK, msg);
                return;
            }

            if (target != null && target.Equals("taskstatus"))
            {
                LOGGER.Log(Level.Info, "Target: " + target + ". TaskStatus string: " + _taskContext.TaskStatusString());
                BuildHttpResponse(response, HttpStatusCode.OK, _taskContext.TaskStatusString());
                return;
            }

            if (target != null && target.ToLower(CultureInfo.CurrentCulture).Equals("run") && driveStatus == DriverStatus.Init)
            {
                BuildHttpResponse(response, HttpStatusCode.OK, "Driver is not ready, wait a few second then send request again!!!");
                return;
            }

            if (target != null && target.ToLower(CultureInfo.CurrentCulture).Equals("run") && driveStatus == DriverStatus.RunningTasks)
            {
                string msg = string.Format(CultureInfo.CurrentCulture,
                                           "A job is running. Please check driver status and then submit your job again.");
                BuildHttpResponse(response, HttpStatusCode.OK, msg);
                return;
            }

            if (target != null && target.ToLower(CultureInfo.CurrentCulture).Equals("run") && driveStatus == DriverStatus.Idle)
            {
                string numberOfTasks = getQueryValue(request.Querystring, "numberoftasks");
                if (numberOfTasks == null)
                {
                    BuildHttpResponse(response, HttpStatusCode.OK, "Please specify number of tasks to run");
                    return;
                }

                driveStatus = DriverStatus.RunningTasks;
                using (LOGGER.LogFunction("HelloSimpleEventHandlers::Processing a new Job from web request"))
                {
                    _taskContext            = new TaskContext();
                    _taskContext.TotalTasks = int.Parse(numberOfTasks, CultureInfo.CurrentCulture);
                    BuildHttpResponse(response, HttpStatusCode.OK, "Job from web request is submitted and is running!!!");
                }

                foreach (var c in _activeContexts)
                {
                    SubmitNextTask(c);
                }
                return;
            }
            BuildHttpResponse(response, HttpStatusCode.OK, "Unsupported query");
        }
 public static void BuildHttpResponse(
     ReefHttpResponse response,
     HttpStatusCode httpStatusCode,
     byte[] bytesResponse)
 {
     response.Status       = httpStatusCode;
     response.OutputStream = bytesResponse;
 }
 public static void BuildHttpResponse(
     ReefHttpResponse response,
     HttpStatusCode httpStatusCode,
     string strResponse)
 {
     response.Status       = httpStatusCode;
     response.OutputStream = ByteUtilities.StringToByteArrays(strResponse);
 }
        /// <summary>
        /// It gets HTTP request and close the contexts after receiving all the completed tasks
        /// </summary>
        /// <param name="requet"></param>
        /// <param name="resonse"></param>
        public void OnHttpRequest(ReefHttpRequest requet, ReefHttpResponse resonse)
        {
            var msg = string.Format(CultureInfo.CurrentCulture,
                                    "HelloTaskCompletedHandler OnHttpRequest: URL: {0}, QueryString: {1}, inputStream: {2}.",
                                    requet.Url, requet.Querystring, ByteUtilities.ByteArraysToString(requet.InputStream));

            Logger.Log(Level.Info, msg);
            resonse.Status = HttpStatusCode.OK;
            while (_completedTasks.Count != 2)
            {
                Thread.Sleep(1000);
                Logger.Log(Level.Info, "_completedTasks received:" + _completedTasks.Count);
            }
            resonse.OutputStream = ByteUtilities.StringToByteArrays("Stopped!!!");
            foreach (var t in _completedTasks)
            {
                t.ActiveContext.Dispose();
            }
            _completedTasks.Clear();
        }
Exemple #6
0
 public void OnHttpRequest(ReefHttpRequest requet, ReefHttpResponse response)
 {
     LOGGER.Log(Level.Info, "OnHttpRequest in DefaultHttpHandler is called.");
     response.Status       = HttpStatusCode.OK;
     response.OutputStream = ByteUtilities.StringToByteArrays("Byte array returned from DefaultHttpHandler in CLR!!!");
 }