public IPromisse <TResult> Schedule <TResult>(MetaOperation operation)
        {
            _requestMessager.PushMessage(operation.Encode());

            return(new Promisse <TResult>(
                       () =>
            {
                var message = _responseMessager.PopMessage();
                var response = message.Decode <MetaOperation>();

                return (TResult)response.Result;
            }));
        }
示例#2
0
     /// <summary>
 	/// Implements the constructor: MetaOperation()
 	/// Direct superclasses: global::MetaDslx.Core.MetaFunction
 	/// All superclasses: global::MetaDslx.Core.MetaFunction, global::MetaDslx.Core.MetaTypedElement, global::MetaDslx.Core.MetaNamedElement, global::MetaDslx.Core.MetaDocumentedElement, global::MetaDslx.Core.MetaAnnotatedElement
     /// Initializes the following readonly properties:
     ///    MetaFunction.Type
     /// </summary>
     public virtual void MetaOperation(MetaOperation @this)
     {
         this.MetaFunction(@this);
     }
 public string GetImmBldReturn(MetaModel mmodel, MetaOperation operation, ClassKind kind)
 {
     return(this.GetImmBldConversion(mmodel, operation.ReturnType, kind));
 }
示例#4
0
        /// <summary>
        /// Schedules the operation specified by its metadata.
        /// </summary>
        /// <typeparam name="TResult">The type of the result.</typeparam>
        /// <param name="metaOperation">The meta operation.</param>
        /// <returns>A promisse of result.</returns>
        internal static IPromisse <TResult> Schedule <TResult>(MetaOperation metaOperation)
        {
            var scheduler = GetScheduler();

            return(scheduler.Schedule <TResult>(metaOperation));
        }