Skip to content

refactor(facade): update udp_facade to return common protocol interfaces #655

Description

@kcenon

Summary

Update udp_facade to return i_protocol_client and i_protocol_server instead of protocol-specific i_udp_client and i_udp_server interfaces.

Part of #577

Problem

Currently, udp_facade returns protocol-specific interfaces:

  • create_client() returns std::shared_ptr<interfaces::i_udp_client>
  • create_server() returns std::shared_ptr<interfaces::i_udp_server>

This prevents moving protocol-specific interfaces to internal, blocking the EPIC goal of reducing public header count.

Solution

Follow the pattern established in tcp_facade.h:

  1. Update udp_facade.h includes:

    • Remove: #include "kcenon/network/interfaces/i_udp_client.h"
    • Remove: #include "kcenon/network/interfaces/i_udp_server.h"
    • Add: #include "kcenon/network/interfaces/i_protocol_client.h"
    • Add: #include "kcenon/network/interfaces/i_protocol_server.h"
  2. Update return types:

    • create_client()std::shared_ptr<interfaces::i_protocol_client>
    • create_server()std::shared_ptr<interfaces::i_protocol_server>
  3. Update udp_facade.cpp implementation:

    • Ensure messaging_udp_client implements i_protocol_client
    • Ensure messaging_udp_server implements i_protocol_server
  4. Update documentation to reflect new return types

Acceptance Criteria

  • udp_facade.h includes i_protocol_client.h and i_protocol_server.h
  • create_client() returns i_protocol_client pointer
  • create_server() returns i_protocol_server pointer
  • All existing tests pass
  • No breaking changes to existing code (polymorphism preserved)
  • Documentation updated

References

Metadata

Metadata

Assignees

Labels

architectureArchitectural changes and designrefactoringCode refactoring and improvements

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions