view release on metacpan or search on metacpan
t/app/Plack/Component.t view on Meta::CPAN
__END__
=head1 NAME
Plack::Component - Base class for PSGI endpoints
=head1 SYNOPSIS
package Plack::App::Foo;
use parent qw( Plack::Component );
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Model/models/Systemd/Section/Socket.pl view on Meta::CPAN
open character device nodes as well as special files in
C</proc/> and
C</sys/>.',
'ListenStream' => '*ListenDatagram',
'ListenUSBFunction' => 'Specifies a L<USB
FunctionFS|https://docs.kernel.org/usb/functionfs.html> endpoints location to listen on, for
implementation of USB gadget functions. This expects an
absolute file system path of a FunctionFS mount point as the argument.
Behavior otherwise is very similar to the C<ListenFIFO>
directive above. Use this to open the FunctionFS endpoint
C<ep0>. When using this option, the
activated service has to have the
C<USBFunctionDescriptors> and
C<USBFunctionStrings> options set.
',
view all matches for this distribution
view release on metacpan or search on metacpan
t/relay.nini view on Meta::CPAN
# explicit empty, NOT a presence flag
maintenance ""
# abstract template (removed from the result), used via "&name"
*endpoint_defaults
timeout_ms 5000
retries 3
keepalive
tls_ciphers[:] ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256
*endpoint_defaults log
level info
facility local0
# logging (defined here, extended again lower down)
t/relay.nini view on Meta::CPAN
formats[] json text syslog
# listeners: an auto-index list of records
=listener *
# inherit template keys + nested 'log'
& *endpoint_defaults
bind 0.0.0.0:8583
proto iso8583
=listener *
&&& *endpoint_defaults
&&& log
bind 127.0.0.1:9090
proto http
# local override of inherited default
view all matches for this distribution
view release on metacpan or search on metacpan
bin/config-resolver.pl view on Meta::CPAN
This is the mechanism you use to pass options to your plugins.
Example:
--plugin ssm:endpoint_url=http://localhost:4566
=item -V, --parameters
You can supply key/value pairs at the command line to do simple
templating operations.
bin/config-resolver.pl view on Meta::CPAN
=back
=head2 Plugin Configuration
Many plugins, like C<ssm>, require configuration (e.g., the AWS
region, or a custom endpoint for local testing). You can provide this
configuration in two ways, which are layered:
=head3 1. The RC File (Defaults)
On startup, the script will attempt to load a configuration file from:
bin/config-resolver.pl view on Meta::CPAN
B<Example C<~/.config-resolverrc>:>
{
"ssm": {
"region": "us-east-1",
"endpoint_url": "http://localhost:4566"
},
"another_plugin": {
"foo": "bar"
}
}
bin/config-resolver.pl view on Meta::CPAN
B<Example:>
config-resolver.pl \
--plugin ssm:region=us-west-2 \
--plugin ssm:endpoint_url=http://localhost:4566 \
-t my-template.tpl
The script merges these two sources, giving command-line options final
priority, and passes the result to the resolver engine.
bin/config-resolver.pl view on Meta::CPAN
In your plugin's documentation, define the keys a user must set in
their C<.config-resolverrc> file .
# In .config-resolverrc
[plugin ssm]
endpoint_url = http://localhost:4566
# --- Keys for your one-time setup ---
seed_file = /opt/my-app/localstack-seed.json
load_on_init = false # <-- Default to false!
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Confluence/Client/XMLRPC.pm view on Meta::CPAN
The package uses the L<RPC::XML> module to do the heavy lifting. Read the
perldoc for this package to learn more.
L<RPC::XML> uses LWP for handling C<http>/C<https> messaging. If you are
experiencing problems when connecting to a C<https> based API endpoint,
please make sure that the necessary modules - like, e.g.
L<LWP::Protocol::https> - are installed.
For further information on the Confluence API itself please refer to the
L<official documentation|https://developer.atlassian.com/display/CONFDEV/Confluence+XML-RPC+and+SOAP+APIs>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Confman/API.pm view on Meta::CPAN
my $self = shift;
$self->{secret} = shift if scalar(@_) > 0;
return $self->{secret};
}
sub endpoint_url {
my $self = shift;
$self->{endpoint_url} = shift if scalar(@_) > 0;
return $self->{endpoint_url};
}
sub load_config {
my $self = shift;
my $config_path = shift || $self->config_path;
lib/Confman/API.pm view on Meta::CPAN
'Content-type' => 'application/json',
Authorization => 'Basic ' . encode_base64($self->api_key . ':' . "$secret_hash:$timestamp"),
HTTP_CLOUD_META => $cloud_meta
};
$client->setHost($self->endpoint_url);
$client->request($method, $path, $body, $headers);
my $response;
if($client->responseCode eq '200') {
$response = $self->json->decode($client->responseContent());
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Connector/Iterator.pm view on Meta::CPAN
Connector::Iterator
=head1 Description
Helper to perform a I<set> operation over a list of connector endpoints
while handing errors individually for each connector. The return value
is a hashref with the processed target names as key and an empty value
if no errors occured and the exception message if the target failed. You
must set I<skip_on_error> to enable handling of expcetions, otherwise
they just bubble up and terminate execution of the loop.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Consul.pm view on Meta::CPAN
=item *
C<timeout>
Request timeout. If a request to Consul takes longer that this, the endpoint
method will fail (default: 15).
=item *
C<token>
lib/Consul.pm view on Meta::CPAN
=item *
C<args>
A hashref containing the original arguments passed in to the endpoint method.
=back
The C<callback> function should be called with a C<Consul::Response> object
containing the values returned by the Consul server in response to the request.
lib/Consul.pm view on Meta::CPAN
Consul itself provides a default C<request_cb> that uses L<HTTP::Tiny> to make
calls to the server. If you provide one, you should honour the value of the
C<timeout> argument.
C<request_cb> can be used in conjunction with the C<cb> option to all API method
endpoints to get asynchronous behaviour. It's recommended however that you
don't use this directly, but rather use a module like L<AnyEvent::Consul> to
take care of that for you.
If you just want to use this module to make simple calls to your Consul
cluster, you can ignore this option entirely.
lib/Consul.pm view on Meta::CPAN
=back
=head1 ENDPOINTS
Individual API endpoints are implemented in separate modules. The following
methods will return a context objects for the named API. Alternatively, you can
request an API context directly from the Consul package. In that case,
C<Consul-E<gt>new> is called implicitly.
# these are equivalent
lib/Consul.pm view on Meta::CPAN
System status API. See L<Consul::API::Status>.
=head1 METHOD OPTIONS
All API methods implemented by the endpoints can take a number of arguments.
Most of those are documented in the endpoint documentation. There are however
some that are common to all methods:
=over 4
=item *
lib/Consul.pm view on Meta::CPAN
=back
=head1 BLOCKING QUERIES
Some Consul API endpoints support a feature called a "blocking query". These
endpoints allow long-polling for changes, and support some extra information
about the server state, including the Raft index, in the response headers.
The corresponding endpoint methods, when called in array context, will return a
second value. This is an object with three methods, C<index>, C<last_contact>
and C<known_leader>, corresponding to the similarly-named header fields. You
can use these to set up state watches, CAS writes, and so on.
See the Consul API docs for more information.
view all matches for this distribution
view release on metacpan or search on metacpan
examples/fatpacked.plackup view on Meta::CPAN
The Plack::Middleware:: modules in the core distribution are good examples
of such modules. It is recommended that you inherit from L<Plack::Middleware>
for these types of modules.
Not all middleware components are wrappers, but instead are more like
endpoints in a middleware chain. These types of components should use the
Plack::App:: namespace. Again, look in the core modules to see excellent
examples of these (L<Plack::App::File>, L<Plack::App::Directory>, etc.).
It is recommended that you inherit from L<Plack::Component> for these
types of modules.
examples/fatpacked.plackup view on Meta::CPAN
__END__
=head1 NAME
Plack::Component - Base class for PSGI endpoints
=head1 SYNOPSIS
package Plack::App::Foo;
use parent qw( Plack::Component );
view all matches for this distribution
view release on metacpan or search on metacpan
api/perl/README.md view on Meta::CPAN
This directory contains the Perl REST wrapper around `Convert::Pheno`.
### Notes:
* The API is built with `Mojolicious`.
* The public REST contract uses a single `POST /api` endpoint.
* `/api` receives a JSON object with explicit `conversion`, `input`, `output`, and `options` sections.
* Incoming request bodies are validated against the [OpenAPI schema](./openapi.json) and a public field allowlist.
* The conversion logic still runs in `Convert::Pheno`; this wrapper only exposes it over an HTTP(S) endpoint.
The HTTP API accepts in-memory data under `input.data`. It deliberately rejects
host filesystem options such as `in_file`, `out_file`, `mapping_file`, and
`path_to_ohdsi_db`. BFF, PXF, FHIR R4 Bundles, openEHR, and table-oriented OMOP payloads can
be sent over HTTP; file-based CSV, REDCap, CDISC-ODM, and Dataset-JSON routes
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Convos/public/packed/https___platform_twitter_com_widgets_js.js view on Meta::CPAN
!function(){function provide(t,e){e(function(e){modules[t]=e})}function using(){for(var t,e=Array.prototype.slice.call(arguments,0,-1),i=0,n=[],r=arguments[arguments.length-1];t=e[i];i++){if(!modules[t])throw"[TWITTER] Module dependency missing: "+t;...
}function u(t){this.transportMethod="Fallback",this.options=t,this._createChild()}var l,c="__ready__",d=0;o.prototype=new e.Connection,i.aug(o.prototype,{_createChild:function(){this.options.window?this._createWindow():this._createIframe()},_createIf...
}var n={"embed/timeline.css":{"default":"embed/timeline.3fb0c4c981cd3f8f8dfb6b0ab93d6a9e.default.css","2x":"embed/timeline.3fb0c4c981cd3f8f8dfb6b0ab93d6a9e.2x.css",gif:"embed/timeline.3fb0c4c981cd3f8f8dfb6b0ab93d6a9e.gif.css","default.rtl":"embed/tim...
}),x=[])},e.afterLoad(y.fetchAndRender),t(y)})}),provide("dom/textsize",function(t){function e(t,e,i){for(var n,r=[],o=0;n=i[o];o++)r.push(n[0]),r.push(n[1]);return t+e+r.join(":")}function i(t){var e=t||"";return e.replace(/([A-Z])/g,function(t){ret...
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Cookies/Roundtrip.pm view on Meta::CPAN
# Convenience method to load any kind of cookies
# or a cookies file, into the LWP::UserAgent
# it returns the $ffmar's cookies on success or undef on failure
# NOTE: firefox marionette will not load cookies unless we visit the site
# of the cookie domain. However, some sites redirect you if you
# do not ask for a full-path endpoint URL (e.g. www.abc.com/a/b/c
# instead of cookie domain www.abc.com. If you visit www.abc.com
# it may take you to cy.abc.com)
# So, parameter $visit_cookie_domain_first controls this
# if it is undef, then no visit is made,
# if '' (empty string) then it goes to the domain https://www.abc.com above
lib/Cookies/Roundtrip.pm view on Meta::CPAN
# It takes in the $ffmar, $filename and, optionally $verbosity (integer),
# and returns back the $ffmar's cookie jar (as HTTP::CookieJar object)
# It returns undef on failure.
# NOTE: firefox marionette will not load cookies unless we visit the site
# of the cookie domain. However, some sites redirect you if you
# do not ask for a full-path endpoint URL (e.g. www.abc.com/a/b/c
# instead of cookie domain www.abc.com. If you visit www.abc.com
# it may take you to cy.abc.com)
# So, parameter $visit_cookie_domain_first controls this
# if it is undef, then no visit is made,
# if '' (empty string) then it goes to the domain https://www.abc.com above
lib/Cookies/Roundtrip.pm view on Meta::CPAN
# It takes in the $ffmar, $httpcookies and, optionally $verbosity (integer),
# and returns back the $ffmar's cookie jar (as HTTP::CookieJar object)
# It returns undef on failure.
# NOTE: firefox marionette will not load cookies unless we visit the site
# of the cookie domain. However, some sites redirect you if you
# do not ask for a full-path endpoint URL (e.g. www.abc.com/a/b/c
# instead of cookie domain www.abc.com. If you visit www.abc.com
# it may take you to cy.abc.com)
# So, parameter $visit_cookie_domain_first controls this
# if it is undef, then no visit is made,
# if '' (empty string) then it goes to the domain https://www.abc.com above
lib/Cookies/Roundtrip.pm view on Meta::CPAN
# set $visit_cookie_domain_first to false in order not to visit (that means you are sure
# you are there already, otherwise this call will fail).
# Default is to visit first.
# NOTE: firefox marionette will not load cookies unless we visit the site
# of the cookie domain. However, some sites redirect you if you
# do not ask for a full-path endpoint URL (e.g. www.abc.com/a/b/c
# instead of cookie domain www.abc.com. If you visit www.abc.com
# it may take you to cy.abc.com)
# So, parameter $visit_cookie_domain_first controls this
# if it is undef, then no visit is made,
# if '' (empty string) then it goes to the domain https://www.abc.com above
lib/Cookies/Roundtrip.pm view on Meta::CPAN
# It takes in the $ffmar, $httpcookies and, optionally $verbosity (integer),
# and returns back the $ffmar's cookie jar (as array of Firefox::Marionette::Cookie object)
# It returns undef on failure.
# NOTE: firefox marionette will not load cookies unless we visit the site
# of the cookie domain. However, some sites redirect you if you
# do not ask for a full-path endpoint URL (e.g. www.abc.com/a/b/c
# instead of cookie domain www.abc.com. If you visit www.abc.com
# it may take you to cy.abc.com)
# So, parameter $visit_cookie_domain_first controls this
# if it is undef, then no visit is made,
# if '' (empty string) then it goes to the domain https://www.abc.com above
lib/Cookies/Roundtrip.pm view on Meta::CPAN
# first cloned and then into $ffmar.
# So the input $httpcookiejar will be independent of the one in $ffmar.
# It returns undef on failure.
# NOTE: firefox marionette will not load cookies unless we visit the site
# of the cookie domain. However, some sites redirect you if you
# do not ask for a full-path endpoint URL (e.g. www.abc.com/a/b/c
# instead of cookie domain www.abc.com. If you visit www.abc.com
# it may take you to cy.abc.com)
# So, parameter $visit_cookie_domain_first controls this
# if it is undef, then no visit is made,
# if '' (empty string) then it goes to the domain https://www.abc.com above
view all matches for this distribution
view release on metacpan or search on metacpan
Improvements:
- implemented pagination with $result->nextPage (untested)
- many documentation fixes
- make cross-reference page available.
- add cross-reference table Couch::DB -> endpoint
version 0.001: Wed 29 May 18:19:12 CEST 2024
- initial release, interface complete but mainly untested.
view all matches for this distribution
view release on metacpan or search on metacpan
azure-pipelines.yml view on Meta::CPAN
resources:
repositories:
- repository: ci-perl-helpers
type: github
name: houseabsolute/ci-perl-helpers
endpoint: houseabsolute
stages:
- template: templates/helpers/build.yml@ci-perl-helpers
parameters:
debug: true
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Crypt/EAMessage.pm view on Meta::CPAN
This will output a random key in hex format suitable for use as an AES256 key.
=head1 SECURITY
Note that this module use L<Storable>. Thus this module should only be used
when the endpoint is trusted. This module will ensure that the stored
object is received without tampering by an intermediary (and is secure even
when an untrusted third party can modify the encrypted message in transit),
because C<thaw> is not called unless the message passes authentication
checks. But if an endpoint can create a malicious message using a valid
key, it is possible that this message could exploit some vulnerability in
the L<Storable> module.
This module does not protect against replay attacks.
view all matches for this distribution
view release on metacpan or search on metacpan
- Alternative certificates support.
0.36 27 June 2020
- Updates to reflect support for other ACME-compatible CAs/servers.
- Disabling Let's Encrypt specific shortcut when custom servers are used.
- Support for custom ACME servers with custom named directory endpoints.
- Support for custom ACME servers using older specifications.
- Multi-webroot fix.
- Documentation update.
- Dockerfile and examples update.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Crypt/XkcdPassword/Words/EN/Roget.pm view on Meta::CPAN
endosmotic
endow
endowed
endowment
endpapers
endpoint
ends
endue
endurance
endure
endured
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CtrlO/Crypt/XkcdPassword/Wordlist/eff_large.pm view on Meta::CPAN
endnote
endocrine
endorphin
endorse
endowment
endpoint
endurable
endurance
enduring
energetic
energize
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Curl/Impersonate.pm view on Meta::CPAN
caller. Set one for anything talking to the open internet.
=item verify => $bool
TLS peer/host verification. Default true. Set false only for testing against
self-signed endpoints.
=item follow_redirects => $bool
Follow C<3xx> redirects. Default false. libcurl bounds the chain itself, so a
redirect loop ends with C<Number of redirects hit maximum amount> rather than
view all matches for this distribution
view release on metacpan or search on metacpan
dbdchart.html view on Meta::CPAN
<td>
<ol>
<li>:PLOTNUM = <range number of the plot>
<li>:X = <domain value for the datapoint>
<li>:Y = <range value for the datapoint>
<li>:Z = <'top' | 'bottom'> depending on which endpoint of candlestick is focused.
</ol>
</td></tr>
<tr bgcolor=white><td valign=top align=center><b>Box & Whisker</b></td>
<td valign=top>the area of the plotted box, and an<br>
8-pixel diameter circle centered on<br> the lower and upper ends of the whicksers</td>
dbdchart.html view on Meta::CPAN
<td valign=top>arrayref of (xcenter, ycenter, radius) image pixel coordinates of 8-pixel diameter
circle centered on<br>each datapoint, both top and bottom of stick</td>
<td valign=top align=center>range number of the plot</td>
<td valign=top align=center>domain value for the datapoint</td>
<td valign=top align=center>range value for the datapoint</td>
<td valign=top align=center>'top' | 'bottom', depending on which candlestick endpoint is focused.</td></tr>
<tr bgcolor=white><td valign=top align=center><b>Box & Whisker</b></td>
<td valign=top>RECT, CIRCLE</td>
<td valign=top>arrayref of (x,y of upper left of box, x.y of lower right of box) image pixel coordinates of
the box</td>
<td valign=top align=center>range number of the plot</td>
view all matches for this distribution
view release on metacpan or search on metacpan
- Fix crash when executing query with two placeholders side by side.
Thanks to Daniel Browning for spotting this. [Greg Sabino Mullane]
- Skip item if no matching key in foreign_key_info.
(CPAN bug #32308) [Greg Sabino Mullane]
- Fix bug in last_insert_id. (CPAN bug #15918) [orentocy@gmail.com]
- Fix pg_description join in table_info(). [Max Cohan max@endpoint.com]
- Make sure arrays handle UTF-8 smoothly (CPAN bug #32479) [Greg Sabino Mullane]
- Force column names to respect utf8-ness. Per report from Ch Lamprect. [Greg Sabino Mullane]
- Make sure array items are marked as UTF as needed.
(CPAN bug #29656) [Greg Sabino Mullane]
- Force SQL_REAL and SQL_NUMERIC to be float8 not float4.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBD/Patroni.pm view on Meta::CPAN
=over 4
=item patroni_url (required)
Comma-separated list of Patroni REST API endpoints.
=item patroni_lb
Load balancing mode: C<round_robin> (default), C<random>, or C<leader_only>.
view all matches for this distribution
view release on metacpan or search on metacpan
** is an instance of this class.
*/
struct MemJournal {
sqlite3_io_methods *pMethod; /* Parent class. MUST BE FIRST */
FileChunk *pFirst; /* Head of in-memory chunk-list */
FilePoint endpoint; /* Pointer to the end of the file */
FilePoint readpoint; /* Pointer to the end of the last xRead() */
};
/*
** Read data from the in-memory journal file. This is the implementation
int nRead = iAmt;
int iChunkOffset;
FileChunk *pChunk;
/* SQLite never tries to read past the end of a rollback journal file */
assert( iOfst+iAmt<=p->endpoint.iOffset );
if( p->readpoint.iOffset!=iOfst || iOfst==0 ){
sqlite3_int64 iOff = 0;
for(pChunk=p->pFirst;
ALWAYS(pChunk) && (iOff+JOURNAL_CHUNKSIZE)<=iOfst;
u8 *zWrite = (u8 *)zBuf;
/* An in-memory journal file should only ever be appended to. Random
** access writes are not required by sqlite.
*/
assert( iOfst==p->endpoint.iOffset );
UNUSED_PARAMETER(iOfst);
while( nWrite>0 ){
FileChunk *pChunk = p->endpoint.pChunk;
int iChunkOffset = (int)(p->endpoint.iOffset%JOURNAL_CHUNKSIZE);
int iSpace = MIN(nWrite, JOURNAL_CHUNKSIZE - iChunkOffset);
if( iChunkOffset==0 ){
/* New chunk is required to extend the file. */
FileChunk *pNew = sqlite3_malloc(sizeof(FileChunk));
pChunk->pNext = pNew;
}else{
assert( !p->pFirst );
p->pFirst = pNew;
}
p->endpoint.pChunk = pNew;
}
memcpy(&p->endpoint.pChunk->zChunk[iChunkOffset], zWrite, iSpace);
zWrite += iSpace;
nWrite -= iSpace;
p->endpoint.iOffset += iSpace;
}
return SQLITE_OK;
}
/*
** Query the size of the file in bytes.
*/
static int memjrnlFileSize(sqlite3_file *pJfd, sqlite_int64 *pSize){
MemJournal *p = (MemJournal *)pJfd;
*pSize = (sqlite_int64) p->endpoint.iOffset;
return SQLITE_OK;
}
/*
** Table of methods for MemJournal sqlite3_file object.
view all matches for this distribution
view release on metacpan or search on metacpan
int nChunkSize; /* In-memory chunk-size */
int nSpill; /* Bytes of data before flushing */
int nSize; /* Bytes of data currently in memory */
FileChunk *pFirst; /* Head of in-memory chunk-list */
FilePoint endpoint; /* Pointer to the end of the file */
FilePoint readpoint; /* Pointer to the end of the last xRead() */
int flags; /* xOpen flags */
sqlite3_vfs *pVfs; /* The "real" underlying VFS */
const char *zJournal; /* Name of the journal file */
int iChunkOffset;
FileChunk *pChunk;
#if defined(SQLITE_ENABLE_ATOMIC_WRITE) \
|| defined(SQLITE_ENABLE_BATCH_ATOMIC_WRITE)
if( (iAmt+iOfst)>p->endpoint.iOffset ){
return SQLITE_IOERR_SHORT_READ;
}
#endif
assert( (iAmt+iOfst)<=p->endpoint.iOffset );
assert( p->readpoint.iOffset==0 || p->readpoint.pChunk!=0 );
if( p->readpoint.iOffset!=iOfst || iOfst==0 ){
sqlite3_int64 iOff = 0;
for(pChunk=p->pFirst;
ALWAYS(pChunk) && (iOff+p->nChunkSize)<=iOfst;
if( rc==SQLITE_OK ){
int nChunk = copy.nChunkSize;
i64 iOff = 0;
FileChunk *pIter;
for(pIter=copy.pFirst; pIter; pIter=pIter->pNext){
if( iOff + nChunk > copy.endpoint.iOffset ){
nChunk = copy.endpoint.iOffset - iOff;
}
rc = sqlite3OsWrite(pReal, (u8*)pIter->zChunk, nChunk, iOff);
if( rc ) break;
iOff += nChunk;
}
/* An in-memory journal file should only ever be appended to. Random
** access writes are not required. The only exception to this is when
** the in-memory journal is being used by a connection using the
** atomic-write optimization. In this case the first 28 bytes of the
** journal file may be written as part of committing the transaction. */
assert( iOfst==p->endpoint.iOffset || iOfst==0 );
#if defined(SQLITE_ENABLE_ATOMIC_WRITE) \
|| defined(SQLITE_ENABLE_BATCH_ATOMIC_WRITE)
if( iOfst==0 && p->pFirst ){
assert( p->nChunkSize>iAmt );
memcpy((u8*)p->pFirst->zChunk, zBuf, iAmt);
#else
assert( iOfst>0 || p->pFirst==0 );
#endif
{
while( nWrite>0 ){
FileChunk *pChunk = p->endpoint.pChunk;
int iChunkOffset = (int)(p->endpoint.iOffset%p->nChunkSize);
int iSpace = MIN(nWrite, p->nChunkSize - iChunkOffset);
if( iChunkOffset==0 ){
/* New chunk is required to extend the file. */
FileChunk *pNew = sqlite3_malloc(fileChunkSize(p->nChunkSize));
pChunk->pNext = pNew;
}else{
assert( !p->pFirst );
p->pFirst = pNew;
}
p->endpoint.pChunk = pNew;
}
memcpy((u8*)p->endpoint.pChunk->zChunk + iChunkOffset, zWrite, iSpace);
zWrite += iSpace;
nWrite -= iSpace;
p->endpoint.iOffset += iSpace;
}
p->nSize = iAmt + iOfst;
}
}
static int memjrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size){
MemJournal *p = (MemJournal *)pJfd;
if( ALWAYS(size==0) ){
memjrnlFreeChunks(p);
p->nSize = 0;
p->endpoint.pChunk = 0;
p->endpoint.iOffset = 0;
p->readpoint.pChunk = 0;
p->readpoint.iOffset = 0;
}
return SQLITE_OK;
}
/*
** Query the size of the file in bytes.
*/
static int memjrnlFileSize(sqlite3_file *pJfd, sqlite_int64 *pSize){
MemJournal *p = (MemJournal *)pJfd;
*pSize = (sqlite_int64) p->endpoint.iOffset;
return SQLITE_OK;
}
/*
** Table of methods for MemJournal sqlite3_file object.
view all matches for this distribution
view release on metacpan or search on metacpan
const sqlite3_io_methods *pMethod; /* Parent class. MUST BE FIRST */
int nChunkSize; /* In-memory chunk-size */
int nSpill; /* Bytes of data before flushing */
FileChunk *pFirst; /* Head of in-memory chunk-list */
FilePoint endpoint; /* Pointer to the end of the file */
FilePoint readpoint; /* Pointer to the end of the last xRead() */
int flags; /* xOpen flags */
sqlite3_vfs *pVfs; /* The "real" underlying VFS */
const char *zJournal; /* Name of the journal file */
u8 *zOut = zBuf;
int nRead = iAmt;
int iChunkOffset;
FileChunk *pChunk;
if( (iAmt+iOfst)>p->endpoint.iOffset ){
return SQLITE_IOERR_SHORT_READ;
}
assert( p->readpoint.iOffset==0 || p->readpoint.pChunk!=0 );
if( p->readpoint.iOffset!=iOfst || iOfst==0 ){
sqlite3_int64 iOff = 0;
if( rc==SQLITE_OK ){
int nChunk = copy.nChunkSize;
i64 iOff = 0;
FileChunk *pIter;
for(pIter=copy.pFirst; pIter; pIter=pIter->pNext){
if( iOff + nChunk > copy.endpoint.iOffset ){
nChunk = copy.endpoint.iOffset - iOff;
}
rc = sqlite3OsWrite(pReal, (u8*)pIter->zChunk, nChunk, iOff);
if( rc ) break;
iOff += nChunk;
}
/* An in-memory journal file should only ever be appended to. Random
** access writes are not required. The only exception to this is when
** the in-memory journal is being used by a connection using the
** atomic-write optimization. In this case the first 28 bytes of the
** journal file may be written as part of committing the transaction. */
assert( iOfst<=p->endpoint.iOffset );
if( iOfst>0 && iOfst!=p->endpoint.iOffset ){
memjrnlTruncate(pJfd, iOfst);
}
if( iOfst==0 && p->pFirst ){
assert( p->nChunkSize>iAmt );
memcpy((u8*)p->pFirst->zChunk, zBuf, iAmt);
}else{
while( nWrite>0 ){
FileChunk *pChunk = p->endpoint.pChunk;
int iChunkOffset = (int)(p->endpoint.iOffset%p->nChunkSize);
int iSpace = MIN(nWrite, p->nChunkSize - iChunkOffset);
assert( pChunk!=0 || iChunkOffset==0 );
if( iChunkOffset==0 ){
/* New chunk is required to extend the file. */
pChunk->pNext = pNew;
}else{
assert( !p->pFirst );
p->pFirst = pNew;
}
pChunk = p->endpoint.pChunk = pNew;
}
assert( pChunk!=0 );
memcpy((u8*)pChunk->zChunk + iChunkOffset, zWrite, iSpace);
zWrite += iSpace;
nWrite -= iSpace;
p->endpoint.iOffset += iSpace;
}
}
}
return SQLITE_OK;
/*
** Truncate the in-memory file.
*/
static int memjrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size){
MemJournal *p = (MemJournal *)pJfd;
assert( p->endpoint.pChunk==0 || p->endpoint.pChunk->pNext==0 );
if( size<p->endpoint.iOffset ){
FileChunk *pIter = 0;
if( size==0 ){
memjrnlFreeChunks(p->pFirst);
p->pFirst = 0;
}else{
memjrnlFreeChunks(pIter->pNext);
pIter->pNext = 0;
}
}
p->endpoint.pChunk = pIter;
p->endpoint.iOffset = size;
p->readpoint.pChunk = 0;
p->readpoint.iOffset = 0;
}
return SQLITE_OK;
}
/*
** Query the size of the file in bytes.
*/
static int memjrnlFileSize(sqlite3_file *pJfd, sqlite_int64 *pSize){
MemJournal *p = (MemJournal *)pJfd;
*pSize = (sqlite_int64) p->endpoint.iOffset;
return SQLITE_OK;
}
/*
** Table of methods for MemJournal sqlite3_file object.
view all matches for this distribution
view release on metacpan or search on metacpan
xt/01_integration.t view on Meta::CPAN
plan tests => 4;
my $ua = LWP::UserAgent->new(timeout => 10);
my $json = JSON->new->utf8;
# Test health endpoint
my $health_response = $ua->get('http://127.0.0.1:8080/health');
ok($health_response->is_success, 'Health endpoint accessible');
# Test Hrana pipeline endpoint
my $request = HTTP::Request->new('POST', 'http://127.0.0.1:8080/v2/pipeline');
$request->header('Content-Type' => 'application/json');
my $pipeline_data = {
requests => [
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBGp/Client/Listener.pm view on Meta::CPAN
=head2 listen
$listener->listen;
Starts listening on the endpoint specified to the constructor;
C<die()>s if there is an error.
=cut
sub listen {
view all matches for this distribution
view release on metacpan or search on metacpan
docs/adr/0005-stateless-base64-pk-cursors.md view on Meta::CPAN
## Rationale
A stateless PK cursor needs no server-side session, no storage, and no
cleanup â every request carries everything required to resume, which is the
right fit for a stateless GraphQL endpoint and for a layer that wants to add
no runtime dependency. Encoding the PK (rather than an offset) makes
`after` a keyset seek (`pk > value`) instead of a large `OFFSET`, so deep
pages stay cheap and do not skew when rows are inserted/deleted between
requests. Base64 keeps the token opaque to clients and URL/transport-safe;
the percent-escaping of `:` and `%` keeps composite-PK decoding unambiguous.
view all matches for this distribution
view release on metacpan or search on metacpan
xbin/dbio-mysql-k8s view on Meta::CPAN
my $deadline = time + 300;
my $last_phase = '';
while (time < $deadline) {
my $pod = eval { $k8s->get('Pod', name => $name, namespace => $ns) };
if ($pod) {
return _get_service_endpoint($k8s, $ns, $name) if _pod_ready($pod);
my $phase = eval { $pod->status->phase } // '?';
# Show phase changes and any waiting reason (e.g. ErrImagePull)
my $reason = eval {
my $cs = $pod->status->containerStatuses // [];
@$cs ? ($cs->[0]->state->waiting // {})->{reason} // '' : ''
xbin/dbio-mysql-k8s view on Meta::CPAN
my ($pod) = @_;
my $conditions = $pod->status->conditions // [];
return grep { $_->type eq 'Ready' && $_->status eq 'True' } @$conditions;
}
sub _get_service_endpoint {
my ($k8s, $ns, $name) = @_;
my $svc = $k8s->get('Service', name => $name, namespace => $ns);
my $node_port = $svc->spec->ports->[0]->nodePort
or die "No nodePort assigned to service $name\n";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/DBIO/AccessBroker.pm view on Meta::CPAN
my $info = $broker->current_connect_info_for_storage($schema->storage);
# Vault â rotating credentials from OpenBao/Vault
use DBIO::AccessBroker::Vault;
my $broker = DBIO::AccessBroker::Vault->new(
vault => WWW::OpenBao->new(endpoint => 'http://vault:8200', token => $token),
dsn => 'dbi:Pg:dbname=myapp;host=db',
cred_path => 'database/creds/myapp',
ttl => 3600, # credentials valid for 1 hour
refresh_margin => 900, # refresh 15 min before expiry
);
view all matches for this distribution