<?xml version="1.0"?>
<doc>
    <assembly>
        <name>JetBrains.RdFramework.Reflection</name>
    </assembly>
    <members>
        <member name="M:JetBrains.Rd.Reflection.RdExtAttribute.#ctor(System.Type)">
            <summary>
            Mark RdExt as implementing contract from specific RdRpc interface. That means that this RdExt will be exposed by
            interface name, not by the type itself. It may be used when explicit marking of RdRpc is undesirable.
            </summary>
            <param name="rdRpcInterface">
              RdRpc interface type. Must be implemented by type, which marked by this RdExt attribute.
            </param>
        </member>
        <member name="T:JetBrains.Rd.Reflection.RdRpcAttribute">
            <summary>
            Mark implementing interface of RdExt by this attribute to indicate intent to use this interface for proxy generation
            </summary>
        </member>
        <member name="T:JetBrains.Rd.Reflection.RdScalarAttribute">
            <summary>
            It has no special semantic. Used only to tell ReSharper about ImplicitUse.
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.RdScalarAttribute.#ctor(System.Type)">
            <summary>
            Provides external marshaller for this type
            </summary>
            <param name="marshaller">
            A type which implements <see cref="T:JetBrains.Rd.Reflection.IBuiltInMarshaller`1"/> for this type or any base interface.
            Keep in mind that if you provide an serializer for base interface a runtime casting error is possible on the
            receiver side if receiver want to have an inheritor from this interface
            </param>
        </member>
        <member name="T:JetBrains.Rd.Reflection.RpcTimeoutAttribute">
             <summary>
             Override default <see cref="T:JetBrains.Rd.Tasks.RpcTimeouts"/> in proxy instances in RdReflection. Should be used either on the method of
             interface marked by <see cref="T:JetBrains.Rd.Reflection.RdRpcAttribute"/> or on the interface itself.
            
             Default value means no timeout.
             </summary>
        </member>
        <member name="T:JetBrains.Rd.Reflection.IProxyTypeMarker">
            <summary>
            Marker interface for proxy types.
            Used to distinguish between proxy-implemented methods, for which we should only initialize RdCall fields and other reactive properties
            and real methods in types, for which we should Bind appropriate RdEndpoint.
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.None">
            <summary>
            Built-in serializer isn't defined
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.StaticFields">
            <summary>
            static CtxReadDelegate{T1} Read
            static CtxWriteDelegate{T2} Write
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.StaticProtocolMethods">
            <summary>
            static Val Read(ctx, reader)
            static void Write(ctx, reader, val),
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.ProtocolMethods">
            <summary>
            static Val Read(ctx, reader)
            void Write(ctx, writer)
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.StaticMethods">
            <summary>
            static Val Read(reader)
            static void Write(writer, ctx)
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.Methods">
            <summary>
            static Val Read(reader)
            void Write(writer)
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.ProtocolCollectionLike1">
            <summary>
            static Val{T} Read(ctx, reader, CtxReadDelegate{T}, CtxWriteDelegate{T})
            static void Write(ctx, writer, Val{T})
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.ProtocolCollectionLike2">
            <summary>
            static Val{T1, T2} Read(ctx, reader, CtxReadDelegate{T1}, CtxWriteDelegate{T1}, CtxReadDelegate{T2}, CtxWriteDelegate{T2})
            static void Write(ctx, writer, Val{T1, T2})
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.BuiltInSerializers.BuiltInType.MarshallerAttribute">
            <summary>
            Specified using RdScalar(typeof(Marshaller)) attribute
            </summary>
        </member>
        <member name="T:JetBrains.Rd.Reflection.CollectionSerializers">
            <summary>
            Special asymmetric serializers for collections. Used in reflection serializers to use covariant conversion instead of runtime casting.
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.IScalarSerializers.CreateSerializer(System.Type,JetBrains.Rd.Reflection.ISerializersSource)">
            <summary>
            Return static serializers for type Static serializer is the serializer which always return provided type and
            never any of the inheritors. It makes sense to ask these serializers for struct, enums and sealed classes
            </summary>
            <param name="type"></param>
            <param name="serializers"></param>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Rd.Reflection.ISerializersSource">
            <summary>
            The source of "real" serializers serializers. Polyporhic serializers always write <see cref="T:JetBrains.Rd.RdId"/> to the stream and only after it serializes the type itself.
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ProxyGenerator.CreateAdapter(System.Type,System.Reflection.MethodInfo)">
             <summary>
             Wrap method into Tuple-like adapter for using regular .NEt method as RdCall endpoint.
            
             Expected signature for sync methods
               (this, Lifetime, TReq) → RdTask{TRes}
             async methods:
               (this, Lifetime, TReq) → Task{TRes}
             </summary>
             <returns></returns>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ProxyGenerator.GetRequstType(System.Reflection.MethodInfo)">
             <summary>
             Get the list of tuples, used to
            
             Note the special treatment of Lifetime and CancellationToken types - they are not included in the result.
             </summary>
             <param name="method"></param>
             <returns></returns>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ProxyGenerator.GetBindableFieldsNames(System.Type)">
            <summary>
            Return the expected list of names in BindableChildren collection for <see cref="T:JetBrains.Rd.Reflection.RdRpcAttribute"/> interfaces
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ProxyGenerator.LoadArgument(System.Reflection.Emit.ILGenerator,System.Int32)">
            <summary>
            Loads the given argument on the stack
            </summary>
        </member>
        <member name="T:JetBrains.Rd.Reflection.ProxyGeneratorUtil">
            <summary>
            Helpers method which used by generated proxies.
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ProxyGeneratorUtil.SyncNested``2(JetBrains.Rd.Tasks.RdCall{``0,``1},``0,JetBrains.Rd.Tasks.RpcTimeouts)">
            <summary>
            Sync call which allow nested call execution with help of <see cref="T:JetBrains.Rd.Reflection.SwitchingScheduler"/>
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ProxyGeneratorUtil.SyncNested``2(JetBrains.Rd.Tasks.RdCall{``0,``1},JetBrains.Lifetimes.Lifetime,``0,JetBrains.Rd.Tasks.RpcTimeouts)">
            <summary>
            Sync call which allow nested call execution with help of <see cref="T:JetBrains.Rd.Reflection.SwitchingScheduler"/>
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.RdExtReflectionBindableBase.OnActivated">
            <summary>
            Override this method to set-up data flow in your RdExt
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.RdReflectionBindableBase.OnActivated">
            <summary>
            Override this method to set-up data flow in your RdExt
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.RdReflectionBindableBase.AssertBindingThread">
            <summary>
            Reflection models can be bound on any thread
            </summary>
        </member>
        <member name="T:JetBrains.Rd.Reflection.ReflectionRdActivator">
             <summary>
             To get maximal performance of  Rd framework you should directly provide serializers to every Model and Property.
            
             Creating models by hand with this approach is tedious and error-prone.  The main idea behind <see
             cref="T:JetBrains.Rd.Reflection.ReflectionRdActivator" /> is to automatically create RdExt and initialize fields and properties with
             appropriate serializers.
             
             </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.ReflectionRdActivator.myCurrentActivationChain">
             <summary>
             current activation stack.
            
             used to protect from circular dependencies only.
             </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionRdActivator.ActivateBind``1(JetBrains.Lifetimes.Lifetime,JetBrains.Rd.IProtocol)">
            <summary>
            Create and bind class with <see cref="T:JetBrains.Rd.Reflection.RdExtAttribute"/>
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionRdActivator.ActivateBind(System.Type,JetBrains.Lifetimes.Lifetime,JetBrains.Rd.IProtocol)">
            <summary>
            Create and bind class with <see cref="T:JetBrains.Rd.Reflection.RdExtAttribute"/>
            </summary>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionRdActivator.Activate``1">
            <summary>
            Creates and initializes reactive primitives, RdModels and RdExts.
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionRdActivator.Activate(System.Type,System.String)">
            <summary>
            Activate <see cref="T:JetBrains.Rd.Reflection.RdExtAttribute"/> or <see cref="T:JetBrains.Rd.Reflection.RdModelAttribute"/> or its members.
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionRdActivator.Activate(System.Type)">
            <summary>
            Activate <see cref="T:JetBrains.Rd.Reflection.RdExtAttribute"/> or <see cref="T:JetBrains.Rd.Reflection.RdModelAttribute"/> or its members.
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionRdActivator.SetHandlerTask``2(JetBrains.Rd.Tasks.RdCall{``0,``1},System.Func{JetBrains.Lifetimes.Lifetime,``0,System.Threading.Tasks.Task{``1}})">
             <summary>
             Wrapper method to simplify search with overload resolution for two methods in RdEndpoint.
            
             Used for async methods returning generic Task.
             </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionRdActivator.SetHandlerTaskVoid``1(JetBrains.Rd.Tasks.RdCall{``0,JetBrains.Core.Unit},System.Func{JetBrains.Lifetimes.Lifetime,``0,System.Threading.Tasks.Task})">
             <summary>
             Wrapper method to simplify search with overload resolution for two methods in RdEndpoint.
            
             Used for async methods returning non-generic Task.
             </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionRdActivator.SetHandler``2(JetBrains.Rd.Tasks.RdCall{``0,``1},System.Func{JetBrains.Lifetimes.Lifetime,``0,JetBrains.Rd.Tasks.RdTask{``1}})">
             <summary>
             Wrapper method to simplify search with overload resolution for two methods in RdEndpoint.
            
             Used for sync calls only.
             </summary>
        </member>
        <member name="T:JetBrains.Rd.Reflection.ReflectionSerializers">
            <summary>
            Creates and provides access to Reflection-generated serializers for Rd, thread safe
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.ReflectionSerializers.myStaticSerializers">
            <summary>
            Collection static serializers (serializers is not possible here! Only instance serializer can be serializers)
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.ReflectionSerializers.myInstanceSerializers">
             <summary>
             Collection of specific serializers serializers and user-registred custom serializers.
             User registred serializers should be added before activating any other serializers serializer to guarantee
             consistency of serializers across all Rd objects.
            
             Techincally, this restriction can be lifted to lazy initialization. It only exists to reduce the
             amount of races in consumers.
             </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.ReflectionSerializers.myPolySerializersSealed">
            <summary>
            A flag to enforce consistency of serializers. New specific poly serializer can't be registered after first query
            of serializers serializer from outer world.
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.ReflectionSerializers.myCurrentSerializersChain">
             <summary>
             current serialization stack.
            
             used to provide diagnostics about circular dependencies only.
             </summary>
        </member>
        <member name="P:JetBrains.Rd.Reflection.ReflectionSerializers.BeforeCreation">
            <summary>
            An extension point to override lazy creation of serializers instance serializers.
            You add your custom serializer for generic types via this extension point.
            You can also use <see cref="M:JetBrains.Rd.Reflection.ReflectionSerializers.Register(System.Type,JetBrains.Rd.Reflection.SerializerPair)"/> method ahead of time when lazy initialization isn't necessary.
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionSerializers.RegisterModelSerializer``1">
            <summary>
            Register serializers for either <see cref="T:JetBrains.Rd.Reflection.RdExtAttribute"/> or <see cref="T:JetBrains.Rd.Reflection.RdModelAttribute"/>
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ReflectionSerializers.Register``1(JetBrains.Rd.CtxReadDelegate{``0},JetBrains.Rd.CtxWriteDelegate{``0},System.Nullable{System.Int64})">
            <summary>
            Register custom serializer for provided serializers type. It will be used instead of default <see
            cref="T:JetBrains.Rd.Impl.Polymorphic`1"/>. Be aware, that you can register your custom serializer only before any serializer was
            asked via <see cref="!:GetInstanceSerializer"/>.
            </summary>
        </member>
        <member name="T:JetBrains.Rd.Reflection.ReflectionSerializerVerifier">
                <summary>
                Struct, Aggregate, ImmutableList are not supported.
            
                This enbf-like scheme can only be used to understand basic concepts and terms, there is no
                any strong semantics behind several leaf rules.
                <code>
                 //  RdBasic, may have inexact mapping to C# types.
                 IType ::= IBindable | IScalar
                 Bindable ::= NullableBindable | Array[Bindable] | ImmutableListBindable | Class
            
                 IScalar           ::= NullableScalar | NonNullableScalar
                 NullableScalar    ::= Maybe[NonNullableScalar]
                 NonNullableScalar ::= List[IScalar] | Array[IScalar] | PredefinedType | Struct
            
                 NonNullableBindable ::= Array[Bindable] | IReadOnlyList[Bindable] | Class
                 NonNullable::= NonNullableScalar | NonNullableBindable
            
                 FieldType ::=  IScalar|IType|Aggregate
            
                 RdProperty ::= RdProperty[FieldType]
                 RdSet      ::= RdSet[INonNullableScalar]
                 RdMap      ::= RdMap[INonNullableScalar, INonNullable]
                 RdCall     ::= RdCall[IScalar, IScalar]
                 RdSignal   ::= RdSignal[IScalar]
            
                 // C# declarations, [ and ] mean &lt; &gt;.
                 FieldDeclaration[T] ::= C#(public readonly? T identifier)
                 PropertyDeclaration[T] ::= C#(public T identifier { get; })                   |
            																C#(public T identifier { get; private set; })
            																// etc.
            																//
                 PropOrFieldDeclaration[T] ::= FieldDeclaration[T] || PropertyDeclaration[T]
                 EnumDeclaration ::= C#(Enum[enum_const*])
                 // Not supported. No RdGenerator analogue.
                 // StructDeclaration ::= C#(struct field* )
            
                 Member ::= RdSignal | RdProperty| RdList | RdSet | RdMap | RdModel | RdCall
                 Declaration ::= BindableDeclaration | Struct | Enum | RdExtDeclaration
                 BindableDeclaration ::= TopLevel | Class
            
                 MemberDeclaration ::= PropOrFieldDeclaration[Member]
                 RdModelMemberDeclaration ::= PropOrFieldDeclaration[Member|FieldType]
            
                 RdModelDeclaration ::= C#([RdModel] class {RdModelMemberDeclaration*}) | EnumDeclaration | ValueTuple[FieldType{1,7}]
                 RdExtDeclaration ::= C#([RdExt] class {MemberDeclaration}* )
            
                 ROOT ::= RdModelDeclaration ROOT | RdExtDeclaration ROOT | Nothing
                </code>
                </summary>
              *
        </member>
        <member name="T:JetBrains.Rd.Reflection.ScalarCollectionExtension">
            <summary>
            An extension for <see cref="T:JetBrains.Rd.Reflection.ReflectionSerializers"/> for basic collections and dictionaries
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.ScalarSerializer.myTypesCatalog">
            <summary>
            Types catalog required for providing information about statically discovered types during concrete serializer
            construction for sake of possibility for Rd serializers to lookup real type by representing RdId
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.ScalarSerializer.myBlackListChecker">
             <summary>
             Black listed type. Any attempt to create serializer for these types should throw exception.
             Used to prevent attempts to pass an object which is well-known as non-serializable.
             For example, any component of tree-like structure or object graph should not be passed to
             serializer
            
             This predicate should return true only for blacklisted type
             </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ScalarSerializer.CreateSerializer(System.Type,JetBrains.Rd.Reflection.ISerializersSource)">
            <summary>
            Creates static serializers for type
            </summary>
            <param name="type"></param>
            <param name="serializers"></param>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Rd.Reflection.ScalarSerializer.CreateValueTupleSerializer``1(JetBrains.Rd.Reflection.ISerializersSource)">
            <summary>
            Register serializer for ValueTuples
            </summary>
            <param name="serializers"></param>
        </member>
        <member name="M:JetBrains.Rd.Reflection.SerializerPair.CreateFromNonProtocolMethods(System.Reflection.MethodInfo,System.Reflection.MethodInfo)">
            <summary>
            Create serializer from Read  and Write method without <see cref="T:JetBrains.Rd.SerializationCtx"/>
            </summary>
        </member>
        <member name="M:JetBrains.Rd.Reflection.SerializerReflectionUtil.GetBindableFields(System.Reflection.TypeInfo)">
            <summary>
            Get lists of members which take part in object serialization.
            Can be used for RdExt, RdModel and any RdScalar.
            </summary>
        </member>
        <member name="T:JetBrains.Rd.Reflection.SwitchingScheduler">
            <summary>
            A special scheduler which can be globally temporarily switched to another implementation.
            </summary>
        </member>
        <member name="F:JetBrains.Rd.Reflection.SwitchingScheduler.SwitchCookie.myIsValid">
            <summary>
            Default constructor detector
            </summary>
        </member>
    </members>
</doc>
