# Copyright (c) 2023 Yuki Kimoto
# MIT License
class Sys::Socket::Sockaddr::In extends Sys::Socket::Sockaddr : pointer {
version_from Sys;
use Sys::Socket::In_addr;
# Class methods
native static method new : Sys::Socket::Sockaddr::In ();
# Instance methods
native method DESTROY : void ();
method sa_family : int () {
my $sin_family = $self->sin_family;
return $sin_family;
}
native method sin_family : int ();
native method set_sin_family : void ($family : int);
native method sin_addr : Sys::Socket::In_addr ();
native method set_sin_addr : void ($address : Sys::Socket::In_addr);
native method sin_port : int ();
native method set_sin_port : void ($port : int);
native method size : int ();
method clone : Sys::Socket::Sockaddr::In () {
my $clone = Sys::Socket::Sockaddr::In->new;
$clone->set_sin_family($self->sin_family);
$clone->set_sin_addr($self->sin_addr);
$clone->set_sin_port($self->sin_port);
return $clone;
}
}