コード例 #1
0
 static void ProcessRequest(object obj)
 {
     try
     {
         GenericRequest gen_req = obj as GenericRequest;
         if (gen_req == null)
         {
             Console.WriteLine("Error processing request, it is not a request object!");
             queue.sendObject(null, ObjectMessageQueue.AUTH_RESPONSE);
         }
         else
         {
             Console.WriteLine("Fetching data...");
             AuthProcessor parser = new AuthProcessor(context, gen_req);
             try
             {
                 Object result = typeof(AuthProcessor).GetMethod(gen_req.Method.ToString()).Invoke(parser, null);
                 Console.WriteLine("It worked!");
                 queue.sendResponse(result, ObjectMessageQueue.AUTH_RESPONSE);
             }
             catch (SqlException)
             {
                 Console.WriteLine("An error occurred.");
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: TeamHTTP418/cis726assign5
 private static void DoMessage(Object obj)
 {
     GenericRequest gen_req = obj as GenericRequest;
     ObjectMessageQueue queue = new ObjectMessageQueue();
     queue.RequestGuid = gen_req.requester_guid;
     queue.RequestIP = gen_req.requester_ip;
     if (gen_req == null)
     {
         Console.WriteLine("Error processing request, it is not a request object!");
         queue.sendObject(null, ObjectMessageQueue.AUTH_RESPONSE);
     }
     else
     {
         Console.WriteLine("Fetching data...");
         AccountDBContext context = null;
         if (contextQueue.TryDequeue(out context) == false)
         {
             //Check if we are under the max count of contexts allowed
             bool createNew = false;
             lock (context_lock)
             {
                 if (context_count < 25)
                 {
                     context_count++;
                     createNew = true;
                 }
             }
             //If we are allowed, create a context for ourself and the pool.
             if (createNew)
             {
                 context = new AccountDBContext();
             }
             else //Else, wait for a context to be available
             {
                 while (contextQueue.TryDequeue(out context) == false)
                 {
                     Thread.Sleep(5);
                 }
             }
         }
         AuthProcessor parser = new AuthProcessor(context, gen_req);
         try
         {
             Object result = typeof(AuthProcessor).GetMethod(gen_req.Method.ToString()).Invoke(parser, null);
             Console.WriteLine("It worked!");
             queue.sendResponse(result, ObjectMessageQueue.AUTH_RESPONSE);
         }
         catch (SqlException)
         {
             Console.WriteLine("An error occurred.");
         }
         contextQueue.Enqueue(context);
     }
 }
コード例 #3
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath);

            AccountDBContext context = new AccountDBContext();

            ObjectMessageQueue queue = new ObjectMessageQueue();

            ObjectMessageQueue.InitializeQueue(ObjectMessageQueue.AUTH_REQUEST);
            while (true)
            {
                try
                {
                    Object         obj     = queue.receiveObject(ObjectMessageQueue.AUTH_REQUEST);
                    GenericRequest gen_req = obj as GenericRequest;

                    if (gen_req == null)
                    {
                        Console.WriteLine("Error processing request, it is not a request object!");
                        queue.sendObject(null, ObjectMessageQueue.AUTH_RESPONSE);
                    }
                    else
                    {
                        Console.WriteLine("Fetching data...");
                        AuthProcessor parser = new AuthProcessor(context, gen_req);
                        try
                        {
                            Object result = typeof(AuthProcessor).GetMethod(gen_req.Method.ToString()).Invoke(parser, null);
                            Console.WriteLine("It worked!");
                            queue.sendResponse(result, ObjectMessageQueue.AUTH_RESPONSE);
                        }
                        catch (SqlException)
                        {
                            Console.WriteLine("An error occurred.");
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    continue;
                }
            }
        }
コード例 #4
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath);

            AccountDBContext context = new AccountDBContext();

            ObjectMessageQueue queue = new ObjectMessageQueue();
            ObjectMessageQueue.InitializeQueue(ObjectMessageQueue.AUTH_REQUEST);
            while (true)
            {
                try
                {
                    Object obj = queue.receiveObject(ObjectMessageQueue.AUTH_REQUEST);
                    GenericRequest gen_req = obj as GenericRequest;

                    if (gen_req == null)
                    {
                        Console.WriteLine("Error processing request, it is not a request object!");
                        queue.sendObject(null, ObjectMessageQueue.AUTH_RESPONSE);
                    }
                    else
                    {
                        Console.WriteLine("Fetching data...");
                        AuthProcessor parser = new AuthProcessor(context, gen_req);
                        try
                        {
                            Object result = typeof(AuthProcessor).GetMethod(gen_req.Method.ToString()).Invoke(parser, null);
                            Console.WriteLine("It worked!");
                            queue.sendResponse(result, ObjectMessageQueue.AUTH_RESPONSE);
                        }
                        catch (SqlException)
                        {
                            Console.WriteLine("An error occurred.");
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    continue;
                }
            }
        }