Skip to content

Commit 2eec6e5

Browse files
committed
error handling
1 parent 718bd69 commit 2eec6e5

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

src/olink/clientnode.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ class InvokeReplyArg:
99
def __init__(self, name: str, value: Any):
1010
self.name = name
1111
self.value = value
12+
1213
name: str
1314
value: Any
1415

@@ -71,7 +72,8 @@ def remove_node_from_sink(self, name: str, node: "ClientNode"):
7172
self.entries[resource].node = None
7273
else:
7374
self.emit_log(
74-
LogLevel.DEBUG, f"unlink node failed, not the same node: {resource}")
75+
LogLevel.DEBUG, f"unlink node failed, not the same node: {resource}"
76+
)
7577

7678
def register_sink(self, sink: IObjectSink) -> "ClientNode":
7779
# register sink using object name
@@ -131,18 +133,18 @@ def next_request_id(self) -> int:
131133
self.requestId += 1
132134
return self.requestId
133135

134-
def invoke_remote(self, name: str, args: list[Any], func: Optional[InvokeReplyFunc]) -> None:
135-
self.emit_log(LogLevel.DEBUG,
136-
f"ClientNode.invoke_remote: {name} {args}")
136+
def invoke_remote(
137+
self, name: str, args: list[Any], func: Optional[InvokeReplyFunc]
138+
) -> None:
139+
self.emit_log(LogLevel.DEBUG, f"ClientNode.invoke_remote: {name} {args}")
137140
request_id = self.next_request_id()
138141
if func:
139142
self.invokes_pending[request_id] = func
140143
self.emit_write(Protocol.invoke_message(request_id, name, args))
141144

142145
def set_remote_property(self, name: str, value: Any) -> None:
143146
# send remote propertymessage
144-
self.emit_log(LogLevel.DEBUG,
145-
f"ClientNode.set_remote_property: {name} {value}")
147+
self.emit_log(LogLevel.DEBUG, f"ClientNode.set_remote_property: {name} {value}")
146148
self.emit_write(Protocol.set_property_message(name, value))
147149

148150
def link_node(self, name: str):
@@ -189,16 +191,16 @@ def handle_init(self, name: str, props: object):
189191

190192
def handle_property_change(self, name: str, value: Any) -> None:
191193
# handle property change message from source
192-
self.emit_log(LogLevel.DEBUG,
193-
f"ClientNode.handle_property_change: {name}")
194+
self.emit_log(LogLevel.DEBUG, f"ClientNode.handle_property_change: {name}")
194195
sink = self.get_sink(name)
195196
if sink:
196197
sink.olink_on_property_changed(name, value)
197198

198199
def handle_invoke_reply(self, id: int, name: str, value: Any) -> None:
199200
# handle invoke reply message from source
200-
self.emit_log(LogLevel.DEBUG,
201-
f"ClientNode.handle_invoke_reply: {id} {name} {value}")
201+
self.emit_log(
202+
LogLevel.DEBUG, f"ClientNode.handle_invoke_reply: {id} {name} {value}"
203+
)
202204
if id in self.invokes_pending:
203205
func = self.invokes_pending[id]
204206
if func:
@@ -210,13 +212,13 @@ def handle_invoke_reply(self, id: int, name: str, value: Any) -> None:
210212

211213
def handle_signal(self, name: str, args: list[Any]) -> None:
212214
# handle signal message from source
213-
self.emit_log(LogLevel.DEBUG,
214-
f"ClientNode.handle_signal: {name} {args}")
215+
self.emit_log(LogLevel.DEBUG, f"ClientNode.handle_signal: {name} {args}")
215216
sink = self.get_sink(name)
216217
if sink:
217218
sink.olink_on_signal(name, args)
218219

219220
def handle_error(self, msgType: MsgType, id: int, error: str):
220221
# handle error message from source
221-
self.emit_log(LogLevel.DEBUG,
222-
f"ClientNode.handle_error: {msgType} {id} {error}")
222+
self.emit_log(
223+
LogLevel.DEBUG, f"ClientNode.handle_error: {msgType} {id} {error}"
224+
)

src/olink/core/node.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1+
import logging
12
from typing import Any
23
from olink.core.protocol import IProtocolListener, Protocol
3-
from olink.core.types import Base, LogLevel, MessageConverter, MessageFormat, WriteMessageFunc
4+
from olink.core.types import (
5+
Base,
6+
LogLevel,
7+
MessageConverter,
8+
MessageFormat,
9+
WriteMessageFunc,
10+
)
411

512

613
class BaseNode(Base, IProtocolListener):
@@ -28,5 +35,9 @@ def emit_write(self, msg: list[Any]) -> None:
2835

2936
def handle_message(self, data: str) -> None:
3037
# handle a message and pass is on to the protocol
31-
msg = self.converter.from_string(data)
32-
self.protocol.handle_message(msg)
38+
try:
39+
msg = self.converter.from_string(data)
40+
self.protocol.handle_message(msg)
41+
except Exception as e:
42+
logging.error("handle_message error: %s", e)
43+
raise e

0 commit comments

Comments
 (0)