/*
 * @(#) NSSAESEncoder.java Oct 24, 2012 
 *
 * Copyright 2012 NHN Corp. All rights Reserved. 
 * NHN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.hovans.netty.tcpsample.network;

import org.jboss.netty.buffer.BigEndianHeapChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelHandler;

import android.content.Context;
import android.os.PowerManager;

import com.hovans.android.log.LogByCodeLab;
import com.hovans.netty.tcpsample.service.NettyService;
import com.hovans.netty.tcpsample.util.WakeLockWrapper;

/**
 * 기존에 jsonString 을 받도록 한 것을 가독성을 위해 object로 변경 [2013-03-19, 유병우]
 * @author 유승현, 유병우
 */
public class ChannelEncoder extends SimpleChannelHandler {

	Context mContext;

	public ChannelEncoder(Context context) {
		super();
		mContext = context;
	}

	@Override
	public void writeRequested(ChannelHandlerContext ctx, MessageEvent event) throws Exception {
		
		PowerManager.WakeLock wakeLock = WakeLockWrapper.getWakeLockInstance(mContext, ChannelEncoder.class.getSimpleName());
		wakeLock.acquire();

		try {
			String jsonString = event.getMessage().toString();

			LogByCodeLab.i(String.format("WRITE [%s]", jsonString));

			ChannelBuffer cb = new BigEndianHeapChannelBuffer(24);
			cb.writeBytes(new byte[24]);

			Channels.write(ctx, event.getFuture(), cb);
		} finally {
			wakeLock.release();
		}
	}
}