update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b second try
[osm/SO.git] / common / python / rift / mano / dts / core.py
1 """
2 #
3 # Copyright 2016 RIFT.IO Inc
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #
17
18 @file core.py
19 @author Varun Prasad (varun.prasad@riftio.com)
20 @date 09-Jul-2016
21
22 """
23
24 class DtsHandler(object):
25 """A common class to hold the barebone objects to build a publisher or
26 subscriber
27 """
28 def __init__(self, log, dts, loop, project):
29 """Constructor
30
31 Args:
32 log : Log handle
33 dts : DTS handle
34 loop : Asyncio event loop.
35 """
36 # Reg handle
37 self._reg = None
38 self._log = log
39 self._dts = dts
40 self._loop = loop
41 self._project = project
42
43 @property
44 def reg(self):
45 return self._reg
46
47 @reg.setter
48 def reg(self, val):
49 self._reg = val
50
51 @property
52 def log(self):
53 return self._log
54
55 @property
56 def dts(self):
57 return self._dts
58
59 @property
60 def loop(self):
61 return self._loop
62
63 @property
64 def project(self):
65 return self._project
66
67 def deregister(self):
68 self._log.debug("De-registering DTS handler ({}) for project {}".
69 format(self.__class__.__name__, self._project))
70 if self._reg:
71 self._reg.deregister()
72 self._reg = None