internal NativeMetadataIterator(NativeMetadataChainHandle chainHandle) { Contract.Requires(chainHandle != null); Contract.Requires(!chainHandle.IsClosed); Contract.Ensures(!_handle.IsClosed); SafeNativeMethods.MetadataIteratorInitialize(_handle, chainHandle); }
internal NativeMetadataChain(Stream stream) { Contract.Requires(stream != null); Contract.Requires(stream.CanRead); Contract.Requires(stream.CanWrite); Contract.Requires(stream.CanSeek); Contract.Ensures(Handle != null); Contract.Ensures(!Handle.IsClosed); Contract.Ensures(GetStatus() == MetadataChainStatus.Ok); _callbacks = InitializeCallbacks(stream); Handle = SafeNativeMethods.MetadataChainNew(); }
internal static extern void MetadataIteratorInitialize(NativeMetadataIteratorHandle handle, NativeMetadataChainHandle chainHandle);
internal static extern bool MetadataChainWriteWithTempFile(NativeMetadataChainHandle handle, [MarshalAs(UnmanagedType.Bool)] bool usePadding, IntPtr ioHandle, IoCallbacks callbacks, IntPtr tempIoHandle, IoCallbacks tempCallbacks);
internal static extern bool MetadataChainCheckIfTempFileNeeded(NativeMetadataChainHandle handle, [MarshalAs(UnmanagedType.Bool)] bool usePadding);
internal static extern bool MetadataChainRead(NativeMetadataChainHandle handle, IntPtr ioHandle, IoCallbacks callbacks);
internal static extern MetadataChainStatus MetadataChainGetStatus(NativeMetadataChainHandle handle);