/*
* myLib - https://github.com/taktod/myLib
* Copyright (c) 2014 ttProject. All rights reserved.
*
* Licensed under The MIT license.
*/
package com.ttProject.rtmp.message.type;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
import io.netty.buffer.ByteBuf;
import com.ttProject.container.flv.amf.Amf0Value;
import com.ttProject.nio.channels.ByteReadChannel;
import com.ttProject.nio.channels.IReadChannel;
import com.ttProject.rtmp.header.IRtmpHeader;
import com.ttProject.rtmp.message.MessageType;
import com.ttProject.rtmp.message.RtmpMessage;
/**
* Amf0DataMessage
* @author taktod
*/
public class Amf0DataMessage extends RtmpMessage {
private String messageName;
private List<Object> objectData;
/**
* constructor
*/
public Amf0DataMessage() {
super();
objectData = new ArrayList<Object>();
}
/**
* constructor
* @param header
* @param in
* @throws Exception
*/
public Amf0DataMessage(IRtmpHeader header, ByteBuf in) throws Exception {
super(header, in);
}
/**
* {@inheritDoc}
*/
@Override
protected MessageType getMessageType() {
return MessageType.AMF0_DATA_MESSAGE;
}
/**
* {@inheritDoc}
*/
@Override
public ByteBuffer getData() throws Exception {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public void setData(ByteBuf in) throws Exception {
IReadChannel channel = new ByteReadChannel(in.nioBuffer());
Object data = Amf0Value.getValueObject(channel);
messageName = (String)data;
objectData = new ArrayList<Object>();
while(channel.position() < channel.size()) {
objectData.add(Amf0Value.getValueObject(channel));
}
}
public String getMessageName() {
return messageName;
}
public List<Object> getObjectData() {
return objectData;
}
}