Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
io.gs2.unity.sdk / Core / Domain / EzTransactionDomain.cs
Size: Mime:
using System.Collections;
using Gs2.Core.Domain;
using Gs2.Core.Net;

#if GS2_ENABLE_UNITASK
using Cysharp.Threading.Tasks;
#endif

namespace Gs2.Unity.Core.Domain
{
    public class EzTransactionDomain
    {
        private readonly TransactionAccessTokenDomain _domain;
        public string TransactionId => _domain?.GetTransactionId();
        public string JobName => _domain?.GetJobName();
        
        public EzTransactionDomain(
            TransactionAccessTokenDomain domain
        ) {
            this._domain = domain;
        }
        
        public IFuture<EzTransactionDomain> WaitFuture(bool all = false) {
            IEnumerator Impl(IFuture<EzTransactionDomain> self) {
                var future = this._domain.WaitFuture(all);
                yield return future;
                if (future.Error != null) {
                    self.OnError(future.Error);
                    yield break;
                }
                self.OnComplete(future.Result == null ? null : new EzTransactionDomain(future.Result));
            }
            return new Gs2InlineFuture<EzTransactionDomain>(Impl);
        }
        
#if GS2_ENABLE_UNITASK
        public async UniTask<EzTransactionDomain> WaitAsync(bool all = false) {
            var next = await this._domain.WaitAsync(all);
            return next == null ? null : new EzTransactionDomain(next);
        }
#endif
    }
}