Streamline template dictionary use
This commit is contained in:
@@ -34,7 +34,7 @@ from hippolyzer.lib.base.message.message_formatting import (
|
||||
SpannedString,
|
||||
)
|
||||
from hippolyzer.lib.base.message.msgtypes import MsgType
|
||||
from hippolyzer.lib.base.message.template_dict import TemplateDictionary
|
||||
from hippolyzer.lib.base.message.template_dict import DEFAULT_TEMPLATE_DICT
|
||||
from hippolyzer.lib.base.ui_helpers import loadUi
|
||||
import hippolyzer.lib.base.serialization as se
|
||||
from hippolyzer.lib.base.network.transport import Direction, SocketUDPTransport
|
||||
@@ -446,7 +446,7 @@ class MessageBuilderWindow(QtWidgets.QMainWindow):
|
||||
def __init__(self, parent, session_manager):
|
||||
super().__init__(parent=parent)
|
||||
loadUi(MESSAGE_BUILDER_UI_PATH, self)
|
||||
self.templateDict = TemplateDictionary()
|
||||
self.templateDict = DEFAULT_TEMPLATE_DICT
|
||||
self.llsdSerializer = LLSDMessageSerializer()
|
||||
self.sessionManager: SessionManager = session_manager
|
||||
self.regionModel = RegionListModel(self, self.sessionManager)
|
||||
|
||||
@@ -5,14 +5,13 @@ from hippolyzer.lib.base import llsd
|
||||
from hippolyzer.lib.base.message.data_packer import LLSDDataPacker
|
||||
from hippolyzer.lib.base.message.message import Message
|
||||
from hippolyzer.lib.base.message.template import MessageTemplateVariable
|
||||
from hippolyzer.lib.base.message.template_dict import TemplateDictionary
|
||||
|
||||
from hippolyzer.lib.base.message.template_dict import TemplateDictionary, DEFAULT_TEMPLATE_DICT
|
||||
|
||||
VAR_PAIR = Tuple[dict, MessageTemplateVariable]
|
||||
|
||||
|
||||
class LLSDMessageSerializer:
|
||||
DEFAULT_TEMPLATE = TemplateDictionary()
|
||||
DEFAULT_TEMPLATE = DEFAULT_TEMPLATE_DICT
|
||||
|
||||
def __init__(self, message_template=None, message_cls: Type[Message] = Message):
|
||||
if message_template is not None:
|
||||
|
||||
@@ -27,25 +27,35 @@ from .template import MessageTemplate
|
||||
from .template_parser import MessageTemplateParser
|
||||
|
||||
|
||||
DEFAULT_PARSER = MessageTemplateParser(msg_tmpl)
|
||||
|
||||
|
||||
class TemplateDictionary:
|
||||
"""the dictionary with all known templates"""
|
||||
|
||||
def __init__(self, template_list=None, message_template=None):
|
||||
if template_list is None:
|
||||
if message_template is None:
|
||||
parser = MessageTemplateParser(msg_tmpl)
|
||||
parser = DEFAULT_PARSER
|
||||
else:
|
||||
parser = MessageTemplateParser(message_template)
|
||||
template_list = parser.message_templates
|
||||
|
||||
self.template_list: typing.List[MessageTemplate] = template_list
|
||||
|
||||
self.template_list: typing.List[MessageTemplate] = []
|
||||
# maps name to template
|
||||
self.message_templates = {}
|
||||
|
||||
# maps (freq,num) to template
|
||||
self.message_dict = {}
|
||||
|
||||
self.load_templates(template_list)
|
||||
|
||||
def load_templates(self, template_list):
|
||||
self.template_list.clear()
|
||||
self.template_list.extend(template_list)
|
||||
self.message_templates.clear()
|
||||
self.message_dict.clear()
|
||||
|
||||
self.build_dictionaries(template_list)
|
||||
self.build_message_ids()
|
||||
|
||||
@@ -99,3 +109,6 @@ class TemplateDictionary:
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self.template_list)
|
||||
|
||||
|
||||
DEFAULT_TEMPLATE_DICT = TemplateDictionary()
|
||||
|
||||
@@ -26,7 +26,7 @@ from logging import getLogger
|
||||
from hippolyzer.lib.base.datatypes import JankStringyBytes
|
||||
from hippolyzer.lib.base.settings import Settings
|
||||
from .template import MessageTemplateVariable
|
||||
from .template_dict import TemplateDictionary
|
||||
from .template_dict import DEFAULT_TEMPLATE_DICT
|
||||
from .msgtypes import MsgType, MsgBlockType, PacketLayout
|
||||
from .data_packer import TemplateDataPacker
|
||||
from .message import Message, Block
|
||||
@@ -62,7 +62,7 @@ def _parse_msg_num(reader: se.BufferReader):
|
||||
|
||||
|
||||
class UDPMessageDeserializer:
|
||||
DEFAULT_TEMPLATE = TemplateDictionary()
|
||||
DEFAULT_TEMPLATE = DEFAULT_TEMPLATE_DICT
|
||||
|
||||
def __init__(self, settings=None):
|
||||
self.settings = settings or Settings()
|
||||
|
||||
@@ -26,7 +26,7 @@ from .data_packer import TemplateDataPacker
|
||||
from .message import Message, MsgBlockList
|
||||
from .msgtypes import MsgType, MsgBlockType
|
||||
from .template import MessageTemplateVariable, MessageTemplateBlock
|
||||
from .template_dict import TemplateDictionary
|
||||
from .template_dict import TemplateDictionary, DEFAULT_TEMPLATE_DICT
|
||||
from hippolyzer.lib.base import exc
|
||||
from hippolyzer.lib.base import serialization as se
|
||||
from hippolyzer.lib.base.datatypes import RawBytes
|
||||
@@ -35,7 +35,7 @@ logger = getLogger('message.udpserializer')
|
||||
|
||||
|
||||
class UDPMessageSerializer:
|
||||
DEFAULT_TEMPLATE = TemplateDictionary(None)
|
||||
DEFAULT_TEMPLATE = DEFAULT_TEMPLATE_DICT
|
||||
|
||||
def __init__(self, message_template=None):
|
||||
if message_template is not None:
|
||||
|
||||
Reference in New Issue
Block a user