build.serializers.base   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
eloc 14
dl 0
loc 31
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A FlowSerializer.to_dict() 0 3 1
A FlowSerializer.from_dict() 0 3 1
A FlowSerializer.__init__() 0 4 1
1
"""Abstract class for serializing flows."""
2 1
from abc import ABC, abstractmethod
3
4 1
from pyof.v0x01.controller2switch.flow_mod import \
5
    FlowModCommand as CommonFlowModCommand
6
7
8 1
class FlowSerializer(ABC):
9
    """Common code for OF 1.0 and 1.3 flow serialization.
10
11
    For a FlowMod dictionary, create a FlowMod message and, for a FlowStats,
12
    create a dictionary.
13
    """
14
15
    # These values are the same in both versions 1.0 and 1.3
16 1
    OFPFC_ADD = CommonFlowModCommand.OFPFC_ADD
17 1
    OFPFC_DELETE = CommonFlowModCommand.OFPFC_DELETE
18
19 1
    def __init__(self):
20
        """Initialize common attributes of 1.0 and 1.3 versions."""
21 1
        self.flow_attributes = set(('priority', 'idle_timeout', 'hard_timeout',
22
                                    'cookie'))
23
24 1
    @abstractmethod
25
    def from_dict(self, dictionary):
26
        """Return a FlowMod instance created from a serialized dictionary."""
27
28 1
    @abstractmethod
29
    def to_dict(self, flow_stats):
30
        """Return a serialized dictionary for a FlowStats message."""
31