view release on metacpan or search on metacpan
=head1 SYNOPSIS
use Net::FreeDB;
$freedb = Net::FreeDB->new();
$discdata = $freedb->getdiscdata('/dev/cdrom');
my $cddb_file_object = $freedb->read('rock', $discdata->{ID});
print $cddb_file_object->id;
=head1 DESCRIPTION
Net::FreeDB was inspired by Net::CDDB. And in-fact
NOTE: See BUGS
=item get_local_disc_data
Parameters:
getdiscdata($) takes the device you want to use. See getdiscid()
for full description.
getdiscdata() returns a hash of the given disc data as you would
require for a call to query. The returns hash look like:
{
ID => 'd00b3d10',
NUM_TRKS => '3',
=back
=head1 BUGS
The current version of getdiscid() and getdiscdata()
on the Windows platform takes ANY string in a single
cdrom configuration and works fine. That is if you
only have 1 cdrom drive; you can pass in ANY string
and it will still scan that cdrom drive and return
the correct data. If you have more then 1 cdrom drive
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/FullAuto/FA_Core.pm view on Meta::CPAN
nsc => 'application/x-conference',
nvd => 'application/x-navidoc',
o => 'application/octet-stream',
oda => 'application/oda',
omc => 'application/x-omc',
omcd => 'application/x-omcdatamaker',
omcr => 'application/x-omcregerator',
p => 'text/x-pascal',
p10 => 'application/pkcs10',
#p10 => 'application/x-pkcs10',
p12 => 'application/pkcs-12',
view all matches for this distribution
view release on metacpan or search on metacpan
share/services_hashes_dump.yml view on Meta::CPAN
11103:
- origo-sync
11104:
- netapp-icmgmt
11105:
- netapp-icdata
11106:
- sgi-lk
11108:
- myq-termlink
11109:
share/services_hashes_dump.yml view on Meta::CPAN
11104:
tcp:
- netapp-icmgmt
11105:
tcp:
- netapp-icdata
11106:
tcp:
- sgi-lk
udp:
- sgi-lk
share/services_hashes_dump.yml view on Meta::CPAN
- 2450
netagent:
- 5771
netangel:
- 2442
netapp-icdata:
- 11105
netapp-icmgmt:
- 11104
netarx:
- 1040
share/services_hashes_dump.yml view on Meta::CPAN
udp:
2442:
desc: Netangel
name: netangel
note: ''
netapp-icdata:
tcp:
11105:
desc: NetApp Intercluster Data
name: netapp-icdata
note: ''
netapp-icmgmt:
tcp:
11104:
desc: NetApp Intercluster Management
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/Jabber/Dialback/Result.pm view on Meta::CPAN
GetFrom() - returns a string with server that the <db:result/> is being
sent from.
GetType() - returns a string with the type <db:result/> this is.
GetData() - returns a string with the cdata of the <db:result/>.
GetXML() - returns the XML string that represents the <db:result/>.
This is used by the Send() function in Server.pm to send
this object as a Jabber Dialback Result.
lib/Net/Jabber/Dialback/Result.pm view on Meta::CPAN
SetType(string) - sets the type attribute. Valid settings are:
valid
invalid
SetData(string) - sets the cdata of the <db:result/>.
=head2 Test functions
DefinedTo() - returns 1 if the to attribute is defined in the
<db:result/>, 0 otherwise.
view all matches for this distribution
view release on metacpan or search on metacpan
libnfs/include/libnfs-private.h view on Meta::CPAN
struct nfs_cb_data;
void free_nfs_cb_data(struct nfs_cb_data *data);
struct nfs_specdata {
uint32_t specdata1;
uint32_t specdata2;
};
struct nfs_time {
uint32_t seconds;
uint32_t nseconds;
};
libnfs/include/libnfs-private.h view on Meta::CPAN
uint32_t gid;
uint32_t nlink;
uint64_t size;
uint64_t used;
uint64_t fsid;
struct nfs_specdata rdev;
struct nfs_time atime;
struct nfs_time mtime;
struct nfs_time ctime;
};
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/OSCAR.pm view on Meta::CPAN
$self->{proxy_type}, $self->{proxy_host}, $self->{proxy_port},
$self->{proxy_username}, $self->{proxy_password}, $self->{local_ip},
$self->{local_port}, $self->{pass_is_hashed}, $self->{stealth}) =
delete @args{qw(screenname password host port proxy_type proxy_host proxy_port proxy_username proxy_password local_ip local_port pass_is_hashed stealth)};
$self->{svcdata} = \%args;
if(defined($self->{proxy_type})) {
$self->{proxy_type} = uc($self->{proxy_type});
die "You must specify proxy_host if proxy_type is specified!\n" unless $self->{proxy_host};
if($self->{proxy_type} eq "HTTP" or $self->{proxy_type} eq "HTTPS") {
lib/Net/OSCAR.pm view on Meta::CPAN
sub send_im($$$;$) {
my($self, $to, $msg, $away) = @_;
return must_be_on($self) unless $self->{is_on};
if(!$self->{svcdata}->{hashlogin}) {
return 0 if length($msg) >= 7987;
} else {
return 0 if length($msg) > 2000;
}
lib/Net/OSCAR.pm view on Meta::CPAN
my($port) = sockaddr_in(getsockname($connection->{socket}));
my $size = 0;
$size += length($_->{data}) foreach @filerefs;
my %svcdata = (
file_count_status => (@filerefs > 1 ? 2 : 1),
file_count => scalar(@filerefs),
size => $size,
files => [map {$_->{name}} @filerefs]
);
lib/Net/OSCAR.pm view on Meta::CPAN
status => "propose",
client_1_ip => $ip,
client_2_ip => $ip,
port => $port,
proxy_ip => unpack("N", inet_aton("63.87.248.248")), # TODO: What's this really supposed to be?
svcdata_charset => "us-ascii",
svcdata => protoparse($self, "file_transfer_rendezvous_data")->pack(%svcdata)
);
my($req_id) = $self->send_message($screenname, 2, pack("nn", 3, 0) . protoparse($self, "rendezvous_IM")->pack(%protodata), 0, $cookie);
$self->{rv_proposals}->{$cookie} = $connection->{rv} = {
view all matches for this distribution
view release on metacpan or search on metacpan
t/07-htmlparse.t view on Meta::CPAN
'rss'=>"http://www.livejournal.com/~brad/data/rss",
'atom'=>"http://www.livejournal.com/~brad/data/atom",
},'everything from consumer.pm comments' );
my $uri3 = 'http://openid.example.com/cdata_crap';
addf_uri($uri3,content => <<END );
<html><head>
<link rel="openid.server" href="http://www.livejournal.com/misc/openid.bml" />
<link rel="openid.delegate" href="http://openid1.net/delegate" />
<script type="text/javascript">//<![CDATA[
view all matches for this distribution
view release on metacpan or search on metacpan
t/03-seminfo.t view on Meta::CPAN
'rss'=>"http://www.livejournal.com/~brad/data/rss",
'atom'=>"http://www.livejournal.com/~brad/data/atom",
},'everything from consumer.pm comments' );
my $uri3 = 'http://openid.example.com/cdata_crap';
addf_uri($uri3,content => <<END );
<html><head>
<link rel="openid.server" href="http://www.livejournal.com/misc/openid.bml" />
<link rel="openid.delegate" href="http://openid1.net/delegate" />
<script type="text/javascript">//<![CDATA[
view all matches for this distribution
view release on metacpan or search on metacpan
t/linkparse.txt view on Meta::CPAN
<head>
<![CDATA[
<link>
Name: cdata-like
Link*:
<html>
<head>
<![ACORN[
view all matches for this distribution
view release on metacpan or search on metacpan
examples/realifmon.pl view on Meta::CPAN
-community => ($opt{c} || "public")
);
die "[ERROR] $err\n" unless defined $ses;
# main loop
my (%pdata, %cdata); # flag, previous and current octets data
my $first = 1;
while ( 1 ){
%cdata = ();
(my $ret, $err) = snmpwalk(
snmp => $ses,
oids => {
sysUpTime => '1.3.6.1.2.1.1.3',
ifTable => [
examples/realifmon.pl view on Meta::CPAN
my ($s, $host, $key, $val) = @_;
return 1 if $key ne 'ifTable';
my $name = $val->[0][1];
return 0 if ( $regexp && $name !~ /$regexp/ );
# storing current octets data
$cdata{$name}{t} = time;
$cdata{$name}{i} = $val->[3][1];
$cdata{$name}{o} = $val->[4][1];
return 1;
}
);
die "[ERROR] $err\n" unless $ret;
examples/realifmon.pl view on Meta::CPAN
$name, $i, $astat, $ostat, $bw/1000, '-', '-';
next; # skip first
}
# calculate (k)bps
my $td = $cdata{$name}{t} - $pdata{$name}{t};
my ($inbps, $outbps) = map {
my $delta = $cdata{$name}{$_} - $pdata{$name}{$_};
$delta<0? 0: $delta / $td / 1000; # Kbps
} qw( i o );
printf "%-30s (%-10d) %2d %2d %10.1f %10.1f %10.1f\n",
$name, $i, $astat, $ostat, map { $_/1000 } ($bw, $inbps, $outbps);
}
%pdata = %cdata;
$first = 0;
sleep $wait;
}
__END__
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/SSH/Perl/Key/Ed25519.xs view on Meta::CPAN
unsigned char *data = (unsigned char *) SvPVbyte(sv_mortalcopy(sv_data),datalen);
if (datalen % 8)
croak("data must be in 8-byte chunks");
uint16_t words = datalen / 4;
uint32_t cdata[words];
uint16_t j = 0;
int i;
int rounds = SvIVx(sv_rounds);
for (i=0; i<words; i++)
cdata[i] = Blowfish_stream2word(data, datalen, &j);
for (i=0; i<rounds; i++)
blf_enc(ctx, cdata, sizeof(cdata) / sizeof(uint64_t));
for (i=0; i<words; i++) {
data[4 * i + 3] = (cdata[i] >> 24) & 0xff;
data[4 * i + 2] = (cdata[i] >> 16) & 0xff;
data[4 * i + 1] = (cdata[i] >> 8) & 0xff;
data[4 * i ] = cdata[i] & 0xff;
}
RETVAL = newSVpvn ((char *) data, datalen);
}
OUTPUT:
RETVAL
view all matches for this distribution
view release on metacpan or search on metacpan
UPCDatabase.pm view on Meta::CPAN
use 5.008;
use Frontier::Client;
our $VERSION = '0.07';
our $DEFAULTURL = 'http://www.upcdatabase.com/rpc';
=head1 NAME
Net::UPCDatabase - Simple OO interface to UPCDatabase.com
UPCDatabase.pm view on Meta::CPAN
# .. or ..
$upcObject = Net::UPCDatabase->new( url => $aDifferentUrlThanDefault );
Accepts an B<OPTIONAL> argument, a URL to use instead of the default. Unless you're really sure what you're doing, don't give it a URL. It defaults to 'http://www.upcdatabase.com/rpc', which is probably the right thing.
Returns the object.
=cut
UPCDatabase.pm view on Meta::CPAN
Report bugs on the CPAN bug tracker.
Please, do complain if something is broken.
=head1 SEE ALSO
L<http://www.upcdatabase.com/>
=head1 COPYRIGHT AND LICENSE
Copyright 2005-2009 by Dusty Wilson
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/XMPP/Namespaces.pm view on Meta::CPAN
a new child, and GetXXX() will return a new Stanza
object representing the packet.
flag - This is for child elements that are tags by themselves:
<foo/>. Since the presence of the tag is what is
important, and there is no cdata to store, we just call
it a flag.
jid - The value is a Jabber ID. GetXXX() will return a
Net::XMPP::JID object unless you pass it "jid", then it
returns a string.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/XMPP3/Namespaces.pm view on Meta::CPAN
a new child, and GetXXX() will return a new Stanza
object representing the packet.
flag - This is for child elements that are tags by themselves:
<foo/>. Since the presence of the tag is what is
important, and there is no cdata to store, we just call
it a flag.
jid - The value is a Jabber ID. GetXXX() will return a
Net::XMPP3::JID object unless you pass it "jid", then it
returns a string.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/iContact.pm view on Meta::CPAN
my ($self, $subject, $campaign, $text, $html) = @_;
my $call = 'message';
my $X = new XML::Generator ':pretty';
my $xml = $X->xml($X->message(
$X->subject($X->xmlcdata($subject)),
$X->campaign($campaign),
$X->text_body($X->xmlcdata($text)),
$X->html_body($X->xmlcdata($html)),
))->stringify;
my $root = $self->put($call, { $self->_stdargs }, $xml);
return unless $root;
view all matches for this distribution
view release on metacpan or search on metacpan
t/test1.xml view on Meta::CPAN
/doc/libisc44/
</key>
</vulnerability>
<vulnerability id="http-generic-browsable-dir" resultCode="VE">
<key>
/doc/libiptcdata0/
</key>
</vulnerability>
<vulnerability id="http-generic-browsable-dir" resultCode="VE">
<key>
/doc/libio-string-perl/
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Nile.pm view on Meta::CPAN
<vars type="perl">system ('dir *.cgi');</vars>
</pre>
<br>
<vars type="var" name="singleline" width="400px" height="300px" content="ahmed<b>class/subclass">
cdata start here is may have html tags and 'single' and "double" qoutes
</vars>
<br>
<vars type="var" name="multiline" width="400px" height="300px"><![CDATA[
cdata start here is may have html tags <b>hello</b> and 'single' and "double" qoutes
another cdata line
]]></vars>
<br>
<vars type="perl"><![CDATA[
say "";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/ODF/lpOD_Helper.pm view on Meta::CPAN
$result->set_attribute('c', $right_count); # possibly zero
return $result
}
elsif ($text_elt->tag eq '#PCDATA') {
my $existing_len = length($text_elt->text);
confess ivis 'offset $offset exceeds existing pcdata length ($existing_len)'
if $offset > $existing_len;
return $text_elt->split_at($offset);
}
elsif ($offset == 0) {
#my $para = $elt->passes(PARA_FILTER) ? $elt : $elt->parent(PARA_FILTER);
view all matches for this distribution
view release on metacpan or search on metacpan
SV *
proc_info_int(int pid, int flags)
{
PQTOPLEVEL top;
PQPROCESS procdata;
PQTHREAD threads;
PQMODULE moddata;
SV *sv;
AV *top_av, *procs_av, *mods_av;
ULONG rc;
av_push(top_av, newRV((SV*)procs_av));
SvREFCNT_dec(procs_av); /* Ouch! */
av_push(top_av, newRV((SV*)mods_av));
SvREFCNT_dec(mods_av); /* Ouch! */
procdata = top->procdata;
while (procdata && procdata->rectype == 0x01) {
AV *proc_av = newAV();
AV *threads_av = newAV();
AV *dlls_av = newAV();
int dll_c = 0;
av_push(procs_av, newRV_noinc((SV*)proc_av));
av_push(proc_av, newRV_noinc((SV*)threads_av));
av_push(proc_av, newSViv(procdata->pid));
av_push(proc_av, newSViv(procdata->ppid));
av_push(proc_av, newSViv(procdata->type));
av_push(proc_av, newSViv(procdata->state));
av_push(proc_av, newSViv(procdata->sessid));
av_push(proc_av, newSViv(procdata->hndmod));
av_push(proc_av, newSViv(procdata->threadcnt));
av_push(proc_av, newSViv(procdata->privsem32cnt));
av_push(proc_av, newSViv(procdata->sem16cnt));
av_push(proc_av, newSViv(procdata->dllcnt));
av_push(proc_av, newSViv(procdata->shrmemcnt));
av_push(proc_av, newSViv(procdata->fdscnt));
av_push(proc_av, newRV_noinc((SV*)dlls_av));
while (dll_c < procdata->dllcnt) {
av_push(dlls_av, newSViv(procdata->dlls[dll_c++]));
}
threads = procdata->threads;
while (threads && threads->rectype == 0x100) { /* Thread block. */
AV *thread_av = newAV();
av_push(threads_av, newRV_noinc((SV*)thread_av));
av_push(thread_av, newSViv(threads->systime));
av_push(thread_av, newSViv(threads->usertime));
av_push(thread_av, newSViv(threads->state));
threads++;
}
procdata = (PQPROCESS) threads; /* Next process data. */
}
/*
if (procdata)
warn("After: procdata->rectype = 0x%x", procdata->rectype);
*/
moddata = top->moddata;
while (moddata) {
AV *mod_av = newAV();
int handles = moddata->refcnt;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/ClassAttr/Struct.xs view on Meta::CPAN
enum {
FLAG_READONLY = (1<<0),
};
static bool struct_apply(pTHX_ ClassMeta *classmeta, SV *value, SV **attrdata_ptr, void *_funcdata)
{
U32 flags = 0;
if(value && SvPOK(value)) {
const char *s = SvPVX(value), *e = s + SvCUR(value);
lib/Object/Pad/ClassAttr/Struct.xs view on Meta::CPAN
mop_class_apply_attribute(classmeta, "strict", sv_2mortal(newSVpvs("params")));
return TRUE;
}
static void struct_post_add_field(pTHX_ ClassMeta *classmeta, SV *attrdata, void *_funcdata, FieldMeta *fieldmeta)
{
if(mop_field_get_sigil(fieldmeta) != '$')
return;
U32 flags = attrdata ? SvUV(attrdata) : 0;
lib/Object/Pad/ClassAttr/Struct.xs view on Meta::CPAN
mop_field_apply_attribute(fieldmeta, "reader", NULL);
else
mop_field_apply_attribute(fieldmeta, "mutator", NULL);
}
static void struct_post_seal(pTHX_ ClassMeta *classmeta, SV *attrdata, void *_funcdata)
{
dSP;
ENTER;
SAVETMPS;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/FieldAttr/Checked.xs view on Meta::CPAN
SETs(ret);
RETURN;
}
static SV *checked_parse(pTHX_ FieldMeta *fieldmeta, SV *valuesrc, void *_funcdata)
{
if(mop_field_get_sigil(fieldmeta) != '$')
croak("Can only apply the :Checked attribute to scalar fields");
dSP;
lib/Object/Pad/FieldAttr/Checked.xs view on Meta::CPAN
LEAVE;
return ret;
}
static bool checked_apply(pTHX_ FieldMeta *fieldmeta, SV *value, SV **attrdata_ptr, void *_funcdata)
{
if(mop_field_get_sigil(fieldmeta) != '$')
croak("Can only apply the :Checked attribute to scalar fields");
struct DataChecks_Checker *checker = make_checkdata(value);
lib/Object/Pad/FieldAttr/Checked.xs view on Meta::CPAN
*attrdata_ptr = (SV *)checker;
return TRUE;
}
static void checked_gen_accessor_ops(pTHX_ FieldMeta *fieldmeta, SV *attrdata, void *_funcdata,
enum AccessorType type, struct AccessorGenerationCtx *ctx)
{
struct DataChecks_Checker *checker = (struct DataChecks_Checker *)attrdata;
switch(type) {
lib/Object/Pad/FieldAttr/Checked.xs view on Meta::CPAN
default:
croak("TODO: Unsure what to do with accessor type %d and :Checked", type);
}
}
static OP *checked_gen_valueassert_op(pTHX_ FieldMeta *fieldmeta, SV *attrdata, void *_funcdata,
OP *valueop)
{
struct DataChecks_Checker *checker = (struct DataChecks_Checker *)attrdata;
return make_assertop(checker, valueop);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/FieldAttr/Final.xs view on Meta::CPAN
#include "perl.h"
#include "XSUB.h"
#include "object_pad.h"
static void final_post_construct(pTHX_ FieldMeta *fieldmeta, SV *_hookdata, void *_funcdata, SV *field)
{
SvREADONLY_on(field);
}
static void final_seal(pTHX_ FieldMeta *fieldmeta, SV *hookdata, void *_funcdata)
{
if(mop_field_get_attribute(fieldmeta, "writer"))
warn("Applying :Final attribute to field %" SVf " which already has :writer", SVfARG(mop_field_get_name(fieldmeta)));
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/FieldAttr/Isa.xs view on Meta::CPAN
static const MGVTBL vtbl = {
.svt_set = &magic_set,
};
static bool isa_apply(pTHX_ FieldMeta *fieldmeta, SV *value, SV **attrdata_ptr, void *_funcdata)
{
struct Data *data;
Newx(data, 1, struct Data);
data->is_weak = false;
lib/Object/Pad/FieldAttr/Isa.xs view on Meta::CPAN
*attrdata_ptr = (SV *)data;
return TRUE;
}
static void isa_seal(pTHX_ FieldMeta *fieldmeta, SV *attrdata, void *_funcdata)
{
struct Data *data = (struct Data *)attrdata;
if(mop_field_get_attribute(fieldmeta, "weak"))
data->is_weak = true;
}
static void isa_post_makefield(pTHX_ FieldMeta *fieldmeta, SV *attrdata, void *_funcdata, SV *field)
{
sv_magicext(field, newSV(0), PERL_MAGIC_ext, &vtbl, (char *)attrdata, 0);
}
static const struct FieldHookFuncs isa_hooks = {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/FieldAttr/LazyInit.xs view on Meta::CPAN
mg_freeext(sv, PERL_MAGIC_ext, &vtbl);
return 1;
}
static bool lazyinit_apply(pTHX_ FieldMeta *fieldmeta, SV *value, SV **attrdata_ptr, void *_funcdata)
{
mop_field_set_default_sv(fieldmeta, newRV_inc(unassigned_val));
return TRUE;
}
static void lazyinit_post_makefield(pTHX_ FieldMeta *fieldmeta, SV *attrdata, void *_funcdata, SV *field)
{
SV *weakself = newSVsv(PAD_SVl(PADIX_SELF));
sv_rvweaken(weakself);
sv_magicext(field, weakself, PERL_MAGIC_ext, &vtbl, (char *)attrdata, HEf_SVKEY);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/FieldAttr/Trigger.xs view on Meta::CPAN
#include "object_pad.h"
#include "perl-backcompat.c.inc"
static void trigger_gen_accessor_ops(pTHX_ FieldMeta *fieldmeta, SV *hookdata, void *_funcdata, enum AccessorType type, struct AccessorGenerationCtx *ctx)
{
if(type != ACCESSOR_WRITER)
return;
OP *selfop;
lib/Object/Pad/FieldAttr/Trigger.xs view on Meta::CPAN
ctx->post_bodyops = op_append_list(OP_LINESEQ, ctx->post_bodyops, callop);
return;
}
static void trigger_seal(pTHX_ FieldMeta *fieldmeta, SV *hookdata, void *_funcdata)
{
if(mop_field_get_attribute(fieldmeta, "writer"))
return;
warn("Applying :Trigger attribute to field %" SVf " is not useful without a :writer",
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/SlotAttr/Final.xs view on Meta::CPAN
#include "perl.h"
#include "XSUB.h"
#include "object_pad.h"
static void final_post_construct(pTHX_ SlotMeta *slotmeta, SV *_hookdata, void *_funcdata, SV *slot)
{
SvREADONLY_on(slot);
}
static void final_seal(pTHX_ SlotMeta *slotmeta, SV *hookdata, void *_funcdata)
{
if(mop_slot_get_attribute(slotmeta, "writer"))
warn("Applying :Final attribute to slot %" SVf " which already has :writer", SVfARG(mop_slot_get_name(slotmeta)));
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/SlotAttr/Isa.xs view on Meta::CPAN
static const MGVTBL vtbl = {
.svt_set = &magic_set,
};
static bool isa_apply(pTHX_ SlotMeta *slotmeta, SV *value, SV **hookdata_ptr, void *_funcdata)
{
struct Data *data;
Newx(data, 1, struct Data);
data->is_weak = false;
lib/Object/Pad/SlotAttr/Isa.xs view on Meta::CPAN
*hookdata_ptr = (SV *)data;
return TRUE;
}
static void isa_seal(pTHX_ SlotMeta *slotmeta, SV *hookdata, void *_funcdata)
{
struct Data *data = (struct Data *)hookdata;
if(mop_slot_get_attribute(slotmeta, "weak"))
data->is_weak = true;
}
static void isa_post_initslot(pTHX_ SlotMeta *slotmeta, SV *hookdata, void *_funcdata, SV *slot)
{
sv_magicext(slot, newSV(0), PERL_MAGIC_ext, &vtbl, (char *)hookdata, 0);
}
static const struct SlotHookFuncs isa_hooks = {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/SlotAttr/LazyInit.xs view on Meta::CPAN
mg_freeext(sv, PERL_MAGIC_ext, &vtbl);
return 1;
}
static bool lazyinit_apply(pTHX_ SlotMeta *slotmeta, SV *value, SV **hookdata_ptr, void *_funcdata)
{
mop_slot_set_default_sv(slotmeta, newRV_inc(unassigned_val));
return TRUE;
}
static void lazyinit_post_initslot(pTHX_ SlotMeta *slotmeta, SV *hookdata, void *_funcdata, SV *slot)
{
SV *weakself = newSVsv(PAD_SVl(PADIX_SELF));
sv_rvweaken(weakself);
sv_magicext(slot, weakself, PERL_MAGIC_ext, &vtbl, (char *)hookdata, HEf_SVKEY);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Object/Pad/SlotAttr/Trigger.xs view on Meta::CPAN
#include "object_pad.h"
#include "perl-backcompat.c.inc"
static void trigger_gen_accessor_ops(pTHX_ SlotMeta *slotmeta, SV *hookdata, void *_funcdata, enum AccessorType type, struct AccessorGenerationCtx *ctx)
{
if(type != ACCESSOR_WRITER)
return;
OP *selfop;
lib/Object/Pad/SlotAttr/Trigger.xs view on Meta::CPAN
ctx->post_bodyops = op_append_list(OP_LINESEQ, ctx->post_bodyops, callop);
return;
}
static void trigger_seal(pTHX_ SlotMeta *slotmeta, SV *hookdata, void *_funcdata)
{
if(mop_slot_get_attribute(slotmeta, "writer"))
return;
warn("Applying :Trigger attribute to slot %" SVf " is not useful without a :writer",
view all matches for this distribution
view release on metacpan or search on metacpan
direct_slots AV
0.57 2021-11-18
[CHANGES]
* Defined new ABI version for class/slot hooks
+ Adds `funcdata` at registration and callback time
+ Adds MOP accessor functions for slotmeta default SV
* Added :isa() and :does() class attributes; encourage those rather
than the older keyword style
* Added more MOP methods:
+ $classmeta->direct_methods, ->get_direct_method
view all matches for this distribution