CSocketAddress.h 749 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #include <AK/IPv4Address.h>
  3. class CSocketAddress {
  4. public:
  5. enum class Type {
  6. Invalid,
  7. IPv4,
  8. Local
  9. };
  10. CSocketAddress() {}
  11. CSocketAddress(const IPv4Address& address)
  12. : m_type(Type::IPv4)
  13. , m_ipv4_address(address)
  14. {
  15. }
  16. Type type() const { return m_type; }
  17. bool is_valid() const { return m_type != Type::Invalid; }
  18. IPv4Address ipv4_address() const { return m_ipv4_address; }
  19. String to_string() const
  20. {
  21. switch (m_type) {
  22. case Type::IPv4:
  23. return m_ipv4_address.to_string();
  24. default:
  25. return "[CSocketAddress]";
  26. }
  27. }
  28. private:
  29. Type m_type { Type::Invalid };
  30. IPv4Address m_ipv4_address;
  31. };