diff -r ed1c9f64298a -r 5b9d4d8641ce trace/traceviewer/com.nokia.traceviewer.ost/src/com/nokia/traceviewer/ost/OstWriter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trace/traceviewer/com.nokia.traceviewer.ost/src/com/nokia/traceviewer/ost/OstWriter.java Wed Jun 23 14:49:59 2010 +0300 @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + * OST Writer + * + */ +package com.nokia.traceviewer.ost; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.ByteChannel; + +import com.nokia.traceviewer.engine.DataWriter; + +/** + * OST Writer + * + */ +public class OstWriter implements DataWriter { + + /** + * Target channel for write operations + */ + private ByteChannel writeChannel; + + /** + * Constructor + * + * @param writeChannel + * write channel + */ + public OstWriter(ByteChannel writeChannel) { + this.writeChannel = writeChannel; + } + + /* + * (non-Javadoc) + * + * @see + * com.nokia.traceviewer.engine.DataWriter#writeMessage(java.nio.ByteBuffer, + * int, int) + */ + public void writeMessage(ByteBuffer sourceBuffer, int msgStart, int msgLen) { + try { + // Write the message to file + if (sourceBuffer != null && writeChannel != null) { + int position = sourceBuffer.position(); + int limit = sourceBuffer.limit(); + sourceBuffer.limit(msgStart + msgLen); + sourceBuffer.position(msgStart); + writeChannel.write(sourceBuffer); + sourceBuffer.limit(limit); + sourceBuffer.position(position); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /* + * (non-Javadoc) + * + * @see com.nokia.traceviewer.engine.DataWriter#close() + */ + public void closeChannel() { + try { + if (writeChannel != null) { + writeChannel.close(); + writeChannel = null; + } + } catch (IOException e) { + e.printStackTrace(); + } + } +}