# Path: duct/protocol/sflow/protocol/flows.py
# class IPv4Header(object):
# class ISO8023Header(object):
# class IPv6Header(object):
# class IEEE80211MACHeader(object):
# class PPPHeader(object):
# class HeaderSample(object):
# class EthernetSample(object):
# class IPV4Sample(object):
# class IPV6Sample(object):
# class SwitchSample(object):
# class RouterSample(object):
# class GatewaySample(object):
# class UserSample(object):
# class URLSample(object):
# class MPLSSample(object):
# class NATSample(object):
# class MPLSTunnelSample(object):
# class MPLSVCSample(object):
# class MPLSFTNSample(object):
# class MPLSLDPFECSample(object):
# class VLANTunnelSample(object):
#     def __init__(self, data):
#     def __init__(self, data):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
# def getDecoder(fmt):
# 
# Path: duct/protocol/sflow/protocol/counters.py
# class InterfaceCounters(object):
# class EthernetCounters(object):
# class VLANCounters(object):
# class TokenringCounters(object):
# class VGCounters(object):
# class HostCounters(object):
# class HostAdapters(object):
# class HostParent(object):
# class HostCPUCounters(object):
# class HostMemoryCounters(object):
# class DiskIOCounters(object):
# class NetIOCounters(object):
# class SocketIPv4Counters(object):
# class SocketIPv6Counters(object):
# class VirtMemoryCounters(object):
# class VirtDiskIOCounters(object):
# class VirtNetIOCounters(object):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
# def getDecoder(fmt):


import xdrlib
from duct.protocol.sflow.protocol import flows, counters

        self.decode_samples(u)

        # Sort samples by sequence number
        self.samples.sort(key=lambda x: x.sequence)

    def decode_samples(self, u):
        """Decode samples received
        """
        for _i in range(self.sample_count):
            sample_type = u.unpack_uint()
            self.samples.append(self.samplers[sample_type](u))

class FlowSample(object):
    """Flow sample object
    """
    def __init__(self, u):
        self.size = u.unpack_uint()

        self.sequence = u.unpack_uint()
        self.source_id = u.unpack_uint()
        self.sample_rate = u.unpack_uint()
        self.sample_pool = u.unpack_uint()
        self.dropped_packets = u.unpack_uint()

        self.if_inIndex = u.unpack_uint()
        self.if_outIndex = u.unpack_uint()

        self.record_count = u.unpack_uint()


# Path: duct/protocol/sflow/protocol/flows.py
# class IPv4Header(object):
# class ISO8023Header(object):
# class IPv6Header(object):
# class IEEE80211MACHeader(object):
# class PPPHeader(object):
# class HeaderSample(object):
# class EthernetSample(object):
# class IPV4Sample(object):
# class IPV6Sample(object):
# class SwitchSample(object):
# class RouterSample(object):
# class GatewaySample(object):
# class UserSample(object):
# class URLSample(object):
# class MPLSSample(object):
# class NATSample(object):
# class MPLSTunnelSample(object):
# class MPLSVCSample(object):
# class MPLSFTNSample(object):
# class MPLSLDPFECSample(object):
# class VLANTunnelSample(object):
#     def __init__(self, data):
#     def __init__(self, data):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
# def getDecoder(fmt):
# 
# Path: duct/protocol/sflow/protocol/counters.py
# class InterfaceCounters(object):
# class EthernetCounters(object):
# class VLANCounters(object):
# class TokenringCounters(object):
# class VGCounters(object):
# class HostCounters(object):
# class HostAdapters(object):
# class HostParent(object):
# class HostCPUCounters(object):
# class HostMemoryCounters(object):
# class DiskIOCounters(object):
# class NetIOCounters(object):
# class SocketIPv4Counters(object):
# class SocketIPv6Counters(object):
# class VirtMemoryCounters(object):
# class VirtDiskIOCounters(object):
# class VirtNetIOCounters(object):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
#     def __init__(self, u):
# def getDecoder(fmt):


# Path: duct/protocol/sflow/protocol/protocol.py
import xdrlib
from duct.protocol.sflow.protocol import flows, counters


        self.decode_samples(u)

        # Sort samples by sequence number
        self.samples.sort(key=lambda x: x.sequence)

    def decode_samples(self, u):
        """Decode samples received
        """
        for _i in range(self.sample_count):
            sample_type = u.unpack_uint()
            self.samples.append(self.samplers[sample_type](u))

class FlowSample(object):
    """Flow sample object
    """
    def __init__(self, u):
        self.size = u.unpack_uint()

        self.sequence = u.unpack_uint()
        self.source_id = u.unpack_uint()
        self.sample_rate = u.unpack_uint()
        self.sample_pool = u.unpack_uint()
        self.dropped_packets = u.unpack_uint()

        self.if_inIndex = u.unpack_uint()
        self.if_outIndex = u.unpack_uint()

        self.record_count = u.unpack_uint()


        self.flows = {}