Logo Search packages:      
Sourcecode: zemberek-server version File versions

SimpleEncoder.java

/*
 *  ***** BEGIN LICENSE BLOCK *****
 *
 *  Version: MPL 1.1
 *
 *  The contents of this file are subject to the Mozilla Public License Version
 *  1.1 (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.mozilla.org/MPL/
 *
 *  Software distributed under the License is distributed on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 *  for the specific language governing rights and limitations under the
 *  License.
 *
 *  The Original Code is "Zemberek Sunucu"
 *
 *  The Initial Developer of the Original Code is
 *  Mehmet D. Akin.
 *  Portions created by the Initial Developer are Copyright (C) 2006
 *  the Initial Developer. All Rights Reserved.
 *
 *  Contributor(s):
 *
 *  ***** END LICENSE BLOCK *****
 */

package net.zemberekserver.server.socket;

import java.io.UnsupportedEncodingException;

import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolEncoder;
import org.apache.mina.filter.codec.ProtocolEncoderOutput;

public class SimpleEncoder implements ProtocolEncoder {

      public void dispose(IoSession session) throws Exception {
      }

      public void encode(IoSession session, Object message, ProtocolEncoderOutput out)
                  throws Exception {
            try {
                  byte[] govde = ((String)message).getBytes("UTF-8");
                  byte[] boyBuffer = Integer.toString(govde.length).getBytes();
                  // Toplam mesaj boyumuz "boy + boşluk + UTf-8 kodlanmış Stringin byte hali" şeklinde  
                  byte[] mesajBytes = new byte[govde.length + boyBuffer.length + 1];
                  System.arraycopy(boyBuffer, 0, mesajBytes, 0, boyBuffer.length);
                  mesajBytes[boyBuffer.length] = ' ';
                  System.arraycopy(govde, 0, mesajBytes, boyBuffer.length+1, govde.length);
                  ByteBuffer buffer = ByteBuffer.allocate(mesajBytes.length);
                  buffer.put(mesajBytes);
                  buffer.flip();
                  out.write(buffer);
            } catch (UnsupportedEncodingException e) {
                  e.printStackTrace();
            }
      }

}

Generated by  Doxygen 1.6.0   Back to index