blob: f1936c204b3ed71fc6791878d03ffd537630830f [file] [log] [blame]
Fahad Naeem Khan8a8daf22014-10-06 14:07:43 -07001package net.floodlightcontroller.core.web.serializers;
2
3import java.io.IOException;
Fahad Naeem Khand89448d2014-10-06 18:40:45 -07004import java.util.Iterator;
5import java.util.Set;
Fahad Naeem Khan8a8daf22014-10-06 14:07:43 -07006
7import net.floodlightcontroller.core.web.OFFlowStatsEntryMod;
8
9import org.codehaus.jackson.JsonGenerationException;
10import org.codehaus.jackson.JsonGenerator;
11import org.codehaus.jackson.map.SerializerProvider;
12import org.codehaus.jackson.map.ser.std.SerializerBase;
Fahad Naeem Khand89448d2014-10-06 18:40:45 -070013import org.projectfloodlight.openflow.protocol.OFFlowModFlags;
14import org.projectfloodlight.openflow.protocol.OFFlowStatsEntry;
15import org.projectfloodlight.openflow.protocol.OFMatchV3;
16import org.projectfloodlight.openflow.protocol.OFOxmList;
17import org.projectfloodlight.openflow.protocol.match.MatchFields;
18import org.projectfloodlight.openflow.protocol.oxm.OFOxm;
19import org.projectfloodlight.openflow.protocol.oxm.OFOxmIpv4DstMasked;
Fahad Naeem Khan8a8daf22014-10-06 14:07:43 -070020
21public class OFFlowStatsEntryModSerializer extends SerializerBase<OFFlowStatsEntryMod> {
22
23 protected OFFlowStatsEntryModSerializer(){
24 super(OFFlowStatsEntryMod.class);
25 }
26
27 @Override
28 public void serialize(OFFlowStatsEntryMod FlowStatsEntryMod, JsonGenerator jGen,
29 SerializerProvider sp) throws IOException,
30 JsonGenerationException {
Fahad Naeem Khand89448d2014-10-06 18:40:45 -070031 OFFlowStatsEntry flowStatsEntry = FlowStatsEntryMod.getFlowStatsEntry();
32 OFOxmList matches = ((OFMatchV3)flowStatsEntry.getMatch()).getOxmList();
33 Set<OFFlowModFlags> flags = flowStatsEntry.getFlags();
34 jGen.writeStartObject();
Fahad Naeem Khan8a8daf22014-10-06 14:07:43 -070035
Fahad Naeem Khand89448d2014-10-06 18:40:45 -070036 jGen.writeNumberField("byteCount", flowStatsEntry.getByteCount().getValue());
37 jGen.writeNumberField("cookie", flowStatsEntry.getCookie().getValue());
38 jGen.writeNumberField("durationNsec", flowStatsEntry.getDurationNsec());
39 jGen.writeNumberField("durationSec", flowStatsEntry.getDurationSec());
40 jGen.writeArrayFieldStart("flags");
41 for (OFFlowModFlags flag: flags){
42 jGen.writeNullField(flag.name());;
43 }
44 jGen.writeEndArray();
45 jGen.writeNumberField("hardTimeout", flowStatsEntry.getHardTimeout());
46 jGen.writeNumberField("idleTimeout", flowStatsEntry.getIdleTimeout());
47 jGen.writeArrayFieldStart("match");
48 //jGen.writeStartObject();
49 Iterator<OFOxm<?>> match= matches.iterator();
50 while(match.hasNext()){
51 OFOxm<?> matchGeneric = match.next();
52 if (matchGeneric.getMatchField().id == MatchFields.IPV4_DST){
53
54 //jGen.writeObjectField("networkDestination", ((OFOxmIpv4DstVer13) matchGeneric).getValue());
55 }
56
57
58 }
59 jGen.writeEndArray();
60
61 jGen.writeEndObject();
Fahad Naeem Khan8a8daf22014-10-06 14:07:43 -070062 }
Fahad Naeem Khand89448d2014-10-06 18:40:45 -070063
Fahad Naeem Khan8a8daf22014-10-06 14:07:43 -070064
65}