本文整理汇总了C#中biz.ritter.javapi.position方法的典型用法代码示例。如果您正苦于以下问题:C# biz.ritter.javapi.position方法的具体用法?C# biz.ritter.javapi.position怎么用?C# biz.ritter.javapi.position使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类biz.ritter.javapi
的用法示例。
在下文中一共展示了biz.ritter.javapi.position方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: encode
//.........这里部分代码省略.........
* as many characters as possible in the input buffer have been encoded. If
* there is no further input and no characters left in the input buffer then
* this task is complete. If this is not the case then the client should
* call this method again supplying some more input characters.</li>
* <li>{@link CoderResult#OVERFLOW CoderResult.OVERFLOW} indicates that the
* output buffer has been filled, while there are still some characters
* remaining in the input buffer. This method should be invoked again with a
* non-full output buffer.</li>
* <li>A {@link CoderResult#unmappableForLength(int) unmappable character}
* result indicates that some unmappable character error was encountered,
* and the erroneous characters start at the input buffer's position and
* their number can be got by result's {@link CoderResult#length() length}.
* This kind of result can be returned only on
* {@link CodingErrorAction#REPORT CodingErrorAction.REPORT}.</li>
* </ul>
* <p>
* The <code>endOfInput</code> parameter indicates if the invoker can
* provider further input. This parameter is true if and only if the
* characters in the current input buffer are all inputs for this encoding
* operation. Note that it is common and won't cause an error if the invoker
* sets false and then has no more input available, while it may cause an
* error if the invoker always sets true in several consecutive invocations.
* This would make the remaining input to be treated as malformed input.
* input.
* <p>
* This method invokes the
* {@link #encodeLoop(CharBuffer, ByteBuffer) encodeLoop} method to
* implement the basic encode logic for a specific charset.
*
* @param in
* the input buffer.
* @param out
* the output buffer.
* @param endOfInput
* true if all the input characters have been provided.
* @return a <code>CoderResult</code> instance indicating the result.
* @throws IllegalStateException
* if the encoding operation has already started or no more
* input is needed in this encoding process.
* @throws CoderMalfunctionError
* If the {@link #encodeLoop(CharBuffer, ByteBuffer) encodeLoop}
* method threw an <code>BufferUnderflowException</code> or
* <code>BufferUnderflowException</code>.
*/
public CoderResult encode(java.nio.CharBuffer inJ, java.nio.ByteBuffer outJ, bool endOfInput)
{
//If the previous step is encode(CharBuffer), then no more input is needed
// thus endOfInput should not be false
if (status == READY && finished && !endOfInput) {
throw new java.lang.IllegalStateException();
}
if ((status == FLUSH) || (!endOfInput && status == END)) {
throw new java.lang.IllegalStateException();
}
CoderResult result;
while (true) {
try {
result = encodeLoop(inJ, outJ);
} catch (BufferOverflowException e) {
throw new CoderMalfunctionError(e);
} catch (BufferUnderflowException e) {
throw new CoderMalfunctionError(e);
}
if (result == CoderResult.UNDERFLOW) {
status = endOfInput ? END : ONGOING;
if (endOfInput) {
int remaining = inJ.remaining();
if (remaining > 0) {
result = CoderResult.malformedForLength(remaining);
} else {
return result;
}
} else {
return result;
}
} else if (result==CoderResult.OVERFLOW) {
status = endOfInput ? END : ONGOING;
return result;
}
CodingErrorAction action = malformAction;
if (result.isUnmappable()) {
action = unmapAction;
}
// If the action is IGNORE or REPLACE, we should continue
// encoding.
if (action == CodingErrorAction.REPLACE) {
if (outJ.remaining() < replace.Length) {
return CoderResult.OVERFLOW;
}
outJ.put(replace);
} else {
if (action != CodingErrorAction.IGNORE) {
return result;
}
}
inJ.position(inJ.position() + result.length());
}
}
示例2: engineUpdate
/**
* Updates this {@code MessageDigestSpi} using the given {@code input}.
*
* @param input
* the {@code ByteBuffer}.
*/
protected internal virtual void engineUpdate(java.nio.ByteBuffer input)
{
if (!input.hasRemaining())
{
return;
}
byte[] tmp;
if (input.hasArray())
{
tmp = (byte[])input.array();
int offset = input.arrayOffset();
int position = input.position();
int limit = input.limit();
engineUpdate(tmp, offset + position, limit - position);
input.position(limit);
}
else
{
tmp = new byte[input.limit() - input.position()];
input.get(tmp);
engineUpdate(tmp, 0, tmp.Length);
}
}