/usr/share/perl5/ZMQ/FFI/SocketRole.pm is in libzmq-ffi-perl 1.11-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | package ZMQ::FFI::SocketRole;
$ZMQ::FFI::SocketRole::VERSION = '1.11';
use FFI::Platypus;
use FFI::Platypus::Memory qw(malloc);
use ZMQ::FFI::Constants qw(zmq_msg_t_size);
use ZMQ::FFI::Util qw(current_tid);
use Moo::Role;
has soname => (
is => 'ro',
required => 1,
);
# zmq constant socket type, e.g. ZMQ_REQ
has type => (
is => 'ro',
required => 1,
);
# real underlying zmq socket pointer
has socket_ptr => (
is => 'rw',
default => -1,
);
# message struct to reuse when sending/receiving
has _zmq_msg_t => (
is => 'ro',
lazy => 1,
builder => '_build_zmq_msg_t',
);
# used to make sure we handle fork situations correctly
has _pid => (
is => 'ro',
default => sub { $$ },
);
# used to make sure we handle thread situations correctly
has _tid => (
is => 'ro',
default => sub { current_tid() },
);
has sockopt_sizes => (
is => 'ro',
lazy => 1,
builder => '_build_sockopt_sizes'
);
sub _build_zmq_msg_t {
my ($self) = @_;
my $msg_ptr;
{
no strict q/refs/;
my $class = ref $self;
$msg_ptr = malloc(zmq_msg_t_size);
&{"$class\::zmq_msg_init"}($msg_ptr);
}
return $msg_ptr;
}
sub _build_sockopt_sizes {
my $ffi = FFI::Platypus->new();
return {
int => $ffi->sizeof('int'),
sint64 => $ffi->sizeof('sint64'),
uint64 => $ffi->sizeof('uint64'),
};
}
requires qw(
connect
disconnect
bind
unbind
send
send_multipart
recv
recv_multipart
get_fd
get_linger
set_linger
get_identity
set_identity
subscribe
unsubscribe
has_pollin
has_pollout
get
set
close
);
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
ZMQ::FFI::SocketRole
=head1 VERSION
version 1.11
=head1 AUTHOR
Dylan Cali <calid1984@gmail.com>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Dylan Cali.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|