private static void InitDelegates()
                {
                    Contract.Assert(null != ZLibStreamHandle.zlibLibraryHandle);
                    Contract.Assert(!ZLibStreamHandle.zlibLibraryHandle.IsInvalid);

                    deflateInit2_Delegate = CreateDelegate <DeflateInit2_Delegate>("deflateInit2_");

                    deflateDelegate = CreateDelegate <DeflateDelegate>("deflate");

                    deflateEndDelegate = CreateDelegate <DeflateEndDelegate>("deflateEnd");

                    inflateInit2_Delegate = CreateDelegate <InflateInit2_Delegate>("inflateInit2_");

                    inflateDelegate = CreateDelegate <InflateDelegate>("inflate");

                    inflateEndDelegate = CreateDelegate <InflateEndDelegate>("inflateEnd");

                    zlibCompileFlagsDelegate = CreateDelegate <ZlibCompileFlagsDelegate>("zlibCompileFlags");

#if !SILVERLIGHT
                    RuntimeHelpers.PrepareDelegate(deflateInit2_Delegate);
                    RuntimeHelpers.PrepareDelegate(deflateDelegate);
                    RuntimeHelpers.PrepareDelegate(deflateEndDelegate);
                    RuntimeHelpers.PrepareDelegate(inflateInit2_Delegate);
                    RuntimeHelpers.PrepareDelegate(inflateDelegate);
                    RuntimeHelpers.PrepareDelegate(inflateEndDelegate);
                    RuntimeHelpers.PrepareDelegate(zlibCompileFlagsDelegate);
#endif // !SILVERLIGHT
                }
Beispiel #2
0
        internal Deflater(object deflaterInstance)
        {
            Type type = deflaterInstance.GetType();

            setLevelMethod = (SetLevelDelegate)Delegate.CreateDelegate(
                typeof(SetLevelDelegate),
                deflaterInstance,
                type.GetMethod("SetLevel", new Type[] { typeof(int) }));

            setInputMethod = (SetInputDelegate)Delegate.CreateDelegate(
                typeof(SetInputDelegate),
                deflaterInstance,
                type.GetMethod("SetInput", new Type[] { typeof(byte[]), typeof(int), typeof(int) }));

            finishMethod = (FinishDelegate)Delegate.CreateDelegate(
                typeof(FinishDelegate),
                deflaterInstance,
                type.GetMethod("Finish", Type.EmptyTypes));

            getIsFinishedMethod = (GetIsFinishedDelegate)Delegate.CreateDelegate(
                typeof(GetIsFinishedDelegate),
                deflaterInstance,
                type.GetMethod("get_IsFinished", Type.EmptyTypes));

            deflateMethod = (DeflateDelegate)Delegate.CreateDelegate(
                typeof(DeflateDelegate),
                deflaterInstance,
                type.GetMethod("Deflate", new Type[] { typeof(byte[]) }));
        }
Beispiel #3
0
        internal Deflater(object deflaterInstance)
        {
            Type type = deflaterInstance.GetType();

            setLevelMethod = (SetLevelDelegate)Delegate.CreateDelegate(
                typeof(SetLevelDelegate),
                deflaterInstance,
                type.GetMethod("SetLevel", new Type[] { typeof(int) }));

            setInputMethod = (SetInputDelegate)Delegate.CreateDelegate(
                typeof(SetInputDelegate),
                deflaterInstance,
                type.GetMethod("SetInput", new Type[] { typeof(byte[]), typeof(int), typeof(int) }));

            finishMethod = (FinishDelegate)Delegate.CreateDelegate(
                typeof(FinishDelegate),
                deflaterInstance,
                type.GetMethod("Finish", Type.EmptyTypes));

            getIsFinishedMethod = (GetIsFinishedDelegate)Delegate.CreateDelegate(
                typeof(GetIsFinishedDelegate),
                deflaterInstance,
                type.GetMethod("get_IsFinished", Type.EmptyTypes));

            deflateMethod = (DeflateDelegate)Delegate.CreateDelegate(
                typeof(DeflateDelegate),
                deflaterInstance,
                type.GetMethod("Deflate", new Type[] { typeof(byte[]) }));
        }