Passed
Push — master ( c86d28...05d6fc )
by Humberto
01:30 queued 11s
created

build.serializers.base.FlowSerializer.__init__()   A

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nop 1
crap 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