Commit f877f890 authored by olivier R-D's avatar olivier R-D

renaming in interface and documentation

parent e35fc08f
...@@ -19,24 +19,44 @@ def bytes_to_datetime(data): ...@@ -19,24 +19,44 @@ def bytes_to_datetime(data):
class HistoryStorageInterface(object): class HistoryStorageInterface(object):
""" """
Interface of a history backend Interface of a history backend.
Must be implemented by backends
""" """
def new_node(self, node, period, count=0): def new_historized_node(self, node, period, count=0):
"""
Called when a new node is to be historized
"""
raise NotImplementedError raise NotImplementedError
def save_datavalue(self, node, datavalue): def save_node_value(self, node, datavalue):
"""
Called when the value of a historized node has changed and should be saved in history
"""
raise NotImplementedError raise NotImplementedError
def read_datavalues(self, node, start, end, nb_values): def read_node_history(self, node, start, end, nb_values):
"""
Called when a client make a history read request for a node
"""
raise NotImplementedError raise NotImplementedError
def new_event(self, event, period): def new_historized_event(self, event, period):
"""
Called when historization of events is enabled on server side
FIXME: we may need to store events per nodes in future...
"""
raise NotImplementedError raise NotImplementedError
def save_event(self, event): def save_event(self, event):
"""
Called when a new event has been generated ans should be saved in history
"""
raise NotImplementedError raise NotImplementedError
def read_events(self, start, end, evfilter): def read_event_history(self, start, end, evfilter):
"""
Called when a client make a history read request for events
"""
raise NotImplementedError raise NotImplementedError
...@@ -49,14 +69,14 @@ class HistoryDict(HistoryStorageInterface): ...@@ -49,14 +69,14 @@ class HistoryDict(HistoryStorageInterface):
self._datachanges_period = {} self._datachanges_period = {}
self._events = {} self._events = {}
def new_node(self, node, period, count=0): def new_historized_node(self, node, period, count=0):
self._datachanges[node] = [] self._datachanges[node] = []
self._datachanges_period[node] = period, count self._datachanges_period[node] = period, count
def new_event(self, event, period): def new_historized_event(self, event, period):
self._events = [] self._events = []
def save_datavalue(self, node, datavalue): def save_node_value(self, node, datavalue):
print("saving", node, datavalue) print("saving", node, datavalue)
data = self._datachanges[node] data = self._datachanges[node]
period, count = self._datachanges_period[node] period, count = self._datachanges_period[node]
...@@ -68,7 +88,7 @@ class HistoryDict(HistoryStorageInterface): ...@@ -68,7 +88,7 @@ class HistoryDict(HistoryStorageInterface):
if count and len(data) > count: if count and len(data) > count:
data = data[-count:] data = data[-count:]
def read_datavalues(self, node, start, end, nb_values): def read_node_history(self, node, start, end, nb_values):
if node not in self._datachanges: if node not in self._datachanges:
return [] return []
else: else:
...@@ -78,7 +98,7 @@ class HistoryDict(HistoryStorageInterface): ...@@ -78,7 +98,7 @@ class HistoryDict(HistoryStorageInterface):
def save_event(self, timestamp, event): def save_event(self, timestamp, event):
raise NotImplementedError raise NotImplementedError
def read_events(self, start, end, evfilter): def read_event_history(self, start, end, evfilter):
raise NotImplementedError raise NotImplementedError
...@@ -87,7 +107,7 @@ class SubHandler(object): ...@@ -87,7 +107,7 @@ class SubHandler(object):
self.storage = storage self.storage = storage
def datachange_notification(self, node, val, data): def datachange_notification(self, node, val, data):
self.storage.save_datavalue(node, data.monitored_item.Value) self.storage.save_node_value(node, data.monitored_item.Value)
def event_notification(self, event): def event_notification(self, event):
self.storage.save_event(event) self.storage.save_event(event)
...@@ -118,7 +138,7 @@ class HistoryManager(object): ...@@ -118,7 +138,7 @@ class HistoryManager(object):
self._sub = self._create_subscription(SubHandler(self.storage)) self._sub = self._create_subscription(SubHandler(self.storage))
if node in self._handlers: if node in self._handlers:
raise ua.UaError("Node {} is allready historized".format(node)) raise ua.UaError("Node {} is allready historized".format(node))
self.storage.new_node(node, period, count) self.storage.new_historized_node(node, period, count)
handler = self._sub.subscribe_data_change(node) handler = self._sub.subscribe_data_change(node)
self._handlers[node] = handler self._handlers[node] = handler
...@@ -160,7 +180,7 @@ class HistoryManager(object): ...@@ -160,7 +180,7 @@ class HistoryManager(object):
result.HistoryData = ua.HistoryEvent() result.HistoryData = ua.HistoryEvent()
# FIXME: filter is a cumbersome type, maybe transform it something easier # FIXME: filter is a cumbersome type, maybe transform it something easier
# to handle for storage # to handle for storage
result.HistoryData.Events = self.storage.read_events(details.StartTime, result.HistoryData.Events = self.storage.read_event_history(details.StartTime,
details.EndTime, details.EndTime,
details.Filter) details.Filter)
else: else:
...@@ -177,7 +197,7 @@ class HistoryManager(object): ...@@ -177,7 +197,7 @@ class HistoryManager(object):
# send correctly with continuation point # send correctly with continuation point
starttime = bytes_to_datetime(rv.ContinuationPoint) starttime = bytes_to_datetime(rv.ContinuationPoint)
dv, cont = self.storage.read_datavalues(rv.NodeId, dv, cont = self.storage.read_node_history(rv.NodeId,
starttime, starttime,
details.EndTime, details.EndTime,
details.NumValuesPerNode) details.NumValuesPerNode)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment