示例#1
0
 public void EnqueueRequest(CukunityRequest req)
 {
     lock (requests)
     {
         requests.Add(req);
     }
 }
示例#2
0
        private string ProcessLineRequest(string line)
        {
            string          request = line.TrimEnd('\r', '\n');
            CukunityRequest req     = new CukunityRequest(request, signal);

            // reset signal
            signal.Reset();
            // add request to que
            server.EnqueueRequest(req);
            // wait for completion
            signal.WaitOne();
            return(req.Response);
        }
示例#3
0
    private void ProcessRequest(CukunityRequest req)
    {
        Hashtable res = new Hashtable();

        try
        {
            // read data from client as a JSON dictionary
            Hashtable jsonReq = JsonReader.Deserialize <Hashtable>(req.Request);

            string cmdName = GetJsonString(jsonReq, "command");

            if ((cmdName == null) || (cmdName.Length == 0))
            {
                Debug.LogError("Cukunity: missing command in client's request (" + req.Request + ")");
                res["error"] = "MissingCommandError";
                req.OnProcessed(JsonWriter.Serialize(res));
                return;
            }

            CukunityCommand cmd;

            switch (cmdName)
            {
            case "get_screen":
                cmd = new CukunityGetScreenCommand();
                break;

            case "get_scene":
                cmd = new CukunityGetSceneCommand();
                break;

            case "get_level":
                cmd = new CukunityGetLevelCommand();
                break;

            case "load_level":
                cmd = new CukunityLoadLevelCommand();
                break;

#if UNITY_IPHONE
            case "touch_screen":
                cmd = new CukunityTouchScreenCommand();
                break;
#endif

            default:
                Debug.LogError("Cukunity: unknown command in client's request (" + req.Request + ")");
                res["error"] = "UnknownCommandError";
                req.OnProcessed(JsonWriter.Serialize(res));
                return;
            }

            cmd.Process(jsonReq, res);
        }
        catch (Exception e)
        {
            Debug.LogError("Cukunity: exception while processing client's request (" + e + ")");
            res["error"] = "ServerError";
        }
        // reply to client
        req.OnProcessed(JsonWriter.Serialize(res));
    }