⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 brigade.pm

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 PM
字号:
# # /*#  * *********** WARNING **************#  * This file generated by ModPerl::WrapXS/0.01#  * Any changes made here will be lost#  * ***********************************#  * 01: lib/ModPerl/Code.pm:708#  * 02: lib/ModPerl/WrapXS.pm:624#  * 03: lib/ModPerl/WrapXS.pm:1173#  * 04: Makefile.PL:423#  * 05: Makefile.PL:325#  * 06: Makefile.PL:56#  */# package APR::Brigade;use strict;use warnings FATAL => 'all';use APR ();use APR::XSLoader ();our $VERSION = '0.009000';APR::XSLoader::load __PACKAGE__;1;__END__=head1 NAMEAPR::Brigade - Perl API for manipulating APR Bucket Brigades=head1 Synopsis  use APR::Brigade ();    $bb = APR::Brigade->new($r->pool, $c->bucket_alloc);  $ba = $bb->bucket_alloc();  $pool = $bb->pool;    $bb->insert_head($b);  $bb->insert_tail($b);    $b_first = $bb->first;  $b_last  = $bb->last;    $b_prev = $bb->prev($b_last);  $b_next = $bb->next($b);    $bb2 = APR::Brigade->new($r->pool, $c->bucket_alloc);  $bb1->concat($bb2);    $len = $bb->flatten($data);  $len = $bb2->flatten($data, $wanted);    $len = $bb->length;  $bb3 = $bb->split($b_last);    last if $bb->is_empty();  $bb->cleanup();  $bb->destroy();  =head1 DescriptionC<APR::Brigade> allows you to create, manipulate and delete APR bucketbrigades.=head1 APIC<APR::Brigade> provides the following functions and/or methods:=head2 C<cleanup>Empty out an entire bucket brigade:  $bb->cleanup;=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )The brigade to cleanup=item ret: no return value=item since: 2.0.00=backThis method destroys all of the buckets within the bucket brigade'sbucket list.  This is similar to C<L<destroy()|/C_destroy_>>, exceptthat it does not deregister the brigade's C<L<pool()|/C_pool_>>cleanup function.Generally, you should use C<L<destroy()|/C_destroy_>>.  This functioncan be useful in situations where you have a single brigade that youwish to reuse many times by destroying all of the buckets in thebrigade and putting new buckets into it later.=head2 C<concat>Concatenate brigade C<$bb2> onto the end of brigade C<$bb1>, leavingbrigade C<$bb2> empty:  $bb1->concat($bb2);=over 4=item obj: C<$bb1>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )The brigade to concatenate to.=item arg1: C<$bb2>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )The brigade to concatenate and empty afterwards.=item ret: no return value=item since: 2.0.00=back=head2 C<destroy>destroy an entire bucket brigade, includes all of the buckets withinthe bucket brigade's bucket list.  $bb->destroy();=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )The bucket brigade to destroy.=item ret: no return value=item excpt: C<L<APR::Error|docs::2.0::api::APR::Error>>=item since: 2.0.00=back=head2 C<is_empty>Test whether the bucket brigade is empty  $ret = $bb->is_empty();=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )=item ret: C<$ret> ( boolean )=item since: 2.0.00=back=head2 C<first>Return the first bucket in a brigade  $b_first = $bb->first;=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )=item ret: C<$b_first>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )The first bucket in the bucket brigade C<$bb>.C<undef> is returned if there are no buckets in C<$bb>.=item since: 2.0.00=back=head2 C<flatten>Get the data from buckets in the bucket brigade as one string  $len = $bb->flatten($buffer);  $len = $bb->flatten($buffer, $wanted);=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )=item arg1: C<$buffer> ( SCALAR )The buffer to fill. All previous data will be lost.=item opt arg2: C<$wanted> ( number )If no argument is passed then all data will be returned. If C<$wanted>is specified -- that number or less bytes will be returned.=item ret: C<$len> ( number )How many bytes were actually read.C<$buffer> gets populated with the string that is read. It willcontain an empty string if there was nothing to read.=item since: 2.0.00=item excpt: C<L<APR::Error|docs::2.0::api::APR::Error>>=back=head2 C<insert_head>Insert a list of buckets at the front of a brigade  $bb->insert_head($b);=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )Brigade to insert into=item arg1: C<$b>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )the bucket to insert. More buckets could be attached to that bucket.=item ret: no return value=item since: 2.0.00=back=head2 C<insert_tail>Insert a list of buckets at the end of a brigade  $bb->insert_tail($b);=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )Brigade to insert into=item arg1: C<$b>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )the bucket to insert. More buckets could be attached to that bucket.=item ret: no return value=item since: 2.0.00=back=head2 C<last>Return the last bucket in the brigade  $b_last = $bb->last;=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )=item ret: C<$b_last>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )The last bucket in the bucket brigade C<$bb>.C<undef> is returned if there are no buckets in C<$bb>.=item since: 2.0.00=back=head2 C<length>Return the total length of the data in the brigade (not the number ofbuckets)  $len = $bb->length;=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )=item ret: C<$len> ( number )=item since: 2.0.00=back=head2 C<new>  my $nbb = APR::Brigade->new($p, $bucket_alloc);  my $nbb =          $bb->new($p, $bucket_alloc);=over 4=item obj: C<$bb>( C<L<APR::Brigade object or class|docs::2.0::api::APR::Brigade>> )=item arg1: C<$p>( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> )=item arg2: C<$bucket_alloc>( C<L<APR::BucketAlloc object|docs::2.0::api::APR::BucketAlloc>> )=item ret: C<$nbb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )a newly created bucket brigade object=item since: 2.0.00=backExample:Create a new bucket brigade, using the request object's pool:  use Apache2::Connection ();  use Apache2::RequestRec ();  use APR::Brigade ();  my $bb = APR::Brigade->new($r->pool, $r->connection->bucket_alloc);=head2 C<bucket_alloc>Get the bucket allocator associated with this brigade.  my $ba = $bb->bucket_alloc();=over 4=item obj: C<$bb>( C<L<APR::Brigade object or class|docs::2.0::api::APR::Brigade>> )=item ret: C<$ba>( C<L<APR::BucketAlloc object|docs::2.0::api::APR::BucketAlloc>> )=item since: 2.0.00=back=head2 C<next>Return the next bucket in a brigade  $b_next = $bb->next($b);=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )=item arg1: C<$b>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )The bucket after which the next bucket C<$b_next> is located=item ret: C<$b_next>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )The next bucket after bucket C<$b>.C<undef> is returned if there is no next bucket (i.e. C<$b> is thelast bucket).=item since: 2.0.00=back=head2 C<pool>The pool the brigade is associated with.  $pool = $bb->pool;=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )=item ret: C<$pool>( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> )=item since: 2.0.00=backThe data is not allocated out of the pool, but a cleanup is registeredwith this pool.  If the brigade is destroyed by some mechanism otherthan pool destruction, the destroying function is responsible forkilling the registered cleanup.=head2 C<prev>Return the previous bucket in the brigade  $b_prev = $bb->prev($b);=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )=item arg1: C<$b>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )The bucket located after bucket C<$b_prev>=item ret: C<$b_prev>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )The bucket located before bucket C<$b>.C<undef> is returned if there is no previous bucket (i.e. C<$b> is thefirst bucket).=item since: 2.0.00=back=head2 C<split>Split a bucket brigade into two, such that the given bucket is thefirst in the new bucket brigade.  $bb2 = $bb->split($b);=over 4=item obj: C<$bb>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )The brigade to split=item arg1: C<$b>( C<L<APR::Bucket object|docs::2.0::api::APR::Bucket>> )The first bucket of the new brigade=item ret: C<$bb2>( C<L<APR::Brigade object|docs::2.0::api::APR::Brigade>> )The new brigade.=item since: 2.0.00=backThis function is useful when a filter wants to pass only the initialpart of a brigade to the next filter.Example:Create a bucket brigade with three buckets, and split it into twobrigade such that the second brigade will have the last two buckets.  my $bb1 = APR::Brigade->new($r->pool, $c->bucket_alloc);  my $ba  = $c->bucket_alloc();  $bb1->insert_tail(APR::Bucket->new($ba, "1"));  $bb1->insert_tail(APR::Bucket->new($ba, "2"));  $bb1->insert_tail(APR::Bucket->new($ba, "3"));C<$bb1> now contains buckets "1", "2", "3". Now do the split at thesecond bucket:  my $b = $bb1->first; # 1  $b = $bb1->next($b); # 2  my $bb2 = $bb1->split($b);Now C<$bb1> contains bucket "1".  C<$bb2> contains buckets: "2", "3"=head1 See AlsoL<mod_perl 2.0 documentation|docs::2.0::index>.=head1 Copyrightmod_perl 2.0 and its core modules are copyrighted underThe Apache Software License, Version 2.0.=head1 AuthorsL<The mod_perl development team and numerouscontributors|about::contributors::people>.=cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -