Package skadistats.clarity.parser.handler

Source Code of skadistats.clarity.parser.handler.SvcSendTableHandler

package skadistats.clarity.parser.handler;

import java.util.LinkedList;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import skadistats.clarity.match.Match;
import skadistats.clarity.model.DTClass;
import skadistats.clarity.model.PropType;
import skadistats.clarity.model.SendProp;
import skadistats.clarity.model.SendTable;
import skadistats.clarity.parser.Handler;
import skadistats.clarity.parser.HandlerHelper;
import skadistats.clarity.parser.RegisterHandler;

import com.dota2.proto.Netmessages.CSVCMsg_SendTable;
import com.dota2.proto.Netmessages.CSVCMsg_SendTable.sendprop_t;

@RegisterHandler(CSVCMsg_SendTable.class)
public class SvcSendTableHandler implements Handler<CSVCMsg_SendTable> {

    private final Logger log = LoggerFactory.getLogger(getClass());
   
    @Override
    public void apply(int peekTick, CSVCMsg_SendTable message, Match match) {
        HandlerHelper.traceMessage(log, peekTick, message);

        LinkedList<SendProp> props = new LinkedList<SendProp>();
        SendTable st = new SendTable(
            message.getNetTableName(),
            message.getNeedsDecoder(),
            props
        );

        for (sendprop_t sp : message.getPropsList()) {
            props.add(
                new SendProp(
                    st,
                    sp.getType() == PropType.ARRAY.ordinal() ? props.peekLast() : null,
                    sp.getType(),
                    sp.getVarName(),
                    sp.getFlags(),
                    sp.getPriority(),
                    sp.getDtName(),
                    sp.getNumElements(),
                    sp.getLowValue(),
                    sp.getHighValue(),
                    sp.getNumBits()
                )
            );
        }
       
        match.getDtClasses().add(new DTClass(message.getNetTableName(), st));
    }

}
TOP

Related Classes of skadistats.clarity.parser.handler.SvcSendTableHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.