Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
RAMInputStream.cs
Package: xunlong0.6.rar [view]
Upload User: zhangkuixh
Upload Date: 2013-09-30
Package Size: 5473k
Code Size: 2k
Category:
Search Engine
Development Platform:
C#
- /*
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- using System;
- namespace Lucene.Net.Store
- {
- /// <summary> A memory-resident {@link IndexInput} implementation.
- ///
- /// </summary>
- /// <version> $Id: RAMInputStream.java 150537 2004-09-28 20:45:26Z cutting $
- /// </version>
- class RAMInputStream : BufferedIndexInput, System.ICloneable
- {
- private RAMFile file;
- private int pointer = 0;
- private long length;
- public RAMInputStream(RAMFile f)
- {
- file = f;
- length = file.length;
- }
- public override void ReadInternal(byte[] dest, int destOffset, int len)
- {
- int remainder = len;
- int start = pointer;
- while (remainder != 0)
- {
- int bufferNumber = start / BUFFER_SIZE;
- int bufferOffset = start % BUFFER_SIZE;
- int bytesInBuffer = BUFFER_SIZE - bufferOffset;
- int bytesToCopy = bytesInBuffer >= remainder?remainder:bytesInBuffer;
- byte[] buffer = (byte[]) file.buffers[bufferNumber];
- Array.Copy(buffer, bufferOffset, dest, destOffset, bytesToCopy);
- destOffset += bytesToCopy;
- start += bytesToCopy;
- remainder -= bytesToCopy;
- }
- pointer += len;
- }
- public override void Close()
- {
- }
- public override void SeekInternal(long pos)
- {
- pointer = (int) pos;
- }
- public override long Length()
- {
- return length;
- }
- /*
- // {{Aroush-1.9}} Do we need this Clone()?!
- public override System.Object Clone()
- {
- SegmentTermEnum clone = null;
- try
- {
- clone = (SegmentTermEnum) base.MemberwiseClone();
- }
- catch (System.Exception)
- {
- }
- return clone;
- }
- */
- }
- }