123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- using UnityEngine;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Linq;
- namespace I2.Loc
- {
- using TranslationDictionary = Dictionary<string, TranslationQuery>;
- public class TranslationJob_Main : TranslationJob
- {
- TranslationJob_WEB mWeb;
- TranslationJob_POST mPost;
- TranslationJob_GET mGet;
- TranslationDictionary _requests;
- GoogleTranslation.fnOnTranslationReady _OnTranslationReady;
- public string mErrorMessage;
- public TranslationJob_Main(TranslationDictionary requests, GoogleTranslation.fnOnTranslationReady OnTranslationReady)
- {
- _requests = requests;
- _OnTranslationReady = OnTranslationReady;
- //mWeb = new TranslationJob_WEB(requests, OnTranslationReady);
- mPost = new TranslationJob_POST(requests, OnTranslationReady);
- }
- public override eJobState GetState()
- {
- if (mWeb != null)
- {
- var state = mWeb.GetState();
- switch (state)
- {
- case eJobState.Running: return eJobState.Running;
- case eJobState.Succeeded:
- {
- mJobState = eJobState.Succeeded;
- break;
- }
- case eJobState.Failed:
- {
- mWeb.Dispose();
- mWeb = null;
- mPost = new TranslationJob_POST(_requests, _OnTranslationReady);
- break;
- }
- }
- }
- if (mPost != null)
- {
- var state = mPost.GetState();
- switch (state)
- {
- case eJobState.Running: return eJobState.Running;
- case eJobState.Succeeded:
- {
- mJobState = eJobState.Succeeded;
- break;
- }
- case eJobState.Failed:
- {
- mPost.Dispose();
- mPost = null;
- mGet = new TranslationJob_GET(_requests, _OnTranslationReady);
- break;
- }
- }
- }
- if (mGet != null)
- {
- var state = mGet.GetState();
- switch (state)
- {
- case eJobState.Running: return eJobState.Running;
- case eJobState.Succeeded:
- {
- mJobState = eJobState.Succeeded;
- break;
- }
- case eJobState.Failed:
- {
- mErrorMessage = mGet.mErrorMessage;
- if (_OnTranslationReady != null)
- _OnTranslationReady(_requests, mErrorMessage);
- mGet.Dispose();
- mGet = null;
- break;
- }
- }
- }
- return mJobState;
- }
- public override void Dispose()
- {
- if (mPost != null) mPost.Dispose();
- if (mGet != null) mGet.Dispose();
- mPost = null;
- mGet = null;
- }
- }
- }
|