Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • M metaolm
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 13
    • Issues 13
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Archive
  • metaolm
  • Issues
  • #27
Closed
Open
Issue created May 22, 2019 by Johannes Hayeß@jhaye🖤Maintainer

Deprecate SelfInfo packets in favour of something better

SelfInfo packets were originally intended to be a quick fix for noticing that sometimes a blocked packet needs to be stored with additional info in order to be handled internally.

Originally I thought that Metaolm would only have to keep track of blocked packets and once an appropriate request/response from the client is received, it is forwarded. As the system evolved, Metaolm moved increasingly further from this original design idea. Now that Metaolm also handles much more complex routines, most of the blocked items that it has to keep track of are of the type SelfInfo. This will only increase, proportionably to more complex cases being handled. This has additional issues, in the sense that structs have to be serialised/deserialised constantly, as an M2CPacket can only hold string data, resulting in unnecessary error handling and overhead.

A better approach would be to remove SelfInfo entirely and instead design a data object that can hold every blocked action in whole, probably with an enum.

Assignee
Assign to
Time tracking