%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/optisoftcom-new/perl5/man/man3/
Upload File :
Create Path :
Current File : /home/opti/optisoftcom-new/perl5/man/man3/BSON::OID.3pm

.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
.    if \nF \{
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "BSON::OID 3"
.TH BSON::OID 3 "2018-12-07" "perl v5.16.3" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
BSON::OID \- BSON type wrapper for Object IDs
.SH "VERSION"
.IX Header "VERSION"
version v1.10.2
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\&    use BSON::Types \*(Aq:all\*(Aq;
\&
\&    my $oid  = bson_oid();
\&    my $oid  = bson_oid\->from_epoch(1467543496, 0); # for queries only
\&
\&    my $bytes = $oid\->oid;
\&    my $hex   = $oid\->hex;
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This module provides a wrapper around a \s-1BSON \s0Object
\&\s-1ID\s0 <https://docs.mongodb.com/manual/reference/method/ObjectId/>.
.SH "ATTRIBUTES"
.IX Header "ATTRIBUTES"
.SS "oid"
.IX Subsection "oid"
A 12\-byte (packed) Object \s-1ID \s0(\s-1OID\s0) string.  If not provided, a new \s-1OID\s0
will be generated.
.SH "METHODS"
.IX Header "METHODS"
.SS "new"
.IX Subsection "new"
.Vb 1
\&    my $oid = BSON::OID\->new;
\&
\&    my $oid = BSON::OID\->new( oid => $twelve_bytes );
.Ve
.PP
This is the preferred way to generate an \s-1OID. \s0 Without arguments, a
unique \s-1OID\s0 will be generated.  With a 12\-byte string, an object can
be created around an existing \s-1OID\s0 byte-string.
.SS "from_epoch"
.IX Subsection "from_epoch"
.Vb 1
\&    # generate a new OID
\&
\&    my $oid = BSON::OID\->from_epoch( $epoch, 0); # other bytes zeroed
\&    my $oid = BSON::OID\->from_epoch( $epoch, $eight_more_bytes );
\&
\&    # reset an existing OID
\&
\&    $oid\->from_epoch( $new_epoch, 0 );
\&    $oid\->from_epoch( $new_epoch, $eight_more_bytes );
.Ve
.PP
\&\fBWarning!\fR You should not rely on this method for a source of unique IDs.
Use this method for query boundaries, only.
.PP
An \s-1OID\s0 is a twelve-byte string.  Typically, the first four bytes represent
integer seconds since the Unix epoch in big-endian format.  The remaining
bytes ensure uniqueness.
.PP
With this method, the first argument to this method is an epoch time (in
integer seconds).  The second argument is the remaining eight-bytes to
append to the string.
.PP
When called as a class method, it returns a new \s-1BSON::OID\s0 object.  When
called as an object method, it mutates the existing internal \s-1OID\s0 value.
.PP
As a special case, if the second argument is \fBdefined\fR and zero (\*(L"0\*(R"),
then the remaining bytes will be zeroed.
.PP
.Vb 1
\&    my $oid = BSON::OID\->from_epoch(1467545180, 0);
.Ve
.PP
This is particularly useful when looking for documents by their insertion
date: you can simply look for OIDs which are greater or lower than the one
generated with this method.
.PP
For backwards compatibility with Mango, if called without a second
argument, the method generates the remainder of the fields \*(L"like usual\*(R".
This is equivalent to calling \f(CW\*(C`BSON::OID\->new\*(C'\fR and replacing the first
four bytes with the packed epoch value.
.PP
.Vb 1
\&    # UNSAFE: don\*(Aqt do this unless you have to
\&
\&    my $oid = BSON::OID\->from_epoch(1467545180);
.Ve
.PP
If you insist on creating a unique \s-1OID\s0 with \f(CW\*(C`from_epoch\*(C'\fR, set the
remaining eight bytes in a way that guarantees thread-safe uniqueness, such
as from a reliable source of randomness (see Crypt::URandom).
.PP
.Vb 2
\&  use Crypt::Random \*(Aqurandom\*(Aq;
\&  my $oid = BSON::OID\->from_epoch(1467545180, urandom(8));
.Ve
.SS "hex"
.IX Subsection "hex"
Returns the \f(CW\*(C`oid\*(C'\fR attributes as 24\-byte hexadecimal value
.SS "get_time"
.IX Subsection "get_time"
Returns a number corresponding to the portion of the \f(CW\*(C`oid\*(C'\fR value that
represents seconds since the epoch.
.SS "\s-1TO_JSON\s0"
.IX Subsection "TO_JSON"
Returns a string for this \s-1OID,\s0 with the \s-1OID\s0 given as 24 hex digits.
.PP
If the \f(CW\*(C`BSON_EXTJSON\*(C'\fR option is true, it will instead be compatible with
MongoDB's extended \s-1JSON\s0 <https://github.com/mongodb/specifications/blob/master/source/extended-json.rst>
format, which represents it as a document as follows:
.PP
.Vb 1
\&    {"$oid" : "012345678901234567890123"}
.Ve
.SH "OVERLOAD"
.IX Header "OVERLOAD"
The string operator is overloaded so any string operations will actually use
the 24\-character hex value of the \s-1OID. \s0 Fallback overloading is enabled.
.PP
Both numeric comparison (\f(CW\*(C`<=>\*(C'\fR) and string comparison (\f(CW\*(C`cmp\*(C'\fR) are
overloaded to do string comparison of the 24\-character hex value of the
\&\s-1OID. \s0 If used with a non\-BSON::OID object, be sure to provide a
24\-character hex string or the results are undefined.
.SH "THREADS"
.IX Header "THREADS"
This module is thread safe.
.SH "AUTHORS"
.IX Header "AUTHORS"
.IP "\(bu" 4
David Golden <david@mongodb.com>
.IP "\(bu" 4
Stefan G. <minimalist@lavabit.com>
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
This software is Copyright (c) 2018 by Stefan G. and MongoDB, Inc.
.PP
This is free software, licensed under:
.PP
.Vb 1
\&  The Apache License, Version 2.0, January 2004
.Ve

Zerion Mini Shell 1.0