+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Return the object held in this tagged object as a parser assuming it has
+ the type of the passed in tag. If the object doesn't have a parser
+ associated with it, the base object is returned.
+
+
+ iso.org.dod.internet.private.enterprise.legion-of-the-bouncy-castle
+
+ LinkedCertificate := SEQUENCE {
+ digest DigestInfo, -- digest of PQC certificate
+ certLocation GeneralName, -- location of PQC certificate
+ certIssuer [0] Name OPTIONAL, -- issuer of PQC cert (if different from current certificate)
+ cACerts [1] GeneralNames OPTIONAL, -- CA certificates for PQC cert (one of more locations)
+ }
+
+
+
+ A BER Null object.
+
+
+ return the DER octets that make up this string.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty sequence
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ See https://www.bsi.bund.de/cae/servlet/contentblob/471398/publicationFile/30615/BSI-TR-03111_pdf.pdf
+
+
+ 0.4.0.127.0.7.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA-1
+ OID: 0.4.0.127.0.7.1.1.5.1.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA224
+ OID: 0.4.0.127.0.7.1.1.5.1.1.2
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA256
+ OID: 0.4.0.127.0.7.1.1.5.1.1.3
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA384
+ OID: 0.4.0.127.0.7.1.1.5.1.1.4
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA512
+ OID: 0.4.0.127.0.7.1.1.5.1.1.5
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function RIPEMD160
+ OID: 0.4.0.127.0.7.1.1.5.1.1.6
+
+
+ Key Derivation Function for Session Keys
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Note: the addition of attribute certificates is a BC extension.
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the number of string elements present.
+
+ @return number of elements present.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+ @param status
+
+
+ @param status
+ @param statusString
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Table of the available named parameters for GOST 3410-2001 / 2012.
+
+
+
+ return the ECDomainParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+
+
+
+ table of the available named parameters for GOST 3410-94.
+
+
+ return the GOST3410ParamSetParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for parameters
+ contained in this structure.
+
+
+ Base class for an application specific object
+
+
+ Return the enclosed object assuming explicit tagging.
+
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ Return the enclosed object assuming implicit tagging.
+
+ @param derTagNo the type tag that should be applied to the object's contents.
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a DerBoolean from the passed in bool.
+
+
+ return a Boolean from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+
0 single-ASN1-type
+
1 OCTET STRING
+
2 BIT STRING
+
+
+
+ Generalized time object.
+
+
+ return a generalized time from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Generalized Time object from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
+ for local time, or Z+-HHMM on the end, for difference between local
+ time and UTC time. The fractional second amount f must consist of at
+ least one number with trailing zeroes removed.
+
+ @param time the time string.
+ @exception ArgumentException if string is an illegal format.
+
+
+ base constructor from a local time object
+
+
+ Return the time.
+ @return The time string as it appeared in the encoded object.
+
+
+ return the time - always in the form of
+ YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der IA5String object - this is an ascii string.
+
+
+ return a IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ Apply the correct validation for an INTEGER primitive following the BER rules.
+
+ @param bytes The raw encoding of the integer.
+ @return true if the (in)put fails this validation.
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a Numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Numeric string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation..
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an Oid from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an object Identifier from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Printable string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor - this does not validate the string
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an T61 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - with string.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ Der UniversalString object.
+
+
+ return a Universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Universal string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ UTC time object.
+
+
+ return an UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTC Time from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were
+ never encoded. When you're creating one of these objects from scratch, that's
+ what you want to use, otherwise we'll try to deal with whatever Gets read from
+ the input stream... (this is why the input format is different from the GetTime()
+ method output).
+
+ @param time the time string.
+
+
+ base constructor from a DateTime object
+
+
+ return the time as a date based on whatever a 2 digit year will return. For
+ standardised processing use ToAdjustedDateTime().
+
+ @return the resulting date
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time as an adjusted date
+ in the range of 1950 - 2049.
+
+ @return a date in the range of 1950 to 2049.
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time - always in the form of
+ YYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+ Note: In some cases, due to the local date processing, this
+ may lead to unexpected results. If you want to stick the normal
+ convention of 1950 to 2049 use the GetAdjustedTime() method.
+
+
+
+ Return a time string as an adjusted date with a 4 digit year.
+ This goes in the range of 1950 - 2049.
+
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTF8 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a Videotex String from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a Videotex String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der VisibleString object.
+
+
+ return a Visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Visible string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ Edwards Elliptic Curve Object Identifiers (RFC 8410)
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+
a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+
b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+
c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+
External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+
The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+
See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+
By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+
+
+
+ KMACwithSHAKE128-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 256, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+
+ KMACwithSHAKE256-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 512, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+ Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 2.16.840.1.101.3.4.3.5
+
+
+ 2.16.840.1.101.3.4.3.6
+
+
+ 2.16.840.1.101.3.4.3.7
+
+
+ 2.16.840.1.101.3.4.3.8
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ 2.16.840.1.101.3.4.3.9
+
+
+ 2.16.840.1.101.3.4.3.10
+
+
+ 2.16.840.1.101.3.4.3.11
+
+
+ 2.16.840.1.101.3.4.3.12
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+
+ [IMPLICIT TAGS]
+
+ OneAsymmetricKey ::= SEQUENCE {
+ version Version,
+ privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
+ privateKey PrivateKey,
+ attributes [0] Attributes OPTIONAL,
+ ...,
+ [[2: publicKey [1] PublicKey OPTIONAL ]],
+ ...
+ }
+
+ PrivateKeyInfo ::= OneAsymmetricKey
+
+ Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
+
+ PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
+ { PUBLIC-KEY,
+ { PrivateKeyAlgorithms } }
+
+ PrivateKey ::= OCTET STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ PublicKey ::= BIT STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
+
+
+
+ Return true if a public key is present, false otherwise.
+
+
+ For when the public key is an ASN.1 encoding.
+
+
+ Return the public key as a raw bit string.
+
+
+ The default version
+
+
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+
This routine is written to output Pkcs1 version 0, private keys.
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+ Holding class for the AttributeTypeAndValue structures that make up an RDN.
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+
+
+ Holding class for a single Relative Distinguished Name (RDN).
+
+
+ Create a single valued RDN.
+
+ @param oid RDN type.
+ @param value RDN value.
+
+
+ Create a multi-valued RDN.
+
+ @param aAndVs attribute type/value pairs making up the RDN
+
+
+ Return the number of AttributeTypeAndValue objects in this RDN,
+
+ @return size of RDN, greater than 1 if multi-valued.
+
+
+ *
+ * RelativeDistinguishedName ::=
+ * SET OF AttributeTypeAndValue
+
+ * AttributeTypeAndValue ::= SEQUENCE {
+ * type AttributeType,
+ * value AttributeValue }
+ *
+ * @return this object as its ASN1Primitive type
+
+
+ The AccessDescription object.
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ @param obj
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+
The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+
rfc822Name
+
iPAddress
+
directoryName
+
dNSName
+
uniformResourceIdentifier
+
registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] EXPLICIT IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] EXPLICIT GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+
permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ The OtherName object.
+
+ OtherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+
+
+ OtherName factory method.
+ @param obj the object used to construct an instance of
+ OtherName. It must be an instance of OtherName
+ or ASN1Sequence.
+ @return the instance of OtherName built from the
+ supplied object.
+ @throws java.lang.IllegalArgumentException if the object passed
+ to the factory is not an instance of OtherName or something that
+ can be converted into an appropriate ASN1Sequence.
+
+
+ Base constructor.
+ @param typeID the type of the other name.
+ @param value the ANY object that represents the value.
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Creates a new UserNotice instance.
+
Useful from reconstructing a UserNotice instance
+ from its encodable/encoded form.
+
+ @param as an ASN1Sequence value obtained from either
+ calling @{link toASN1Object()} for a UserNotice
+ instance or from parsing it from a DER-encoded stream.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+ return the parsed value of the extension represented by the object identifier
+ passed in.
+
+ @return the parsed value of the extension if it's present, null otherwise.
+
+
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+
Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A general class that reads all X9.62 style EC curve tables.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve. The routine returns null if the curve is not present.
+
+ @param name the name of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve.
+
+ @param oid the object id of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return an enumeration of the names of the available curves.
+
+ @return an enumeration of the names of the available curves.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ table of the current named curves defined in X.962 EC-DSA.
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+
if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+
if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ is detected and fails.
+
+ By default a missing CRC will not cause an exception. To force CRC detection use:
+
+ ArmoredInputStream aIn = ...
+
+ aIn.setDetectMissingCRC(true);
+
+
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Reads up to len bytes of data from the input stream into
+ an array of bytes. An attempt is made to read as many as
+ len bytes, but a smaller number may be read.
+ The number of bytes actually read is returned as an integer.
+
+ The first byte read is stored into element b[off], the
+ next one into b[off+1], and so on. The number of bytes read
+ is, at most, equal to len.
+
+ NOTE: We need to override the custom behavior of Java's {@link InputStream#read(byte[], int, int)},
+ as the upstream method silently swallows {@link IOException IOExceptions}.
+ This would cause CRC checksum errors to go unnoticed.
+
+ @see Related BC bug report
+ @param b byte array
+ @param off offset at which we start writing data to the array
+ @param len number of bytes we write into the array
+ @return total number of bytes read into the buffer
+
+ @throws IOException if an exception happens AT ANY POINT
+
+
+ Change how the stream should react if it encounters missing CRC checksum.
+ The default value is false (ignore missing CRC checksums). If the behavior is set to true,
+ an {@link IOException} will be thrown if a missing CRC checksum is encountered.
+
+ @param detectMissing ignore missing CRC sums
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. Any current value(s) under the same name will be
+ replaced by the new one. A null value will clear the entry for name. *
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Set an additional header entry. The current value(s) will continue to exist together
+ with the new one. Adding a null value has no effect.
+
+ @param name the name of the header entry.
+ @param value the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the Modification Detection (packets 18 and 19)
+
+
+ Identifier for the AEAD Encrypted Data Packet (packet 20) and version 5
+ Symmetric-Key Encrypted Session Key Packets (packet 3)
+
+
+ Identifier for the Version 5 Public-Key Packet format and corresponding new
+ fingerprint format
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Close the compressed object.summary>
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+
+ Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1).
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+
+
+ Close off the encrypted object - this is equivalent to calling Close() on the stream
+ returned by the Open() method.
+
+
+ Note: This does not close the underlying output stream, only the stream on top of
+ it created by the Open() method.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator using old style checksumming. It is recommended to use
+ SHA1 checksumming where possible.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a signing subkey to the key ring to be generated with default certification and a primary key binding signature.
+
+ The key pair.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification using SHA-1.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+
+ Add a signing subkey with specific hashed and unhashed packets associated with it and
+ default certifications, including the primary-key binding signature.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+
+ Thrown if the key checksum is invalid.
+
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ Close the literal data packet - this is equivalent to calling Close()
+ on the stream returned by the Open() method.
+
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+
+ Read all available objects, returning only those that are assignable to the specified type.
+
+ The type of objects to return. All other objects are ignored.
+ An IList containing the filtered objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ The number of valid days from creation time - zero means no expiry.
+ WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The keyId associated with the public key.
+
+
+ The fingerprint of the key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this could be a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Base constructor, creates an empty generator.
+
+
+
+
+ Constructor for pre-initialising the generator from an existing one.
+
+
+ sigSubV an initial set of subpackets.
+
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets revocation key sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ Wrap a PKIMessage ASN.1 structure.
+
+ PKI message.
+
+
+
+ Create a PKIMessage from the passed in bytes.
+
+ BER/DER encoding of the PKIMessage
+
+
+
+ Return true if this message has protection bits on it. A return value of true
+ indicates the message can be used to construct a ProtectedPKIMessage.
+
+
+
+
+ Wrapper for a PKIMessage with protection attached to it.
+
+
+
+
+ Wrap a general message.
+
+ If the general message does not have protection.
+ The General message
+
+
+
+ Wrap a PKI message.
+
+ If the PKI message does not have protection.
+ The PKI message
+
+
+
+ Message header
+
+
+
+
+ Message Body
+
+
+
+
+ Return the underlying ASN.1 structure contained in this object.
+
+ PKI Message structure
+
+
+
+ Determine whether the message is protected by a password based MAC. Use verify(PKMACBuilder, char[])
+ to verify the message if this method returns true.
+
+ true if protection MAC PBE based, false otherwise.
+
+
+
+ Return the extra certificates associated with this message.
+
+ an array of extra certificates, zero length if none present.
+
+
+
+ Verify a message with a public key based signature attached.
+
+ a factory of signature verifiers.
+ true if the provider is able to create a verifier that validates the signature, false otherwise.
+
+
+
+ Verify a message with password based MAC protection.
+
+ MAC builder that can be used to construct the appropriate MacCalculator
+ the MAC password
+ true if the passed in password and MAC builder verify the message, false otherwise.
+ if algorithm not MAC based, or an exception is thrown verifying the MAC.
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+
+ @param rand instance of SecureRandom to use
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Close the underlying data stream.
+ @throws IOException if the close fails.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Add a generator to produce the recipient info required.
+
+ a generator of a recipient info object.
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ A clone of the byte array
+
+
+ a holding class for a file of data to be processed.
+
+
+ The file handle
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add the attribute certificates contained in the passed in store to the
+ generator.
+
+ @param store a store of Version 2 attribute certificates
+ @throws CmsException if an error occurse processing the store.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as string objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Hashtable of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in X.509 certificate issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certificate X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ Protected constructor. In some cases clients have their own idea about how to encode
+ the signed attributes and calculate the signature. This constructor is to allow developers
+ to deal with that by extending off the class and overriding e.g. SignedAttributes property.
+
+ @param baseInfo the SignerInformation to base this one on.
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+
+ Carrier for an authenticator control.
+
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+
+
+
+ Create a CertificateRequestMessage from the passed in bytes.
+
+ BER/DER encoding of the CertReqMsg structure.
+
+
+
+ Return the underlying ASN.1 object defining this CertificateRequestMessage object.
+
+ A CertReqMsg
+
+
+
+ Return the certificate template contained in this message.
+
+ a CertTemplate structure.
+
+
+
+ Return whether or not this request has control values associated with it.
+
+ true if there are control values present, false otherwise.
+
+
+
+ Return whether or not this request has a specific type of control value.
+
+ the type OID for the control value we are checking for.
+ true if a control value of type is present, false otherwise.
+
+
+
+ Return a control value of the specified type.
+
+ the type OID for the control value we are checking for.
+ the control value if present, null otherwise.
+
+
+
+ Return whether or not this request message has a proof-of-possession field in it.
+
+ true if proof-of-possession is present, false otherwise.
+
+
+
+ Return the type of the proof-of-possession this request message provides.
+
+ one of: popRaVerified, popSigningKey, popKeyEncipherment, popKeyAgreement
+
+
+
+ Return whether or not the proof-of-possession (POP) is of the type popSigningKey and
+ it has a public key MAC associated with it.
+
+ true if POP is popSigningKey and a PKMAC is present, false otherwise.
+
+
+
+ Return whether or not a signing key proof-of-possession (POP) is valid.
+
+ a provider that can produce content verifiers for the signature contained in this POP.
+ true if the POP is valid, false otherwise.
+ if there is a problem in verification or content verifier creation.
+ if POP not appropriate.
+
+
+
+ Return the ASN.1 encoding of the certReqMsg we wrap.
+
+ a byte array containing the binary encoding of the certReqMsg.
+
+
+
+ Create a builder that makes EncryptedValue structures.
+
+ wrapper a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+
+
+
+
+ Create a builder that makes EncryptedValue structures with fixed length blocks padded using the passed in padder.
+
+ a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+ padder a padder to ensure that the EncryptedValue created will always be a constant length.
+
+
+
+
+ Build an EncryptedValue structure containing the passed in pass phrase.
+
+ a revocation pass phrase.
+ an EncryptedValue containing the encrypted pass phrase.
+
+
+
+
+ Build an EncryptedValue structure containing the certificate contained in
+ the passed in holder.
+
+ a holder containing a certificate.
+ an EncryptedValue containing the encrypted certificate.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Build an EncryptedValue structure containing the private key contained in
+ the passed info structure.
+
+ a PKCS#8 private key info structure.
+ an EncryptedValue containing an EncryptedPrivateKeyInfo structure.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Generic interface for a CertificateRequestMessage control value.
+
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the value contained in this control object.
+
+
+
+
+ An encrypted value padder is used to make sure that prior to a value been
+ encrypted the data is padded to a standard length.
+
+
+
+
+ Return a byte array of padded data.
+
+ the data to be padded.
+ a padded byte array containing data.
+
+
+
+
+ Return a byte array of with padding removed.
+
+ the data to be padded.
+ an array containing the original unpadded data.
+
+
+
+
+ Basic constructor - build from an PKIArchiveOptions structure.
+
+ the ASN.1 structure that will underlie this control.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_pkiArchiveOptions
+
+
+
+ Return the underlying ASN.1 object.
+
+ a PKIArchiveOptions structure.
+
+
+
+ Return the archive control type, one of: encryptedPrivKey,keyGenParameters,or archiveRemGenPrivKey.
+
+ the archive control type.
+
+
+
+ Return whether this control contains enveloped data.
+
+ true if the control contains enveloped data, false otherwise.
+
+
+
+ Return the enveloped data structure contained in this control.
+
+ a CMSEnvelopedData object.
+
+
+
+ Basic constructor - specify the contents of the PKIArchiveControl structure.
+
+ the private key to be archived.
+ the general name to be associated with the private key.
+
+
+
+ Add a recipient generator to this control.
+ recipient generator created for a specific recipient.
+ this builder object.
+
+
+ Build the PKIArchiveControl using the passed in encryptor to encrypt its contents.
+ a suitable content encryptor.
+ a PKIArchiveControl object.
+
+
+
+ Default, IterationCount = 1000, OIW=IdSha1, Mac=HmacSHA1
+
+
+
+
+ Defaults with IPKMacPrimitivesProvider
+
+
+
+
+
+ Create.
+
+ The Mac provider
+ Digest Algorithm Id
+ Mac Algorithm Id
+
+
+
+ Create a PKMAC builder enforcing a ceiling on the maximum iteration count.
+
+ supporting calculator
+ max allowable value for iteration count.
+
+
+ Set the salt length in octets.
+
+ @param saltLength length in octets of the salt to be generated.
+ @return the generator
+
+
+
+ Set the iteration count.
+
+ the iteration count.
+ this
+ if iteration count is less than 100
+
+
+
+ Set PbmParameters
+
+ The parameters.
+ this
+
+
+
+ The Secure random
+
+ The random.
+ this
+
+
+
+ Build an IMacFactory.
+
+ The password.
+ IMacFactory
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_regToken
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+ a UTF8String.
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ @param digest the digest to be used as the source of generated bytes
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The AEAD ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ this exception is thrown if a buffer that is meant to have output
+ copied into it turns out to be too short, or if we've been given
+ insufficient input. In general this exception will Get thrown rather
+ than an ArrayOutOfBounds exception.
+
+
+ base constructor.
+
+
+ create a DataLengthException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be a multiple of 8 and less than 256.
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+
+ Customizable SHAKE function.
+
+
+
+
+ Base constructor
+
+ bit length of the underlying SHAKE function, 128 or 256.
+ the function name string, note this is reserved for use by NIST. Avoid using it if not required.
+ the customization string - available for local use.
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+
+ ParallelHash - a hash designed to support the efficient hashing of very long strings, by taking advantage,
+ of the parallelism available in modern processors with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+ @param B the blocksize (in bytes) for hashing.
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+
Implementation of RipeMD256.
+
Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+
Implementation of RipeMD 320.
+
Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+
256, 512 and 1024 bit internal states.
+
Full 96 bit input length.
+
Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+
Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+
Sub-byte length input (bit padding).
+
Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ TupleHash - a hash designed to simply hash a tuple of input strings, any or all of which may be empty strings,
+ in an unambiguous way with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto
+ and Rijmen.
+
+
+
+ Copy constructor. This will copy the state of the provided message
+ digest.
+
+
+ Reset the chaining variables
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael)), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor), they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each), for a total of 2Kbytes),
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values in each round
+
+
+ This file contains the fast version with 8Kbytes of static tables for round precomputation
+
+
+ Unfortunately this class has a few side channel issues.
+ In an environment where encryption/decryption may be closely observed it should not be used.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ RFC 5794.
+
+ ARIA is a 128-bit block cipher with 128-, 192-, and 256-bit keys.
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+
+ ChaCha function.
+
+ The number of ChaCha rounds to execute
+ The input words.
+ The ChaCha state to modify.
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ *
this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ *
if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ the DES engine.
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (barring 1 typo at the
+ end of the MulInv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note: This algorithm was patented in the USA, Japan and Europe. These patents expired in 2011/2012.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
+ Provided for the sake of completeness.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.
+
+ The implementation here is based on the document http://eprint.iacr.org/2008/329.pdf
+ by Whitfield Diffie and George Ledin, which is a translation of Prof. LU Shu-wang's original standard.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+
+ Read a single 64 bit word from input in LSB first order.
+
+
+
+
+ Write a 64 bit word to output in LSB first order.
+
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Base class for format-preserving encryption.
+
+
+
+ Process length bytes from inBuf, writing the output to outBuf.
+
+ number of bytes output.
+ input data.
+ offset in input data to start at.
+ number of bytes to process.
+ destination buffer.
+ offset to start writing at in destination buffer.
+
+
+
+ Initialize the FPE engine for encryption/decryption.
+
+ number of bytes output.
+ true if initialising for encryption, false otherwise.
+ the key and other parameters to use to set the engine up.
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Converts a character password to bytes incorporating the required trailing zero byte.
+
+ @param password the password to be encoded.
+ @return a byte representation of the password in UTF8 + trailing zero.
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ @param digest the digest to be used as the source of Generated bytes
+
+
+ return the underlying digest.
+
+
+ int to octet string.
+
+
+ fill len bytes of the output buffer with bytes Generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, 2y,2b or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$' using version
+ '2y'.
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, may be 2b, 2y or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest the original MD5.
+
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest as specified.
+
+ the digest to use as the PRF.
+
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter derived from the mPassword, mSalt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the mPassword, mSalt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+
r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+
r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ Int32.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for mapping from an alphabet to a set of indexes
+ suitable for use with FPE.
+
+
+
+ Return the number of characters in the alphabet.
+
+ the radix for the alphabet.
+
+
+
+ Return the passed in char[] as a byte array of indexes (indexes
+ can be more than 1 byte)
+
+ an index array.
+ characters to be mapped.
+
+
+
+ Return a char[] for this alphabet based on the indexes passed.
+
+ an array of char corresponding to the index values.
+ input array of indexes.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Indicates whether this cipher can handle partial blocks.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+
+ Base interface for a ciphers that do not require data to be block aligned.
+
+ Note: In cases where the underlying algorithm is block based, these ciphers may add or remove padding as needed.
+
+
+
+
+
+ Return the size of the output buffer required for a Write() plus a
+ close() with the write() being passed inputLen bytes.
+
+ The returned size may be dependent on the initialisation of this cipher
+ and may not be accurate once subsequent input data is processed as the cipher may
+ add, add or remove padding, as it sees fit.
+
+
+ The space required to accommodate a call to processBytes and doFinal with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Return the size of the output buffer required for a write() with the write() being
+ passed inputLen bytes and just updating the cipher output.
+
+ The space required to accommodate a call to processBytes with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Gets the stream for reading/writing data processed/to be processed.
+
+ The stream associated with this cipher.
+
+
+
+ Base interface for cipher builders.
+
+
+
+
+ Return the algorithm and parameter details associated with any cipher built.
+
+
+
+
+ Return the maximum output size that a given input will produce.
+
+ the length of the expected input.
+ The maximum possible output size that can produced for the expected input length.
+
+
+
+ Build a cipher that operates on the passed in stream.
+
+ The stream to write/read any encrypted/decrypted data.
+ A cipher based around the given stream.
+
+
+
+ A cipher builder that can also return the key it was initialized with.
+
+
+
+
+ Return the key we were initialized with.
+
+
+
+ all parameter classes implement this.
+
+
+
+ Interface describing a provider of cipher builders for creating decrypting ciphers.
+
+
+
+
+ Return a cipher builder for creating decrypting ciphers.
+
+ The algorithm details/parameters to use to create the final cipher.
+ A new cipher builder.
+
+
+ base interface for general purpose byte derivation functions.
+
+
+ return the message digest used as the basis for the function
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ interface that a message digest conforms to.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ return the size, in bytes, of the internal buffer used by this digest.
+
+ @return the size, in bytes, of the internal buffer used by this digest.
+
+
+ update the message digest with a single byte.
+
+ @param inByte the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param input the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param output the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+
+ Base interface for operator factories that create stream-based digest calculators.
+
+
+
+ The algorithm details object for calculators made by this factory.
+
+
+ Return the size of the digest associated with this factory.
+ The length of the digest produced by this calculators from this factory in bytes.
+
+
+
+ Create a stream calculator for the digest associated with this factory. The stream
+ calculator is used for the actual operation of entering the data to be digested
+ and producing the digest block.
+
+ A calculator producing an IBlockResult with the final digest in it.
+
+
+ interface for classes implementing the Digital Signature Algorithm
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return two big integers representing the r and s values respectively.
+
+
+ verify the message message against the signature values r and s.
+
+ @param message the message that was supposed to have been signed.
+ @param r the r signature value.
+ @param s the s signature value.
+
+
+
+ An "extended" interface for classes implementing DSA-style algorithms, that provides access
+ to the group order.
+
+
+
+ The order of the group that the r, s values in signatures belong to.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+
+ Base interface for a key unwrapper.
+
+
+
+
+ The parameter set used to configure this key unwrapper.
+
+
+
+
+ Unwrap the passed in data.
+
+ The array containing the data to be unwrapped.
+ The offset into cipherText at which the unwrapped data starts.
+ The length of the data to be unwrapped.
+ an IBlockResult containing the unwrapped key data.
+
+
+
+ Base interface for a key wrapper.
+
+
+
+
+ The parameter set used to configure this key wrapper.
+
+
+
+
+ Wrap the passed in key data.
+
+ The key data to be wrapped.
+ an IBlockResult containing the wrapped key data.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+
+ @param param the key and other data required by the MAC.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Return the name of the algorithm the MAC implements.
+
+ @return the name of the algorithm the MAC implements.
+
+
+ Return the block size for this MAC (in bytes).
+
+ @return the block size for this MAC in bytes.
+
+
+ add a single byte to the mac for processing.
+
+ @param in the byte to be processed.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ @param in the array containing the input.
+ @param inOff the index in the array the data begins at.
+ @param len the length of the input starting at inOff.
+ @exception InvalidOperationException if the MAC is not initialised.
+ @exception DataLengthException if there isn't enough data in in.
+
+
+ Compute the final stage of the MAC writing the output to the out
+ parameter.
+
+ doFinal leaves the MAC in the same state it was after the last init.
+
+ @param out the array the MAC is to be output to.
+ @param outOff the offset into the out buffer the output is to start at.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ Reset the MAC. At the end of resetting the MAC should be in the
+ in the same state it was after the last init (if there was one).
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ this exception is thrown whenever we find something we don't expect in a
+ message.
+
+
+ base constructor.
+
+
+ create a InvalidCipherTextException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ Return the name of the algorithm the signer implements.
+
+ @return the name of the algorithm the signer implements.
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ reset the internal state
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from input putting the result into output.
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra method required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this digest to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ This exception is thrown whenever a cipher requires a change of key, iv
+ or similar after x amount of bytes enciphered
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Do the appropriate chaining step for CBC mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate chaining step for CBC mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the decrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in
+ NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ GCM-SIV Mode.
+
It should be noted that the specified limit of 236 bytes is not supported. This is because all bytes are
+ cached in a ByteArrayOutputStream object (which has a limit of a little less than 231 bytes),
+ and are output on the DoFinal() call (which can only process a maximum of 231 bytes).
+
The practical limit of 231 - 24 bytes is policed, and attempts to breach the limit will be rejected
+
In order to properly support the higher limit, an extended form of ByteArrayOutputStream would be needed
+ which would use multiple arrays to store the data. In addition, a new doOutput method would be required (similar
+ to that in XOF digests), which would allow the data to be output over multiple calls. Alternatively an extended
+ form of ByteArrayInputStream could be used to deliver the data.
+
+
+ The buffer length.
+
+
+ The halfBuffer length.
+
+
+ The nonce length.
+
+
+ The maximum data length (AEAD/PlainText). Due to implementation constraints this is restricted to the maximum
+ array length (https://programming.guide/java/array-maximum-length.html) minus the BUFLEN to allow for the MAC
+
+
+ The top bit mask.
+
+
+ The addition constant.
+
+
+ The initialisation flag.
+
+
+ The aeadComplete flag.
+
+
+ The cipher.
+
+
+ The multiplier.
+
+
+ The gHash buffer.
+
+
+ The reverse buffer.
+
+
+ The aeadHasher.
+
+
+ The dataHasher.
+
+
+ The plainDataStream.
+
+
+ The encryptedDataStream (decryption only).
+
+
+ Are we encrypting?
+
+
+ The initialAEAD.
+
+
+ The nonce.
+
+
+ The flags.
+
+
+ Constructor.
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+ @param pMultiplier the multiplier
+
+
+ check AEAD status.
+ @param pLen the aeadLength
+
+
+ check status.
+ @param pLen the dataLength
+
+
+ Reset Streams.
+
+
+ Obtain buffer length (allowing for null).
+ @param pBuffer the buffere
+ @return the length
+
+
+ Check buffer.
+ @param pBuffer the buffer
+ @param pOffset the offset
+ @param pLen the length
+ @param pOutput is this an output buffer?
+
+
+ encrypt data stream.
+ @param pCounter the counter
+ @param pTarget the target buffer
+ @param pOffset the target offset
+ @return the length of data encrypted
+
+
+ decrypt data stream.
+ @throws InvalidCipherTextException on data too short or mac check failed
+
+
+ calculate tag.
+ @return the calculated tag
+
+
+ complete polyVAL.
+ @return the calculated value
+
+
+ process lengths.
+
+
+ perform the next GHASH step.
+ @param pNext the next value
+
+
+
+ xor a full block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+
+
+ xor a partial block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+ @param pOffset the offset in the right operand
+ @param pLength the length of data in the right operand
+
+
+ increment the counter.
+ @param pCounter the counter to increment
+
+
+ multiply by X.
+ @param pValue the value to adjust
+
+
+ Derive Keys.
+ @param pKey the keyGeneration key
+
+
+ Hash Control.
+
+
+ Cache.
+
+
+ Single byte cache.
+
+
+ Count of active bytes in cache.
+
+
+ Count of hashed bytes.
+
+
+ Obtain the count of bytes hashed.
+ @return the count
+
+
+ Reset the hasher.
+
+
+ update hash.
+ @param pByte the byte
+
+
+ update hash.
+ @param pBuffer the buffer
+ @param pOffset the offset within the buffer
+ @param pLen the length of data
+
+
+ complete hash.
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ An IAeadCipher based on an IBlockCipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ The block cipher underlying this algorithm.
+
+
+
+ A cipher mode that includes authenticated encryption with a streaming mode and optional
+ associated data.
+
+
+ Implementations of this interface may operate in a packet mode (where all input data is
+ buffered and processed during the call to DoFinal, or in a streaming mode (where output
+ data is incrementally produced with each call to ProcessByte or ProcessBytes. This is
+ important to consider during decryption: in a streaming mode, unauthenticated plaintext
+ data may be output prior to the call to DoFinal that results in an authentication failure.
+ The higher level protocol utilising this cipher must ensure the plaintext data is handled
+ appropriately until the end of data is reached and the entire ciphertext is authenticated.
+
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm, licensed per:
+
+
License for
+ Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software
+ implementations of OCB. This license terminates for you if you sue someone over their open-source
+ software implementation of OCB claiming that you have a patent covering their implementation.
+
+ This is a non-binding summary of a legal document (the link above). The parameters of the license
+ are specified in the license document and that document is controlling.
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Do the appropriate processing for CFB IV mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB IV mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface
+
+
+ Initialise the padder.
+
+ @param param parameters, if any required.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+ @exception InvalidCipherTextException if the padding is badly formed
+ or invalid.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds the padding according to the scheme referenced in
+ ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the padder implements.
+
+ @return the name of the algorithm the padder implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds Pkcs7/Pkcs5 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+
+ This padding pads the block out compliment of the last bit
+ of the plain text.
+
+
+
+
+ Return the name of the algorithm the cipher implements.
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+ Note: this assumes that the last block of plain text is always
+ passed to it inside in. i.e. if inOff is zero, indicating the
+ entire block is to be overwritten with padding the value of in
+ should be the same as the last block of plain text.
+
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is
+ passed in random padding is assumed, otherwise padding with zeros is used.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if one is available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Null byte padding to a block.
+
+
+ Return the name of the algorithm the cipher implements.
+
+
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+
+
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+
+ Base constructor - suffix fixed input data only.
+
+ the KDF seed
+ fixed input data to follow counter.
+ length of the counter in bits
+
+
+
+ Base constructor - prefix and suffix fixed input data.
+
+ the KDF seed
+ fixed input data to precede counter
+ fixed input data to follow counter.
+ length of the counter in bits.
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ * Parameters for a NaccacheStern KeyPair.
+ *
+ * @param random
+ * The source of randomness
+ * @param strength
+ * The desired strength of the Key in Bits
+ * @param certainty
+ * the probability that the generated primes are not really prime
+ * as integer: 2^(-certainty) is then the probability
+ * @param cntSmallPrimes
+ * How many small key factors are desired
+ * @param debug
+ * Ignored
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+
MAC generation, by providing a key.
+
Randomised hashing, by providing a nonce.
+
A hash function for digital signatures, associating a
+ public key with the message digest.
+
A key derivation function, by providing a
+ key identifier.
+
Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the password byte array.
+
+ @return the password byte array.
+
+
+ return the salt byte array.
+
+ @return the salt byte array.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ Generate derived parameters for a key of length keySize, and
+ an initialisation vector (IV) of length ivSize.
+
+ @param keySize the length, in bits, of the key required.
+ @param ivSize the length, in bits, of the iv required.
+ @return a parameters object representing a key and an IV.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+
+ Takes bytes generated by an underling RandomGenerator and reverses the order in
+ each small window (of configurable size).
+
+ Access to internals is synchronized so a single one of these can be shared.
+
+
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+ A thread based seed generator - one source of randomness.
+
+ Based on an idea from Marcus Lippert.
+
+
+
+ Generate seed bytes. Set fast to false for best quality.
+
+ If fast is set to true, the code should be round about 8 times faster when
+ generating a long sequence of random bytes. 20 bytes of random values using
+ the fast mode take less than half a second on a Nokia e70. If fast is set to false,
+ it takes round about 2500 ms.
+
+ @param numBytes the number of bytes to generate
+ @param fast true if fast mode should be used
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using the key
+ we were initialised with.
+
+
+ return true if the internal state represents the signature described in
+ the passed in array.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+
+ An interface for different encoding formats for DSA signatures.
+
+
+
+ Decode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ An encoding of the (r, s) pair of a DSA signature.
+ The (r, s) of a DSA signature, stored in an array of exactly two elements, r followed by s.
+
+
+ Encode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ The r value of a DSA signature.
+ The s value of a DSA signature.
+ An encoding of the DSA signature given by the provided (r, s) pair.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ A simple block result object which just carries a byte array.
+
+
+
+
+ Base constructor - a wrapper for the passed in byte array.
+
+ The byte array to be wrapped.
+
+
+
+ Return the number of bytes in the result
+
+ The length of the result in bytes.
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.2
+
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection. Note that as of TLS 1.1, failure to properly close a connection no longer
+ requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes
+ unresumable if any connection is terminated without proper close_notify messages with level
+ equal to warning.") to conform with widespread implementation practice.
+
+
+ An inappropriate message was received. This alert is always fatal and should never be
+ observed in communication between proper implementations.
+
+
+ This alert is returned if a record is received with an incorrect MAC. This alert also MUST be
+ returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it
+ wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between
+ proper implementations (except when messages were corrupted in the network).
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks
+ against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always
+ fatal and should never be observed in communication between proper implementations (except
+ when messages were corrupted in the network).
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length). This message is always fatal and should never be observed in communication between
+ proper implementations.
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to
+ negotiate an acceptable set of security parameters given the options available. This is a
+ fatal error.
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it
+ unacceptable.
+
+
+ A field in the handshake was out of range or inconsistent with other fields. This message is
+ always fatal.
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted
+ CA. This message is always fatal.
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not
+ to proceed with negotiation. This message is always fatal.
+
+
+ A message could not be decoded because some field was out of the specified range or the
+ length of the message was incorrect. This message is always fatal and should never be
+ observed in communication between proper implementations (except when messages were corrupted
+ in the network).
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a
+ signature or validate a Finished message. This message is always fatal.
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+ (For example, old protocol versions might be avoided for security reasons.) This message is
+ always fatal.
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client. This message is
+ always fatal.
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue. This message is always fatal.
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure. If the user
+ cancels an operation after the handshake is complete, just closing the connection by sending
+ a close_notify is more appropriate. This alert should be followed by a close_notify. This
+ message is generally a warning.
+
+
+ Sent by the client in response to a hello request or by the server in response to a client
+ hello after initial handshaking. Either of these would normally lead to renegotiation; when
+ that is not appropriate, the recipient should respond with this alert. At that point, the
+ original requester can decide whether to proceed with the connection. One case where this
+ would be appropriate is where a server has spawned a process to satisfy a request; the
+ process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This
+ message is always a warning.
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did
+ not put in the corresponding client hello. This message is always fatal.
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL
+ supplied by the client (see Section 3.3). This message MAY be fatal - for example if client
+ authentication is required by the server for the handshake to continue and the server is
+ unable to retrieve the certificate chain, it may send a fatal alert.
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not
+ recognize the server name. This message MAY be fatal.
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see
+ Section 3.6). This message is always fatal.
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash. This message is always fatal.
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an
+ "unknown_psk_identity" alert message.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version,
+ the server MUST respond with a fatal inappropriate_fallback alert [..].
+
+
+
+ RFC 5246 7.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ A queue for bytes.
+
+ This file could be more optimized.
+
+
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The initial size for our buffer.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided Stream.
+ The Stream to copy the bytes to.
+ How many bytes to copy.
+ If insufficient data is available.
+ If there is a problem copying the data.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a MemoryStream over some bytes at the beginning of the data.
+ How many bytes will be readable.
+ A MemoryStream over the data.
+ If insufficient data is available.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+
+ @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure
+
+
+ The certificates.
+
+
+ @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate
+ chain.
+
+
+ @return true if this certificate chain contains no certificates, or
+ false otherwise.
+
+
+ Encode this {@link Certificate} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link Certificate} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link Certificate} object.
+ @throws IOException
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+
+ @see ClientCertificateType
+ @see X509Name
+
+
+ @param certificateTypes see {@link ClientCertificateType} for valid constants.
+ @param certificateAuthorities an {@link IList} of {@link X509Name}.
+
+
+ @return an array of certificate types
+ @see {@link ClientCertificateType}
+
+
+ @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ @return an {@link IList} of {@link X509Name}
+
+
+ Encode this {@link CertificateRequest} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateRequest} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateRequest} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatus} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatus} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatus} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatusRequest} object.
+ @throws IOException
+
+
+ RFC 6091
+
+
+ @param type
+ see {@link CertChainType} for valid constants.
+ @param urlAndHashList
+ a {@link IList} of {@link UrlAndHash}.
+
+
+ @return {@link CertChainType}
+
+
+ @return an {@link IList} of {@link UrlAndHash}
+
+
+ Encode this {@link CertificateUrl} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateUrl} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateUrl} object.
+ @throws IOException
+
+
+ draft-ietf-tls-chacha20-poly1305-04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 2246 A.5
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ @see org.bouncycastle.crypto.Digest#update(byte[], int, int)
+
+
+ @see org.bouncycastle.crypto.Digest#doFinal(byte[], int)
+
+
+ @see org.bouncycastle.crypto.Digest#reset()
+
+
+
+ RFC 2246 6.1
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept various standard DH groups with 'P' at least DefaultMinimumPrimeBits bits.
+
+
+ Accept various standard DH groups with 'P' at least the specified number of bits.
+
+
+ Accept a custom set of group parameters, subject to a minimum bitlength for 'P'.
+ An IList of acceptable DHParameters.
+ The minimum acceptable bitlength of the 'P' parameter.
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+
+ @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters}
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+ @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ Encode this {@link DigitallySigned} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link DigitallySigned} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link DigitallySigned} object.
+ @throws IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of a received record.
+ @return true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+ When a new epoch begins, sequence numbers begin again at 0
+
+
+ RFC 4492 5.4. (Errata ID: 2389)
+
+
+
+ RFC 4492 5.4
+
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+
+ RFC 4492 5.1.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this {@link HeartbeatExtension} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatExtension} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatExtension} object.
+ @throws IOException
+
+
+ Encode this {@link HeartbeatMessage} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatMessage} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatMessage} object.
+ @throws IOException
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ RFC 4492 5.1.1
+ The named curves defined here are those specified in SEC 2 [13]. Note that many of
+ these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00
+ through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the
+ client supports arbitrary prime and characteristic-2 curves, respectively (the curve
+ parameters must be encoded explicitly in ECParameters).
+
+
+
+ Encode this {@link NewSessionTicket} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link NewSessionTicket} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link NewSessionTicket} object.
+ @throws IOException
+
+
+ RFC 3546 3.6
+
+
+ @param responderIDList
+ an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP
+ responders. An empty list has the special meaning that the responders are
+ implicitly known to the server - e.g., by prior arrangement.
+ @param requestExtensions
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+ @return an {@link IList} of {@link ResponderID}
+
+
+ @return OCSP request extensions
+
+
+ Encode this {@link OcspStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link OcspStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return an {@link OcspStatusRequest} object.
+ @throws IOException
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.
+
+
+ RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the
+ record layer version number (TLSPlaintext.version) should contain when sending ClientHello
+ (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers
+ compliant with this specification MUST accept any value {03,XX} as the record layer version
+ number for ClientHello."
+
+
+ @return {@link ConnectionEnd}
+
+
+ @return {@link CipherSuite}
+
+
+ @return {@link CompressionMethod}
+
+
+ @return {@link PRFAlgorithm}
+
+
+ Encode this {@link ServerName} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerName} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerName} object.
+ @throws IOException
+
+
+ @param serverNameList an {@link IList} of {@link ServerName}.
+
+
+ @return an {@link IList} of {@link ServerName}.
+
+
+ Encode this {@link ServerNameList} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerNameList} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerNameList} object.
+ @throws IOException
+
+
+ Encode this {@link ServerSRPParams} to an {@link OutputStream}.
+
+ @param output
+ the {@link OutputStream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerSRPParams} from an {@link InputStream}.
+
+ @param input
+ the {@link InputStream} to parse from.
+ @return a {@link ServerSRPParams} object.
+ @throws IOException
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ @param hash {@link HashAlgorithm}
+ @param signature {@link SignatureAlgorithm}
+
+
+ @return {@link HashAlgorithm}
+
+
+ @return {@link SignatureAlgorithm}
+
+
+ Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link SignatureAndHashAlgorithm} object.
+ @throws IOException
+
+
+ An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities
+ to obscure the fact that there is no verifier for them.
+
+
+ Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3
+
+ @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in
+ @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3
+ @return an instance of {@link SimulatedTlsSRPIdentityManager}
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104)
+
+ The difference is that padding is concatentated versus XORed with the key
+
+ H(K + opad, H(K + ipad, text))
+
+
+ Base constructor for one of the standard digest algorithms that the byteLength of
+ the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1.
+
+ @param digest the digest.
+
+
+ Reset the mac generator.
+
+
+ RFC 4680
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by the protocol handler to report the server certificate.
+
+
+ This method is responsible for certificate verification and validation
+
+ The server received
+
+
+
+
+ Return client credentials in response to server's certificate request
+
+
+ A containing server certificate request details
+
+
+ A to be used for client authentication
+ (or null for no client authentication)
+
+
+
+
+
+ A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called at the start of a new TLS session, before any other methods.
+
+
+ A
+
+
+
+ Return the session this client wants to resume, if any.
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection,
+ or null to use a new session.
+
+
+
+
+ Return the to use for the TLSPlaintext.version field prior to
+ receiving the server version. NOTE: This method is not called for DTLS.
+
+
+ See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value
+ {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest
+ version number supported by the client, and the value of ClientHello.client_version. No
+ single value will guarantee interoperability with all old servers, but this is a complex
+ topic beyond the scope of this document."
+
+ The to use.
+
+
+
+ Get the list of cipher suites that this client supports.
+
+
+ An array of values, each specifying a supported cipher suite.
+
+
+
+
+ Get the list of compression methods that this client supports.
+
+
+ An array of values, each specifying a supported compression method.
+
+
+
+
+ Get the (optional) table of client extensions to be included in (extended) client hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+ An array of
+
+
+
+ Report the cipher suite that was selected by the server.
+
+
+ The protocol handler validates this value against the offered cipher suites
+
+
+
+ A
+
+
+
+
+ Report the compression method that was selected by the server.
+
+
+ The protocol handler validates this value against the offered compression methods
+
+
+
+ A
+
+
+
+
+ Report the extensions from an extended server hello.
+
+
+ Will only be called if we returned a non-null result from .
+
+
+ A (Int32 -> byte[])
+
+
+
+ A list of
+
+
+
+
+ Return an implementation of to negotiate the key exchange
+ part of the protocol.
+
+
+ A
+
+
+
+
+
+ Return an implementation of to handle authentication
+ part of the protocol.
+
+
+
+
+ A list of
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The
+ ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption
+ that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
+
+ The ticket
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the server
+ @param output The stream of data to the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsClient The {@link TlsClient} to use for the handshake.
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Used to get the resumable session, if any, used by this connection. Only available after the
+ handshake has successfully completed.
+
+ @return A {@link TlsSession} representing the resumable session used by this connection, or
+ null if no resumable session available.
+ @see TlsPeer#NotifyHandshakeComplete()
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS".
+
+ @param asciiLabel indicates which application will use the exported keys.
+ @param context_value allows the application using the exporter to mix its own data with the TLS PRF for
+ the exporter output.
+ @param length the number of bytes to generate
+ @return a pseudorandom bit string of 'length' bytes generated from the master_secret.
+
+
+ (D)TLS DH key exchange.
+
+
+ An interface for verifying that Diffie-Hellman parameters are acceptable.
+
+
+ Verify that the given DHParameters are acceptable.
+ The DHParameters to verify.
+ true if (and only if) the specified parameters are acceptable.
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+
+ Generate a new instance of an TlsMac.
+
+ @param context the TLS client context
+ @param digest The digest to use.
+ @param key A byte-array where the key for this MAC is located.
+ @param keyOff The number of bytes to skip, before the key starts in the buffer.
+ @param keyLen The length of the key.
+
+
+ @return the MAC write secret
+
+
+ @return The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+
+ @param type The message type of the message.
+ @param message A byte-buffer containing the message.
+ @param offset The number of bytes to skip, before the message starts.
+ @param length The length of the message.
+ @return A new byte-buffer containing the MAC value.
+
+
+
+ This exception will be thrown(only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+
+ A NULL CipherSuite, with optional MAC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specify the timeout, in milliseconds, to use for the complete handshake process.
+
+
+ Negative values are not allowed. A timeout of zero means an infinite timeout (i.e. the
+ handshake will never time out). NOTE: Currently only respected by DTLS protocols.
+
+
+
+
+ This implementation supports RFC 7627 and will always negotiate the extended_master_secret
+ extension where possible.
+
+
+ When connecting to a peer that does not offer/accept this extension, it is recommended to
+ abort the handshake. This option is provided for interoperability with legacy peers,
+ although some TLS features will be disabled in that case (see RFC 7627 5.4).
+
+
+ true if the handshake should be aborted when the peer does not negotiate the
+ extended_master_secret extension, or false to support legacy interoperability.
+
+
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the
+ ability to set gmt_unix_time as an option only, off by default."
+
+
+ true if the current time should be used in the gmt_unix_time field of
+ Random, or false if gmt_unix_time should contain a cryptographically
+ random value.
+
+
+
+
+ Report whether the server supports secure renegotiation
+
+
+ The protocol handler automatically processes the relevant extensions
+
+
+ A , true if the server supports secure renegotiation
+
+
+
+
+
+ Return an implementation of to handle record compression.
+
+ A
+
+
+
+
+ Return an implementation of to use for encryption/decryption.
+
+ A
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The Exception that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ This method is called, when a change cipher spec message is received.
+
+ @throws IOException If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network. The method will return immediately, if there is still some data
+ left in the buffer, or block until some application data has been read from the network.
+
+ @param buf The buffer where the data will be copied to.
+ @param offset The position where the data will be placed in the buffer.
+ @param len The maximum number of bytes to read.
+ @return The number of bytes read.
+ @throws IOException If something goes wrong during reading data.
+
+
+ Send some application data to the remote system.
+
+ The method will handle fragmentation internally.
+
+ @param buf The buffer with the data.
+ @param offset The position in the buffer where the data is placed.
+ @param len The length of the data.
+ @throws IOException If something goes wrong during sending.
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+ Equivalent to OfferInput(input, 0, input.length)
+ @see TlsProtocol#OfferInput(byte[], int, int)
+ @param input The input buffer to offer
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ This method will decrypt and process all records that are fully available.
+ If only part of a record is available, the buffer will be retained until the
+ remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data
+ can be obtained using {@link #readInput(byte[], int, int)}. If any records
+ containing protocol data were processed, a response may have been generated.
+ You should always check to see if there is any available output after calling
+ this method by calling {@link #getAvailableOutputBytes()}.
+ @param input The input buffer to offer
+ @param inputOff The offset within the input buffer that input begins
+ @param inputLen The number of bytes of input being offered
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)}
+ is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available application data
+
+
+ Retrieves received application data. Use {@link #getAvailableInputBytes()} to check
+ how much application data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the application data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been
+ processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to
+ transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting
+ to call it before the handshake is complete will result in an exception.
+ @param buffer The buffer containing application data to encrypt
+ @param offset The offset at which to begin reading data
+ @param length The number of bytes of data to read
+ @throws IOException If an error occurs encrypting the data, or the handshake is not complete
+
+
+ Gets the amount of encrypted data available to be sent. A call to
+ {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at
+ least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available encrypted data
+
+
+ Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check
+ how much encrypted data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the encrypted data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Closes this connection.
+
+ @throws IOException If something goes wrong during closing.
+
+
+ Make sure the InputStream 'buf' now empty. Fail otherwise.
+
+ @param buf The InputStream to check.
+ @throws IOException If 'buf' is not empty.
+
+
+ 'sender' only relevant to SSLv3
+
+
+ Both streams can be the same object
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS and SSLv3 RSA key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A (Int32 -> byte[]). Will never be null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the (optional) table of server extensions to be included in (extended) server hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+ A (). May be null.
+
+
+
+
+
+
+
+
+ This method will be called (only) if the server included an extension of type
+ "status_request" with empty "extension_data" in the extended server hello. See RFC 3546
+ 3.6. Certificate Status Request. If a non-null is returned, it
+ is sent to the client as a handshake message of type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+ Called by the protocol handler to report the client certificate, only if GetCertificateRequest
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See
+ RFC 5077 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket)
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsServer
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Check whether the given SRP group parameters are acceptable for use.
+
+ @param group the {@link SRP6GroupParameters} to check
+ @return true if (and only if) the specified group parameters are acceptable
+
+
+ Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC
+ 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose.
+
+ @param identity
+ the SRP identity sent by the connecting client
+ @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated'
+ parameters if the identity is not recognized. A null value is also allowed, but not
+ recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+ Some helper functions for MicroTLS.
+
+
+ Add a 'signature_algorithms' extension to existing extensions.
+
+ @param extensions A {@link Hashtable} to add the extension to.
+ @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ Get a 'signature_algorithms' extension from extensions.
+
+ @param extensions A {@link Hashtable} to get the extension from, if it is present.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null.
+ @throws IOException
+
+
+ Create a 'signature_algorithms' extension value.
+
+ @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @return A byte array suitable for use as an extension value.
+ @throws IOException
+
+
+ Read 'signature_algorithms' extension data.
+
+ @param extensionData The extension data.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ RFC 6066 5.
+
+
+ Encode this {@link UrlAndHash} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link UrlAndHash} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link UrlAndHash} object.
+ @throws IOException
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants.
+ @param mki valid lengths from 0 to 255.
+
+
+ @return see {@link SrtpProtectionProfile} for valid constants.
+
+
+ @return valid lengths from 0 to 255.
+
+
+ Create an AlgorithmIdentifier for the passed in encryption algorithm.
+
+ @param encryptionOID OID for the encryption algorithm
+ @param keySize key size in bits (-1 if unknown)
+ @param random SecureRandom to use for parameter generation.
+ @return a full AlgorithmIdentifier including parameters
+ @throws IllegalArgumentException if encryptionOID cannot be matched
+
+
+ A basic alphabet mapper that just creates a mapper based on the
+ passed in array of characters.
+
+
+ Base constructor.
+
+ @param alphabet a string of characters making up the alphabet.
+
+
+ Base constructor.
+
+ @param alphabet an array of characters making up the alphabet.
+
+
+ Create a key generator for the passed in Object Identifier.
+
+ @param algorithm the Object Identifier indicating the algorithn the generator is for.
+ @param random a source of random to initialise the generator with.
+ @return an initialised CipherKeyGenerator.
+ @throws IllegalArgumentException if the algorithm cannot be identified.
+
+
+ Use KeyTransRecipientInfoGenerator
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+
From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+
m, x, y should have length n
+
a should have length (n + 1)
+
b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(boolean)}
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly
+ faster) implementations, and for very small scalars. CAUTION: This implementation is NOT
+ constant-time in any way. It is only intended to be used for diagnostics.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Compute a PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param callback
+ Called to calculate the PreCompInfo.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Create a cache-safe lookup table for the specified sequence of points. All the points MUST
+ belong to this ECCurve instance, and MUST already be normalized.
+
+
+ Sets the default ECMultiplier, unless already set.
+
+ We avoid locking for performance reasons, so there is no uniqueness guarantee.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the quadratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Joye's double-add algorithm.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Lookup table for the precomputed ECPoints used for a fixed point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using
+ mixed coordinates.
+
+
+ By default, addition will be done in Jacobian coordinates, and doubling will be done in
+ Modified Jacobian coordinates (independent of the original coordinate system of each point).
+
+
+ Montgomery ladder.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right).
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left).
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+ 'Zeroless' Signed Digit Left-to-Right.
+
+
+ 'Zeroless' Signed Digit Right-to-Left.
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+ {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced
+ Miller-Rabin Probabilistic Primality Test}
+
+
+ Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine}
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine
+
+ Construct a provable prime number using a hash function.
+
+ @param hash
+ the {@link Digest} instance to use (as "Hash()"). Cannot be null.
+ @param length
+ the length (in bits) of the prime to be generated. Must be at least 2.
+ @param inputSeed
+ the seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ @return an {@link STOutput} instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an
+ alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more
+ information about a composite candidate, which may be useful when generating or validating
+ RSA moduli.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return an {@link MROutput} instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+
+ @param candidate
+ the {@link BigInteger} instance to test for division by small factors.
+
+ @return true if the candidate is found to have any small factors,
+ false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return false if any witness to compositeness is found amongst the chosen bases
+ (so candidate is definitely NOT prime), or else true
+ (indicating primality with some probability dependent on the number of iterations
+ that were performed).
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param baseValue
+ the base value to use for this iteration.
+ @return false if the specified base is a witness to compositeness (so
+ candidate is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ wrapper for the RevokedInfo object
+
+
+ return the revocation reason. Note: this field is optional, test for it
+ with hasRevocationReason() first.
+ @exception InvalidOperationException if a reason is asked for and none is avaliable
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+
+ To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed)
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Ignored.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ Returns X509Extensions if the Extensions Request attribute can be found and returns the extensions block.
+
+ X509Extensions block or null if one cannot be found.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ A holding class for a PKCS#8 encrypted private key info object that allows for its decryption.
+
+
+
+
+ Base constructor from a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A PKCS#8 EncryptedPrivateKeyInfo object.
+
+
+
+ Base constructor from a BER encoding of a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A BER encoding of a PKCS#8 EncryptedPrivateKeyInfo objects.
+
+
+
+ Returns the underlying ASN.1 structure inside this object.
+
+ Return the EncryptedPrivateKeyInfo structure in this object.
+
+
+
+ Returns a copy of the encrypted data in this structure.
+
+ Return a copy of the encrypted data in this object.
+
+
+
+ Return a binary ASN.1 encoding of the EncryptedPrivateKeyInfo structure in this object.
+
+ A byte array containing the encoded object.
+
+
+
+ Get a decryptor from the passed in provider and decrypt the encrypted private key info, returning the result.
+
+ A provider to query for decryptors for the object.
+ The decrypted private key info structure.
+
+
+
+ Create the encrypted private key info using the passed in encryptor.
+
+ The encryptor to use.
+ An encrypted private key info containing the original private key info.
+
+
+
+ Base exception for PKCS related issues.
+
+
+
+
+ Base exception for parsing related issues in the PKCS namespace.
+
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+
+ @param privateKey the key to be encoded into the info object.
+ @param attributes the set of attributes to be included.
+ @return the appropriate PrivateKeyInfo
+ @throws java.io.IOException on an error encoding the key
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ @param certs
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+
+ Summary description for PkixCertPathBuilderException.
+
+
+
+
+ Summary description for PkixCertPathBuilderResult.
+
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathCheckermust support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the
+ certification path that was being validated when the exception was thrown
+ and the index of the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #getCertPath getCertPath} and
+ {@link #getIndex getIndex} methods to retrieve this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the given detail
+ message. A detail message is a String that describes this
+ particular exception.
+
+ the detail message
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message and cause.
+
+ the detail message
+ the cause (which is saved for later retrieval by the
+ {@link #getCause getCause()} method). (A null
+ value is permitted, and indicates that the cause is
+ nonexistent or unknown.)
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the certification path that was in the process of being
+ validated when the error was encountered
+ the index of the certificate in the certification path that *
+
+
+
+ Returns the detail message for this CertPathValidatorException.
+
+ the detail message, or null if neither the message nor cause were specified
+
+
+ Returns the certification path that was being validated when the
+ exception was thrown.
+
+ @return the CertPath that was being validated when the
+ exception was thrown (or null if not specified)
+
+
+ Returns the index of the certificate in the certification path that
+ caused the exception to be thrown. Note that the list of certificates in
+ a CertPath is zero based. If no index has been set, -1 is
+ returned.
+
+ @return the index that has been set, or -1 if none has been set
+
+
+
+ Summary description for PkixCertPathValidatorResult.
+
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+
+ Return a Collection of all certificates or attribute certificates found
+ in the X509Store's that are matching the certSelect criteriums.
+
+ a {@link Selector} object that will be used to select
+ the certificates
+ a List containing only X509Store objects. These
+ are used to search for certificates.
+ a Collection of all found or
+ objects.
+ May be empty but never null.
+
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extension object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @param ip The IP address.
+ @return true if constrained, false
+ otherwise.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ The IList is cloned.
+
+
+ @param stores A list of stores to use.
+ @see #getStores
+ @throws ClassCastException if an element of stores is not
+ a {@link Store}.
+
+
+ Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ This method should be used to add local stores, like collection based
+ X.509 stores, if available. Local stores should be considered first,
+ before trying to use additional (remote) locations, because they do not
+ need possible additional network traffic.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores
+
+
+ Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates,
+ attribute certificates or cross certificates.
+
+ You should not use this method. This method is used for adding additional
+ X.509 stores, which are used to add (remote) locations, e.g. LDAP, found
+ during X.509 object processing, e.g. in certificates or CRLs. This method
+ is used in PKIX certification path processing.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores()
+
+
+ Returns an IList of additional Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of additional Bouncy Castle
+ Stores. Never null.
+
+ @see #addAddionalStore(Store)
+
+
+ Returns an IList of Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of Bouncy Castle
+ Stores. Never null.
+
+ @see #setStores(IList)
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+
no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+
support classes cannot be created
+
no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Base class for a TLS client.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of (or null).
+
+
+ The default implementation calls this to determine which named
+ groups to include in the supported_groups extension for the ClientHello.
+ The named group roles for which there should
+ be at least one supported group. By default this is inferred from the offered cipher suites and signature
+ algorithms.
+ an of . See for group constants.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for supporting a TLS key exchange implementation.
+
+
+ Base class for supporting a TLS key exchange factory implementation.
+
+
+ Base class for a TLS client or server.
+
+
+ Get the values that are supported by this peer.
+
+ WARNING: Mixing DTLS and TLS versions in the returned array is currently NOT supported. Use a separate
+ (sub-)class for each case.
+
+ an array of supported values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for a TLS server.
+
+
+
+
+
+ RFC 5246 7.2.
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection.
+
+ Note that as of TLS 1.1, failure to properly close a connection no longer requires that a session not be
+ resumed. This is a change from TLS 1.0 ("The session becomes unresumable if any connection is terminated
+ without proper close_notify messages with level equal to warning.") to conform with widespread
+ implementation practice.
+
+
+
+ An inappropriate message was received.
+
+ This alert is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ This alert is returned if a record is received with an incorrect MAC.
+
+ This alert also MUST be returned if an alert is sent because a TLSCiphertext decrypted in an invalid way:
+ either it wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks against the CBC
+ mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes.
+
+ This message is always fatal and should never be observed in communication between proper implementations
+ (except when messages were corrupted in the network).
+
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length).
+
+ This message is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to negotiate
+ an acceptable set of security parameters given the options available.
+
+ This is a fatal error.
+
+
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it unacceptable.
+
+
+
+ A field in the handshake was out of range or inconsistent with other fields.
+
+ This message is always fatal.
+
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted CA.
+
+ This message is always fatal.
+
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not to
+ proceed with negotiation.
+
+ This message is always fatal.
+
+
+
+ A message could not be decoded because some field was out of the specified range or the length of
+ the message was incorrect.
+
+ This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a signature
+ or validate a Finished message.
+
+ This message is always fatal.
+
+
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+
+
+ (For example, old protocol versions might be avoided for security reasons.) This message is always fatal.
+
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client.
+
+ This message is always fatal.
+
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue.
+
+ This message is always fatal.
+
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure.
+
+ If the user cancels an operation after the handshake is complete, just closing the connection by sending a
+ close_notify is more appropriate. This alert should be followed by a close_notify. This message is
+ generally a warning.
+
+
+
+ Sent by the client in response to a hello request or by the server in response to a client hello
+ after initial handshaking.
+
+ Either of these would normally lead to renegotiation; when that is not appropriate, the recipient should
+ respond with this alert. At that point, the original requester can decide whether to proceed with the
+ connection. One case where this would be appropriate is where a server has spawned a process to satisfy a
+ request; the process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This message is always a
+ warning.
+
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did not
+ put in the corresponding client hello.
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL supplied
+ by the client(see Section 3.3).
+
+ This message MAY be fatal - for example if client authentication is required by the server for the
+ handshake to continue and the server is unable to retrieve the certificate chain, it may send a fatal
+ alert.
+
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not recognize
+ the server name.
+
+ This message MAY be fatal.
+
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see Section 3.6
+ ).
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash.
+
+ This message is always fatal.
+
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an "unknown_psk_identity"
+ alert message.
+
+
+ In the event that the server supports no protocols that the client advertises, then the server
+ SHALL respond with a fatal "no_application_protocol" alert.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version, the server MUST
+ respond with a fatal inappropriate_fallback alert[..].
+
+
+ Sent by endpoints that receive a handshake message not containing an extension that is mandatory
+ to send for the offered TLS version or other negotiated parameters.
+
+
+ Sent by servers when a client certificate is desired but none was provided by the client.
+
+
+
+ RFC 5246 7.2
+
+
+ A basic PSK Identity holder.
+
+
+ A basic SRP Identity holder.
+
+
+ A queue for bytes. This file could be more optimized.
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided .
+ The to copy the bytes to.
+ How many bytes to copy.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a over some bytes at the beginning of the data.
+
+ How many bytes will be readable.
+ A over the data.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Remove data from the buffer.
+ The buffer where the removed data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ OutputStream based on a ByteQueue implementation.
+
+
+ Implementation of the RFC 3546 3.3. CertChainType.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+
+
+
+ an array of representing a certificate chain.
+
+
+ true if this certificate chain contains no certificates, or false otherwise.
+
+
+
+ Encode this to a , and optionally calculate the
+ "end point hash" (per RFC 5929's tls-server-end-point binding).
+ the of the current connection.
+ the to encode to.
+ the to write the "end point hash" to (or null).
+
+
+
+
+ Parse a from a .
+ the to apply during parsing.
+ the of the current connection.
+ the to parse from.
+ the to write the "end point hash" to (or null).
+
+ a object.
+
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+
+
+
+
+
+
+
+
+ see for valid constants.
+
+ an of .
+
+
+
+
+
+ an array of certificate types
+
+
+
+ an of (or null before TLS 1.2).
+
+
+
+ an optional of . May be non-null from
+ TLS 1.3 onwards.
+
+
+ an of .
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ an of (possibly null) .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+ Implementation of the RFC 3546 3.6. CertificateStatusRequest.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Implementation of the RFC 6961 2.2. CertificateStatusRequestItemV2.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6091
+
+
+ RFC 3546 3.3
+
+
+ see for valid constants.
+ an of .
+
+
+
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 5056
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g.serialization).
+
+
+
+ RFC 2246 A.5
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ for DTLS this should be non-null; the input is copied to this
+ , minus the cookie field.
+ a object.
+
+
+
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ RFC 2246 6.1
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values(e.g.serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+ Carrier class for Diffie-Hellman group parameters.
+
+
+ Base constructor with the prime factor of (p - 1).
+ the prime modulus.
+ specifies the prime factor of (p - 1).
+ the base generator.
+
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ Base class for a TlsCrypto implementation that provides some needed methods from elsewhere in the impl
+ package.
+
+
+ Base class for a TlsSecret implementation which captures common code and fields.
+
+
+ Base constructor.
+ the byte[] making up the secret value.
+
+
+
+
+
+ Credentialed class generating agreed secrets from a peer's public key for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class decrypting RSA encrypted secrets sent from a peer for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class for generating signatures based on the use of primitives from the BC light-weight API.
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104).
+
+ The difference is that padding is concatenated versus XORed with the key, e.g:
+ H(K + opad, H(K + ipad, text))
+
+
+
+ Base constructor for one of the standard digest algorithms for which the byteLength is known.
+
+
+ Behaviour is undefined for digests other than MD5 or SHA1.
+
+ the digest.
+
+
+ Reset the mac generator.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class for providing cryptographic services for TLS based on implementations in the BC light-weight API.
+
+ This class provides default implementations for everything. If you need to customise it, extend the class
+ and override the appropriate methods.
+
+
+
+ Support class for ephemeral Diffie-Hellman using the BC light-weight library.
+
+
+
+
+
+
+
+
+
+
+
+ BC light-weight support class for Diffie-Hellman key pair generation and key agreement over a
+ specified Diffie-Hellman configuration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implementation class for generation of the raw DSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw DSA signature type using the BC light-weight API.
+
+
+
+ BC light-weight base class for the signers implementing the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ BC light-weight base class for the verifiers supporting the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ Support class for ephemeral Elliptic Curve Diffie-Hellman using the BC light-weight library.
+
+
+ EC domain class for generating key pairs and performing key agreement.
+
+
+ Implementation class for generation of ECDSA signatures in TLS 1.3+ using the BC light-weight API.
+
+
+
+ Implementation class for verification of ECDSA signatures in TLS 1.3+ using the BC light-weight API.
+
+
+
+ Implementation class for generation of the raw ECDSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw ECDSA signature type using the BC light-weight
+ API.
+
+
+ Operator supporting the generation of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the verification of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the generation of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ Operator supporting the verification of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ BC light-weight support class for handling TLS secrets and deriving key material and other secrets
+ from them.
+
+
+ Support class for X25519 using the BC light-weight library.
+
+
+ Support class for X448 using the BC light-weight library.
+
+
+ A generic TLS 1.2 AEAD cipher.
+
+
+
+
+
+ Base interface for services supporting AEAD encryption/decryption.
+
+
+ Set the key to be used by the AEAD cipher implementation supporting this service.
+ array holding the AEAD cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for the AEAD operator.
+ the nonce.
+ MAC size in bytes.
+ any additional data to be included in the MAC calculation.
+ if the parameters are inappropriate.
+
+
+ Return the maximum size of the output for input of inputLength bytes.
+ the length (in bytes) of the proposed input.
+ the maximum size of the output.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ A generic TLS 1.0-1.2 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+ Interface for block cipher services.
+
+
+ Set the key to be used by the block cipher implementation supporting this service.
+ array holding the block cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for operator.
+ array holding the initialization vector (IV).
+ offset into the array the IV starts at.
+ length of the IV in the array.
+ if the parameters are inappropriate.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ Return the blocksize (in bytes) of the underlying block cipher.
+ the cipher's blocksize.
+
+
+ Useful utility methods.
+
+
+ The NULL cipher.
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+ Generate a new instance of a TlsMac.
+ the TLS client context specific crypto parameters.
+ The MAC to use.
+
+
+ Base interface for a generic TLS MAC implementation for use with a bulk cipher.
+
+
+ Return the output length (in bytes) of this MAC.
+ The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ A new byte array containing the MAC value.
+
+
+ Constant time calculation of the MAC for some given data with a given expected length.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ The expected length of the full message.
+ Random data for padding out the MAC calculation if required.
+ A new byte array containing the MAC value.
+
+
+ Carrier class for SRP-6 group parameters.
+
+
+ Base constructor.
+ the n value.
+ the g value.
+
+
+ A selection of standard groups for SRP-6.
+
+
+ Base interface for ephemeral key agreement calculator.
+
+
+ Generate an ephemeral key pair, returning the encoding of the public key.
+ a byte encoding of the public key.
+
+
+
+ Pass in the public key for the peer to the agreement calculator.
+ a byte encoding of the peer public key.
+
+
+
+ Calculate the agreed secret based on the calculator's current state.
+ the calculated secret.
+
+
+
+ Interface providing the functional representation of a single X.509 certificate.
+
+
+ Return an encryptor based on the public key in this certificate.
+
+ a based on this certificate's public key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the OID of this certificate's 'signatureAlgorithm', as a string.
+
+
+
+
+
+
+
+
+
+
+ true if (and only if) this certificate can be used to verify the given signature algorithm.
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS bulk cipher.
+
+
+ Return the maximum input size for a ciphertext given a maximum output size for the plaintext of
+ plaintextLimit bytes.
+ the maximum output size for the plaintext.
+ the maximum input size of the ciphertext for plaintextlimit bytes of output.
+
+
+ Return the maximum output size for a ciphertext given an actual input plaintext size of
+ plaintextLength bytes and a maximum input plaintext size of plaintextLimit bytes.
+ the actual input size for the plaintext.
+ the maximum input size for the plaintext.
+ the maximum output size of the ciphertext for plaintextlimit bytes of input.
+
+
+ Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.
+ the maximum number of bytes of ciphertext.
+ the maximum size of the plaintext for ciphertextlimit bytes of input.
+
+
+ Encode the passed in plaintext using the current bulk cipher.
+ sequence number of the message represented by plaintext.
+ content type of the message represented by plaintext.
+ used for the record.
+ extra bytes to allocate at start of returned byte array.
+ array holding input plaintext to the cipher.
+ offset into input array the plaintext starts at.
+ length of the plaintext in the array.
+ A containing the result of encoding (after 'headerAllocation' unused
+ bytes).
+
+
+
+ Decode the passed in ciphertext using the current bulk cipher.
+ sequence number of the message represented by ciphertext.
+ content type used in the record for this message.
+ used for the record.
+ array holding input ciphertext to the cipher.
+ offset into input array the ciphertext starts at.
+ length of the ciphertext in the array.
+ A containing the result of decoding.
+
+
+
+
+
+
+
+
+
+ Service and object creation interface for the primitive types and services that are associated with
+ cryptography in the API.
+
+
+ Return true if this TlsCrypto can perform raw signatures and verifications for all supported
+ algorithms.
+ true if this instance can perform raw signatures and verifications for all supported algorithms,
+ false otherwise.
+
+
+ Return true if this TlsCrypto can support DH key agreement.
+ true if this instance can support DH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support ECDH key agreement.
+ true if this instance can support ECDH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in block/stream encryption algorithm.
+
+ the algorithm of interest.
+ true if encryptionAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in hash algorithm.
+ the algorithm of interest.
+ true if cryptoHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ the algorithm of interest.
+ true if cryptoSignatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in MAC algorithm.
+ the algorithm of interest.
+ true if macAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto supports the passed in named group
+ value.
+ true if this instance supports the passed in named group value.
+
+
+
+ Return true if this TlsCrypto can support RSA encryption/decryption.
+ true if this instance can support RSA encryption/decryption, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ true if signatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm.
+ the algorithm of interest.
+ true if sigAndHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature scheme.
+ the scheme of interest.
+ true if signatureScheme is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support SRP authentication.
+ true if this instance can support SRP authentication, false otherwise.
+
+
+ Create a TlsSecret object based on provided data.
+ the data to base the TlsSecret on.
+ a TlsSecret based on the provided data.
+
+
+ Create a TlsSecret object containing a randomly-generated RSA PreMasterSecret
+ the client version to place in the first 2 bytes
+ a TlsSecret containing the PreMasterSecret.
+
+
+ Return the primary (safest) SecureRandom for this crypto.
+ a SecureRandom suitable for key generation.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of an X.509 certificate.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a cipher for the specified encryption and MAC algorithms.
+
+ See enumeration classes , for appropriate
+ argument values.
+
+ context specific parameters.
+ the encryption algorithm to be employed by the cipher.
+ the MAC algorithm to be employed by the cipher.
+ a implementing the encryption and MAC algorithms.
+
+
+
+ Create a domain object supporting the domain parameters described in dhConfig.
+ the config describing the DH parameters to use.
+ a TlsDHDomain supporting the parameters in dhConfig.
+
+
+ Create a domain object supporting the domain parameters described in ecConfig.
+ the config describing the EC parameters to use.
+ a TlsECDomain supporting the parameters in ecConfig.
+
+
+ Adopt the passed in secret, creating a new copy of it.
+ the secret to make a copy of.
+ a TlsSecret based on the original secret.
+
+
+ Create a suitable hash for the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the hash needs to implement.
+ a .
+
+
+ Create a suitable HMAC for the MAC algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the MAC algorithm the HMAC needs to match.
+ a .
+
+
+ Create a suitable HMAC using the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the HMAC should use.
+ a .
+
+
+ Create a nonce generator.
+
+ Each call should construct a new generator, and the generator should be returned from this call only after
+ automatically seeding from this 's entropy source, and from the provided additional
+ seed material. The output of each returned generator must be completely independent of the others.
+
+ context-specific seed material
+ a .
+
+
+ Create an SRP-6 client.
+ client config.
+ an initialised SRP6 client object.
+
+
+ Create an SRP-6 server.
+ server config.
+ the SRP6 verifier value.
+ an initialised SRP6 server object.
+
+
+ Create an SRP-6 verifier generator.
+ generator config.
+ an initialized SRP6 verifier generator.
+
+
+ Setup an initial "secret" for a chain of HKDF calls (RFC 5869), containing a string of HashLen
+ zeroes.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+
+
+ Basic exception class for crypto services to pass back a cause.
+
+
+ Carrier class for context-related parameters needed for creating secrets and ciphers.
+
+
+ Base constructor.
+ the context for this parameters object.
+
+
+
+
+
+ Basic config for Diffie-Hellman.
+
+
+ Domain interface to service factory for creating Diffie-Hellman operators.
+
+
+ Return an agreement operator suitable for ephemeral Diffie-Hellman.
+ a key agreement operator.
+
+
+ Carrier class for Elliptic Curve parameter configuration.
+
+
+ Return the group used.
+ the named group used.
+
+
+ Domain interface to service factory for creating Elliptic-Curve (EC) based operators.
+
+
+ Return an agreement operator suitable for ephemeral EC Diffie-Hellman.
+ a key agreement operator.
+
+
+ Base interface for an encryptor.
+
+
+ Encrypt data from the passed in input array.
+ byte array containing the input data.
+ offset into input where the data starts.
+ the length of the data to encrypt.
+ the encrypted data.
+
+
+
+ Interface for message digest, or hash, services.
+
+
+ Update the hash with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated hash for any input passed in.
+ the hash value.
+
+
+ Return a clone of this hash object representing its current state.
+ a clone of the current hash.
+
+
+ Reset the hash underlying this service.
+
+
+ Interface for MAC services based on HMAC.
+
+
+ Return the internal block size for the message digest underlying this HMAC service.
+ the internal block size for the digest (in bytes).
+
+
+ Interface for MAC services.
+
+
+ Set the key to be used by the MAC implementation supporting this service.
+ array holding the MAC key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+ Update the MAC with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated MAC for any input passed in.
+ the MAC value.
+
+
+ Write the calculated MAC to an output buffer.
+ output array to write the MAC to.
+ offset into the output array to write the MAC to.
+
+
+ Return the length of the MAC generated by this service.
+ the MAC length.
+
+
+ Reset the MAC underlying this service.
+
+
+ Generate a nonce byte[] string.
+ the length, in bytes, of the nonce to generate.
+ the nonce value.
+
+
+ The cipher for TLS_NULL_WITH_NULL_NULL.
+
+
+ Interface supporting the generation of key material and other SSL/TLS secret values from PRFs.
+
+
+
+ Calculate an HMAC with this secret's data as the key.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ array containing the input data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return a new secret based on applying a PRF to this one.
+ PRF algorithm to use.
+ the label details.
+ the seed details.
+ the size (in bytes) of the secret to generate.
+ the new secret.
+
+
+ Destroy the internal state of the secret.
+
+ After this call, any attempt to use the will result in an
+ being thrown.
+
+
+
+ Return an encrypted copy of the data this secret is based on.
+ the encryptor to use for protecting the internal data.
+ an encrypted copy of this secret's internal data.
+
+
+
+ Return the internal data from this secret.
+
+ The does not keep a copy of the data. After this call, any attempt to use the
+ will result in an being thrown.
+
+ the secret's internal data.
+
+
+ RFC 5869 HKDF-Expand function, with this secret's data as the pseudo-random key ('prk').
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ optional context and application specific information (can be zero-length).
+ length of output keying material in octets.
+ output keying material (of 'length' octets).
+
+
+ RFC 5869 HKDF-Extract function, with this secret's data as the 'salt'.
+
+ The does not keep a copy of the data. After this call, any attempt to use
+ the will result in an being thrown.
+
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ input keying material.
+ a pseudo-random key (of HashLen octets).
+
+
+ Base interface for a TLS signer that works on raw message digests.
+
+
+ Generate an encoded signature based on the passed in hash.
+ the signature algorithm to use.
+ the hash calculated for the signature.
+ an encoded signature.
+ in case of an exception processing the hash.
+
+
+
+
+
+ Basic interface for an SRP-6 client implementation.
+
+
+ Generates the secret S given the server's credentials
+ The server's credentials
+ Client's verification message for the server
+ If server's credentials are invalid
+
+
+ Generates client's credentials given the client's salt, identity and password
+ The salt used in the client's verifier.
+ The user's identity (eg. username)
+ The user's password
+ Client's public value to send to server
+
+
+ Basic interface for an SRP-6 server implementation.
+
+
+ Generates the server's credentials that are to be sent to the client.
+ The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+
+ The client's credentials.
+ A shared secret .
+ If client's credentials are invalid.
+
+
+ Base interface for a generator for SRP-6 verifiers.
+
+
+ Creates a new SRP-6 verifier value.
+ The salt to use, generally should be large and random
+ The user's identifying information (eg. username)
+ The user's password
+ A new verifier for use in future SRP authentication
+
+
+ Basic config for SRP.
+
+
+ Return the (N, g) values used in SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+ Set the (N, g) values used for SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS verifier that works with signatures and either raw message digests, or entire
+ messages.
+
+
+
+
+
+ Return true if the passed in signature and hash represent a real signature.
+ the signature object containing the signature to be verified.
+ the hash calculated for the signature.
+ true if signature verifies, false otherwise.
+ in case of an exception verifying signature.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object sending and receiving DTLS data.
+
+
+ Container class for generating signatures that carries the signature type, parameters, public key
+ certificate and public key's associated signer object.
+
+
+ Accept named groups and various standard DH groups with 'P' at least
+ bits.
+
+
+ Accept named groups and various standard DH groups with 'P' at least the specified number of bits.
+
+ the minimum bitlength of 'P'.
+
+
+ Accept named groups and a custom set of group parameters, subject to a minimum bitlength for 'P'.
+
+ a list of acceptable s.
+ the minimum bitlength of 'P'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+ an of acceptable .
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+
+
+
+
+
+
+ a (or null before TLS 1.2).
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ the 48-bit DTLSPlainText.sequence_number field of a received record.
+ true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4492 5.4
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+ RFC 4492 5.1.2
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6520 3.
+
+
+ RFC 6066
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 8446 4.6.3
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7919
+
+
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 3546 3.6
+
+
+ an of , specifying the list of
+ trusted OCSP responders. An empty list has the special meaning that the responders are implicitly known to
+ the server - e.g., by prior arrangement.
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+
+ an of .
+
+
+ OCSP request extensions.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse an from a .
+ the to parse from.
+ an object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7301 Represents a protocol name for use with ALPN.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 3. Server Name Indication
+
+ Current implementation uses this guidance: "For backward compatibility, all future data structures associated
+ with new NameTypes MUST begin with a 16-bit length field. TLS MAY treat provided server names as opaque data
+ and pass the names and types to the application.". RFC 6066 specifies ASCII encoding for host_name (possibly
+ using A-labels for IDNs), but note that the previous version (RFC 4366) specified UTF-8 encoding (see RFC 6066
+ Appendix A). For maximum compatibility, it is recommended that client code tolerate receiving UTF-8 from the
+ peer, but only generate ASCII itself.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ an of .
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to .
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ For TLS 1.3+ usage, some signature schemes are constrained to use a particular
+ ({@link NamedGroup}. Not relevant for TLS 1.2 and below.
+
+
+ An implementation of that simulates the existence of "unknown"
+ identities to obscure the fact that there is no verifier for them.
+
+
+ Create a that implements the algorithm from RFC 5054
+ 2.5.1.3.
+
+ the defining the group that SRP is operating in.
+ the secret "seed key" referred to in RFC 5054 2.5.1.3.
+ an instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4680
+
+
+ Base interface to provide TLS authentication credentials.
+
+
+ Called by the protocol handler to report the server certificate.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the server certificate received.
+
+
+
+ Return client credentials in response to server's certificate request.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated and the details of
+ the .
+
+ details of the certificate request.
+ a object or null for no client authentication.
+
+
+
+ Return the session this client wants to resume, if any.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection, or
+ null to use a new session.
+
+
+
+ Return the external PSKs to offer in the ClientHello.
+ This will only be called when TLS 1.3 or higher is amongst the offered protocol versions.
+ an of instances, or null if none should be
+ offered.
+
+
+ (Int32 -> byte[])
+
+
+
+ If this client is offering TLS 1.3 or higher, this method may be called to determine for which
+ groups a key share should be included in the initial ClientHello.
+
+ Groups that were not included in the supported_groups extension (by will
+ be ignored. The protocol will then add a suitable key_share extension to the ClientHello extensions.
+
+ an of named group values, possibly empty or null.
+
+
+
+
+
+
+ Notifies the client of the session that will be offered in ClientHello for resumption, if any.
+
+
+ This will be either the session returned from {@link #getSessionToResume()} or null if that session was
+ unusable. NOTE: the actual negotiated session_id is notified by .
+
+ The representing the resumable session to be offered for
+ this connection, or null if there is none.
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+
+
+
+
+
+
+ The protocol implementation validates that any server extensions received correspond to client
+ extensions sent.
+
+ If further processing of the server extensions is needed, it can be done in this callback. NOTE: This is
+ not called for session resumption handshakes.
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The ticket is
+ opaque to the client and clients MUST NOT examine the ticket under the assumption that it complies with e.g.
+ RFC 5077 4. "Recommended Ticket Construction".
+
+ The ticket.
+
+
+
+ Marker interface to distinguish a TLS client context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS context implementation.
+
+
+ Return true if this context is for a server, false otherwise.
+ true for a server based context, false for a client based one.
+
+
+ Used to get the resumable session, if any, used by this connection.
+
+ Only available after the handshake has successfully completed.
+
+ A representing the resumable session used by this connection, or null if
+ no resumable session available.
+
+
+
+ Used to get the session information for this connection.
+
+ Only available after the handshake has successfully completed. Use
+ to find out if the session is resumable.
+
+ A representing the session used by this connection.
+
+
+
+ Export the value of the specified channel binding.
+
+ Only available after the handshake has successfully completed.
+
+ A constant specifying the channel binding to
+ export.
+ A copy of the channel binding data as a byte[], or null if the binding could not be
+ determined.
+
+
+ Export (early data) keying material according to RFC 5705: "Keying Material Exporters for TLS", as
+ updated for TLS 1.3 (RFC 8446).
+
+ NOTE: for use in settings where an exporter is needed for 0-RTT data.
+
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS", as updated for
+ TLS 1.3 (RFC 8446) when negotiated.
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Support interface for generating a secret based on the credentials sent by a TLS peer.
+
+
+ Calculate an agreed secret based on our credentials and the public key credentials of our peer.
+
+ public key certificate of our TLS peer.
+ the agreed secret.
+ in case of an exception on generation of the secret.
+
+
+ Base interface for a class that decrypts TLS secrets.
+
+
+ Decrypt the passed in cipher text using the parameters available.
+ the parameters to use for the decryption.
+ the cipher text containing the secret.
+ a TLS secret.
+ on a parsing or decryption error.
+
+
+ Support interface for generating a signature based on our private credentials.
+
+
+ Generate a signature against the passed in hash.
+ a message digest calculated across the message the signature is to apply to.
+ an encoded signature.
+ if the hash cannot be processed, or there is an issue with the private
+ credentials.
+
+
+ Return the algorithm IDs for the signature algorithm and the associated hash it uses.
+ the full algorithm details for the signature.
+
+
+
+
+
+ Base interface for interfaces/classes carrying TLS credentials.
+
+
+ Return the certificate structure representing our identity.
+ our certificate structure.
+
+
+ (D)TLS DH_anon key exchange.
+
+
+ Interface for verifying explicit Diffie-Hellman group parameters.
+
+
+ Check whether the given DH group is acceptable for use.
+ the to check.
+ true if (and only if) the specified group is acceptable.
+
+
+ (D)TLS DH key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (D)TLS ECDH_anon key exchange (see RFC 4492).
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+ (Int32 -> byte[])
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object that can calculate a handshake hash.
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface for a key exchange factory offering a variety of specific algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This exception will be thrown (only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+ Object Identifiers associated with TLS extensions.
+
+
+ RFC 7633
+
+
+ Base interface for a (D)TLS endpoint.
+
+
+
+
+
+ Notifies the peer that a new handshake is about to begin.
+
+
+
+ Specify the timeout, in milliseconds, to use for the complete handshake process.
+
+ NOTE: Currently only respected by DTLS protocols. Negative values are not allowed. A timeout of zero means
+ an infinite timeout (i.e.the handshake will never time out).
+
+ the handshake timeout, in milliseconds.
+
+
+
+ This option is provided as a last resort for interoperability with TLS peers that fail to correctly send a
+ close_notify alert at end of stream. Implementations SHOULD return true; caution is advised if returning
+ false without a full understanding of the implications.
+
+
+
+ This implementation supports RFC 7627 and will always negotiate the extended_master_secret
+ extension where possible. When connecting to a peer that does not offer/accept this extension, it is
+ recommended to abort the handshake.This option is provided for interoperability with legacy peers, although
+ some TLS features will be disabled in that case (see RFC 7627 5.4).
+
+ true if the handshake should be aborted when the peer does not negotiate the
+ extended_master_secret extension, or false to support legacy interoperability.
+
+
+ See RFC 5246 6.2.3.2. Controls whether block cipher encryption may randomly add extra padding
+ beyond the minimum.
+
+ Note that in configurations where this is known to be potential security risk this setting will be ignored
+ (and extended padding disabled). Extra padding is always supported when decrypting received records.
+
+ true if random extra padding should be added during block cipher encryption, or
+ false to always use the minimum amount of required padding.
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the ability to set
+ gmt_unix_time as an option only, off by default.".
+
+ NOTE: For a server that has negotiated TLS 1.3 (or later), or a client that has offered TLS 1.3 (or later),
+ this is not called and gmt_unix_time is not used.
+
+ true if the current time should be used in the gmt_unix_time field of Random, or
+ false if gmt_unix_time should contain a cryptographically random value.
+
+
+ RFC 5746 3.4/3.6. In case this is false, peers may want to terminate the handshake instead of
+ continuing; see Section 4.1/4.3 for discussion.
+
+ NOTE: TLS 1.3 forbids renegotiation, so this is never called when TLS 1.3 (or later) was negotiated.
+
+
+
+
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ Return a instance that will control the generation of heartbeats
+ locally (if permitted by the remote peer), or null to not generate heartbeats. Heartbeats are described in
+ RFC 6520.
+ an instance of .
+
+
+
+ Return the heartbeat mode applicable to the remote peer. Heartbeats are described in RFC 6520.
+
+
+ See enumeration class for appropriate return values.
+
+ the value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method is called, when a change cipher spec message is received.
+ If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network.
+
+ The method will return immediately, if there is still some data left in the buffer, or block until some
+ application data has been read from the network.
+
+ The buffer where the data will be copied to.
+ The position where the data will be placed in the buffer.
+ The maximum number of bytes to read.
+ The number of bytes read.
+ If something goes wrong during reading data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Write some application data.
+
+ Fragmentation is handled internally. Usable in both blocking/non-blocking modes.
+ In blocking mode, the output will be automatically sent via the underlying transport. In non-blocking mode,
+ call to get the output bytes to send to the peer.
+ This method must not be called until after the initial handshake is complete. Attempting to call it earlier
+ will result in an .
+
+ The buffer containing application data to send.
+ The offset at which the application data begins
+ The number of bytes of application data.
+ If called before the initial handshake has completed.
+
+ If connection is already closed, or for encryption or transport errors.
+
+
+
+
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+
+
+
+
+
+
+
+ Equivalent to OfferInput(input, 0, input.Length).
+ The input buffer to offer.
+
+
+
+
+ Offer input from an arbitrary source.
+ Only allowed in non-blocking mode.
+ This method will decrypt and process all records that are fully available. If only part of a record is
+ available, the buffer will be retained until the remainder of the record is offered.
+ If any records containing application data were processed, the decrypted data can be obtained using
+ . If any records containing protocol data were processed, a
+ response may have been generated. You should always check to see if there is any available output after
+ calling this method by calling .
+
+ The input buffer to offer.
+ The offset within the input buffer that input begins.
+ The number of bytes of input being offered.
+ If an error occurs while decrypting or processing a record.
+
+
+ Gets the amount of received application data.
+ A call to is guaranteed to be able to return at least
+ this much data.
+ Only allowed in non-blocking mode.
+
+ The number of bytes of available application data.
+
+
+ Retrieves received application data.
+
+ Use to check how much application data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned.
+ Only allowed in non-blocking mode.
+
+ The buffer to hold the application data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+ Gets the amount of encrypted data available to be sent.
+
+ A call to is guaranteed to be able to return at least this much
+ data. Only allowed in non-blocking mode.
+
+ The number of bytes of available encrypted data.
+
+
+ Retrieves encrypted data to be sent.
+
+ Use to check how much encrypted data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned. Only allowed in non-blocking mode.
+
+ The buffer to hold the encrypted data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Make sure the 'buf' is now empty. Fail otherwise.
+ The to check.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Processor interface for a PSK identity.
+
+
+ Base interface for an object that can process a PSK identity.
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS RSA key exchange.
+
+
+ Interface describing a TLS server endpoint.
+
+
+ Return the specified session, if available.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ the ID of the session to resume.
+ A with the specified session ID, or null.
+
+
+
+ Return the external PSK to select from the ClientHello.
+
+ WARNING: EXPERIMENTAL FEATURE, UNSTABLE API
+ Note that this will only be called when TLS 1.3 or higher is amongst the offered protocol versions, and one
+ or more PSKs are actually offered.
+
+ an of instances.
+ The corresponding to the selected identity, or null to not select
+ any.
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Return server credentials to use.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated.
+
+ a object or null for anonymous key exchanges.
+
+
+
+
+ This method will be called (only) if the server included an extension of type "status_request" with empty
+ "extension_data" in the extended server hello. See RFC 3546 3.6. Certificate Status Request. If a
+ non-null is returned, it is sent to the client as a handshake message of
+ type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Called by the protocol handler to report the client certificate, only if
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See RFC 5077
+ 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket.
+
+
+
+ Server certificate carrier interface.
+
+
+ Marker interface to distinguish a TLS server context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a carrier object for a TLS session.
+
+
+ Interface for verifying SRP config needs to conform to.
+
+
+ Check whether the given SRP configuration is acceptable for use.
+ the to check.
+ true if (and only if) the specified configuration is acceptable.
+
+
+ Processor interface for an SRP identity.
+
+
+ Base interface for an object that can return login parameters from an SRP identity.
+
+
+ Lookup the corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC 5054 2.5.1.3.
+ is provided for this purpose.
+
+ the SRP identity sent by the connecting client.
+ the for the specified identity, or else 'simulated' parameters
+ if the identity is not recognized. A null value is also allowed, but not recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Whether a server can select the specified cipher suite given the available signature algorithms
+ for ServerKeyExchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check the signature algorithm for certificates in the peer's CertPath as specified in RFC 5246
+ 7.4.2, 7.4.4, 7.4.6 and similar rules for earlier TLS versions.
+
+ The supplied CertPath should include the trust anchor (its signature algorithm isn't checked, but in the
+ general case checking a certificate requires the issuer certificate).
+
+ if any certificate in the CertPath (excepting the trust anchor) has a
+ signature algorithm that is not one of the locally supported signature algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a pre_master_secret and send it encrypted to the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 5.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ see for valid constants.
+ valid lengths from 0 to 255.
+
+
+ see for valid constants.
+
+
+ valid lengths from 0 to 255.
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ Return the failure code associated with this exception - if one is set.
+
+ @return the failure code if set, -1 otherwise.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value the value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of the specified length, padded with
+ leading zeros as necessary.
+ @param length the fixed length of the result.
+ @param n the value to be converted.
+ @return a byte array padded to a fixed length with leading zeros.
+
+
+ Write the passed in value as unsigned bytes to the specified buffer range, padded with
+ leading zeros as necessary.
+
+ @param value
+ the value to be converted.
+ @param buf
+ the buffer to which the value is written.
+ @param off
+ the start offset in array buf at which the data is written.
+ @param len
+ the fixed length of data written (possibly padded with leading zeros).
+
+
+
+ Creates a Random BigInteger from the secure random of a given bit length.
+
+
+
+
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ A UTC DateTime value not before epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before epoch.
+
+
+
+ Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ A
+
+
+
+
+
+ A
+
+
+
+
+
+ Seek ':" up to the limit.
+
+
+
+
+
+
+ Consume the dashes
+
+
+
+
+
+ Skip white space leave char in stream.
+
+
+
+
+ Read forward consuming the expected string.
+
+ expected string
+ false if not consumed
+
+
+
+ Consume until dash.
+
+ true if stream end not met
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ In case of IO failure.
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ The size of temporary buffer to use.
+ In case of IO failure.
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+
0 - publicKey - A hash of the public key of the holder must be
+ passed.
+
1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+
2 - otherObjectDigest - A hash of some other object type must be
+ passed. otherObjectTypeID must not be empty.
+
+
+
This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+
0 - publicKey - A hash of the public key of the holder must be
+ passed.
+
1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+
2 - otherObjectDigest - A hash of some other object type must be
+ passed. otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Interface for an X.509 Attribute Certificate.
+
+
+ The version number for the certificate.
+
+
+ The serial number for the certificate.
+
+
+ The UTC DateTime before which the certificate is not valid.
+
+
+ The UTC DateTime after which the certificate is not valid.
+
+
+ The holder of the certificate.
+
+
+ The issuer details for the certificate.
+
+
+ Return the attributes contained in the attribute block in the certificate.
+ An array of attributes.
+
+
+ Return the attributes with the same type as the passed in oid.
+ The object identifier we wish to match.
+ An array of matched attributes, null if there is no match.
+
+
+ Return an ASN.1 encoded byte array representing the attribute certificate.
+ An ASN.1 encoded byte array.
+ If the certificate cannot be encoded.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+
The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+
The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+ A simple collection backed store.
+
+
+ Basic constructor.
+
+ @param collection - initial contents for the store, this is copied.
+
+
+ Return the matches in the collection for the passed in selector.
+
+ @param selector the selector to match against.
+ @return a possibly empty collection of matching objects.
+
+
+ This class contains a collection for collection based X509Stores.
+
+
+
+ Constructor.
+
+ The collection is copied.
+
+
+ The collection containing X.509 object types.
+ If collection is null.
+
+
+ Returns a copy of the ICollection.
+
+
+ Returns a formatted string describing the parameters.
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return the DER encoding of this certificate.
+
+ A byte array containing the DER encoding of this certificate.
+ If there is an error encoding the certificate.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+
+ Return the DER encoding of this CRL.
+
+ A byte array containing the DER encoding of this CRL.
+ If there is an error encoding the CRL.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+
+ Get the value of a given extension.
+
+ The object ID of the extension.
+ An Asn1OctetString object if that extension is found or null if not.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+ This can be either a name or an OID, names are treated as case insensitive.
+
+ string representation of the algorithm name
+
+
+
+ Generate a new X509Certificate.
+
+ The private key of the issuer used to sign this certificate.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate specifying a SecureRandom instance that you would like to use.
+
+ The private key of the issuer used to sign this certificate.
+ The Secure Random you want to use.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+
+ Set the signature algorithm. This can be either a name or an OID, names
+ are treated as case insensitive.
+
+ The algorithm name.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject,
+ using the supplied source of randomness, if required.
+
+
+
+
+ Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An IX509AttributeCertificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+
+ Set the signature algorithm that will be used to sign this CRL.
+
+
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Crl.
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject using the specified secure random.
+
+ The private key of the issuer that is signing this certificate.
+ Your Secure Random instance.
+ An X509Crl.
+
+
+
+ Generate a new X509Crl using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Crl.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate an X509Certificate.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Certificate.
+
+
+
+ Generate an X509Certificate using your own SecureRandom.
+
+ The private key of the issuer that is signing this certificate.
+ You Secure Random instance.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+
+ Return a salted hash based on PBKDF2 for the UTF-8 encoding of the argument text.
+
+ Provided key text
+ Base64 encoded string representing the salt
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/Google.Protobuf.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Google.Protobuf.xml
new file mode 100644
index 0000000..4d6183a
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Google.Protobuf.xml
@@ -0,0 +1,10465 @@
+
+
+
+ Google.Protobuf
+
+
+
+
+ Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy
+
+
+
+
+ The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy
+
+
+
+
+ Determines which copy routine to use based on the number of bytes to be copied.
+
+
+
+
+ Reverses the order of bytes in the array
+
+
+
+
+ Immutable array of bytes.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+ This method encapsulates converting array to memory. Reduces need for SecuritySafeCritical
+ in .NET Framework.
+
+
+
+
+ Constructs a new ByteString from the given memory. The memory is
+ *not* copied, and must not be modified after this constructor is called.
+
+
+
+
+ Returns an empty ByteString.
+
+
+
+
+ Returns the length of this ByteString in bytes.
+
+
+
+
+ Returns true if this byte string is empty, false otherwise.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Converts this into a byte array.
+
+ The data is copied - changes to the returned array will not be reflected in this ByteString.
+ A byte array with the same data as this ByteString.
+
+
+
+ Converts this into a standard base64 representation.
+
+ A base64 representation of this ByteString.
+
+
+
+ Constructs a from the Base64 Encoded String.
+
+
+
+
+ Constructs a from data in the given stream, synchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from data in the given stream, asynchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ The cancellation token to use when reading from the stream, if any.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from the given array. The contents
+ are copied, so further modifications to the array will not
+ be reflected in the returned ByteString.
+ This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form
+ which is primarily useful for testing.
+
+
+
+
+ Constructs a from a portion of a byte array.
+
+
+
+
+ Constructs a from a read only span. The contents
+ are copied, so further modifications to the span will not
+ be reflected in the returned .
+
+
+
+
+ Creates a new by encoding the specified text with
+ the given encoding.
+
+
+
+
+ Creates a new by encoding the specified text in UTF-8.
+
+
+
+
+ Returns the byte at the given index.
+
+
+
+
+ Converts this into a string by applying the given encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with the given encoding.
+
+ The encoding to use to decode the binary data into text.
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Converts this into a string by applying the UTF-8 encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with UTF-8.
+
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Creates a CodedInputStream from this ByteString's data.
+
+
+
+
+ Compares two byte strings for equality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ true if the byte strings are equal; false otherwise.
+
+
+
+ Compares two byte strings for inequality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ false if the byte strings are equal; true otherwise.
+
+
+
+ Compares this byte string with another object.
+
+ The object to compare this with.
+ true if refers to an equal ; false otherwise.
+
+
+
+ Returns a hash code for this object. Two equal byte strings
+ will return the same hash code.
+
+ A hash code for this object.
+
+
+
+ Compares this byte string with another.
+
+ The to compare this with.
+ true if refers to an equal byte string; false otherwise.
+
+
+
+ Copies the entire byte array to the destination array provided at the offset specified.
+
+
+
+
+ Writes the entire byte array to the provided stream
+
+
+
+
+ SecuritySafeCritical attribute can not be placed on types with async methods.
+ This class has ByteString's async methods so it can be marked with SecuritySafeCritical.
+
+
+
+
+ Reads and decodes protocol message fields.
+
+
+
+ This class is generally used by generated code to read appropriate
+ primitives from the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format.
+
+
+ Repeated fields and map fields are not handled by this class; use
+ and to serialize such fields.
+
+
+
+
+
+ Whether to leave the underlying stream open when disposing of this stream.
+ This is always true when there's no stream.
+
+
+
+
+ Buffer of data read from the stream or provided at construction time.
+
+
+
+
+ The stream to read further input from, or null if the byte array buffer was provided
+ directly on construction, with no further data available.
+
+
+
+
+ The parser state is kept separately so that other parse implementations can reuse the same
+ parsing primitives.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given byte array.
+
+
+
+
+ Creates a new that reads from the given byte array slice.
+
+
+
+
+ Creates a new reading data from the given stream, which will be disposed
+ when the returned object is disposed.
+
+ The stream to read from.
+
+
+
+ Creates a new reading data from the given stream.
+
+ The stream to read from.
+ true to leave open when the returned
+ is disposed; false to dispose of the given stream when the
+ returned object is disposed.
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the default limits.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the specified limits.
+
+
+ This chains to the version with the default limits instead of vice versa to avoid
+ having to check that the default values are valid every time.
+
+
+
+
+ Creates a with the specified size and recursion limits, reading
+ from an input stream.
+
+
+ This method exists separately from the constructor to reduce the number of constructor overloads.
+ It is likely to be used considerably less frequently than the constructors, as the default limits
+ are suitable for most use cases.
+
+ The input stream to read from
+ The total limit of data to read from the stream.
+ The maximum recursion depth to allow while reading.
+ A CodedInputStream reading from with the specified size
+ and recursion limits.
+
+
+
+ Returns the current position in the input stream, or the position in the input buffer
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the stream.
+
+
+
+
+ Returns the size limit for this stream.
+
+
+ This limit is applied when reading from the underlying stream, as a sanity check. It is
+ not applied when reading from a byte array data source without an underlying stream.
+ The default value is Int32.MaxValue.
+
+
+ The size limit.
+
+
+
+
+ Returns the recursion limit for this stream. This limit is applied whilst reading messages,
+ to avoid maliciously-recursive data.
+
+
+ The default limit is 100.
+
+
+ The recursion limit for this stream.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Disposes of this instance, potentially closing any underlying stream.
+
+
+ As there is no flushing to perform here, disposing of a which
+ was constructed with the leaveOpen option parameter set to true (or one which
+ was constructed to read from a byte array) has no effect.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of stream".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputStream; it may be the end of the logical stream
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of stream. (0 is never a valid tag.)
+
+
+
+ Skips the data for the field with the tag we've just read.
+ This should be called directly after , when
+ the caller wishes to skip an unknown field.
+
+
+ This method throws if the last-read tag was an end-group tag.
+ If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the
+ start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly
+ resulting in an error if an end-group tag has not been paired with an earlier start-group tag.
+
+ The last tag was an end-group tag
+ The last read operation read to the end of the logical stream
+
+
+
+ Skip a group.
+
+
+
+
+ Reads a double field from the stream.
+
+
+
+
+ Reads a float field from the stream.
+
+
+
+
+ Reads a uint64 field from the stream.
+
+
+
+
+ Reads an int64 field from the stream.
+
+
+
+
+ Reads an int32 field from the stream.
+
+
+
+
+ Reads a fixed64 field from the stream.
+
+
+
+
+ Reads a fixed32 field from the stream.
+
+
+
+
+ Reads a bool field from the stream.
+
+
+
+
+ Reads a string field from the stream.
+
+
+
+
+ Reads an embedded message field value from the stream.
+
+
+
+
+ Reads an embedded group field from the stream.
+
+
+
+
+ Reads a bytes field value from the stream.
+
+
+
+
+ Reads a uint32 field value from the stream.
+
+
+
+
+ Reads an enum field value from the stream.
+
+
+
+
+ Reads an sfixed32 field value from the stream.
+
+
+
+
+ Reads an sfixed64 field value from the stream.
+
+
+
+
+ Reads an sint32 field value from the stream.
+
+
+
+
+ Reads an sint64 field value from the stream.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Reads a raw varint from the stream.
+
+
+
+
+ Reads a 32-bit little-endian integer from the stream.
+
+
+
+
+ Reads a 64-bit little-endian integer from the stream.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Called when buffer is empty to read more bytes from the
+ input. If is true, RefillBuffer() guarantees that
+ either there will be at least one byte in the buffer when it returns
+ or it will throw an exception. If is false,
+ RefillBuffer() returns false if no more bytes were available.
+
+
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a top-level message or a nested message after the limits for this message have been pushed.
+ (parser will proceed until the end of the current limit)
+ NOTE: this method needs to be public because it's invoked by the generated code - e.g. msg.MergeFrom(CodedInputStream input) method
+
+
+
+
+ Encodes and writes protocol message fields.
+
+
+
+ This class is generally used by generated code to write appropriate
+ primitives to the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format. Unlike some other implementations,
+ this does not include combined "write tag and value" methods. Generated
+ code knows the exact byte representations of the tags they're going to write,
+ so there's no need to re-encode them each time. Manually-written code calling
+ this class should just call one of the WriteTag overloads before each value.
+
+
+ Repeated fields and map fields are not handled by this class; use RepeatedField<T>
+ and MapField<TKey, TValue> to serialize such fields.
+
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ double field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ float field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bool field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ string field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ group field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ embedded message field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bytes field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ enum field, including the tag. The caller is responsible for
+ converting the enum value to its numeric value.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a length,
+ as written by .
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a tag.
+
+
+
+
+ The buffer size used by CreateInstance(Stream).
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array slice. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new which write to the given stream, and disposes of that
+ stream when the returned CodedOutputStream is disposed.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+ The size of buffer to use internally.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream.
+
+ The stream to write to.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to.
+ The size of buffer to use internally.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Returns the current position in the stream, or the position in the output buffer
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ Only the message data is written, without a length-delimiter.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Indicates that a CodedOutputStream wrapping a flat byte array
+ ran out of space.
+
+
+
+
+ Flushes any buffered data and optionally closes the underlying stream, if any.
+
+
+
+ By default, any underlying stream is closed by this method. To configure this behaviour,
+ use a constructor overload with a leaveOpen parameter. If this instance does not
+ have an underlying stream, this method does nothing.
+
+
+ For the sake of efficiency, calling this method does not prevent future write calls - but
+ if a later write ends up writing to a stream which has been disposed, that is likely to
+ fail. It is recommend that you not call any other methods after this.
+
+
+
+
+
+ Flushes any buffered data to the underlying stream (if there is one).
+
+
+
+
+ Verifies that SpaceLeft returns zero. It's common to create a byte array
+ that is exactly big enough to hold a message, then write to it with
+ a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that
+ the message was actually as big as expected, which can help finding bugs.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ Utility to compare if two Lists are the same, and the hash code
+ of a List.
+
+
+
+
+ Checks if two lists are equal.
+
+
+
+
+ Gets the list's hash code.
+
+
+
+
+ Representation of a map field in a Protocol Buffer message.
+
+ Key type in the map. Must be a type supported by Protocol Buffer map keys.
+ Value type in the map. Must be a type supported by Protocol Buffers.
+
+
+ For string keys, the equality comparison is provided by .
+
+
+ Null values are not permitted in the map, either for wrapper types or regular messages.
+ If a map is deserialized from a data stream and the value is missing from an entry, a default value
+ is created instead. For primitive types, that is the regular default value (0, the empty string and so
+ on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length
+ encoded value for the field.
+
+
+ This implementation does not generally prohibit the use of key/value types which are not
+ supported by Protocol Buffers (e.g. using a key type of byte) but nor does it guarantee
+ that all operations will work in such cases.
+
+
+ The order in which entries are returned when iterating over this object is undefined, and may change
+ in future versions.
+
+
+
+
+
+ Creates a deep clone of this object.
+
+
+ A deep clone of this object.
+
+
+
+
+ Adds the specified key/value pair to the map.
+
+
+ This operation fails if the key already exists in the map. To replace an existing entry, use the indexer.
+
+ The key to add
+ The value to add.
+ The given key already exists in map.
+
+
+
+ Determines whether the specified key is present in the map.
+
+ The key to check.
+ true if the map contains the given key; false otherwise.
+
+
+
+ Removes the entry identified by the given key from the map.
+
+ The key indicating the entry to remove from the map.
+ true if the map contained the given key before the entry was removed; false otherwise.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key whose value to get.
+ When this method returns, the value associated with the specified key, if the key is found;
+ otherwise, the default value for the type of the parameter.
+ This parameter is passed uninitialized.
+ true if the map contains an element with the specified key; otherwise, false.
+
+
+
+ Gets or sets the value associated with the specified key.
+
+ The key of the value to get or set.
+ The property is retrieved and key does not exist in the collection.
+ The value associated with the specified key. If the specified key is not found,
+ a get operation throws a , and a set operation creates a new element with the specified key.
+
+
+
+ Gets a collection containing the keys in the map.
+
+
+
+
+ Gets a collection containing the values in the map.
+
+
+
+
+ Adds the specified entries to the map. The keys and values are not automatically cloned.
+
+ The entries to add to the map.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Adds the specified item to the map.
+
+ The item to add to the map.
+
+
+
+ Removes all items from the map.
+
+
+
+
+ Determines whether map contains an entry equivalent to the given key/value pair.
+
+ The key/value pair to find.
+
+
+
+
+ Copies the key/value pairs in this map to an array.
+
+ The array to copy the entries into.
+ The index of the array at which to start copying values.
+
+
+
+ Removes the specified key/value pair from the map.
+
+ Both the key and the value must be found for the entry to be removed.
+ The key/value pair to remove.
+ true if the key/value pair was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the map.
+
+
+
+
+ Gets a value indicating whether the map is read-only.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this map with another for equality.
+
+
+ The order of the key/value pairs in the maps is not deemed significant in this comparison.
+
+ The map to compare this with.
+ true if refers to an equal map; false otherwise.
+
+
+
+ Adds entries to the map from the given stream.
+
+
+ It is assumed that the stream is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the stream until the end is reached, or
+ a different tag is encountered.
+
+ Stream to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Adds entries to the map from the given parse context.
+
+
+ It is assumed that the input is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the input until the end is reached, or
+ a different tag is encountered.
+
+ Input to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Writes the contents of this map to the given coded output stream, using the specified codec
+ to encode each entry.
+
+ The output stream to write to.
+ The codec to use for each entry.
+
+
+
+ Writes the contents of this map to the given write context, using the specified codec
+ to encode each entry.
+
+ The write context to write to.
+ The codec to use for each entry.
+
+
+
+ Calculates the size of this map based on the given entry codec.
+
+ The codec to use to encode each entry.
+
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ A codec for a specific map field. This contains all the information required to encode and
+ decode the nested messages.
+
+
+
+
+ Creates a new entry codec based on a separate key codec and value codec,
+ and the tag to use for each map entry.
+
+ The key codec.
+ The value codec.
+ The map tag to use to introduce each map entry.
+
+
+
+ The key codec.
+
+
+
+
+ The value codec.
+
+
+
+
+ The tag used in the enclosing message to indicate map entries.
+
+
+
+
+ Provides a central place to implement equality comparisons, primarily for bitwise float/double equality.
+
+
+
+
+ Returns an equality comparer for suitable for Protobuf equality comparisons.
+ This is usually just the default equality comparer for the type, but floating point numbers are compared
+ bitwise.
+
+ The type of equality comparer to return.
+ The equality comparer.
+
+
+
+ Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Read-only wrapper around another dictionary.
+
+
+
+
+ The contents of a repeated field: essentially, a collection with some extra
+ restrictions (no null values) and capabilities (deep cloning).
+
+
+ This implementation does not generally prohibit the use of types which are not
+ supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases.
+
+ The element type of the repeated field.
+
+
+
+ Creates a deep clone of this repeated field.
+
+
+ If the field type is
+ a message type, each element is also cloned; otherwise, it is
+ assumed that the field type is primitive (including string and
+ bytes, both of which are immutable) and so a simple copy is
+ equivalent to a deep clone.
+
+ A deep clone of this repeated field.
+
+
+
+ Adds the entries from the given input stream, decoding them with the specified codec.
+
+ The input stream to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Adds the entries from the given parse context, decoding them with the specified codec.
+
+ The input to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Calculates the size of this collection based on the given codec.
+
+ The codec to use when encoding each field.
+ The number of bytes that would be written to an output by one of the WriteTo methods,
+ using the same codec.
+
+
+
+ Writes the contents of this collection to the given ,
+ encoding each value using the specified codec.
+
+ The output stream to write to.
+ The codec to use when encoding each value.
+
+
+
+ Writes the contents of this collection to the given write context,
+ encoding each value using the specified codec.
+
+ The write context to write to.
+ The codec to use when encoding each value.
+
+
+
+ Gets and sets the capacity of the RepeatedField's internal array. WHen set, the internal array is reallocated to the given capacity.
+ The new value is less than Count -or- when Count is less than 0.
+
+
+
+
+ Adds the specified item to the collection.
+
+ The item to add.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Determines whether this collection contains the given item.
+
+ The item to find.
+ true if this collection contains the given item; false otherwise.
+
+
+
+ Copies this collection to the given array.
+
+ The array to copy to.
+ The first index of the array to copy to.
+
+
+
+ Removes the specified item from the collection
+
+ The item to remove.
+ true if the item was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the collection.
+
+
+
+
+ Gets a value indicating whether the collection is read-only.
+
+
+
+
+ Adds all of the specified values into this collection.
+
+ The values to add to this collection.
+
+
+
+ Adds all of the specified values into this collection. This method is present to
+ allow repeated fields to be constructed from queries within collection initializers.
+ Within non-collection-initializer code, consider using the equivalent
+ method instead for clarity.
+
+ The values to add to this collection.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this repeated field with another for equality.
+
+ The repeated field to compare this with.
+ true if refers to an equal repeated field; false otherwise.
+
+
+
+ Returns the index of the given item within the collection, or -1 if the item is not
+ present.
+
+ The item to find in the collection.
+ The zero-based index of the item, or -1 if it is not found.
+
+
+
+ Inserts the given item at the specified index.
+
+ The index at which to insert the item.
+ The item to insert.
+
+
+
+ Removes the item at the given index.
+
+ The zero-based index of the item to remove.
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ Gets or sets the item at the specified index.
+
+
+ The element at the specified index.
+
+ The zero-based index of the element to get or set.
+ The item at the specified index.
+
+
+
+ Extension methods for , effectively providing
+ the familiar members from previous desktop framework versions while
+ targeting the newer releases, .NET Core etc.
+
+
+
+
+ Returns the public getter of a property, or null if there is no such getter
+ (either because it's read-only, or the getter isn't public).
+
+
+
+
+ Returns the public setter of a property, or null if there is no such setter
+ (either because it's write-only, or the setter isn't public).
+
+
+
+
+ Provides extension methods on Type that just proxy to TypeInfo.
+ These are used to support the new type system from .NET 4.5, without
+ having calls to GetTypeInfo all over the place. While the methods here are meant to be
+ broadly compatible with the desktop framework, there are some subtle differences in behaviour - but
+ they're not expected to affect our use cases. While the class is internal, that should be fine: we can
+ evaluate each new use appropriately.
+
+
+
+
+ See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom
+
+
+
+
+ Returns a representation of the public property associated with the given name in the given type,
+ including inherited properties or null if there is no such public property.
+ Here, "public property" means a property where either the getter, or the setter, or both, is public.
+
+
+
+
+ Returns a representation of the public method associated with the given name in the given type,
+ including inherited methods.
+
+
+ This has a few differences compared with Type.GetMethod in the desktop framework. It will throw
+ if there is an ambiguous match even between a private method and a public one, but it *won't* throw
+ if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and
+ class Child : Base declares public void Foo(long)).
+
+ One type in the hierarchy declared more than one method with the same name
+
+
+
+ Represents a non-generic extension definition. This API is experimental and subject to change.
+
+
+
+
+ Internal use. Creates a new extension with the specified field number.
+
+
+
+
+ Gets the field number of this extension
+
+
+
+
+ Represents a type-safe extension identifier used for getting and setting single extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The field value type of this extension
+
+
+
+ Creates a new extension identifier with the specified field number and codec
+
+
+
+
+ Represents a type-safe extension identifier used for getting repeated extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The repeated field value type of this extension
+
+
+
+ Creates a new repeated extension identifier with the specified field number and codec
+
+
+
+
+ Provides extensions to messages while parsing. This API is experimental and subject to change.
+
+
+
+
+ Creates a new empty extension registry
+
+
+
+
+ Gets the total number of extensions in this extension registry
+
+
+
+
+ Returns whether the registry is readonly
+
+
+
+
+ Adds the specified extension to the registry
+
+
+
+
+ Adds the specified extensions to the registry
+
+
+
+
+ Clears the registry of all values
+
+
+
+
+ Gets whether the extension registry contains the specified extension
+
+
+
+
+ Copies the arrays in the registry set to the specified array at the specified index
+
+ The array to copy to
+ The array index to start at
+
+
+
+ Returns an enumerator to enumerate through the items in the registry
+
+ Returns an enumerator for the extensions in this registry
+
+
+
+ Removes the specified extension from the set
+
+ The extension
+ true if the extension was removed, otherwise false
+
+
+
+ Clones the registry into a new registry
+
+
+
+
+ Methods for managing s with null checking.
+
+ Most users will not use this class directly and its API is experimental and subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if it doesn't exist in this set
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it doesn't exist
+
+
+
+
+ Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null.
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Merges the second set into the first set, creating a new instance if first is null
+
+
+
+
+ Clones the set into a new set. If the set is null, this returns null
+
+
+
+
+ Used for keeping track of extensions in messages.
+ methods route to this set.
+
+ Most users will not need to use this class directly
+
+ The message type that extensions in this set target
+
+
+
+ Gets a hash code of the set
+
+
+
+
+ Returns whether this set is equal to the other object
+
+
+
+
+ Calculates the size of this extension set
+
+
+
+
+ Writes the extension values in this set to the output stream
+
+
+
+
+ Writes the extension values in this set to the write context
+
+
+
+
+ Factory methods for .
+
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a message field with the given tag.
+
+ The tag.
+ A parser to use for the message type.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a group field with the given tag.
+
+ The start group tag.
+ The end group tag.
+ A parser to use for the group message type.
+ A codec for given tag
+
+
+
+ Creates a codec for a wrapper type of a class - which must be string or ByteString.
+
+
+
+
+ Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64,
+ Bool, Single or Double.
+
+
+
+
+ Helper code to create codecs for wrapper types.
+
+
+ Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it
+ slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place,
+ we can refactor later if we come up with something cleaner.
+
+
+
+
+ Returns a field codec which effectively wraps a value of type T in a message.
+
+
+
+
+
+
+ An encode/decode pair for a single field. This effectively encapsulates
+ all the information needed to read or write the field value from/to a coded
+ stream.
+
+
+ This class is public and has to be as it is used by generated code, but its public
+ API is very limited - just what the generated code needs to call directly.
+
+
+
+ This never writes default values to the stream, and does not address "packedness"
+ in repeated fields itself, other than to know whether or not the field *should* be packed.
+
+
+
+
+ Merges an input stream into a value
+
+
+
+
+ Merges a value into a reference to another value, returning a boolean if the value was set
+
+
+
+
+ Returns a delegate to write a value (unconditionally) to a coded output stream.
+
+
+
+
+ Returns the size calculator for just a value.
+
+
+
+
+ Returns a delegate to read a value from a coded input stream. It is assumed that
+ the stream is already positioned on the appropriate tag.
+
+
+
+
+ Returns a delegate to merge a value from a coded input stream.
+ It is assumed that the stream is already positioned on the appropriate tag
+
+
+
+
+ Returns a delegate to merge two values together.
+
+
+
+
+ Returns the fixed size for an entry, or 0 if sizes vary.
+
+
+
+
+ Gets the tag of the codec.
+
+
+ The tag of the codec.
+
+
+
+
+ Gets the end tag of the codec or 0 if there is no end tag
+
+
+ The end tag of the codec.
+
+
+
+
+ Default value for this codec. Usually the same for every instance of the same type, but
+ for string/ByteString wrapper fields the codec's default value is null, whereas for
+ other string/ByteString fields it's "" or ByteString.Empty.
+
+
+ The default value of the codec's type.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Reads a value of the codec type from the given .
+
+ The input stream to read from.
+ The value read from the stream.
+
+
+
+ Reads a value of the codec type from the given .
+
+ The parse context to read from.
+ The value read.
+
+
+
+ Calculates the size required to write the given value, with a tag,
+ if the value is not the default.
+
+
+
+
+ Calculates the size required to write the given value, with a tag, even
+ if the value is the default.
+
+
+
+
+ A tree representation of a FieldMask. Each leaf node in this tree represent
+ a field path in the FieldMask.
+
+ For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be:
+
+ [root] -+- foo -+- bar
+ | |
+ | +- baz
+ |
+ +- bar --- baz
+
+
+ By representing FieldMasks with this tree structure we can easily convert
+ a FieldMask to a canonical form, merge two FieldMasks, calculate the
+ intersection to two FieldMasks and traverse all fields specified by the
+ FieldMask in a message tree.
+
+
+
+
+ Creates an empty FieldMaskTree.
+
+
+
+
+ Creates a FieldMaskTree for a given FieldMask.
+
+
+
+
+ Adds a field path to the tree. In a FieldMask, every field path matches the
+ specified field as well as all its sub-fields. For example, a field path
+ "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding
+ a field path to the tree, redundant sub-paths will be removed. That is,
+ after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it
+ exists, which will turn the tree node for "foo.bar" to a leaf node.
+ Likewise, if the field path to add is a sub-path of an existing leaf node,
+ nothing will be changed in the tree.
+
+
+
+
+ Merges all field paths in a FieldMask into this tree.
+
+
+
+
+ Converts this tree to a FieldMask.
+
+
+
+
+ Gathers all field paths in a sub-tree.
+
+
+
+
+ Adds the intersection of this tree with the given to .
+
+
+
+
+ Merges all fields specified by this FieldMaskTree from to .
+
+
+
+
+ Merges all fields specified by a sub-tree from to .
+
+
+
+
+ Class containing helpful workarounds for various platform compatibility
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ parsing from and writing to .
+
+
+
+
+ Internal implementation of merging data from given parse context into this message.
+ Users should never invoke this method directly.
+
+
+
+
+ Internal implementation of writing this message to a given write context.
+ Users should never invoke this method directly.
+
+
+
+
+ A message type that has a custom string format for diagnostic purposes.
+
+
+
+ Calling on a generated message type normally
+ returns the JSON representation. If a message type implements this interface,
+ then the method will be called instead of the regular
+ JSON formatting code, but only when ToString() is called either on the message itself
+ or on another message which contains it. This does not affect the normal JSON formatting of
+ the message.
+
+
+ For example, if you create a proto message representing a GUID, the internal
+ representation may be a bytes field or four fixed32 fields. However, when debugging
+ it may be more convenient to see a result in the same format as provides.
+
+ This interface extends to avoid it accidentally being implemented
+ on types other than messages, where it would not be used by anything in the framework.
+
+
+
+
+ Returns a string representation of this object, for diagnostic purposes.
+
+
+ This method is called when a message is formatted as part of a
+ call. It does not affect the JSON representation used by other than
+ in calls to . While it is recommended
+ that the result is valid JSON, this is never assumed by the Protobuf library.
+
+ A string representation of this object, for diagnostic purposes.
+
+
+
+ Generic interface for a deeply cloneable type.
+
+
+
+ All generated messages implement this interface, but so do some non-message types.
+ Additionally, due to the type constraint on T in ,
+ it is simpler to keep this as a separate interface.
+
+
+ The type itself, returned by the method.
+
+
+
+ Creates a deep clone of this object.
+
+ A deep clone of this object.
+
+
+
+ Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class.
+ This interface is experiemental and is subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if the extension isn't registered in this set.
+ For a version of this method that never returns null, use
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it hasn't already been registered.
+
+
+
+
+ Sets the value of the specified extension
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified repeated extension
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ basic operations required for serialization.
+
+
+
+
+ Merges the data from the specified coded input stream with the current message.
+
+ See the user guide for precise merge semantics.
+
+
+
+
+ Writes the data to the given coded output stream.
+
+ Coded output stream to write the data to. Must not be null.
+
+
+
+ Calculates the size of this message in Protocol Buffer wire format, in bytes.
+
+ The number of bytes required to write this message
+ to a coded output stream.
+
+
+
+ Descriptor for this message. All instances are expected to return the same descriptor,
+ and for generated types this will be an explicitly-implemented member, returning the
+ same value as the static property declared on the type.
+
+
+
+
+ Generic interface for a Protocol Buffers message,
+ where the type parameter is expected to be the same type as
+ the implementation class.
+
+ The message type.
+
+
+
+ Merges the given message into this one.
+
+ See the user guide for precise merge semantics.
+ The message to merge with this one. Must not be null.
+
+
+
+ Thrown when an attempt is made to parse invalid JSON, e.g. using
+ a non-string property key, or including a redundant comma. Parsing a protocol buffer
+ message represented in JSON using can throw both this
+ exception and depending on the situation. This
+ exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException
+ is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer
+ message.
+
+
+
+
+ Thrown when a protocol message being parsed is invalid in some way,
+ e.g. it contains a malformed varint or a negative byte length.
+
+
+
+
+ Creates an exception for an error condition of an invalid tag being encountered.
+
+
+
+
+ Reflection-based converter from messages to JSON.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON formatting working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ The JSON representation of the first 160 characters of Unicode.
+ Empty strings are replaced by the static constructor.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The formatted message.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The TextWriter to write the formatted message to.
+ The formatted message.
+
+
+
+ Converts a message to JSON for diagnostic purposes with no extra context.
+
+
+
+ This differs from calling on the default JSON
+ formatter in its handling of . As no type registry is available
+ in calls, the normal way of resolving the type of
+ an Any message cannot be applied. Instead, a JSON property named @value
+ is included with the base64 data from the property of the message.
+
+ The value returned by this method is only designed to be used for diagnostic
+ purposes. It may not be parsable by , and may not be parsable
+ by other Protocol Buffer implementations.
+
+ The message to format for diagnostic purposes.
+ The diagnostic-only JSON representation of the message
+
+
+
+ Determines whether or not a field value should be serialized according to the field,
+ its value in the message, and the settings of this formatter.
+
+
+
+
+ Writes a single value to the given writer as JSON. Only types understood by
+ Protocol Buffers can be written in this way. This method is only exposed for
+ advanced use cases; most users should be using
+ or .
+
+ The writer to write the value to. Must not be null.
+ The value to write. May be null.
+
+
+
+ Central interception point for well-known type formatting. Any well-known types which
+ don't need special handling can fall back to WriteMessage. We avoid assuming that the
+ values are using the embedded well-known types, in order to allow for dynamic messages
+ in the future.
+
+
+
+
+ Writes a string (including leading and trailing double quotes) to a builder, escaping as required.
+
+
+ Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc.
+
+
+
+
+ Settings controlling JSON formatting.
+
+
+
+
+ Default settings, as used by
+
+
+
+
+ Whether fields which would otherwise not be included in the formatted data
+ should be formatted even when the value is not present, or has the default value.
+ This option only affects fields which don't support "presence" (e.g.
+ singular non-optional proto3 primitive fields).
+
+
+
+
+ The type registry used to format messages.
+
+
+
+
+ Whether to format enums as ints. Defaults to false.
+
+
+
+
+ Whether to use the original proto field names as defined in the .proto file. Defaults to false.
+
+
+
+
+ Creates a new object with the specified formatting of default values
+ and an empty type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified formatting of default values
+ and type registry.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified parameters.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+ The to use when formatting messages. TypeRegistry.Empty will be used if it is null.
+ true to format the enums as integers; false to format enums as enum names.
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Creates a new object with the specified formatting of default values and the current settings.
+
+ true if default values (0, empty strings etc) should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified type registry and the current settings.
+
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified enums formatting option and the current settings.
+
+ true to format the enums as integers; false to format enums as enum names.
+
+
+
+ Creates a new object with the specified field name formatting option and the current settings.
+
+ true to preserve proto field names; false to convert them to lowerCamelCase.
+
+
+
+ Reflection-based converter from JSON to messages.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON parsing working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Parses and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ The JSON to parse.
+
+
+
+ Parses JSON read from and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ Reader providing the JSON to parse.
+
+
+
+ Merges the given message using data from the given tokenizer. In most cases, the next
+ token should be a "start object" token, but wrapper types and nullity can invalidate
+ that assumption. This is implemented as an LL(1) recursive descent parser over the stream
+ of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the
+ tokenizer performing that validation - but not every token stream is valid "protobuf JSON".
+
+
+
+
+ Parses into a new message.
+
+ The type of message to create.
+ The JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ The type of message to create.
+ Reader providing the JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses into a new message.
+
+ The JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ Reader providing the JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new instance of the message type for the given field.
+
+
+
+
+ Checks that any infinite/NaN values originated from the correct text.
+ This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the
+ way that Mono parses out-of-range values as infinity.
+
+
+
+
+ Settings controlling JSON parsing.
+
+
+
+
+ Default settings, as used by . This has the same default
+ recursion limit as , and an empty type registry.
+
+
+
+
+ The maximum depth of messages to parse. Note that this limit only applies to parsing
+ messages, not collections - so a message within a collection within a message only counts as
+ depth 2, not 3.
+
+
+
+
+ The type registry used to parse messages.
+
+
+
+
+ Whether the parser should ignore unknown fields (true) or throw an exception when
+ they are encountered (false).
+
+
+
+
+ Creates a new object with the specified recursion limit.
+
+ The maximum depth of messages to parse
+
+
+
+ Creates a new object with the specified recursion limit and type registry.
+
+ The maximum depth of messages to parse
+ The type registry used to parse messages
+
+
+
+ Creates a new object set to either ignore unknown fields, or throw an exception
+ when unknown fields are encountered.
+
+ true if unknown fields should be ignored when parsing; false to throw an exception.
+
+
+
+ Creates a new object based on this one, but with the specified recursion limit.
+
+ The new recursion limit.
+
+
+
+ Creates a new object based on this one, but with the specified type registry.
+
+ The new type registry. Must not be null.
+
+
+
+ Simple but strict JSON tokenizer, rigidly following RFC 7159.
+
+
+
+ This tokenizer is stateful, and only returns "useful" tokens - names, values etc.
+ It does not create tokens for the separator between names and values, or for the comma
+ between values. It validates the token stream as it goes - so callers can assume that the
+ tokens it produces are appropriate. For example, it would never produce "start object, end array."
+
+ Implementation details: the base class handles single token push-back and
+ Not thread-safe.
+
+
+
+
+ Creates a tokenizer that reads from the given text reader.
+
+
+
+
+ Creates a tokenizer that first replays the given list of tokens, then continues reading
+ from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back
+ on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was
+ created for the sake of Any parsing.
+
+
+
+
+ Returns the depth of the stack, purely in objects (not collections).
+ Informally, this is the number of remaining unclosed '{' characters we have.
+
+
+
+
+ Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream,
+ after which point Next() should not be called again.
+
+ This implementation provides single-token buffering, and calls if there is no buffered token.
+ The next token in the stream. This is never null.
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Returns the next JSON token in the stream, when requested by the base class. (The method delegates
+ to this if it doesn't have a buffered token.)
+
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Skips the value we're about to read. This must only be called immediately after reading a property name.
+ If the value is an object or an array, the complete object/array is skipped.
+
+
+
+
+ Tokenizer which first exhausts a list of tokens, then consults another tokenizer.
+
+
+
+
+ Tokenizer which does all the *real* work of parsing JSON.
+
+
+
+
+ This method essentially just loops through characters skipping whitespace, validating and
+ changing state (e.g. from ObjectBeforeColon to ObjectAfterColon)
+ until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point
+ it returns the token. Although the method is large, it would be relatively hard to break down further... most
+ of it is the large switch statement, which sometimes returns and sometimes doesn't.
+
+
+
+
+ Reads a string token. It is assumed that the opening " has already been read.
+
+
+
+
+ Reads an escaped character. It is assumed that the leading backslash has already been read.
+
+
+
+
+ Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read.
+
+
+
+
+ Consumes a text-only literal, throwing an exception if the read text doesn't match it.
+ It is assumed that the first letter of the literal has already been read.
+
+
+
+
+ Validates that we're in a valid state to read a value (using the given error prefix if necessary)
+ and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty.
+
+
+
+
+ Pops the top-most container, and sets the state to the appropriate one for the end of a value
+ in the parent container.
+
+
+
+
+ Possible states of the tokenizer.
+
+
+ This is a flags enum purely so we can simply and efficiently represent a set of valid states
+ for checking.
+
+ Each is documented with an example,
+ where ^ represents the current position within the text stream. The examples all use string values,
+ but could be any value, including nested objects/arrays.
+ The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects).
+ Any additional notional state of "AfterValue" indicates that a value has been completed, at which
+ point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue.
+
+
+ These states were derived manually by reading RFC 7159 carefully.
+
+
+
+
+
+ ^ { "foo": "bar" }
+ Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue"
+
+
+
+
+ { "foo": "bar" } ^
+ After the value in a document. Next states: ReaderExhausted
+
+
+
+
+ { "foo": "bar" } ^ (and already read to the end of the reader)
+ Terminal state.
+
+
+
+
+ { ^ "foo": "bar" }
+ Before the *first* property in an object.
+ Next states:
+ "AfterValue" (empty object)
+ ObjectBeforeColon (read a name)
+
+
+
+
+ { "foo" ^ : "bar", "x": "y" }
+ Next state: ObjectAfterColon
+
+
+
+
+ { "foo" : ^ "bar", "x": "y" }
+ Before any property other than the first in an object.
+ (Equivalently: after any property in an object)
+ Next states:
+ "AfterValue" (value is simple)
+ ObjectStart (value is object)
+ ArrayStart (value is array)
+
+
+
+
+ { "foo" : "bar" ^ , "x" : "y" }
+ At the end of a property, so expecting either a comma or end-of-object
+ Next states: ObjectAfterComma or "AfterValue"
+
+
+
+
+ { "foo":"bar", ^ "x":"y" }
+ Read the comma after the previous property, so expecting another property.
+ This is like ObjectStart, but closing brace isn't valid here
+ Next state: ObjectBeforeColon.
+
+
+
+
+ [ ^ "foo", "bar" ]
+ Before the *first* value in an array.
+ Next states:
+ "AfterValue" (read a value)
+ "AfterValue" (end of array; will pop stack)
+
+
+
+
+ [ "foo" ^ , "bar" ]
+ After any value in an array, so expecting either a comma or end-of-array
+ Next states: ArrayAfterComma or "AfterValue"
+
+
+
+
+ [ "foo", ^ "bar" ]
+ After a comma in an array, so there *must* be another value (simple or complex).
+ Next states: "AfterValue" (simple value), StartObject, StartArray
+
+
+
+
+ Wrapper around a text reader allowing small amounts of buffering and location handling.
+
+
+
+
+ The buffered next character, if we have one.
+
+
+
+
+ Returns the next character in the stream, or null if we have reached the end.
+
+
+
+
+
+ Creates a new exception appropriate for the current state of the reader.
+
+
+
+
+ Stream implementation which proxies another stream, only allowing a certain amount
+ of data to be read. Note that this is only used to read delimited streams, so it
+ doesn't attempt to implement everything.
+
+
+
+
+ Extension methods on and .
+
+
+
+
+ Merges data from the given byte array into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given byte array slice into an existing message.
+
+ The message to merge the data into.
+ The data containing the slice to merge, which must be protobuf-encoded binary data.
+ The offset of the slice to merge.
+ The length of the slice to merge.
+
+
+
+ Merges data from the given byte string into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given stream into an existing message.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given span into an existing message.
+
+ The message to merge the data into.
+ Span containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges length-delimited data from the given stream into an existing message.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Converts the given message into a byte array in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte array.
+
+
+
+ Writes the given message data to the given stream in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the length and then data of the given message to a stream.
+
+ The message to write.
+ The output stream to write to.
+
+
+
+ Converts the given message into a byte string in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte string.
+
+
+
+ Writes the given message data to the given buffer writer in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the given message data to the given span in protobuf encoding.
+ The size of the destination span needs to fit the serialized size
+ of the message exactly, otherwise an exception is thrown.
+
+ The message to write to the stream.
+ The span to write to. Size must match size of the message exactly.
+
+
+
+ Checks if all required fields in a message have values set. For proto3 messages, this returns true
+
+
+
+
+ A general message parser, typically used by reflection-based code as all the methods
+ return simple .
+
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ A parser for a specific message type.
+
+
+
+ This delegates most behavior to the
+ implementation within the original type, but
+ provides convenient overloads to parse from a variety of sources.
+
+
+ Most applications will never need to create their own instances of this type;
+ instead, use the static Parser property of a generated message type to obtain a
+ parser for that type.
+
+
+ The type of message to be parsed.
+
+
+
+ Creates a new parser.
+
+
+ The factory method is effectively an optimization over using a generic constraint
+ to require a parameterless constructor: delegates are significantly faster to execute.
+
+ Function to invoke when a new, empty message is required.
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the
+ extensionByNumber table in ExtensionRegistry.
+
+
+
+
+ An opaque struct that represents the current parsing state and is passed along
+ as the parsing proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Initialize a , building all from defaults and
+ the given .
+
+
+
+
+ Initialize a using existing , e.g. from .
+
+
+
+
+ Creates a ParseContext instance from CodedInputStream.
+ WARNING: internally this copies the CodedInputStream's state, so after done with the ParseContext,
+ the CodedInputStream's state needs to be updated.
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the input.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of input".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputReader; it may be the end of the logical input
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of input. (0 is never a valid tag.)
+
+
+
+ Reads a double field from the input.
+
+
+
+
+ Reads a float field from the input.
+
+
+
+
+ Reads a uint64 field from the input.
+
+
+
+
+ Reads an int64 field from the input.
+
+
+
+
+ Reads an int32 field from the input.
+
+
+
+
+ Reads a fixed64 field from the input.
+
+
+
+
+ Reads a fixed32 field from the input.
+
+
+
+
+ Reads a bool field from the input.
+
+
+
+
+ Reads a string field from the input.
+
+
+
+
+ Reads an embedded message field value from the input.
+
+
+
+
+ Reads an embedded group field from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a uint32 field value from the input.
+
+
+
+
+ Reads an enum field value from the input.
+
+
+
+
+ Reads an sfixed32 field value from the input.
+
+
+
+
+ Reads an sfixed64 field value from the input.
+
+
+
+
+ Reads an sint32 field value from the input.
+
+
+
+
+ Reads an sint64 field value from the input.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ The position within the current buffer (i.e. the next byte to read)
+
+
+
+
+ Size of the current buffer
+
+
+
+
+ If we are currently inside a length-delimited block, this is the number of
+ bytes in the buffer that are still available once we leave the delimited block.
+
+
+
+
+ The absolute position of the end of the current length-delimited block (including totalBytesRetired)
+
+
+
+
+ The total number of consumed before the start of the current buffer. The
+ total bytes read up to the current position can be computed as
+ totalBytesRetired + bufferPos.
+
+
+
+
+ The last tag we read. 0 indicates we've read to the end of the stream
+ (or haven't read anything yet).
+
+
+
+
+ The next tag, used to store the value read by PeekTag.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Primitives for parsing protobuf wire format.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Parses the next tag.
+ If the end of logical stream was reached, an invalid tag of 0 is returned.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Parses a raw varint.
+
+
+
+
+ Parses a raw Varint. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Parses a 32-bit little-endian integer.
+
+
+
+
+ Parses a 64-bit little-endian integer.
+
+
+
+
+ Parses a double value.
+
+
+
+
+ Parses a float value.
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads and discards bytes.
+
+ the end of the stream
+ or the current limit was reached
+
+
+
+ Reads a string field value from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a UTF-8 string from the next "length" bytes.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a string assuming that it is spread across multiple spans in a .
+
+
+
+
+ Validates that the specified size doesn't exceed the current limit. If it does then remaining bytes
+ are skipped and an error is thrown.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Decode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 32 bits to be varint encoded, thus always taking
+ 5 bytes on the wire.)
+
+
+
+
+ Decode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse.
+ When parsing from a Stream this can return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse
+ in the underlying data source.
+ When parsing from a Stream this will return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Read raw bytes of the specified length into a span. The amount of data available and the current limit should
+ be checked before calling this method.
+
+
+
+
+ Reading and skipping messages / groups
+
+
+
+
+ Skip a group.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Fast parsing primitives for wrapper types
+
+
+
+
+ Helper methods for throwing exceptions when preconditions are not met.
+
+
+ This class is used internally and by generated code; it is not particularly
+ expected to be used from application code, although nothing prevents it
+ from being used that way.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+ This is equivalent to but without the type parameter
+ constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
+ with a value type - but it gets in the way if either you want to use it with a nullable
+ value type, or you want to use it with an unconstrained type parameter.
+
+
+
+
+ Container for a set of custom options specified within a message, field etc.
+
+
+
+ This type is publicly immutable, but internally mutable. It is only populated
+ by the descriptor parsing code - by the time any user code is able to see an instance,
+ it will be fully initialized.
+
+
+ If an option is requested using the incorrect method, an answer may still be returned: all
+ of the numeric types are represented internally using 64-bit integers, for example. It is up to
+ the caller to ensure that they make the appropriate method call for the option they're interested in.
+ Note that enum options are simply stored as integers, so the value should be fetched using
+ and then cast appropriately.
+
+
+ Repeated options are currently not supported. Asking for a single value of an option
+ which was actually repeated will return the last value, except for message types where
+ all the set values are merged together.
+
+
+
+
+
+ Retrieves a Boolean value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 32-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 64-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a string value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a bytes value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a message value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+ Holder for reflection information generated from google/protobuf/descriptor.proto
+
+
+ File descriptor for google/protobuf/descriptor.proto
+
+
+
+ The protocol compiler can output a FileDescriptorSet containing the .proto
+ files it parses.
+
+
+
+ Field number for the "file" field.
+
+
+
+ Describes a complete .proto file.
+
+
+
+ Field number for the "name" field.
+
+
+
+ file name, relative to root of source tree
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "package" field.
+
+
+
+ e.g. "foo", "foo.bar", etc.
+
+
+
+ Gets whether the "package" field is set
+
+
+ Clears the value of the "package" field
+
+
+ Field number for the "dependency" field.
+
+
+
+ Names of files imported by this file.
+
+
+
+ Field number for the "public_dependency" field.
+
+
+
+ Indexes of the public imported files in the dependency list above.
+
+
+
+ Field number for the "weak_dependency" field.
+
+
+
+ Indexes of the weak imported files in the dependency list.
+ For Google-internal migration only. Do not use.
+
+
+
+ Field number for the "message_type" field.
+
+
+
+ All top-level definitions in this file.
+
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "service" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "source_code_info" field.
+
+
+
+ This field contains optional information about the original source code.
+ You may safely remove this entire field without harming runtime
+ functionality of the descriptors -- the information is needed only by
+ development tools.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The syntax of the proto file.
+ The supported values are "proto2" and "proto3".
+
+
+
+ Gets whether the "syntax" field is set
+
+
+ Clears the value of the "syntax" field
+
+
+
+ Describes a message type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "field" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "nested_type" field.
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "extension_range" field.
+
+
+ Field number for the "oneof_decl" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved field names, which may not be used by fields in the same message.
+ A given name may only be reserved once.
+
+
+
+ Container for nested types declared in the DescriptorProto message type.
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "options" field.
+
+
+
+ Range of reserved tag numbers. Reserved tag numbers may not be used by
+ fields or extension ranges in the same message. Reserved ranges may
+ not overlap.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+
+ Describes a field within a message.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "label" field.
+
+
+ Gets whether the "label" field is set
+
+
+ Clears the value of the "label" field
+
+
+ Field number for the "type" field.
+
+
+
+ If type_name is set, this need not be set. If both this and type_name
+ are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "type_name" field.
+
+
+
+ For message and enum types, this is the name of the type. If the name
+ starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
+ rules are used to find the type (i.e. first the nested types within this
+ message are searched, then within the parent, on up to the root
+ namespace).
+
+
+
+ Gets whether the "type_name" field is set
+
+
+ Clears the value of the "type_name" field
+
+
+ Field number for the "extendee" field.
+
+
+
+ For extensions, this is the name of the type being extended. It is
+ resolved in the same manner as type_name.
+
+
+
+ Gets whether the "extendee" field is set
+
+
+ Clears the value of the "extendee" field
+
+
+ Field number for the "default_value" field.
+
+
+
+ For numeric types, contains the original text representation of the value.
+ For booleans, "true" or "false".
+ For strings, contains the default text contents (not escaped in any way).
+ For bytes, contains the C escaped value. All bytes >= 128 are escaped.
+
+
+
+ Gets whether the "default_value" field is set
+
+
+ Clears the value of the "default_value" field
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ If set, gives the index of a oneof in the containing type's oneof_decl
+ list. This field is a member of that oneof.
+
+
+
+ Gets whether the "oneof_index" field is set
+
+
+ Clears the value of the "oneof_index" field
+
+
+ Field number for the "json_name" field.
+
+
+
+ JSON name of this field. The value is set by protocol compiler. If the
+ user has set a "json_name" option on this field, that option's value
+ will be used. Otherwise, it's deduced from the field's name by converting
+ it to camelCase.
+
+
+
+ Gets whether the "json_name" field is set
+
+
+ Clears the value of the "json_name" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "proto3_optional" field.
+
+
+
+ If true, this is a proto3 "optional". When a proto3 field is optional, it
+ tracks presence regardless of field type.
+
+ When proto3_optional is true, this field must be belong to a oneof to
+ signal to old proto3 clients that presence is tracked for this field. This
+ oneof is known as a "synthetic" oneof, and this field must be its sole
+ member (each proto3 optional field gets its own synthetic oneof). Synthetic
+ oneofs exist in the descriptor only, and do not generate any API. Synthetic
+ oneofs must be ordered after all "real" oneofs.
+
+ For message fields, proto3_optional doesn't create any semantic change,
+ since non-repeated message fields always track presence. However it still
+ indicates the semantic detail of whether the user wrote "optional" or not.
+ This can be useful for round-tripping the .proto file. For consistency we
+ give message fields a synthetic oneof also, even though it is not required
+ to track presence. This is especially important because the parser can't
+ tell if a field is a message or an enum, so it must always create a
+ synthetic oneof.
+
+ Proto2 optional fields do not set this flag, because they already indicate
+ optional with `LABEL_OPTIONAL`.
+
+
+
+ Gets whether the "proto3_optional" field is set
+
+
+ Clears the value of the "proto3_optional" field
+
+
+ Container for nested types declared in the FieldDescriptorProto message type.
+
+
+
+ 0 is reserved for errors.
+ Order is weird for historical reasons.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
+ negative values are likely.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
+ negative values are likely.
+
+
+
+
+ Tag-delimited aggregate.
+ Group type is deprecated and not supported in proto3. However, Proto3
+ implementations should still be able to parse the group wire format and
+ treat group fields as unknown fields.
+
+
+
+
+ Length-delimited aggregate.
+
+
+
+
+ New in version 2.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ 0 is reserved for errors
+
+
+
+
+ Describes a oneof.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes an enum type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+
+ Range of reserved numeric values. Reserved numeric values may not be used
+ by enum values in the same enum declaration. Reserved ranges may not
+ overlap.
+
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved enum value names, which may not be reused. A given name may only
+ be reserved once.
+
+
+
+ Container for nested types declared in the EnumDescriptorProto message type.
+
+
+
+ Range of reserved numeric values. Reserved values may not be used by
+ entries in the same enum. Reserved ranges may not overlap.
+
+ Note that this is distinct from DescriptorProto.ReservedRange in that it
+ is inclusive such that it can appropriately represent the entire int32
+ domain.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Describes a value within an enum.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "method" field.
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a method of a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "input_type" field.
+
+
+
+ Input and output type names. These are resolved in the same way as
+ FieldDescriptorProto.type_name, but must refer to a message type.
+
+
+
+ Gets whether the "input_type" field is set
+
+
+ Clears the value of the "input_type" field
+
+
+ Field number for the "output_type" field.
+
+
+ Gets whether the "output_type" field is set
+
+
+ Clears the value of the "output_type" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "client_streaming" field.
+
+
+
+ Identifies if client streams multiple client messages
+
+
+
+ Gets whether the "client_streaming" field is set
+
+
+ Clears the value of the "client_streaming" field
+
+
+ Field number for the "server_streaming" field.
+
+
+
+ Identifies if server streams multiple server messages
+
+
+
+ Gets whether the "server_streaming" field is set
+
+
+ Clears the value of the "server_streaming" field
+
+
+ Field number for the "java_package" field.
+
+
+
+ Sets the Java package where classes generated from this .proto will be
+ placed. By default, the proto package is used, but this is often
+ inappropriate because proto packages do not normally start with backwards
+ domain names.
+
+
+
+ Gets whether the "java_package" field is set
+
+
+ Clears the value of the "java_package" field
+
+
+ Field number for the "java_outer_classname" field.
+
+
+
+ Controls the name of the wrapper Java class generated for the .proto file.
+ That class will always contain the .proto file's getDescriptor() method as
+ well as any top-level extensions defined in the .proto file.
+ If java_multiple_files is disabled, then all the other classes from the
+ .proto file will be nested inside the single wrapper outer class.
+
+
+
+ Gets whether the "java_outer_classname" field is set
+
+
+ Clears the value of the "java_outer_classname" field
+
+
+ Field number for the "java_multiple_files" field.
+
+
+
+ If enabled, then the Java code generator will generate a separate .java
+ file for each top-level message, enum, and service defined in the .proto
+ file. Thus, these types will *not* be nested inside the wrapper class
+ named by java_outer_classname. However, the wrapper class will still be
+ generated to contain the file's getDescriptor() method as well as any
+ top-level extensions defined in the file.
+
+
+
+ Gets whether the "java_multiple_files" field is set
+
+
+ Clears the value of the "java_multiple_files" field
+
+
+ Field number for the "java_generate_equals_and_hash" field.
+
+
+
+ This option does nothing.
+
+
+
+ Gets whether the "java_generate_equals_and_hash" field is set
+
+
+ Clears the value of the "java_generate_equals_and_hash" field
+
+
+ Field number for the "java_string_check_utf8" field.
+
+
+
+ If set true, then the Java2 code generator will generate code that
+ throws an exception whenever an attempt is made to assign a non-UTF-8
+ byte sequence to a string field.
+ Message reflection will do the same.
+ However, an extension field still accepts non-UTF-8 byte sequences.
+ This option has no effect on when used with the lite runtime.
+
+
+
+ Gets whether the "java_string_check_utf8" field is set
+
+
+ Clears the value of the "java_string_check_utf8" field
+
+
+ Field number for the "optimize_for" field.
+
+
+ Gets whether the "optimize_for" field is set
+
+
+ Clears the value of the "optimize_for" field
+
+
+ Field number for the "go_package" field.
+
+
+
+ Sets the Go package where structs generated from this .proto will be
+ placed. If omitted, the Go package will be derived from the following:
+ - The basename of the package import path, if provided.
+ - Otherwise, the package statement in the .proto file, if present.
+ - Otherwise, the basename of the .proto file, without extension.
+
+
+
+ Gets whether the "go_package" field is set
+
+
+ Clears the value of the "go_package" field
+
+
+ Field number for the "cc_generic_services" field.
+
+
+
+ Should generic services be generated in each language? "Generic" services
+ are not specific to any particular RPC system. They are generated by the
+ main code generators in each language (without additional plugins).
+ Generic services were the only kind of service generation supported by
+ early versions of google.protobuf.
+
+ Generic services are now considered deprecated in favor of using plugins
+ that generate code specific to your particular RPC system. Therefore,
+ these default to false. Old code which depends on generic services should
+ explicitly set them to true.
+
+
+
+ Gets whether the "cc_generic_services" field is set
+
+
+ Clears the value of the "cc_generic_services" field
+
+
+ Field number for the "java_generic_services" field.
+
+
+ Gets whether the "java_generic_services" field is set
+
+
+ Clears the value of the "java_generic_services" field
+
+
+ Field number for the "py_generic_services" field.
+
+
+ Gets whether the "py_generic_services" field is set
+
+
+ Clears the value of the "py_generic_services" field
+
+
+ Field number for the "php_generic_services" field.
+
+
+ Gets whether the "php_generic_services" field is set
+
+
+ Clears the value of the "php_generic_services" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this file deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for everything in the file, or it will be completely ignored; in the very
+ least, this is a formalization for deprecating files.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "cc_enable_arenas" field.
+
+
+
+ Enables the use of arenas for the proto messages in this file. This applies
+ only to generated classes for C++.
+
+
+
+ Gets whether the "cc_enable_arenas" field is set
+
+
+ Clears the value of the "cc_enable_arenas" field
+
+
+ Field number for the "objc_class_prefix" field.
+
+
+
+ Sets the objective c class prefix which is prepended to all objective c
+ generated classes from this .proto. There is no default.
+
+
+
+ Gets whether the "objc_class_prefix" field is set
+
+
+ Clears the value of the "objc_class_prefix" field
+
+
+ Field number for the "csharp_namespace" field.
+
+
+
+ Namespace for generated classes; defaults to the package.
+
+
+
+ Gets whether the "csharp_namespace" field is set
+
+
+ Clears the value of the "csharp_namespace" field
+
+
+ Field number for the "swift_prefix" field.
+
+
+
+ By default Swift generators will take the proto package and CamelCase it
+ replacing '.' with underscore and use that to prefix the types/symbols
+ defined. When this options is provided, they will use this value instead
+ to prefix the types/symbols defined.
+
+
+
+ Gets whether the "swift_prefix" field is set
+
+
+ Clears the value of the "swift_prefix" field
+
+
+ Field number for the "php_class_prefix" field.
+
+
+
+ Sets the php class prefix which is prepended to all php generated classes
+ from this .proto. Default is empty.
+
+
+
+ Gets whether the "php_class_prefix" field is set
+
+
+ Clears the value of the "php_class_prefix" field
+
+
+ Field number for the "php_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated classes. Default
+ is empty. When this option is empty, the package name will be used for
+ determining the namespace.
+
+
+
+ Gets whether the "php_namespace" field is set
+
+
+ Clears the value of the "php_namespace" field
+
+
+ Field number for the "php_metadata_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated metadata classes.
+ Default is empty. When this option is empty, the proto file name will be
+ used for determining the namespace.
+
+
+
+ Gets whether the "php_metadata_namespace" field is set
+
+
+ Clears the value of the "php_metadata_namespace" field
+
+
+ Field number for the "ruby_package" field.
+
+
+
+ Use this option to change the package of ruby generated classes. Default
+ is empty. When this option is not set, the package name will be used for
+ determining the ruby package.
+
+
+
+ Gets whether the "ruby_package" field is set
+
+
+ Clears the value of the "ruby_package" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here.
+ See the documentation for the "Options" section above.
+
+
+
+ Container for nested types declared in the FileOptions message type.
+
+
+
+ Generated classes can be optimized for speed or code size.
+
+
+
+
+ Generate complete code for parsing, serialization,
+
+
+
+
+ etc.
+
+
+
+
+ Generate code using MessageLite and the lite runtime.
+
+
+
+ Field number for the "message_set_wire_format" field.
+
+
+
+ Set true to use the old proto1 MessageSet wire format for extensions.
+ This is provided for backwards-compatibility with the MessageSet wire
+ format. You should not use this for any other reason: It's less
+ efficient, has fewer features, and is more complicated.
+
+ The message must be defined exactly as follows:
+ message Foo {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+ }
+ Note that the message cannot have any defined fields; MessageSets only
+ have extensions.
+
+ All extensions of your type must be singular messages; e.g. they cannot
+ be int32s, enums, or repeated messages.
+
+ Because this is an option, the above two restrictions are not enforced by
+ the protocol compiler.
+
+
+
+ Gets whether the "message_set_wire_format" field is set
+
+
+ Clears the value of the "message_set_wire_format" field
+
+
+ Field number for the "no_standard_descriptor_accessor" field.
+
+
+
+ Disables the generation of the standard "descriptor()" accessor, which can
+ conflict with a field of the same name. This is meant to make migration
+ from proto1 easier; new code should avoid fields named "descriptor".
+
+
+
+ Gets whether the "no_standard_descriptor_accessor" field is set
+
+
+ Clears the value of the "no_standard_descriptor_accessor" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this message deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the message, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating messages.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "map_entry" field.
+
+
+
+ Whether the message is an automatically generated map entry type for the
+ maps field.
+
+ For maps fields:
+ map<KeyType, ValueType> map_field = 1;
+ The parsed descriptor looks like:
+ message MapFieldEntry {
+ option map_entry = true;
+ optional KeyType key = 1;
+ optional ValueType value = 2;
+ }
+ repeated MapFieldEntry map_field = 1;
+
+ Implementations may choose not to generate the map_entry=true message, but
+ use a native map in the target language to hold the keys and values.
+ The reflection APIs in such implementations still need to work as
+ if the field is a repeated message field.
+
+ NOTE: Do not set the option in .proto files. Always use the maps syntax
+ instead. The option should only be implicitly set by the proto compiler
+ parser.
+
+
+
+ Gets whether the "map_entry" field is set
+
+
+ Clears the value of the "map_entry" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "ctype" field.
+
+
+
+ The ctype option instructs the C++ code generator to use a different
+ representation of the field than it normally would. See the specific
+ options below. This option is not yet implemented in the open source
+ release -- sorry, we'll try to include it in a future version!
+
+
+
+ Gets whether the "ctype" field is set
+
+
+ Clears the value of the "ctype" field
+
+
+ Field number for the "packed" field.
+
+
+
+ The packed option can be enabled for repeated primitive fields to enable
+ a more efficient representation on the wire. Rather than repeatedly
+ writing the tag and type for each element, the entire array is encoded as
+ a single length-delimited blob. In proto3, only explicit setting it to
+ false will avoid using packed encoding.
+
+
+
+ Gets whether the "packed" field is set
+
+
+ Clears the value of the "packed" field
+
+
+ Field number for the "jstype" field.
+
+
+
+ The jstype option determines the JavaScript type used for values of the
+ field. The option is permitted only for 64 bit integral and fixed types
+ (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
+ is represented as JavaScript string, which avoids loss of precision that
+ can happen when a large value is converted to a floating point JavaScript.
+ Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
+ use the JavaScript "number" type. The behavior of the default option
+ JS_NORMAL is implementation dependent.
+
+ This option is an enum to permit additional types to be added, e.g.
+ goog.math.Integer.
+
+
+
+ Gets whether the "jstype" field is set
+
+
+ Clears the value of the "jstype" field
+
+
+ Field number for the "lazy" field.
+
+
+
+ Should this field be parsed lazily? Lazy applies only to message-type
+ fields. It means that when the outer message is initially parsed, the
+ inner message's contents will not be parsed but instead stored in encoded
+ form. The inner message will actually be parsed when it is first accessed.
+
+ This is only a hint. Implementations are free to choose whether to use
+ eager or lazy parsing regardless of the value of this option. However,
+ setting this option true suggests that the protocol author believes that
+ using lazy parsing on this field is worth the additional bookkeeping
+ overhead typically needed to implement it.
+
+ This option does not affect the public interface of any generated code;
+ all method signatures remain the same. Furthermore, thread-safety of the
+ interface is not affected by this option; const methods remain safe to
+ call from multiple threads concurrently, while non-const methods continue
+ to require exclusive access.
+
+ Note that implementations may choose not to check required fields within
+ a lazy sub-message. That is, calling IsInitialized() on the outer message
+ may return true even if the inner message has missing required fields.
+ This is necessary because otherwise the inner message would have to be
+ parsed in order to perform the check, defeating the purpose of lazy
+ parsing. An implementation which chooses not to check required fields
+ must be consistent about it. That is, for any particular sub-message, the
+ implementation must either *always* check its required fields, or *never*
+ check its required fields, regardless of whether or not the message has
+ been parsed.
+
+ As of 2021, lazy does no correctness checks on the byte stream during
+ parsing. This may lead to crashes if and when an invalid byte stream is
+ finally parsed upon access.
+
+ TODO(b/211906113): Enable validation on lazy fields.
+
+
+
+ Gets whether the "lazy" field is set
+
+
+ Clears the value of the "lazy" field
+
+
+ Field number for the "unverified_lazy" field.
+
+
+
+ unverified_lazy does no correctness checks on the byte stream. This should
+ only be used where lazy with verification is prohibitive for performance
+ reasons.
+
+
+
+ Gets whether the "unverified_lazy" field is set
+
+
+ Clears the value of the "unverified_lazy" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this field deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for accessors, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating fields.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "weak" field.
+
+
+
+ For Google-internal migration only. Do not use.
+
+
+
+ Gets whether the "weak" field is set
+
+
+ Clears the value of the "weak" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the FieldOptions message type.
+
+
+
+ Default mode.
+
+
+
+
+ Use the default type.
+
+
+
+
+ Use JavaScript strings.
+
+
+
+
+ Use JavaScript numbers.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "allow_alias" field.
+
+
+
+ Set this option to true to allow mapping different tag names to the same
+ value.
+
+
+
+ Gets whether the "allow_alias" field is set
+
+
+ Clears the value of the "allow_alias" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating enums.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum value deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum value, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating enum values.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this service deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the service, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating services.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this method deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the method, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating methods.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "idempotency_level" field.
+
+
+ Gets whether the "idempotency_level" field is set
+
+
+ Clears the value of the "idempotency_level" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the MethodOptions message type.
+
+
+
+ Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
+ or neither? HTTP based RPC implementation may choose GET verb for safe
+ methods, and PUT verb for idempotent methods instead of the default POST.
+
+
+
+
+ implies idempotent
+
+
+
+
+ idempotent, but may have side effects
+
+
+
+
+ A message representing a option the parser does not recognize. This only
+ appears in options protos created by the compiler::Parser class.
+ DescriptorPool resolves these when building Descriptor objects. Therefore,
+ options protos in descriptor objects (e.g. returned by Descriptor::options(),
+ or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
+ in them.
+
+
+
+ Field number for the "name" field.
+
+
+ Field number for the "identifier_value" field.
+
+
+
+ The value of the uninterpreted option, in whatever type the tokenizer
+ identified it as during parsing. Exactly one of these should be set.
+
+
+
+ Gets whether the "identifier_value" field is set
+
+
+ Clears the value of the "identifier_value" field
+
+
+ Field number for the "positive_int_value" field.
+
+
+ Gets whether the "positive_int_value" field is set
+
+
+ Clears the value of the "positive_int_value" field
+
+
+ Field number for the "negative_int_value" field.
+
+
+ Gets whether the "negative_int_value" field is set
+
+
+ Clears the value of the "negative_int_value" field
+
+
+ Field number for the "double_value" field.
+
+
+ Gets whether the "double_value" field is set
+
+
+ Clears the value of the "double_value" field
+
+
+ Field number for the "string_value" field.
+
+
+ Gets whether the "string_value" field is set
+
+
+ Clears the value of the "string_value" field
+
+
+ Field number for the "aggregate_value" field.
+
+
+ Gets whether the "aggregate_value" field is set
+
+
+ Clears the value of the "aggregate_value" field
+
+
+ Container for nested types declared in the UninterpretedOption message type.
+
+
+
+ The name of the uninterpreted option. Each string represents a segment in
+ a dot-separated name. is_extension is true iff a segment represents an
+ extension (denoted with parentheses in options specs in .proto files).
+ E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
+ "foo.(bar.baz).moo".
+
+
+
+ Field number for the "name_part" field.
+
+
+ Gets whether the "name_part" field is set
+
+
+ Clears the value of the "name_part" field
+
+
+ Field number for the "is_extension" field.
+
+
+ Gets whether the "is_extension" field is set
+
+
+ Clears the value of the "is_extension" field
+
+
+
+ Encapsulates information about the original source file from which a
+ FileDescriptorProto was generated.
+
+
+
+ Field number for the "location" field.
+
+
+
+ A Location identifies a piece of source code in a .proto file which
+ corresponds to a particular definition. This information is intended
+ to be useful to IDEs, code indexers, documentation generators, and similar
+ tools.
+
+ For example, say we have a file like:
+ message Foo {
+ optional string foo = 1;
+ }
+ Let's look at just the field definition:
+ optional string foo = 1;
+ ^ ^^ ^^ ^ ^^^
+ a bc de f ghi
+ We have the following locations:
+ span path represents
+ [a,i) [ 4, 0, 2, 0 ] The whole field definition.
+ [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
+ [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
+ [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
+ [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
+
+ Notes:
+ - A location may refer to a repeated field itself (i.e. not to any
+ particular index within it). This is used whenever a set of elements are
+ logically enclosed in a single code segment. For example, an entire
+ extend block (possibly containing multiple extension definitions) will
+ have an outer location whose path refers to the "extensions" repeated
+ field without an index.
+ - Multiple locations may have the same path. This happens when a single
+ logical declaration is spread out across multiple places. The most
+ obvious example is the "extend" block again -- there may be multiple
+ extend blocks in the same scope, each of which will have the same path.
+ - A location's span is not always a subset of its parent's span. For
+ example, the "extendee" of an extension declaration appears at the
+ beginning of the "extend" block and is shared by all extensions within
+ the block.
+ - Just because a location's span is a subset of some other location's span
+ does not mean that it is a descendant. For example, a "group" defines
+ both a type and a field in a single declaration. Thus, the locations
+ corresponding to the type and field and their components will overlap.
+ - Code which tries to interpret locations should probably be designed to
+ ignore those that it doesn't understand, as more types of locations could
+ be recorded in the future.
+
+
+
+ Container for nested types declared in the SourceCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies which part of the FileDescriptorProto was defined at this
+ location.
+
+ Each element is a field number or an index. They form a path from
+ the root FileDescriptorProto to the place where the definition occurs.
+ For example, this path:
+ [ 4, 3, 2, 7, 1 ]
+ refers to:
+ file.message_type(3) // 4, 3
+ .field(7) // 2, 7
+ .name() // 1
+ This is because FileDescriptorProto.message_type has field number 4:
+ repeated DescriptorProto message_type = 4;
+ and DescriptorProto.field has field number 2:
+ repeated FieldDescriptorProto field = 2;
+ and FieldDescriptorProto.name has field number 1:
+ optional string name = 1;
+
+ Thus, the above path gives the location of a field name. If we removed
+ the last element:
+ [ 4, 3, 2, 7 ]
+ this path refers to the whole field declaration (from the beginning
+ of the label to the terminating semicolon).
+
+
+
+ Field number for the "span" field.
+
+
+
+ Always has exactly three or four elements: start line, start column,
+ end line (optional, otherwise assumed same as start line), end column.
+ These are packed into a single field for efficiency. Note that line
+ and column numbers are zero-based -- typically you will want to add
+ 1 to each before displaying to a user.
+
+
+
+ Field number for the "leading_comments" field.
+
+
+
+ If this SourceCodeInfo represents a complete declaration, these are any
+ comments appearing before and after the declaration which appear to be
+ attached to the declaration.
+
+ A series of line comments appearing on consecutive lines, with no other
+ tokens appearing on those lines, will be treated as a single comment.
+
+ leading_detached_comments will keep paragraphs of comments that appear
+ before (but not connected to) the current element. Each paragraph,
+ separated by empty lines, will be one comment element in the repeated
+ field.
+
+ Only the comment content is provided; comment markers (e.g. //) are
+ stripped out. For block comments, leading whitespace and an asterisk
+ will be stripped from the beginning of each line other than the first.
+ Newlines are included in the output.
+
+ Examples:
+
+ optional int32 foo = 1; // Comment attached to foo.
+ // Comment attached to bar.
+ optional int32 bar = 2;
+
+ optional string baz = 3;
+ // Comment attached to baz.
+ // Another line attached to baz.
+
+ // Comment attached to moo.
+ //
+ // Another line attached to moo.
+ optional double moo = 4;
+
+ // Detached comment for corge. This is not leading or trailing comments
+ // to moo or corge because there are blank lines separating it from
+ // both.
+
+ // Detached comment for corge paragraph 2.
+
+ optional string corge = 5;
+ /* Block comment attached
+ * to corge. Leading asterisks
+ * will be removed. */
+ /* Block comment attached to
+ * grault. */
+ optional int32 grault = 6;
+
+ // ignored detached comments.
+
+
+
+ Gets whether the "leading_comments" field is set
+
+
+ Clears the value of the "leading_comments" field
+
+
+ Field number for the "trailing_comments" field.
+
+
+ Gets whether the "trailing_comments" field is set
+
+
+ Clears the value of the "trailing_comments" field
+
+
+ Field number for the "leading_detached_comments" field.
+
+
+
+ Describes the relationship between generated code and its original source
+ file. A GeneratedCodeInfo message is associated with only one generated
+ source file, but may contain references to different source .proto files.
+
+
+
+ Field number for the "annotation" field.
+
+
+
+ An Annotation connects some span of text in generated code to an element
+ of its generating .proto file.
+
+
+
+ Container for nested types declared in the GeneratedCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies the element in the original source .proto file. This field
+ is formatted the same as SourceCodeInfo.Location.path.
+
+
+
+ Field number for the "source_file" field.
+
+
+
+ Identifies the filesystem path to the original source .proto.
+
+
+
+ Gets whether the "source_file" field is set
+
+
+ Clears the value of the "source_file" field
+
+
+ Field number for the "begin" field.
+
+
+
+ Identifies the starting offset in bytes in the generated code
+ that relates to the identified object.
+
+
+
+ Gets whether the "begin" field is set
+
+
+ Clears the value of the "begin" field
+
+
+ Field number for the "end" field.
+
+
+
+ Identifies the ending offset in bytes in the generated code that
+ relates to the identified offset. The end offset should be one past
+ the last relevant byte (so the length of the text = end - begin).
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Base class for nearly all descriptors, providing common functionality.
+
+
+
+
+ The index of this descriptor within its parent descriptor.
+
+
+ This returns the index of this descriptor within its parent, for
+ this descriptor's type. (There can be duplicate values for different
+ types, e.g. one enum type with index 0 and one message type with index 0.)
+
+
+
+
+ Returns the name of the entity (field, message etc) being described.
+
+
+
+
+ The fully qualified name of the descriptor's target.
+
+
+
+
+ The file this descriptor was declared in.
+
+
+
+
+ The declaration information about the descriptor, or null if no declaration information
+ is available for this descriptor.
+
+
+ This information is typically only available for dynamically loaded descriptors,
+ for example within a protoc plugin where the full descriptors, including source info,
+ are passed to the code by protoc.
+
+
+
+
+ Retrieves the list of nested descriptors corresponding to the given field number, if any.
+ If the field is unknown or not a nested descriptor list, return null to terminate the search.
+ The default implementation returns null.
+
+
+
+
+ Provides additional information about the declaration of a descriptor,
+ such as source location and comments.
+
+
+
+
+ The descriptor this declaration relates to.
+
+
+
+
+ The start line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The start column of the declaration within the source file. This value is 1-based.
+
+
+
+
+ // The end line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The end column of the declaration within the source file. This value is 1-based, and
+ exclusive. (The final character of the declaration is on the column before this value.)
+
+
+
+
+ Comments appearing before the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing after the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing before the declaration, but separated from it by blank
+ lines. Each string represents a newline-separated paragraph of comments.
+ Leading whitespace and the comment marker ("//") are removed from each line.
+ The list is never null, but may be empty. Likewise each element is never null, but may be empty.
+
+
+
+
+ Contains lookup tables containing all the descriptors defined in a particular file.
+
+
+
+
+ Finds a symbol of the given name within the pool.
+
+ The type of symbol to look for
+ Fully-qualified name to look up
+ The symbol with the given name and type,
+ or null if the symbol doesn't exist or has the wrong type
+
+
+
+ Adds a package to the symbol tables. If a package by the same name
+ already exists, that is fine, but if some other kind of symbol
+ exists under the same name, an exception is thrown. If the package
+ has multiple components, this also adds the parent package(s).
+
+
+
+
+ Adds a symbol to the symbol table.
+
+ The symbol already existed
+ in the symbol table.
+
+
+
+ Verifies that the descriptor's name is valid (i.e. it contains
+ only letters, digits and underscores, and does not start with a digit).
+
+
+
+
+
+ Returns the field with the given number in the given descriptor,
+ or null if it can't be found.
+
+
+
+
+ Adds a field to the fieldsByNumber table.
+
+ A field with the same
+ containing type and number already exists.
+
+
+
+ Adds an enum value to the enumValuesByNumber table. If an enum value
+ with the same type and number already exists, this method does nothing.
+ (This is allowed; the first value defined with the number takes precedence.)
+
+
+
+
+ Looks up a descriptor by name, relative to some other descriptor.
+ The name may be fully-qualified (with a leading '.'), partially-qualified,
+ or unqualified. C++-like name lookup semantics are used to search for the
+ matching descriptor.
+
+
+ This isn't heavily optimized, but it's only used during cross linking anyway.
+ If it starts being used more widely, we should look at performance more carefully.
+
+
+
+
+ Internal class containing utility methods when working with descriptors.
+
+
+
+
+ Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
+ arrays.
+
+
+
+
+ Converts the given array into a read-only list, applying the specified conversion to
+ each input element.
+
+
+
+
+ Thrown when building descriptors fails because the source DescriptorProtos
+ are not valid.
+
+
+
+
+ The full name of the descriptor where the error occurred.
+
+
+
+
+ A human-readable description of the error. (The Message property
+ is made up of the descriptor's name and this description.)
+
+
+
+
+ Descriptor for an enum type in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ The CLR type for this enum. For generated code, this will be a CLR enum type.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ An unmodifiable list of defined value descriptors for this enum.
+
+
+
+
+ Finds an enum value by number. If multiple enum values have the
+ same number, this returns the first defined value with that number.
+ If there is no value for the given number, this returns null.
+
+
+
+
+ Finds an enum value by name.
+
+ The unqualified name of the value (e.g. "FOO").
+ The value's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this enum.
+
+
+
+
+ The EnumOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum option for this descriptor
+
+
+
+
+ Gets a repeated value enum option for this descriptor
+
+
+
+
+ Descriptor for a single enum value within an enum in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum value.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum value descriptor.
+
+
+
+ Returns the name of the enum value described by this object.
+
+
+
+
+ Returns the number associated with this enum value.
+
+
+
+
+ Returns the enum descriptor that this value is part of.
+
+
+
+
+ The (possibly empty) set of custom options for this enum value.
+
+
+
+
+ The EnumValueOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum value option for this descriptor
+
+
+
+
+ Gets a repeated value enum value option for this descriptor
+
+
+
+
+ A collection to simplify retrieving the descriptors of extensions in a descriptor for a message
+
+
+
+
+ Returns a readonly list of all the extensions defined in this type in
+ the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in ascending field order
+
+
+
+
+ Base class for field accessors.
+
+
+
+
+ Descriptor for a field or extension within a message in a .proto file.
+
+
+
+
+ Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension.
+
+
+
+
+ Returns the oneof containing this field, or null if it is not part of a oneof.
+
+
+
+
+ Returns the oneof containing this field if it's a "real" oneof, or null if either this
+ field is not part of a oneof, or the oneof is synthetic.
+
+
+
+
+ The effective JSON name for this field. This is usually the lower-camel-cased form of the field name,
+ but can be overridden using the json_name option in the .proto file.
+
+
+
+
+ The name of the property in the ContainingType.ClrType class.
+
+
+
+
+ Indicates whether this field supports presence, either implicitly (e.g. due to it being a message
+ type field) or explicitly via Has/Clear members. If this returns true, it is safe to call
+ and
+ on this field's accessor with a suitable message.
+
+
+
+
+ Returns a clone of the underlying describing this field.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this field descriptor.
+
+
+
+ An extension identifier for this field, or null if this field isn't an extension.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns the accessor for this field.
+
+
+
+ While a describes the field, it does not provide
+ any way of obtaining or changing the value of the field within a specific message;
+ that is the responsibility of the accessor.
+
+
+ In descriptors for generated code, the value returned by this property will be non-null for all
+ regular fields. However, if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, and the value of the map field itself is represented by a dictionary in the
+ reflection API. There are never instances of those "hidden" messages, so no accessor is provided
+ and this property will return null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+
+
+ Maps a field type as included in the .proto file to a FieldType.
+
+
+
+
+ Returns true if this field is a repeated field; false otherwise.
+
+
+
+
+ Returns true if this field is a required field; false otherwise.
+
+
+
+
+ Returns true if this field is a map field; false otherwise.
+
+
+
+
+ Returns true if this field is a packed, repeated field; false otherwise.
+
+
+
+
+ Returns true if this field extends another message type; false otherwise.
+
+
+
+
+ Returns the type of the field.
+
+
+
+
+ Returns the field number declared in the proto file.
+
+
+
+
+ Compares this descriptor with another one, ordering in "canonical" order
+ which simply means ascending order by field number.
+ must be a field of the same type, i.e. the of
+ both fields must be the same.
+
+
+
+
+ For enum fields, returns the field's type.
+
+
+
+
+ For embedded message and group fields, returns the field's type.
+
+
+
+
+ For extension fields, returns the extended type
+
+
+
+
+ The (possibly empty) set of custom options for this field.
+
+
+
+
+ The FieldOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value field option for this descriptor
+
+
+
+
+ Gets a repeated value field option for this descriptor
+
+
+
+
+ Look up and cross-link all field types etc.
+
+
+
+
+ Enumeration of all the possible field types.
+
+
+
+
+ The double field type.
+
+
+
+
+ The float field type.
+
+
+
+
+ The int64 field type.
+
+
+
+
+ The uint64 field type.
+
+
+
+
+ The int32 field type.
+
+
+
+
+ The fixed64 field type.
+
+
+
+
+ The fixed32 field type.
+
+
+
+
+ The bool field type.
+
+
+
+
+ The string field type.
+
+
+
+
+ The field type used for groups.
+
+
+
+
+ The field type used for message fields.
+
+
+
+
+ The bytes field type.
+
+
+
+
+ The uint32 field type.
+
+
+
+
+ The sfixed32 field type.
+
+
+
+
+ The sfixed64 field type.
+
+
+
+
+ The sint32 field type.
+
+
+
+
+ The sint64 field type.
+
+
+
+
+ The field type used for enum fields.
+
+
+
+
+ The syntax of a .proto file
+
+
+
+
+ Proto2 syntax
+
+
+
+
+ Proto3 syntax
+
+
+
+
+ An unknown declared syntax
+
+
+
+
+ Describes a .proto file, including everything defined within.
+ IDescriptor is implemented such that the File property returns this descriptor,
+ and the FullName is the same as the Name.
+
+
+
+
+ Computes the full name of a descriptor within this file, with an optional parent message.
+
+
+
+
+ Extracts public dependencies from direct dependencies. This is a static method despite its
+ first parameter, as the value we're in the middle of constructing is only used for exceptions.
+
+
+
+
+ The descriptor in its protocol message representation.
+
+
+
+
+ Returns a clone of the underlying describing this file.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this file descriptor.
+
+
+
+ The syntax of the file
+
+
+
+
+ The file name.
+
+
+
+
+ The package as declared in the .proto file. This may or may not
+ be equivalent to the .NET namespace of the generated classes.
+
+
+
+
+ Unmodifiable list of top-level message types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level enum types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level services declared in this file.
+
+
+
+
+ Unmodifiable list of top-level extensions declared in this file.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if this descriptor was generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ Unmodifiable list of this file's dependencies (imports).
+
+
+
+
+ Unmodifiable list of this file's public dependencies (public imports).
+
+
+
+
+ The original serialized binary form of this descriptor.
+
+
+
+
+ Implementation of IDescriptor.FullName - just returns the same as Name.
+
+
+
+
+ Implementation of IDescriptor.File - just returns this descriptor.
+
+
+
+
+ Pool containing symbol descriptors.
+
+
+
+
+ Finds a type (message, enum, service or extension) in the file by name. Does not find nested types.
+
+ The unqualified type name to look for.
+ The type of descriptor to look for
+ The type's descriptor, or null if not found.
+
+
+
+ Builds a FileDescriptor from its protocol buffer representation.
+
+ The original serialized descriptor data.
+ We have only limited proto2 support, so serializing FileDescriptorProto
+ would not necessarily give us this.
+ The protocol message form of the FileDescriptor.
+ FileDescriptors corresponding to all of the
+ file's dependencies, in the exact order listed in the .proto file. May be null,
+ in which case it is treated as an empty array.
+ Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).
+ Details about generated code, for the purposes of reflection.
+ If is not
+ a valid descriptor. This can occur for a number of reasons, such as a field
+ having an undefined type or because two messages were defined with the same name.
+
+
+
+ Creates a descriptor for generated code.
+
+
+ This method is only designed to be used by the results of generating code with protoc,
+ which creates the appropriate dependencies etc. It has to be public because the generated
+ code is "external", but should not be called directly by end users.
+
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The extension registry to use when parsing, or null if no extensions are required.
+ The file descriptors corresponding to .
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The file descriptors corresponding to .
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns the file descriptor for descriptor.proto.
+
+
+ This is used for protos which take a direct dependency on descriptor.proto, typically for
+ annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf
+ runtime for reflection purposes. The messages are internal to the runtime as they would require
+ proto2 semantics for full support, but the file descriptor is available via this property. The
+ C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto.
+
+
+ The file descriptor for descriptor.proto.
+
+
+
+
+ The (possibly empty) set of custom options for this file.
+
+
+
+
+ The FileOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value file option for this descriptor
+
+
+
+
+ Gets a repeated value file option for this descriptor
+
+
+
+
+ Performs initialization for the given generic type argument.
+
+
+ This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated)
+ to make calls into the reflection machinery of this library to express an intention to use that type
+ reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers
+ attempting to determine which generic type arguments need to be handled will spot the code path and act
+ accordingly.
+
+ The type to force initialization for.
+
+
+
+ Extra information provided by generated code when initializing a message or file descriptor.
+ These are constructed as required, and are not long-lived. Hand-written code should
+ never need to use this type.
+
+
+
+
+ Irrelevant for file descriptors; the CLR type for the message for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the parser for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the CLR property names (in message descriptor field order)
+ for fields in the message for message descriptors.
+
+
+
+
+ The extensions defined within this file/message descriptor
+
+
+
+
+ Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order)
+ for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo",
+ there will be a "FooCase" property and a "ClearFoo" method.
+
+
+
+
+ The reflection information for types within this file/message descriptor. Elements may be null
+ if there is no corresponding generated type, e.g. for map entry types.
+
+
+
+
+ The CLR types for enums within this file/message descriptor.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums.
+
+
+
+
+ Interface implemented by all descriptor types.
+
+
+
+
+ Returns the name of the entity (message, field etc) being described.
+
+
+
+
+ Returns the fully-qualified name of the entity being described.
+
+
+
+
+ Returns the descriptor for the .proto file that this entity is part of.
+
+
+
+
+ Allows fields to be reflectively accessed.
+
+
+
+
+ Returns the descriptor associated with this field.
+
+
+
+
+ Clears the field in the specified message. (For repeated fields,
+ this clears the list.)
+
+
+
+
+ Fetches the field value. For repeated values, this will be an
+ implementation. For map values, this will be an
+ implementation.
+
+
+
+
+ Indicates whether the field in the specified message is set.
+ For proto3 fields that aren't explicitly optional, this throws an
+
+
+
+
+ Mutator for single "simple" fields only.
+
+
+ Repeated fields are mutated by fetching the value and manipulating it as a list.
+ Map fields are mutated by fetching the value and manipulating it as a dictionary.
+
+ The field is not a "simple" field.
+
+
+
+ Accessor for map fields.
+
+
+
+
+ Describes a message type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this message.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this message descriptor.
+
+
+
+ The CLR type used to represent message instances from this descriptor.
+
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the type returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ A parser for this message type.
+
+
+
+ As is not generic, this cannot be statically
+ typed to the relevant type, but it should produce objects of a type compatible with .
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. No message parser object is created for
+ such messages, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the parser returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ Returns whether this message is one of the "well known types" which may have runtime/protoc support.
+
+
+
+
+ Returns whether this message is one of the "wrapper types" used for fields which represent primitive values
+ with the addition of presence.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ A collection of fields, which can be retrieved by name or field number.
+
+
+
+
+ An unmodifiable list of extensions defined in this message's scope.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if they are declared in a file generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ An unmodifiable list of this message type's nested types.
+
+
+
+
+ An unmodifiable list of this message type's enum types.
+
+
+
+
+ An unmodifiable list of the "oneof" field collections in this message type.
+ All "real" oneofs (where returns false)
+ come before synthetic ones.
+
+
+
+
+ The number of real "oneof" descriptors in this message type. Every element in
+ with an index less than this will have a property value
+ of false; every element with an index greater than or equal to this will have a
+ property value of true.
+
+
+
+
+ Finds a field by field name.
+
+ The unqualified name of the field (e.g. "foo").
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a field by field number.
+
+ The field number within this message type.
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a nested descriptor by name. The is valid for fields, nested
+ message types, oneofs and enums.
+
+ The unqualified name of the descriptor, e.g. "Foo"
+ The descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this message.
+
+
+
+
+ The MessageOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value message option for this descriptor
+
+
+
+
+ Gets a repeated value message option for this descriptor
+
+
+
+
+ Looks up and cross-links all fields and nested types.
+
+
+
+
+ A collection to simplify retrieving the field accessor for a particular field.
+
+
+
+
+ Returns the fields in the message as an immutable list, in the order in which they
+ are declared in the source .proto file.
+
+
+
+
+ Returns the fields in the message as an immutable list, in ascending field number
+ order. Field numbers need not be contiguous, so there is no direct mapping from the
+ index in the list to the field number; to retrieve a field by field number, it is better
+ to use the indexer.
+
+
+
+
+ Returns a read-only dictionary mapping the field names in this message as they're available
+ in the JSON representation to the field descriptors. For example, a field foo_bar
+ in the message would result two entries, one with a key fooBar and one with a key
+ foo_bar, both referring to the same field.
+
+
+
+
+ Retrieves the descriptor for the field with the given number.
+
+ Number of the field to retrieve the descriptor for
+ The accessor for the given field
+ The message descriptor does not contain a field
+ with the given number
+
+
+
+ Retrieves the descriptor for the field with the given name.
+
+ Name of the field to retrieve the descriptor for
+ The descriptor for the given field
+ The message descriptor does not contain a field
+ with the given name
+
+
+
+ Describes a single method in a service.
+
+
+
+
+ The service this method belongs to.
+
+
+
+
+ The method's input type.
+
+
+
+
+ The method's input type.
+
+
+
+
+ Indicates if client streams multiple requests.
+
+
+
+
+ Indicates if server streams multiple responses.
+
+
+
+
+ The (possibly empty) set of custom options for this method.
+
+
+
+
+ The MethodOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value method option for this descriptor
+
+
+
+
+ Gets a repeated value method option for this descriptor
+
+
+
+
+ Returns a clone of the underlying describing this method.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this method descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Reflection access for a oneof, allowing clear and "get case" actions.
+
+
+
+
+ Gets the descriptor for this oneof.
+
+
+ The descriptor of the oneof.
+
+
+
+
+ Clears the oneof in the specified message.
+
+
+
+
+ Indicates which field in the oneof is set for specified message
+
+
+
+
+ Describes a "oneof" field collection in a message type: a set of
+ fields of which at most one can be set in any particular message.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this oneof.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this oneof descriptor.
+
+
+
+ Gets the message type containing this oneof.
+
+
+ The message type containing this oneof.
+
+
+
+
+ Gets the fields within this oneof, in declaration order.
+
+
+ The fields within this oneof, in declaration order.
+
+
+
+
+ Returns true if this oneof is a synthetic oneof containing a proto3 optional field;
+ false otherwise.
+
+
+
+
+ Gets an accessor for reflective access to the values associated with the oneof
+ in a particular message.
+
+
+
+ In descriptors for generated code, the value returned by this property will always be non-null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+ The accessor used for reflective access.
+
+
+
+
+ The (possibly empty) set of custom options for this oneof.
+
+
+
+
+ The OneofOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value oneof option for this descriptor
+
+
+
+
+ Gets a repeated value oneof option for this descriptor
+
+
+
+
+ Specifies the original name (in the .proto file) of a named element,
+ such as an enum value.
+
+
+
+
+ The name of the element in the .proto file.
+
+
+
+
+ If the name is preferred in the .proto file.
+
+
+
+
+ Constructs a new attribute instance for the given name.
+
+ The name of the element in the .proto file.
+
+
+
+ Represents a package in the symbol table. We use PackageDescriptors
+ just as placeholders so that someone cannot define, say, a message type
+ that has the same name as an existing package.
+
+
+
+
+ The methods in this class are somewhat evil, and should not be tampered with lightly.
+ Basically they allow the creation of relatively weakly typed delegates from MethodInfos
+ which are more strongly typed. They do this by creating an appropriate strongly typed
+ delegate from the MethodInfo, and then calling that within an anonymous method.
+ Mind-bending stuff (at least to your humble narrator) but the resulting delegates are
+ very fast compared with calling Invoke later on.
+
+
+
+
+ Empty Type[] used when calling GetProperty to force property instead of indexer fetching.
+
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to object.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to the specified type. The method is expected
+ to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that
+ means we need some extra work to perform conversions.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ type that declares the method.
+
+ The method to create a delegate for, which must be declared in an IMessage
+ implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of the method.
+
+
+
+
+ Creates a reflection helper for the given type arguments. Currently these are created on demand
+ rather than cached; this will be "busy" when initially loading a message's descriptor, but after that
+ they can be garbage collected. We could cache them by type if that proves to be important, but creating
+ an object is pretty cheap.
+
+
+
+
+ Accessor for repeated fields.
+
+
+
+
+ Describes a service type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this service.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this service descriptor.
+
+
+
+ An unmodifiable list of methods in this service.
+
+
+
+
+ Finds a method by name.
+
+ The unqualified name of the method (e.g. "Foo").
+ The method's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this service.
+
+
+
+
+ The ServiceOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value service option for this descriptor
+
+
+
+
+ Gets a repeated value service option for this descriptor
+
+
+
+
+ Accessor for single fields.
+
+
+
+
+ An immutable registry of types which can be looked up by their full name.
+
+
+
+
+ An empty type registry, containing no types.
+
+
+
+
+ Attempts to find a message descriptor by its full name.
+
+ The full name of the message, which is the dot-separated
+ combination of package, containing messages and message name
+ The message descriptor corresponding to or null
+ if there is no such message descriptor.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ All message types within all the specified files are added to the registry, and
+ the dependencies of the specified files are also added, recursively.
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ The specified message descriptors are only used to identify their file descriptors; the returned registry
+ contains all the types within the file descriptors which contain the specified message descriptors (and
+ the dependencies of those files), not just the specified messages.
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls.
+
+
+
+
+ Abstraction for reading from a stream / read only sequence.
+ Parsing from the buffer is a loop of reading from current buffer / refreshing the buffer once done.
+
+
+
+
+ Initialize an instance with a coded input stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a read only sequence.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Represents a single field in an UnknownFieldSet.
+
+ An UnknownField consists of four lists of values. The lists correspond
+ to the four "wire types" used in the protocol buffer binary format.
+ Normally, only one of the four lists will contain any values, since it
+ is impossible to define a valid message type that declares two different
+ types for the same field number. However, the code is designed to allow
+ for the case where the same unknown field number is encountered using
+ multiple different wire types.
+
+
+
+
+
+ Creates a new UnknownField.
+
+
+
+
+ Checks if two unknown field are equal.
+
+
+
+
+ Get the hash code of the unknown field.
+
+
+
+
+ Serializes the field, including the field number, and writes it to
+
+
+ The unknown field number.
+ The write context to write to.
+
+
+
+ Computes the number of bytes required to encode this field, including field
+ number.
+
+
+
+
+ Merge the values in into this field. For each list
+ of values, 's values are append to the ones in this
+ field.
+
+
+
+
+ Returns a new list containing all of the given specified values from
+ both the and lists.
+ If is null and is null or empty,
+ null is returned. Otherwise, either a new list is created (if
+ is null) or the elements of are added to .
+
+
+
+
+ Adds a varint value.
+
+
+
+
+ Adds a fixed32 value.
+
+
+
+
+ Adds a fixed64 value.
+
+
+
+
+ Adds a length-delimited value.
+
+
+
+
+ Adds to the , creating
+ a new list if is null. The list is returned - either
+ the original reference or the new list.
+
+
+
+
+ Used to keep track of fields which were seen when parsing a protocol message
+ but whose field numbers or types are unrecognized. This most frequently
+ occurs when new fields are added to a message type and then messages containing
+ those fields are read by old software that was built before the new types were
+ added.
+
+ Most users will never need to use this class directly.
+
+
+
+
+ Creates a new UnknownFieldSet.
+
+
+
+
+ Checks whether or not the given field number is present in the set.
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Gets the number of bytes required to encode this set.
+
+
+
+
+ Checks if two unknown field sets are equal.
+
+
+
+
+ Gets the unknown field set's hash code.
+
+
+
+
+ Adds a field to the set. If a field with the same number already exists, it
+ is replaced.
+
+
+
+
+ Parse a single field from and merge it
+ into this set.
+
+ The parse context from which to read the field
+ false if the tag is an "end group" tag, true otherwise
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The coded input stream containing the field
+ The merged UnknownFieldSet
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The parse context from which to read the field
+ The merged UnknownFieldSet
+
+
+
+ Merges the fields from into this set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Created a new UnknownFieldSet to if
+ needed and merges the fields from into the first set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Adds a field to the unknown field set. If a field with the same
+ number already exists, the two are merged.
+
+
+
+
+ Clone an unknown field set from .
+
+
+
+
+ Provides a number of unsafe byte operations to be used by advanced applications with high performance
+ requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose
+ the backing buffer of a to the application.
+
+
+
+ The methods in this class should only be called if it is guaranteed that the buffer backing the
+ will never change! Mutation of a can lead to unexpected
+ and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution!
+
+
+ This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In
+ particular, if the bytes value changes out from under a Protocol Buffer:
+
+
+
+ serialization may throw
+
+
+ serialization may succeed but the wrong bytes may be written out
+
+
+ objects that are normally immutable (such as ByteString) are no longer immutable
+
+
+ hashCode may be incorrect
+
+
+
+
+
+
+ Constructs a new from the given bytes. The bytes are not copied,
+ and must not be modified while the is in use.
+ This API is experimental and subject to change.
+
+
+
+ Holder for reflection information generated from google/protobuf/any.proto
+
+
+ File descriptor for google/protobuf/any.proto
+
+
+
+ `Any` contains an arbitrary serialized protocol buffer message along with a
+ URL that describes the type of the serialized message.
+
+ Protobuf library provides support to pack/unpack Any values in the form
+ of utility functions or additional generated methods of the Any type.
+
+ Example 1: Pack and unpack a message in C++.
+
+ Foo foo = ...;
+ Any any;
+ any.PackFrom(foo);
+ ...
+ if (any.UnpackTo(&foo)) {
+ ...
+ }
+
+ Example 2: Pack and unpack a message in Java.
+
+ Foo foo = ...;
+ Any any = Any.pack(foo);
+ ...
+ if (any.is(Foo.class)) {
+ foo = any.unpack(Foo.class);
+ }
+
+ Example 3: Pack and unpack a message in Python.
+
+ foo = Foo(...)
+ any = Any()
+ any.Pack(foo)
+ ...
+ if any.Is(Foo.DESCRIPTOR):
+ any.Unpack(foo)
+ ...
+
+ Example 4: Pack and unpack a message in Go
+
+ foo := &pb.Foo{...}
+ any, err := anypb.New(foo)
+ if err != nil {
+ ...
+ }
+ ...
+ foo := &pb.Foo{}
+ if err := any.UnmarshalTo(foo); err != nil {
+ ...
+ }
+
+ The pack methods provided by protobuf library will by default use
+ 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ methods only use the fully qualified type name after the last '/'
+ in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ name "y.z".
+
+ JSON
+
+ The JSON representation of an `Any` value uses the regular
+ representation of the deserialized, embedded message, with an
+ additional field `@type` which contains the type URL. Example:
+
+ package google.profile;
+ message Person {
+ string first_name = 1;
+ string last_name = 2;
+ }
+
+ {
+ "@type": "type.googleapis.com/google.profile.Person",
+ "firstName": <string>,
+ "lastName": <string>
+ }
+
+ If the embedded message type is well-known and has a custom JSON
+ representation, that representation will be embedded adding a field
+ `value` which holds the custom JSON in addition to the `@type`
+ field. Example (for message [google.protobuf.Duration][]):
+
+ {
+ "@type": "type.googleapis.com/google.protobuf.Duration",
+ "value": "1.212s"
+ }
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ A URL/resource name that uniquely identifies the type of the serialized
+ protocol buffer message. This string must contain at least
+ one "/" character. The last segment of the URL's path must represent
+ the fully qualified name of the type (as in
+ `path/google.protobuf.Duration`). The name should be in a canonical form
+ (e.g., leading "." is not accepted).
+
+ In practice, teams usually precompile into the binary all types that they
+ expect it to use in the context of Any. However, for URLs which use the
+ scheme `http`, `https`, or no scheme, one can optionally set up a type
+ server that maps type URLs to message definitions as follows:
+
+ * If no scheme is provided, `https` is assumed.
+ * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ value in binary format, or produce an error.
+ * Applications are allowed to cache lookup results based on the
+ URL, or have them precompiled into a binary to avoid any
+ lookup. Therefore, binary compatibility needs to be preserved
+ on changes to types. (Use versioned type names to manage
+ breaking changes.)
+
+ Note: this functionality is not currently available in the official
+ protobuf release, and it is not used for type URLs beginning with
+ type.googleapis.com.
+
+ Schemes other than `http`, `https` (or the empty scheme) might be
+ used with implementation specific semantics.
+
+
+
+ Field number for the "value" field.
+
+
+
+ Must be a valid serialized protocol buffer of the above specified type.
+
+
+
+
+ Retrieves the type name for a type URL, matching the
+ of the packed message type.
+
+
+
+ This is always just the last part of the URL, after the final slash. No validation of
+ anything before the trailing slash is performed. If the type URL does not include a slash,
+ an empty string is returned rather than an exception being thrown; this won't match any types,
+ and the calling code is probably in a better position to give a meaningful error.
+
+
+ There is no handling of fragments or queries at the moment.
+
+
+ The URL to extract the type name from
+ The type name
+
+
+
+ Returns a bool indictating whether this Any message is of the target message type
+
+ The descriptor of the message type
+ true if the type name matches the descriptor's full name or false otherwise
+
+
+
+ Unpacks the content of this Any message into the target message type,
+ which must match the type URL within this Any message.
+
+ The type of message to unpack the content into.
+ The unpacked message.
+ The target message type doesn't match the type URL in this message
+
+
+
+ Attempts to unpack the content of this Any message into the target message type,
+ if it matches the type URL within this Any message.
+
+ The type of message to attempt to unpack the content into.
+ true if the message was successfully unpacked; false if the type name didn't match
+
+
+
+ Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com".
+
+ The message to pack.
+ An Any message with the content and type URL of .
+
+
+
+ Packs the specified message into an Any message using the specified type URL prefix.
+
+ The message to pack.
+ The prefix for the type URL.
+ An Any message with the content and type URL of .
+
+
+ Holder for reflection information generated from google/protobuf/api.proto
+
+
+ File descriptor for google/protobuf/api.proto
+
+
+
+ Api is a light-weight descriptor for an API Interface.
+
+ Interfaces are also described as "protocol buffer services" in some contexts,
+ such as by the "service" keyword in a .proto file, but they are different
+ from API Services, which represent a concrete implementation of an interface
+ as opposed to simply a description of methods and bindings. They are also
+ sometimes simply referred to as "APIs" in other contexts, such as the name of
+ this message itself. See https://cloud.google.com/apis/design/glossary for
+ detailed terminology.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of this interface, including package name
+ followed by the interface's simple name.
+
+
+
+ Field number for the "methods" field.
+
+
+
+ The methods of this interface, in unspecified order.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the interface.
+
+
+
+ Field number for the "version" field.
+
+
+
+ A version string for this interface. If specified, must have the form
+ `major-version.minor-version`, as in `1.10`. If the minor version is
+ omitted, it defaults to zero. If the entire version field is empty, the
+ major version is derived from the package name, as outlined below. If the
+ field is not empty, the version in the package name will be verified to be
+ consistent with what is provided here.
+
+ The versioning schema uses [semantic
+ versioning](http://semver.org) where the major version number
+ indicates a breaking change and the minor version an additive,
+ non-breaking change. Both version numbers are signals to users
+ what to expect from different versions, and should be carefully
+ chosen based on the product plan.
+
+ The major version is also reflected in the package name of the
+ interface, which must end in `v<major-version>`, as in
+ `google.feature.v1`. For major versions 0 and 1, the suffix can
+ be omitted. Zero major versions must only be used for
+ experimental, non-GA interfaces.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ Source context for the protocol buffer service represented by this
+ message.
+
+
+
+ Field number for the "mixins" field.
+
+
+
+ Included interfaces. See [Mixin][].
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of the service.
+
+
+
+
+ Method represents a method of an API interface.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The simple name of this method.
+
+
+
+ Field number for the "request_type_url" field.
+
+
+
+ A URL of the input message type.
+
+
+
+ Field number for the "request_streaming" field.
+
+
+
+ If true, the request is streamed.
+
+
+
+ Field number for the "response_type_url" field.
+
+
+
+ The URL of the output message type.
+
+
+
+ Field number for the "response_streaming" field.
+
+
+
+ If true, the response is streamed.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the method.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of this method.
+
+
+
+
+ Declares an API Interface to be included in this interface. The including
+ interface must redeclare all the methods from the included interface, but
+ documentation and options are inherited as follows:
+
+ - If after comment and whitespace stripping, the documentation
+ string of the redeclared method is empty, it will be inherited
+ from the original method.
+
+ - Each annotation belonging to the service config (http,
+ visibility) which is not set in the redeclared method will be
+ inherited.
+
+ - If an http annotation is inherited, the path pattern will be
+ modified as follows. Any version prefix will be replaced by the
+ version of the including interface plus the [root][] path if
+ specified.
+
+ Example of a simple mixin:
+
+ package google.acl.v1;
+ service AccessControl {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v1/{resource=**}:getAcl";
+ }
+ }
+
+ package google.storage.v2;
+ service Storage {
+ rpc GetAcl(GetAclRequest) returns (Acl);
+
+ // Get a data record.
+ rpc GetData(GetDataRequest) returns (Data) {
+ option (google.api.http).get = "/v2/{resource=**}";
+ }
+ }
+
+ Example of a mixin configuration:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+
+ The mixin construct implies that all methods in `AccessControl` are
+ also declared with same name and request/response types in
+ `Storage`. A documentation generator or annotation processor will
+ see the effective `Storage.GetAcl` method after inheriting
+ documentation and annotations as follows:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+ Note how the version in the path pattern changed from `v1` to `v2`.
+
+ If the `root` field in the mixin is specified, it should be a
+ relative path under which inherited HTTP paths are placed. Example:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+ root: acls
+
+ This implies the following inherited HTTP annotation:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of the interface which is included.
+
+
+
+ Field number for the "root" field.
+
+
+
+ If non-empty specifies a path under which inherited HTTP paths
+ are rooted.
+
+
+
+ Holder for reflection information generated from google/protobuf/duration.proto
+
+
+ File descriptor for google/protobuf/duration.proto
+
+
+
+ A Duration represents a signed, fixed-length span of time represented
+ as a count of seconds and fractions of seconds at nanosecond
+ resolution. It is independent of any calendar and concepts like "day"
+ or "month". It is related to Timestamp in that the difference between
+ two Timestamp values is a Duration and it can be added or subtracted
+ from a Timestamp. Range is approximately +-10,000 years.
+
+ # Examples
+
+ Example 1: Compute Duration from two Timestamps in pseudo code.
+
+ Timestamp start = ...;
+ Timestamp end = ...;
+ Duration duration = ...;
+
+ duration.seconds = end.seconds - start.seconds;
+ duration.nanos = end.nanos - start.nanos;
+
+ if (duration.seconds < 0 && duration.nanos > 0) {
+ duration.seconds += 1;
+ duration.nanos -= 1000000000;
+ } else if (duration.seconds > 0 && duration.nanos < 0) {
+ duration.seconds -= 1;
+ duration.nanos += 1000000000;
+ }
+
+ Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+
+ Timestamp start = ...;
+ Duration duration = ...;
+ Timestamp end = ...;
+
+ end.seconds = start.seconds + duration.seconds;
+ end.nanos = start.nanos + duration.nanos;
+
+ if (end.nanos < 0) {
+ end.seconds -= 1;
+ end.nanos += 1000000000;
+ } else if (end.nanos >= 1000000000) {
+ end.seconds += 1;
+ end.nanos -= 1000000000;
+ }
+
+ Example 3: Compute Duration from datetime.timedelta in Python.
+
+ td = datetime.timedelta(days=3, minutes=10)
+ duration = Duration()
+ duration.FromTimedelta(td)
+
+ # JSON Mapping
+
+ In JSON format, the Duration type is encoded as a string rather than an
+ object, where the string ends in the suffix "s" (indicating seconds) and
+ is preceded by the number of seconds, with nanoseconds expressed as
+ fractional seconds. For example, 3 seconds with 0 nanoseconds should be
+ encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
+ be expressed in JSON format as "3.000000001s", and 3 seconds and 1
+ microsecond should be expressed in JSON format as "3.000001s".
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Signed seconds of the span of time. Must be from -315,576,000,000
+ to +315,576,000,000 inclusive. Note: these bounds are computed from:
+ 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Signed fractions of a second at nanosecond resolution of the span
+ of time. Durations less than one second are represented with a 0
+ `seconds` field and a positive or negative `nanos` field. For durations
+ of one second or more, a non-zero value for the `nanos` field must be
+ of the same sign as the `seconds` field. Must be from -999,999,999
+ to +999,999,999 inclusive.
+
+
+
+
+ The number of nanoseconds in a second.
+
+
+
+
+ The number of nanoseconds in a BCL tick (as used by and ).
+
+
+
+
+ The maximum permitted number of seconds.
+
+
+
+
+ The minimum permitted number of seconds.
+
+
+
+
+ Converts this to a .
+
+ If the duration is not a precise number of ticks, it is truncated towards 0.
+ The value of this duration, as a TimeSpan.
+ This value isn't a valid normalized duration, as
+ described in the documentation.
+
+
+
+ Converts the given to a .
+
+ The TimeSpan to convert.
+ The value of the given TimeSpan, as a Duration.
+
+
+
+ Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes.
+
+ The duration to negate. Must not be null.
+ The negated value of this duration.
+
+
+
+ Adds the two specified values together.
+
+ The first value to add. Must not be null.
+ The second value to add. Must not be null.
+
+
+
+
+ Subtracts one from another.
+
+ The duration to subtract from. Must not be null.
+ The duration to subtract. Must not be null.
+ The difference between the two specified durations.
+
+
+
+ Creates a duration with the normalized values from the given number of seconds and
+ nanoseconds, conforming with the description in the proto file.
+
+
+
+
+ Converts a duration specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in duration.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which
+ case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well
+ as Duration.
+
+
+
+ Holder for reflection information generated from google/protobuf/empty.proto
+
+
+ File descriptor for google/protobuf/empty.proto
+
+
+
+ A generic empty message that you can re-use to avoid defining duplicated
+ empty messages in your APIs. A typical example is to use it as the request
+ or the response type of an API method. For instance:
+
+ service Foo {
+ rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+ }
+
+
+
+ Holder for reflection information generated from google/protobuf/field_mask.proto
+
+
+ File descriptor for google/protobuf/field_mask.proto
+
+
+
+ `FieldMask` represents a set of symbolic field paths, for example:
+
+ paths: "f.a"
+ paths: "f.b.d"
+
+ Here `f` represents a field in some root message, `a` and `b`
+ fields in the message found in `f`, and `d` a field found in the
+ message in `f.b`.
+
+ Field masks are used to specify a subset of fields that should be
+ returned by a get operation or modified by an update operation.
+ Field masks also have a custom JSON encoding (see below).
+
+ # Field Masks in Projections
+
+ When used in the context of a projection, a response message or
+ sub-message is filtered by the API to only contain those fields as
+ specified in the mask. For example, if the mask in the previous
+ example is applied to a response message as follows:
+
+ f {
+ a : 22
+ b {
+ d : 1
+ x : 2
+ }
+ y : 13
+ }
+ z: 8
+
+ The result will not contain specific values for fields x,y and z
+ (their value will be set to the default, and omitted in proto text
+ output):
+
+ f {
+ a : 22
+ b {
+ d : 1
+ }
+ }
+
+ A repeated field is not allowed except at the last position of a
+ paths string.
+
+ If a FieldMask object is not present in a get operation, the
+ operation applies to all fields (as if a FieldMask of all fields
+ had been specified).
+
+ Note that a field mask does not necessarily apply to the
+ top-level response message. In case of a REST get operation, the
+ field mask applies directly to the response, but in case of a REST
+ list operation, the mask instead applies to each individual message
+ in the returned resource list. In case of a REST custom method,
+ other definitions may be used. Where the mask applies will be
+ clearly documented together with its declaration in the API. In
+ any case, the effect on the returned resource/resources is required
+ behavior for APIs.
+
+ # Field Masks in Update Operations
+
+ A field mask in update operations specifies which fields of the
+ targeted resource are going to be updated. The API is required
+ to only change the values of the fields as specified in the mask
+ and leave the others untouched. If a resource is passed in to
+ describe the updated values, the API ignores the values of all
+ fields not covered by the mask.
+
+ If a repeated field is specified for an update operation, new values will
+ be appended to the existing repeated field in the target resource. Note that
+ a repeated field is only allowed in the last position of a `paths` string.
+
+ If a sub-message is specified in the last position of the field mask for an
+ update operation, then new value will be merged into the existing sub-message
+ in the target resource.
+
+ For example, given the target message:
+
+ f {
+ b {
+ d: 1
+ x: 2
+ }
+ c: [1]
+ }
+
+ And an update message:
+
+ f {
+ b {
+ d: 10
+ }
+ c: [2]
+ }
+
+ then if the field mask is:
+
+ paths: ["f.b", "f.c"]
+
+ then the result will be:
+
+ f {
+ b {
+ d: 10
+ x: 2
+ }
+ c: [1, 2]
+ }
+
+ An implementation may provide options to override this default behavior for
+ repeated and message fields.
+
+ In order to reset a field's value to the default, the field must
+ be in the mask and set to the default value in the provided resource.
+ Hence, in order to reset all fields of a resource, provide a default
+ instance of the resource and set all fields in the mask, or do
+ not provide a mask as described below.
+
+ If a field mask is not present on update, the operation applies to
+ all fields (as if a field mask of all fields has been specified).
+ Note that in the presence of schema evolution, this may mean that
+ fields the client does not know and has therefore not filled into
+ the request will be reset to their default. If this is unwanted
+ behavior, a specific service may require a client to always specify
+ a field mask, producing an error if not.
+
+ As with get operations, the location of the resource which
+ describes the updated values in the request message depends on the
+ operation kind. In any case, the effect of the field mask is
+ required to be honored by the API.
+
+ ## Considerations for HTTP REST
+
+ The HTTP kind of an update operation which uses a field mask must
+ be set to PATCH instead of PUT in order to satisfy HTTP semantics
+ (PUT must only be used for full updates).
+
+ # JSON Encoding of Field Masks
+
+ In JSON, a field mask is encoded as a single string where paths are
+ separated by a comma. Fields name in each path are converted
+ to/from lower-camel naming conventions.
+
+ As an example, consider the following message declarations:
+
+ message Profile {
+ User user = 1;
+ Photo photo = 2;
+ }
+ message User {
+ string display_name = 1;
+ string address = 2;
+ }
+
+ In proto a field mask for `Profile` may look as such:
+
+ mask {
+ paths: "user.display_name"
+ paths: "photo"
+ }
+
+ In JSON, the same mask is represented as below:
+
+ {
+ mask: "user.displayName,photo"
+ }
+
+ # Field Masks and Oneof Fields
+
+ Field masks treat fields in oneofs just as regular fields. Consider the
+ following message:
+
+ message SampleMessage {
+ oneof test_oneof {
+ string name = 4;
+ SubMessage sub_message = 9;
+ }
+ }
+
+ The field mask can be:
+
+ mask {
+ paths: "name"
+ }
+
+ Or:
+
+ mask {
+ paths: "sub_message"
+ }
+
+ Note that oneof type names ("test_oneof" in this case) cannot be used in
+ paths.
+
+ ## Field Mask Verification
+
+ The implementation of any API method which has a FieldMask type field in the
+ request should verify the included field paths, and return an
+ `INVALID_ARGUMENT` error if any path is unmappable.
+
+
+
+ Field number for the "paths" field.
+
+
+
+ The set of field mask paths.
+
+
+
+
+ Converts a field mask specified by paths to a string.
+
+
+ If the value is a normalized duration in the range described in field_mask.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Paths in the field mask
+ Determines the handling of non-normalized values
+ The represented field mask is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Parses from a string to a FieldMask.
+
+
+
+
+ Parses from a string to a FieldMask and validates all field paths.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask for a list of field paths in a certain type.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether the given path is valid for a field mask.
+
+ true if the path is valid; false otherwise
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Checks whether a given field path is valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Converts this FieldMask to its canonical form. In the canonical form of a
+ FieldMask, all field paths are sorted alphabetically and redundant field
+ paths are removed.
+
+
+
+
+ Creates a union of two or more FieldMasks.
+
+
+
+
+ Calculates the intersection of two FieldMasks.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another with the
+ specified merge options.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another.
+
+
+
+
+ Options to customize merging behavior.
+
+
+
+
+ Whether to replace message fields(i.e., discard existing content in
+ destination message fields) when merging.
+ Default behavior is to merge the source message field into the
+ destination message field.
+
+
+
+
+ Whether to replace repeated fields (i.e., discard existing content in
+ destination repeated fields) when merging.
+ Default behavior is to append elements from source repeated field to the
+ destination repeated field.
+
+
+
+
+ Whether to replace primitive (non-repeated and non-message) fields in
+ destination message fields with the source primitive fields (i.e., if the
+ field is set in the source, the value is copied to the
+ destination; if the field is unset in the source, the field is cleared
+ from the destination) when merging.
+
+ Default behavior is to always set the value of the source primitive
+ field to the destination primitive field, and if the source field is
+ unset, the default value of the source field is copied to the
+ destination.
+
+
+
+ Holder for reflection information generated from google/protobuf/source_context.proto
+
+
+ File descriptor for google/protobuf/source_context.proto
+
+
+
+ `SourceContext` represents information about the source of a
+ protobuf element, like the file in which it is defined.
+
+
+
+ Field number for the "file_name" field.
+
+
+
+ The path-qualified name of the .proto file that contained the associated
+ protobuf element. For example: `"google/protobuf/source_context.proto"`.
+
+
+
+ Holder for reflection information generated from google/protobuf/struct.proto
+
+
+ File descriptor for google/protobuf/struct.proto
+
+
+
+ `NullValue` is a singleton enumeration to represent the null value for the
+ `Value` type union.
+
+ The JSON representation for `NullValue` is JSON `null`.
+
+
+
+
+ Null value.
+
+
+
+
+ `Struct` represents a structured data value, consisting of fields
+ which map to dynamically typed values. In some languages, `Struct`
+ might be supported by a native representation. For example, in
+ scripting languages like JS a struct is represented as an
+ object. The details of that representation are described together
+ with the proto support for the language.
+
+ The JSON representation for `Struct` is JSON object.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ Unordered map of dynamically typed values.
+
+
+
+
+ `Value` represents a dynamically typed value which can be either
+ null, a number, a string, a boolean, a recursive struct value, or a
+ list of values. A producer of value is expected to set one of these
+ variants. Absence of any variant indicates an error.
+
+ The JSON representation for `Value` is JSON value.
+
+
+
+ Field number for the "null_value" field.
+
+
+
+ Represents a null value.
+
+
+
+ Field number for the "number_value" field.
+
+
+
+ Represents a double value.
+
+
+
+ Field number for the "string_value" field.
+
+
+
+ Represents a string value.
+
+
+
+ Field number for the "bool_value" field.
+
+
+
+ Represents a boolean value.
+
+
+
+ Field number for the "struct_value" field.
+
+
+
+ Represents a structured value.
+
+
+
+ Field number for the "list_value" field.
+
+
+
+ Represents a repeated `Value`.
+
+
+
+ Enum of possible cases for the "kind" oneof.
+
+
+
+ Convenience method to create a Value message with a string value.
+
+ Value to set for the StringValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a number value.
+
+ Value to set for the NumberValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a Boolean value.
+
+ Value to set for the BoolValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a null initial value.
+
+ A newly-created Value message a null initial value.
+
+
+
+ Convenience method to create a Value message with an initial list of values.
+
+ The values provided are not cloned; the references are copied directly.
+ A newly-created Value message an initial list value.
+
+
+
+ Convenience method to create a Value message with an initial struct value
+
+ The value provided is not cloned; the reference is copied directly.
+ A newly-created Value message an initial struct value.
+
+
+
+ `ListValue` is a wrapper around a repeated field of values.
+
+ The JSON representation for `ListValue` is JSON array.
+
+
+
+ Field number for the "values" field.
+
+
+
+ Repeated field of dynamically typed values.
+
+
+
+
+ Extension methods on BCL time-related types, converting to protobuf types.
+
+
+
+
+ Converts the given to a .
+
+ The date and time to convert to a timestamp.
+ The value has a other than Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts the given to a .
+
+ The time span to convert.
+ The converted duration.
+
+
+ Holder for reflection information generated from google/protobuf/timestamp.proto
+
+
+ File descriptor for google/protobuf/timestamp.proto
+
+
+
+ A Timestamp represents a point in time independent of any time zone or local
+ calendar, encoded as a count of seconds and fractions of seconds at
+ nanosecond resolution. The count is relative to an epoch at UTC midnight on
+ January 1, 1970, in the proleptic Gregorian calendar which extends the
+ Gregorian calendar backwards to year one.
+
+ All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+ second table is needed for interpretation, using a [24-hour linear
+ smear](https://developers.google.com/time/smear).
+
+ The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+ restricting to that range, we ensure that we can convert to and from [RFC
+ 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+
+ # Examples
+
+ Example 1: Compute Timestamp from POSIX `time()`.
+
+ Timestamp timestamp;
+ timestamp.set_seconds(time(NULL));
+ timestamp.set_nanos(0);
+
+ Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+
+ Timestamp timestamp;
+ timestamp.set_seconds(tv.tv_sec);
+ timestamp.set_nanos(tv.tv_usec * 1000);
+
+ Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+
+ // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ Timestamp timestamp;
+ timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+
+ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+
+ long millis = System.currentTimeMillis();
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ .setNanos((int) ((millis % 1000) * 1000000)).build();
+
+ Example 5: Compute Timestamp from Java `Instant.now()`.
+
+ Instant now = Instant.now();
+
+ Timestamp timestamp =
+ Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+ .setNanos(now.getNano()).build();
+
+ Example 6: Compute Timestamp from current time in Python.
+
+ timestamp = Timestamp()
+ timestamp.GetCurrentTime()
+
+ # JSON Mapping
+
+ In JSON format, the Timestamp type is encoded as a string in the
+ [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+ format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+ where {year} is always expressed using four digits while {month}, {day},
+ {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+ seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+ are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+ is required. A proto3 JSON serializer should always use UTC (as indicated by
+ "Z") when printing the Timestamp type and a proto3 JSON parser should be
+ able to accept both UTC and other timezones (as indicated by an offset).
+
+ For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+ 01:30 UTC on January 15, 2017.
+
+ In JavaScript, one can convert a Date object to this format using the
+ standard
+ [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ method. In Python, a standard `datetime.datetime` object can be converted
+ to this format using
+ [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
+ ) to obtain a formatter capable of generating timestamps in this format.
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Represents seconds of UTC time since Unix epoch
+ 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+ 9999-12-31T23:59:59Z inclusive.
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Non-negative fractions of a second at nanosecond resolution. Negative
+ second values with fractions must still have non-negative nanos values
+ that count forward in time. Must be from 0 to 999,999,999
+ inclusive.
+
+
+
+
+ Returns the difference between one and another, as a .
+
+ The timestamp to subtract from. Must not be null.
+ The timestamp to subtract. Must not be null.
+ The difference between the two specified timestamps.
+
+
+
+ Adds a to a , to obtain another Timestamp.
+
+ The timestamp to add the duration to. Must not be null.
+ The duration to add. Must not be null.
+ The result of adding the duration to the timestamp.
+
+
+
+ Subtracts a from a , to obtain another Timestamp.
+
+ The timestamp to subtract the duration from. Must not be null.
+ The duration to subtract.
+ The result of subtracting the duration from the timestamp.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTime will always have a Kind of Utc.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTime.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTimeOffset will always have an Offset of zero.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTimeOffset.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts the specified to a .
+
+
+ The Kind of is not DateTimeKind.Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts a timestamp specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in timestamp.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+ Timestamp to compare
+ an integer indicating whether this timestamp precedes or follows the other
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Returns whether two timestamps are equivalent
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps refer to the same nanosecond
+
+
+
+ Returns whether two timestamps differ
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps differ
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+ Holder for reflection information generated from google/protobuf/type.proto
+
+
+ File descriptor for google/protobuf/type.proto
+
+
+
+ The syntax in which a protocol buffer element is defined.
+
+
+
+
+ Syntax `proto2`.
+
+
+
+
+ Syntax `proto3`.
+
+
+
+
+ A protocol buffer message type.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified message name.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ The list of fields.
+
+
+
+ Field number for the "oneofs" field.
+
+
+
+ The list of types appearing in `oneof` definitions in this type.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ A single field of a message type.
+
+
+
+ Field number for the "kind" field.
+
+
+
+ The field type.
+
+
+
+ Field number for the "cardinality" field.
+
+
+
+ The field cardinality.
+
+
+
+ Field number for the "number" field.
+
+
+
+ The field number.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The field name.
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ The field type URL, without the scheme, for message or enumeration
+ types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ The index of the field type in `Type.oneofs`, for message or enumeration
+ types. The first type has index 1; zero means the type is not in the list.
+
+
+
+ Field number for the "packed" field.
+
+
+
+ Whether to use alternative packed wire representation.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "json_name" field.
+
+
+
+ The field JSON name.
+
+
+
+ Field number for the "default_value" field.
+
+
+
+ The string value of the default value of this field. Proto2 syntax only.
+
+
+
+ Container for nested types declared in the Field message type.
+
+
+
+ Basic field types.
+
+
+
+
+ Field type unknown.
+
+
+
+
+ Field type double.
+
+
+
+
+ Field type float.
+
+
+
+
+ Field type int64.
+
+
+
+
+ Field type uint64.
+
+
+
+
+ Field type int32.
+
+
+
+
+ Field type fixed64.
+
+
+
+
+ Field type fixed32.
+
+
+
+
+ Field type bool.
+
+
+
+
+ Field type string.
+
+
+
+
+ Field type group. Proto2 syntax only, and deprecated.
+
+
+
+
+ Field type message.
+
+
+
+
+ Field type bytes.
+
+
+
+
+ Field type uint32.
+
+
+
+
+ Field type enum.
+
+
+
+
+ Field type sfixed32.
+
+
+
+
+ Field type sfixed64.
+
+
+
+
+ Field type sint32.
+
+
+
+
+ Field type sint64.
+
+
+
+
+ Whether a field is optional, required, or repeated.
+
+
+
+
+ For fields with unknown cardinality.
+
+
+
+
+ For optional fields.
+
+
+
+
+ For required fields. Proto2 syntax only.
+
+
+
+
+ For repeated fields.
+
+
+
+
+ Enum type definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum type name.
+
+
+
+ Field number for the "enumvalue" field.
+
+
+
+ Enum value definitions.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+
+ Enum value definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum value name.
+
+
+
+ Field number for the "number" field.
+
+
+
+ Enum value number.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+
+ A protocol buffer option, which can be attached to a message, field,
+ enumeration, etc.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The option's name. For protobuf built-in options (options defined in
+ descriptor.proto), this is the short name. For example, `"map_entry"`.
+ For custom options, it should be the fully-qualified name. For example,
+ `"google.api.http"`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The option's value packed in an Any message. If the value is a primitive,
+ the corresponding wrapper type defined in google/protobuf/wrappers.proto
+ should be used. If the value is an enum, it should be stored as an int32
+ value using the google.protobuf.Int32Value type.
+
+
+
+ Holder for reflection information generated from google/protobuf/wrappers.proto
+
+
+ File descriptor for google/protobuf/wrappers.proto
+
+
+
+ Field number for the single "value" field in all wrapper types.
+
+
+
+
+ Wrapper message for `double`.
+
+ The JSON representation for `DoubleValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The double value.
+
+
+
+
+ Wrapper message for `float`.
+
+ The JSON representation for `FloatValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The float value.
+
+
+
+
+ Wrapper message for `int64`.
+
+ The JSON representation for `Int64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int64 value.
+
+
+
+
+ Wrapper message for `uint64`.
+
+ The JSON representation for `UInt64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint64 value.
+
+
+
+
+ Wrapper message for `int32`.
+
+ The JSON representation for `Int32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int32 value.
+
+
+
+
+ Wrapper message for `uint32`.
+
+ The JSON representation for `UInt32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint32 value.
+
+
+
+
+ Wrapper message for `bool`.
+
+ The JSON representation for `BoolValue` is JSON `true` and `false`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bool value.
+
+
+
+
+ Wrapper message for `string`.
+
+ The JSON representation for `StringValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The string value.
+
+
+
+
+ Wrapper message for `bytes`.
+
+ The JSON representation for `BytesValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bytes value.
+
+
+
+
+ This class is used internally by the Protocol Buffer Library and generated
+ message implementations. It is public only for the sake of those generated
+ messages. Others should not use this class directly.
+
+ This class contains constants and helper functions useful for dealing with
+ the Protocol Buffer wire format.
+
+
+
+
+
+ Wire types within protobuf encoding.
+
+
+
+
+ Variable-length integer.
+
+
+
+
+ A fixed-length 64-bit value.
+
+
+
+
+ A length-delimited value, i.e. a length followed by that many bytes of data.
+
+
+
+
+ A "start group" value
+
+
+
+
+ An "end group" value
+
+
+
+
+ A fixed-length 32-bit value.
+
+
+
+
+ Given a tag value, determines the wire type (lower 3 bits).
+
+
+
+
+ Given a tag value, determines the field number (the upper 29 bits).
+
+
+
+
+ Makes a tag value given a field number and wire type.
+
+
+
+
+ Abstraction for writing to a steam / IBufferWriter
+
+
+
+
+ Initialize an instance with a coded output stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer writer.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer represented by a single span (i.e. buffer cannot be refreshed)
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Verifies that SpaceLeft returns zero.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ An opaque struct that represents the current serialization state and is passed along
+ as the serialization proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Creates a WriteContext instance from CodedOutputStream.
+ WARNING: internally this copies the CodedOutputStream's state, so after done with the WriteContext,
+ the CodedOutputStream's state needs to be updated.
+
+
+
+
+ Writes a double field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Primitives for encoding protobuf wire format.
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Given a QWORD which represents a buffer of 4 ASCII chars in machine-endian order,
+ narrows each WORD to a BYTE, then writes the 4-byte result to the output buffer
+ also in machine-endian order.
+
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Encodes and writes a tag.
+
+
+
+
+ Writes an already-encoded tag.
+
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+
+
+
+ Encode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Encode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Writing messages / groups.
+
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+
+
+
+ Writes a group, without a tag.
+
+
+
+
+ Writes a message, without a tag.
+ Message will be written without a length prefix.
+
+
+
+
+ Indicates that certain members on a specified are accessed dynamically,
+ for example through .
+
+
+ This allows tools to understand which members are being accessed during the execution
+ of a program.
+
+ This attribute is valid on members whose type is or .
+
+ When this attribute is applied to a location of type , the assumption is
+ that the string represents a fully qualified type name.
+
+ When this attribute is applied to a class, interface, or struct, the members specified
+ can be accessed dynamically on instances returned from calling
+ on instances of that class, interface, or struct.
+
+ If the attribute is applied to a method it's treated as a special case and it implies
+ the attribute should be applied to the "this" parameter of the method. As such the attribute
+ should only be used on instance methods of types assignable to System.Type (or string, but no methods
+ will use it there).
+
+
+
+
+ Initializes a new instance of the class
+ with the specified member types.
+
+ The types of members dynamically accessed.
+
+
+
+ Gets the which specifies the type
+ of members dynamically accessed.
+
+
+
+
+ Specifies the types of members that are dynamically accessed.
+
+ This enumeration has a attribute that allows a
+ bitwise combination of its member values.
+
+
+
+
+ Specifies no members.
+
+
+
+
+ Specifies the default, parameterless public constructor.
+
+
+
+
+ Specifies all public constructors.
+
+
+
+
+ Specifies all non-public constructors.
+
+
+
+
+ Specifies all public methods.
+
+
+
+
+ Specifies all non-public methods.
+
+
+
+
+ Specifies all public fields.
+
+
+
+
+ Specifies all non-public fields.
+
+
+
+
+ Specifies all public nested types.
+
+
+
+
+ Specifies all non-public nested types.
+
+
+
+
+ Specifies all public properties.
+
+
+
+
+ Specifies all non-public properties.
+
+
+
+
+ Specifies all public events.
+
+
+
+
+ Specifies all non-public events.
+
+
+
+
+ Specifies all interfaces implemented by the type.
+
+
+
+
+ Specifies all members.
+
+
+
+
+ Indicates that the specified method requires dynamic access to code that is not referenced
+ statically, for example through .
+
+
+ This allows tools to understand which methods are unsafe to call when removing unreferenced
+ code from an application.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified message.
+
+
+ A message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets a message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets or sets an optional URL that contains more information about the method,
+ why it requires unreferenced code, and what options a consumer has to deal with it.
+
+
+
+
+ Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
+ single code artifact.
+
+
+ is different than
+ in that it doesn't have a
+ . So it is always preserved in the compiled assembly.
+
+
+
+
+ Initializes a new instance of the
+ class, specifying the category of the tool and the identifier for an analysis rule.
+
+ The category for the attribute.
+ The identifier of the analysis rule the attribute applies to.
+
+
+
+ Gets the category identifying the classification of the attribute.
+
+
+ The property describes the tool or tool analysis category
+ for which a message suppression attribute applies.
+
+
+
+
+ Gets the identifier of the analysis tool rule to be suppressed.
+
+
+ Concatenated together, the and
+ properties form a unique check identifier.
+
+
+
+
+ Gets or sets the scope of the code that is relevant for the attribute.
+
+
+ The Scope property is an optional argument that specifies the metadata scope for which
+ the attribute is relevant.
+
+
+
+
+ Gets or sets a fully qualified path that represents the target of the attribute.
+
+
+ The property is an optional argument identifying the analysis target
+ of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
+ Because it is fully qualified, it can be long, particularly for targets such as parameters.
+ The analysis tool user interface should be capable of automatically formatting the parameter.
+
+
+
+
+ Gets or sets an optional argument expanding on exclusion criteria.
+
+
+ The property is an optional argument that specifies additional
+ exclusion where the literal metadata target is not sufficiently precise. For example,
+ the cannot be applied within a method,
+ and it may be desirable to suppress a violation against a statement in the method that will
+ give a rule violation, but not against all statements in the method.
+
+
+
+
+ Gets or sets the justification for suppressing the code analysis message.
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/ImageBox.dll.config b/MaiMuAOI/MaiMuAOI/bin/x64/Release/ImageBox.dll.config
new file mode 100644
index 0000000..ff9b11a
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/ImageBox.dll.config
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/ImageBox.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/ImageBox.xml
new file mode 100644
index 0000000..56192b6
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/ImageBox.xml
@@ -0,0 +1,896 @@
+
+
+
+ ImageBox
+
+
+
+
+ 必需的设计器变量。
+
+
+
+
+ 清理所有正在使用的资源。
+
+ 如果应释放托管资源,为 true;否则为 false。
+
+
+
+ 设计器支持所需的方法 - 不要
+ 使用代码编辑器修改此方法的内容。
+
+
+
+
+ 自制控件
+
+
+
+
+ 图像坐标与picturebox的工作区域之间在自适应或等比例缩放时计算出的初始变换矩阵
+
+
+
+
+ 光标在PictureBox工作区域的坐标
+
+
+
+
+ 表示画ROI时使用的尺寸(画点时十字大小的一半)或距离(点到直线、点到中心)的一半或小矩形的尺寸(标注角点)
+
+
+
+
+ 填充模式下的透明度[0-255]
+
+
+
+
+ 画刷宽度
+
+
+
+
+ 绘制的图层集合
+
+
+
+
+ 图像与实际物理坐标系之间的变换关系
+
+
+
+
+ 图像窗口交互绘制完成的事件
+
+
+
+
+ 获取或设置画图风格
+
+
+
+
+ 获取或设置区域或轮廓显示的颜色名称
+
+
+
+
+ 获取或设置多颜色显示区域或轮廓
+
+
+
+
+ 获取或设置轮廓线的显示宽度
+
+
+
+
+ 获取或设置图像控件背景颜色
+
+
+
+
+ 是否显示图像中心
+
+
+
+
+ 当前窗口中的图像
+
+
+
+
+ 获取最近一次所画图形
+
+
+
+
+ 光标模式
+
+
+
+
+ 选择模式
+
+
+
+
+ 移动模式,可以拖拽图像
+
+
+
+
+ 特色模式
+
+
+
+
+ 图像显示方式枚举
+
+
+
+
+ 图像被拉伸或收缩以适应图像窗口大小
+
+
+
+
+ 图像大小按其原有的大小比例被增加或减小
+
+
+
+
+ 图像按照原有显示区域显示,局部显示
+
+
+
+
+ 画图形状枚举
+
+
+
+
+ 点
+
+
+
+
+ 直线
+
+
+
+
+ 矩形1,与坐标轴平行的矩形
+
+
+
+
+ 圆
+
+
+
+
+ 任意形状的多边形
+
+
+
+
+ 任意形状的区域
+
+
+
+
+ 画刷区域
+
+
+
+
+ 空状态
+
+
+
+
+ 画图风格
+
+
+
+
+ 轮廓显示
+
+
+
+
+ 填充显示
+
+
+
+
+ 绘制图形的状态枚举
+
+
+
+
+ 开始绘制
+
+
+
+
+ 正在绘制
+
+
+
+
+ 绘制完成
+
+
+
+
+ 图像坐标系下图形结构体参数基类
+
+
+
+
+ 图形绘制类型
+
+
+
+
+ 读取图形的平行于坐标轴的最小外接矩形
+
+
+
+
+ 绘制的图形是否有效
+
+
+
+
+
+ 点类型
+
+
+
+
+ 点行坐标
+
+
+
+
+ 点列坐标
+
+
+
+
+ 图形类型,其值为【Point】
+
+
+
+
+ 点的平行于坐标轴的最小外界矩形(无效结果)
+
+
+
+
+ 图形是否有效
+
+
+
+
+
+ 线类型
+
+
+
+
+ 线段的起点坐标
+
+
+
+
+ 线段的终点坐标
+
+
+
+
+ 图形类型,其值为【Line】
+
+
+
+
+ 线的平行于坐标轴的最小外界矩形(无效结果)
+
+
+
+
+ 图形是否有效
+
+
+
+
+
+ 平行于坐标轴的矩形类型
+
+
+
+
+ 矩形左上角顶点坐标
+
+
+
+
+ 矩形右下角顶点坐标
+
+
+
+
+ 矩形宽
+
+
+
+
+ 矩形高
+
+
+
+
+ 图形类型,其值为【Rectangle1】
+
+
+
+
+ 矩形的平行于坐标轴的最小外界矩形
+
+
+
+
+ 图形是否有效
+
+
+
+
+
+ 圆类型
+
+
+
+
+ 圆心点坐标
+
+
+
+
+ 圆半径
+
+
+
+
+ 图形类型,其值为【Circle】
+
+
+
+
+ 圆的平行于坐标轴的最小外界矩形
+
+
+
+
+ 图形是否有效
+
+
+
+
+
+ 多边形类型
+
+
+
+
+ 多边形角点坐标集合
+
+
+
+
+ 图形类型,其值为【Xld】
+
+
+
+
+ 多边形的平行于坐标轴的最小外界矩形
+
+
+
+
+ 图形是否有效
+
+
+
+
+
+ 区域类型
+
+
+
+
+ 区域轮廓点的集合
+
+
+
+
+ 图形类型,其值为【Region】
+
+
+
+
+ 任意区域的平行于坐标轴的最小外界矩形
+
+
+
+
+ 图形是否有效
+
+
+
+
+
+ 画刷区域类型
+
+
+
+
+ 区域轮廓点的集合
+
+
+
+
+ 图形类型,其值为【Region】
+
+
+
+
+ 画刷区域的平行于坐标轴的最小外界矩形
+
+
+
+
+ 图形是否有效
+
+
+
+
+
+ 图像到初始化图像控件的变换矩阵
+
+
+
+
+ 获取图像在控件上Client区域
+
+
+
+
+
+
+ 显示中心,有图像时显示的是图像的中心,否则显示图像窗口的中心
+
+
+
+
+ 根据drawPoints绘制ROI,添加到GraphicsPath中
+
+ ROI图形路径
+ 交互图形路径
+ 轮廓点集合
+ 图形类型
+ 是否是交互绘制
+
+
+
+ 根据drawParam绘制ROI,添加到GraphicsPath中
+
+ ROI图形路径
+ 交互图形路径
+ ROI
+
+
+
+ 根据绘图路径绘制ROI
+
+
+ ROI图形路径
+ 交互图形路径
+
+
+
+ 计算某个点是否在某些点内部
+
+
+
+
+
+
+ 在画xld时,判断是否将新增点插入某两个点中间
+ 前提是新增点不在原有角点附近
+
+
+ 更新后该点在点集合中的索引位置
+
+
+
+
+ 获取鼠标指针在图像中的坐标
+
+
+
+
+
+ 获取图形点位在控件工作区域内坐标
+
+
+
+
+
+
+ 将控件坐标转换成图像坐标
+
+
+
+
+ 将图形坐标转换成控件坐标
+
+
+
+
+
+
+
+ 获取图像灰度信息
+
+
+
+
+
+
+
+
+ 获取圆上离散点坐标
+
+ 圆
+ 起始角度,单位:°
+ 角度范围,单位:°
+ 离散点获取的步长,单位:°
+
+
+
+
+ 获取圆上离散点坐标
+
+ 圆
+ 起始角度,单位:°
+ 角度范围,单位:°
+ 离散点获取的步长,单位:°
+
+
+
+
+ 获取圆上离散点坐标
+
+ 圆
+ 起始角度,单位:°
+ 角度范围,单位:°
+ 离散点获取的步长,单位:°
+ Point类型
+
+
+
+ 计算线段角度(起点到终点方向),单位:°
+
+ 线段起点
+ 线段终点
+ 默认角度范围是[-180,180],归一化之后为[-90,90]
+ 返回线段角度,单位:°
+
+
+
+ 根据骨架线计算包围轮廓线
+
+
+
+
+
+
+ 计算两点中点(迭代计算任意两点间被N等分点)
+
+
+
+
+
+
+
+ 获取区域包含的点坐标
+
+
+
+
+
+
+ 获取轮廓占据的像素点(包含像素去重)
+
+
+
+
+
+
+ 获取区域Runs,默认输入的点已经去重处理
+
+
+
+
+
+
+ 释放控件占用的所有资源
+
+
+
+
+ 设置右键菜单栏中选项是否可见
+
+
+
+
+ 设置左侧交互按钮是否可见
+
+
+
+
+
+ 设置底部图像信息栏是否可见
+
+
+
+
+
+ 设置图像窗口是否激活,
+ 显示图像和区域之前不需要激活图像控件
+ 显示图像和区域之后需要激活图像控件
+
+
+
+
+
+ 清除图像窗口,图像数据并未清除
+
+
+
+
+ 加载图像
+
+ 图像路径,需要是英文路径
+ 图像Mat
+
+
+
+
+ 保存图像
+
+ 图像路径,需要时英文路径
+ 图像Mat
+
+
+
+
+ 截图当前窗口
+
+
+
+
+
+
+
+ 将区域信息绘制在图像上保存
+
+
+
+
+
+
+
+
+
+ 显示图像与区域
+
+ 图像
+ 一个或多个区域
+ 图像显示方式,见枚举ImageModeEnum
+
+
+
+ 显示图像与区域
+
+ 图像
+ 一个区域
+ 图像显示方式,见枚举ImageModeEnum
+
+
+
+ 显示图像与区域
+
+ 图像
+ 图像显示方式,见枚举ImageModeEnum
+
+
+
+ 显示多个区域
+
+ 多个区域
+
+
+
+ 显示一个区域
+
+ 一个区域
+
+
+
+ 获取当前图像显示的局部位置
+
+ 图像局部范围
+
+
+
+ 设置图像显示的局部位置
+
+ 图像局部范围
+
+
+
+ 计算ROI集合的平行于坐标轴的最小外接矩形
+
+
+ 平行于坐标轴的最小外接矩形
+
+
+
+ 获取区域包含的点坐标
+
+
+
+
+
+
+ 特色功能低配置版,只能放大缩小,移动,取点
+
+
+
+
+ 必需的设计器变量。
+
+
+
+
+ 清理所有正在使用的资源。
+
+ 如果应释放托管资源,为 true;否则为 false。
+
+
+
+ 设计器支持所需的方法 - 不要
+ 使用代码编辑器修改此方法的内容。
+
+
+
+
+ 图层
+
+
+
+
+ 图像与实际物理坐标系之间的变换关系
+
+
+
+
+ 获取图形当前位姿与尺寸信息
+
+
+
+
+ 图层ID
+
+
+
+
+ 图层需要显示的对象
+
+
+
+
+ 图层对象是否激活
+
+
+
+
+ 代表图形变换后需要绘制的区域的点,单位像素,长度为4
+
+
+
+
+ 突出显示当前图形的顶点坐标,单位像素,长度为4
+
+
+
+
+
+
+ cv mat
+ 图层名称
+ 图形原始位姿和尺寸信息
+ 图像与实际物理坐标系之间的变换关系
+
+
+
+
+
+ bitmap image
+ 图层名称
+ 图形原始位姿和尺寸信息
+ 图像与实际物理坐标系之间的变换关系
+
+
+
+ 将ezcad四通道图形转成透明图形
+
+
+
+
+
+ 图形变换
+
+ 图形位姿和尺寸信息
+ 是否旋转图形,true只旋转图形,false缩放和平移图形
+
+
+
+ 图形的位姿和尺寸类
+
+
+
+
+ 图形位置X,单位mm
+
+
+
+
+ 图形位置Y,单位mm
+
+
+
+
+ 图形角度,单位角度
+
+
+
+
+ 图形尺寸,单位mm
+
+
+
+
+ 一个强类型的资源类,用于查找本地化的字符串等。
+
+
+
+
+ 返回此类使用的缓存的 ResourceManager 实例。
+
+
+
+
+ 重写当前线程的 CurrentUICulture 属性,对
+ 使用此强类型资源类的所有资源查找执行重写。
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Compression.LZ4.Streams.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Compression.LZ4.Streams.xml
new file mode 100644
index 0000000..6ef5280
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Compression.LZ4.Streams.xml
@@ -0,0 +1,1630 @@
+
+
+
+ K4os.Compression.LZ4.Streams
+
+
+
+
+ Generic interface for frame/stream decoder for LZ4.
+
+
+
+
+ Opens frame for reading. Please note, this method is not needed as it will be
+ called automatically, but it can be used to quickly check if frame is valid.
+
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Cancellation token.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Gets the length of the frame content if it was provided when content was encoded.
+ Frame length, or null
+
+
+ Async version of .
+ Cancellation token.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ A byte, or -1 if end of stream.
+
+
+ Reads one byte from LZ4 stream.
+ Cancellation token.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Cancellation token.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Returns how many bytes in has been read from stream so far.
+ Number of bytes read in total.
+
+
+ Closes the stream, releases allocated memory.
+
+
+
+ Generic interface for LZ4 frame/stream writer.
+
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Cancellation token.
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Byte to be written.
+
+
+ Writes one byte to stream.
+ Cancellation token.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Byte buffer.
+
+
+ Writes multiple bytes to stream.
+ Cancellation token.
+ Byte buffer.
+
+
+ Gets number of bytes written.
+ Total number of bytes (before compression).
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Cancellation token.
+
+
+
+ Stream reader interface. It is an adapter for all stream-like structures.
+
+ Stream state.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Number of bytes actually read.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Cancellation token.
+ containing new stream state,
+ and number of bytes actually read..
+
+
+
+ Generic stream writer interface.
+ When implementing custom compression target or decompression source you need to implement
+ this adapter. Please note, that this adapter can be implemented as class or
+ readonly struct. If implemented as struct it cannot have mutable state
+ as it will be lost. Immutable state is allowed but strongly discouraged.
+ Use instead.
+
+ Mutable part of stream state.
+
+
+ Indicates that writer can and should flush after frame.
+ Please note, flushing may have negative performance effect but may also lead to
+ better interactivity between writer and reader, as reader will get new block
+ available as soon as possible.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+ New stream state.
+
+
+ Number of bytes read.
+
+
+
+ Helper methods to create
+
+
+
+
+ Creates read result, composed of new stream state and bytes read.
+
+ Stream state.
+ Bytes read.
+ Stream state.
+ Read result.
+
+
+
+ Stream adapter for any class implementing .
+ It takes actual class, not interface, so it can use struct implementations
+ of for performance reasons.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+ Type implementing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ Copies bytes from span to buffer. Performs all length checks.
+
+ Head offset of .
+ Target buffer.
+ Offset in target buffer.
+ Number of bytes to copy.
+ Number of bytes actually copied.
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Memory buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Naive and simplistic implementation of adapter for .
+ It might be improved in many ways I believe, but it gives some starting point.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+
+
+
+
+ Creates new instance of .
+
+ Memory span.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Empty record equivalent to Unit/Void.
+ Works as placeholder type used when working with generic interfaces which do require type,
+ but implementation needs none.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe reader.
+
+
+
+
+
+
+
+
+
+ LZ4 stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new stream adapter for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unsafe version of . It is unsafe as it stores raw memory pointer
+ so memory it points to must be pinned. It allows reading and writing straight to
+ unmanaged memory but must be used carefully.
+ NOTE: If you don't understand what has been said above - don't use it. Misuse of this
+ struct may lead to unpredictable errors and memory corruption.
+
+
+
+ Pointer to the first byte of the span.
+
+
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from given pointer and length.
+
+ Pointer to the first byte of the span.
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from raw pointer.
+
+ Pointer block of bytes.
+ Length of the block.
+ New .
+
+
+
+ Converted to .
+
+
+
+
+ Utility methods for LZ4 streams.
+
+
+
+
+ Creates using .
+
+ LZ4 descriptor.
+ Compression level.
+ Additional memory for encoder.
+ Encoder.
+
+
+
+ Creates using and .
+
+ LZ4 descriptor.
+ Encoder settings.
+ Encoder.
+
+
+
+ Create using .
+
+ Descriptor.
+ Extra memory (may improves speed, but creates memory pressure).
+ .
+
+
+
+ Create using and .
+
+ Descriptor.
+ Settings.
+ .
+
+
+
+ Creates from .
+
+ Settings.
+ LZ4 Descriptor.
+
+
+ Async version of .
+ Decoder.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Decoder.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ Decoder.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Decoder.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Encoder.
+ true if frame has been opened, or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Encoder.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Encoder.
+ Byte buffer.
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Encoder.
+
+
+
+ Copies all bytes from into .
+
+ Frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ LZ4 frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Wraps as .
+
+ LZ4 frame reader.
+ Indicates that frame reader should be left open even if stream is
+ disposed.
+ Indicates that data should be provided to reader as quick as
+ possible, instead of waiting for whole block to be read.
+ stream wrapper.
+
+
+
+ Wraps as .
+
+ LZ4 frame writer.
+ Indicates that frame writer should be left open even if stream is
+ disposed.
+ stream wrapper.
+
+
+
+ LZ4 Decompression stream handling.
+
+
+
+ Creates new instance .
+ Inner stream.
+ Inner stream initial state.
+ Decoder factory.
+
+
+
+ Exposes internal stream state. Existence of this property is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the decoder. Consecutive attempts to read will fail.
+
+ true is stream is being disposed by user,
+ true is by garbage collector.
+
+
+
+ Releases unmanaged resources.
+
+
+
+
+ Releases unmanaged resources.
+
+ Task indicating operation is finished.
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Bytes span.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Memory buffer.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Byte sequence.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to read from.
+ Leave stream open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+ Disposes the reader.
+
+ true if user is disposing it; false if it has been triggered by garbage collector
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe to be read.
+ Leave pipe open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+
+
+
+
+
+
+ wrapper for .
+
+
+
+
+ Creates new instance of .
+
+ LZ4 frame reader.
+ Leave underlying stream open after disposing this stream.
+ Use interactive mode; return bytes as soon as they available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 stream encoder.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ Inner stream initial state.
+ LZ4 Encoder factory.
+ LZ4 settings.
+
+
+
+ Exposes internal stream state. Existence of this field is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the stream and releases all resources.
+
+ true if called by user; false when called by garbag collector.
+
+
+
+
+
+
+ Releases all unmanaged resources.
+
+
+
+
+ Releases all unmanaged resources.
+
+ Task indicating completion of the operation.
+
+
+
+ implementation for
+
+ Type of buffer writer.
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Current state of buffer writer.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Memory block where data will be written.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+ is a wrapper around that
+ can be stored in a field. Please note: it makes it unsafe and address needs to be pinned,
+ one way or another.
+
+
+
+
+ Creates new instance of .
+
+ Span to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to write to.
+ Leave stream open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer to write to.
+ Leave pipe open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ Adapter to make look like .
+
+
+
+ Creates new instance of .
+ Underlying frame encoder.
+ Indicates should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 Frame descriptor.
+
+
+
+ Content length. Not always known.
+
+
+ Indicates if content checksum is provided.
+
+
+ Indicates if blocks are chained (dependent) or not (independent).
+
+
+ Indicates if block checksums are provided.
+
+
+ Dictionary id. May be null.
+
+
+ Block size.
+
+
+
+ Completely empty class to do nothing.
+ It is used internally instead of CancellationToken to make sure
+ blocking operations are easily distinguishable from async ones
+ (you cannot call blocking operation by accident as they *require* EmptyToken).
+
+
+
+
+ Base class for all compatible adapters.
+
+ Type of resource stream adapter if for.
+
+
+
+ Creates new instance of .
+
+ Wrapped resource.
+ Do not dispose inner resource after stream is disposed.
+
+
+ Wrapped resource.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream essentials when wrapping another stream.
+ You most likely should not use it but it needs to be public as it is inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoder settings.
+
+
+
+ Extra memory for decompression.
+
+
+
+ LZ4 frame decoder stream.
+
+
+
+
+ Creates LZ4 decoder stream.
+
+ Inner stream, the stream compressed data is coming from..
+ Decoder factory.
+ Leave inner stream open after this stream is disposed.
+ Interactive mode, provide bytes as soon as they are available; don't wait for full block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 frame descriptor.
+
+
+
+ Content length (if available).
+
+
+ Indicates if content checksum if present.
+
+
+ Indicates if blocks are chained.
+
+
+ Indicates if block checksums are present.
+
+
+ Dictionary id (or null).
+
+
+ Block size.
+
+
+ Creates new instance of .
+ Content length.
+ Content checksum flag.
+ Chaining flag.
+ Block checksum flag.
+ Dictionary id.
+ Block size.
+
+
+ Creates new instance of .
+ Descriptor to copy.
+
+
+
+ LZ4 encoder settings.
+
+
+
+
+ Content length. It is not enforced, it can be set to any value, but it will be
+ written to the stream so it can be used while decoding. If you don't know the length
+ just leave default value.
+
+
+
+
+ Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
+ (with chaining) provide better compression ratio but are a little but slower and take
+ more memory.
+
+
+
+
+ Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
+ and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
+ better.
+
+
+
+ Indicates is content checksum should be included.
+
+
+ Indicates if block checksum should be included.
+
+
+ Dictionary id. Not implemented yet.
+
+
+ Compression level.
+
+
+ Extra memory (for the process, more is usually better).
+
+
+
+ LZ4 frame encoder stream.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ LZ4 Descriptor.
+ Function which will take descriptor and return
+ appropriate encoder.
+ Indicates if stream should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 factory methods to encode/decode anything which can be represented as a stream-like object.
+ Please note, to avoid all the complexity of dealing with streams, it uses
+ and as stream abstractions.
+
+
+
+ Creates decompression stream on top of inner stream.
+ Span to read from.
+ Buffer to write to.
+ Extra memory used for decompression.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Writes bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Encoder settings.
+ Leave target stream open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Compression level.
+ Extra memory for encoder.
+ Leave target stream open after encoder is disposed.
+
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Encoder settings.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Compression level.
+ Extra memory for encoder.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Utility class with factory methods to create LZ4 compression and decompression streams.
+
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression settings.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression level.
+ Extra memory used for compression.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Decompression settings.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Extra memory used for decompression.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Compression.LZ4.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Compression.LZ4.xml
new file mode 100644
index 0000000..7322b0a
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Compression.LZ4.xml
@@ -0,0 +1,1211 @@
+
+
+
+ K4os.Compression.LZ4
+
+
+
+
+ Action performed by encoder using FlushAndEncode method.
+
+
+
+ Nothing has happened, most likely loading 0 bytes.
+
+
+ Some bytes has been loaded into encoder.
+
+
+ Compression was not possible so bytes has been copied.
+
+
+ Compression succeeded.
+
+
+
+ Interface of LZ4 decoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Bytes already decoded and available to be read.
+ Always smaller than
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded. These bytes can be read with .
+
+ Points to compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ These bytes can be read with .
+
+ Points to uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Reads previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Buffer to write to.
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+ Number of bytes to read.
+
+
+
+ Peeks at previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+
+
+
+ Interface of LZ4 encoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Number of bytes read for compression.
+ Always smaller than
+
+
+ Adds bytes to internal buffer. Increases
+ Source buffer.
+ Source buffer length.
+ Number of bytes topped up. If this function returns 0 it means that buffer
+ is full ( equals ) and
+ should be called to flush it.
+
+
+
+ Encodes bytes in internal buffer (see: , ).
+ If is true then if encoded buffer is bigger than
+ source buffer source bytes are copied instead. In such case returned length is negative.
+
+ Target buffer.
+ Target buffer length.
+ Indicates if copying is allowed.
+ Length of encoded buffer. Negative if bytes are just copied.
+
+
+
+ LZ4 decoder used with independent blocks mode. Please note, that it will fail
+ if input data has been compressed with chained blocks
+ ( and )
+
+
+
+ Creates new instance of block decoder.
+ Block size. Must be equal or greater to one used for compression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Independent block encoder. Produces larger files but uses less memory and
+ gives better performance.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+
+
+
+
+
+
+
+
+ LZ4 decoder handling dependent blocks.
+
+
+ Creates new instance of .
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Static class with factory methods to create LZ4 decoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Block size.
+ Number of extra blocks.
+ LZ4 decoder.
+
+
+
+ Static class with factory method to create LZ4 encoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Compression level.
+ Block size.
+ Number of extra blocks.
+ LZ4 encoder.
+
+
+
+ Base class for LZ4 encoders. Provides basic functionality shared by
+ , ,
+ and encoders. Do not used directly.
+
+
+
+ Creates new instance of encoder.
+ Needs to be true if using dependent blocks.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes single block using appropriate algorithm.
+ Source buffer.
+ Source buffer length.
+ Target buffer.
+ Target buffer length.
+ Number of bytes actually written to target buffer.
+
+
+ Copies current dictionary.
+ Target buffer.
+ Dictionary length.
+ Dictionary length.
+
+
+
+
+
+
+ Functionality of encoders added on top of fixed interface.
+
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer pointer, will be shifted after operation by the number of
+ bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset.
+ Length of buffer.
+ Number of bytes actually loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset, will be increased after operation by the number
+ of bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Number of bytes encoder. If bytes were copied than this value is negative.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer. Will be updated after operation.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer. Will be updated after operation.
+ Length of buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Source buffer length.
+ Target buffer (used to encode into)
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (used to encode into)
+ Offset within target buffer.
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Target buffer (used to encode into)
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Offset within target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset within target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Source buffer length.
+ Target buffer (to drained into).
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (to drained into).
+ Offset within target buffer.
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Target buffer (to drained into).
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ See .
+
+ Decoder.
+ Uncompressed block.
+ Offset in uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded.
+ See .
+
+ Decoder.
+ Compressed block.
+ Offset in compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ LZ4 encoder using dependent blocks with fast compression.
+
+
+
+ Creates new instance of
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 encoder using dependent blocks with high compression.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm selection.
+
+
+ Intel and ARMv7 version of 32 bit algorithm.
+
+
+ Intel version of 64 bit algorithm.
+
+
+ Checks what algorithm should be used (32 vs 64 bit).
+
+
+
+ Existence of this class is an admission of failure.
+ I failed to export internals to test assemblies.
+ Using InternalsVisibleTo work, of course, but with signing (which was requested
+ in https://github.com/MiloszKrajewski/K4os.Compression.LZ4/issues/9) it is
+ absolute PITA. So no, I'm not using InternalsVisibleTo I will just expose this
+ little class with some "redirects" to real internals.
+
+
+
+ Pubternal wrapper for LZ4_stream_t.
+
+
+ Creates new instance of wrapper for LZ4_stream_t.
+
+
+
+
+
+
+ Compresses chunk of data using LZ4_compress_fast_continue.
+
+ Wrapper for LZ4_stream_t
+ Source block address.
+ Target block address.
+ Source block length.
+ Target block length.
+ Acceleration.
+ Number of bytes actually written to target.
+
+
+
+ Naive wrapper around ArrayPool. Makes calls if something should be pooled.
+
+
+
+ Minimum size of the buffer that can be pooled.
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Clear all data.
+ Allocated buffer.
+
+
+
+ Determines if buffer was pooled or not.
+ The logic is quite simple: if buffer is smaller than 512 bytes are pooled.
+
+ Buffer.
+ true if buffer was pooled; false otherwise
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+ Utility class with memory related functions.
+
+
+ 1 KiB
+
+
+ 2 KiB
+
+
+ 4 KiB
+
+
+ 8 KiB
+
+
+ 16 KiB
+
+
+ 32 KiB
+
+
+ 64 KiB
+
+
+ 128 KiB
+
+
+ 256 KiB
+
+
+ 512 KiB
+
+
+ 1 MiB
+
+
+ 4 MiB
+
+
+ Empty byte array.
+
+
+ Checks if process is ran in 32-bit mode.
+
+
+ Rounds integer value up to nearest multiple of step.
+ A value.
+ A step.
+ Value rounded up.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Fills memory block with predefined .
+
+ The target block address.
+ Value to be used.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+ It handle "move" semantic properly handling overlapping blocks properly.
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+ Allocated block of memory. It is NOT initialized with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Fill block of memory with zeroes.
+ Address.
+ Length.
+ Original pointer.
+
+
+ Fills memory block with repeating pattern of a single byte.
+ Address.
+ A pattern.
+ Length.
+ Original pointer.
+
+
+ Allocates block of memory and fills it with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Free memory allocated previously with .
+ Pointer to allocated block.
+
+
+ Clones managed array to unmanaged one.
+ Allows quicker yet less safe unchecked access.
+ Input array.
+ Cloned array.
+
+
+ Reads exactly 1 byte from given address.
+ Address.
+ Byte at given address.
+
+
+ Writes exactly 1 byte to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Represents pinned memory.
+ It either points to unmanaged memory or block of memory from shared array pool.
+ When disposed, it handles it appropriately.
+
+
+
+
+ Maximum size of the buffer that can be pooled from shared array pool.
+
+
+
+ Pointer to block of bytes.
+
+
+ Pointer to block of bytes as span.
+
+
+ Pointer to block of bytes.
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Pinned memory pointer.
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory for one item from shared array pool.
+
+ PinnedMemory pointer.
+ Indicates if block should be zeroed.
+ Type of item.
+
+
+ Fill allocated block of memory with zeros.
+
+
+
+ Releases the memory.
+
+
+
+
+ Skeleton for class with unmanaged resources.
+ Implements but also handles proper release in
+ case was not called.
+
+
+
+ Determines if object was already disposed.
+
+
+ Throws exception is object has been disposed already. Convenience method.
+ Thrown if object is already disposed.
+
+
+ Method releasing unmanaged resources.
+
+
+ Method releasing managed resources.
+
+
+
+ Disposed resources.
+
+ true if dispose was explicitly called,
+ false if called from GC.
+
+
+
+
+
+ Destructor.
+
+
+ Unsafe memory operations.
+
+
+ Reads 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes 4 or 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+ Unsafe memory operations.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Static class exposing LZ4 block compression methods.
+
+
+
+ Version of LZ4 implementation.
+
+
+
+ Enforces 32-bit compression/decompression algorithm even on 64-bit systems.
+ Please note, this property should not be used on regular basis, it just allows
+ to workaround some problems on platforms which do not support 64-bit the same was
+ as Intel (for example: unaligned read/writes).
+
+
+
+ Maximum size after compression.
+ Length of input buffer.
+ Maximum length after compression.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Length of input buffer.
+ Output buffer.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Output buffer.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Dictionary buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer offset.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compression level.
+
+
+ Fast compression.
+
+
+ High compression, level 3.
+
+
+ High compression, level 4.
+
+
+ High compression, level 5.
+
+
+ High compression, level 6.
+
+
+ High compression, level 7.
+
+
+ High compression, level 8.
+
+
+ High compression, level 9.
+
+
+ Optimal compression, level 10.
+
+
+ Optimal compression, level 11.
+
+
+ Maximum compression, level 12.
+
+
+
+ Pickling support with LZ4 compression.
+
+
+ Pickling support with LZ4 compression.
+
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Length of input data.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ The data to inspect.
+ The size in bytes of the data once unpickled.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ Decoded header.
+ The size in bytes of the data once unpickled.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+ You obtain the size of the output buffer by calling .
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Hash.xxHash.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Hash.xxHash.xml
new file mode 100644
index 0000000..c156a24
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/K4os.Hash.xxHash.xml
@@ -0,0 +1,245 @@
+
+
+
+ K4os.Hash.xxHash
+
+
+
+
+ Adapter implementing
+
+
+
+
+ Creates new .
+
+ Hash size (in bytes)
+ Reset function.
+ Update function.
+ Digest function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for both and . Do not use directly.
+
+
+
+ Protected constructor to prevent instantiation.
+
+
+
+ xxHash 32-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
+ xxHash 64-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/MQTTnet.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/MQTTnet.xml
new file mode 100644
index 0000000..cc044ec
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/MQTTnet.xml
@@ -0,0 +1,1732 @@
+
+
+
+ MQTTnet
+
+
+
+
+ Gets the authentication result.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the result code.
+ MQTTv5 only.
+
+
+
+
+ Gets a value indicating whether a session was already available or not.
+ MQTTv5 only.
+
+
+
+
+ Gets a value indicating whether wildcards can be used in subscriptions at the current server.
+ MQTTv5 only.
+
+
+
+
+ Gets whether the server supports retained messages.
+ MQTTv5 only.
+
+
+
+
+ Gets the client identifier which was chosen by the server.
+ MQTTv5 only.
+
+
+
+
+ Gets the authentication method.
+ MQTTv5 only.
+
+
+
+
+ Gets the authentication data.
+ MQTTv5 only.
+
+
+
+
+ Gets the reason string.
+ MQTTv5 only.
+
+
+
+
+ Gets the maximum QoS which is supported by the server.
+ MQTTv5 only.
+
+
+
+
+ Gets the response information.
+ MQTTv5 only.
+
+
+
+
+ Gets the maximum value for a topic alias. 0 means not supported.
+ MQTTv5 only.
+
+
+
+
+ Gets an alternate server which should be used instead of the current one.
+ MQTTv5 only.
+
+
+
+
+ MQTTv5 only.
+ Gets the keep alive interval which was chosen by the server instead of the
+ keep alive interval from the client CONNECT packet.
+ A value of 0 indicates that the feature is not used.
+
+
+
+
+ Gets a value indicating whether the subscription identifiers are available or not.
+ MQTTv5 only.
+
+
+
+
+ Gets a value indicating whether the shared subscriptions are available or not.
+ MQTTv5 only.
+
+
+
+
+ Gets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ MQTTv5 only.
+
+
+
+
+ Gets the authentication result.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the reason.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the reason code.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the reason string.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the session expiry interval.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the user properties.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ This enum only contains values which are valid when a client sends the reason to the server.
+
+
+
+
+ Gets the reason code.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets the reason string.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets the authentication method.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets the authentication data.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets the reason code.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets the reason string.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets the authentication data.
+ Authentication data is binary information used to transmit multiple iterations of cryptographic secrets of protocol steps.
+ The content of the authentication data is highly dependent on the specific implementation of the authentication method.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Can be a host string name or an object derived from WebRequest.
+
+
+
+
+ Usually the MQTT packets can be send partially. This is done by using multiple TCP packets
+ or WebSocket frames etc. Unfortunately not all brokers (like Amazon Web Services (AWS)) do support this feature and
+ will close the connection when receiving such packets. If such a service is used this flag must
+ be set to _false_.
+
+
+
+
+ Gets or sets the authentication data.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the authentication method.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets a value indicating whether clean sessions are used or not.
+ When a client connects to a broker it can connect using either a non persistent connection (clean session) or a
+ persistent connection.
+ With a non persistent connection the broker doesn't store any subscription information or undelivered messages for
+ the client.
+ This mode is ideal when the client only publishes messages.
+ It can also connect as a durable client using a persistent connection.
+ In this mode, the broker will store subscription information, and undelivered messages for the client.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets the keep alive period.
+ The connection is normally left open by the client so that is can send and receive data at any time.
+ If no data flows over an open connection for a certain time period then the client will generate a PINGREQ and
+ expect to receive a PINGRESP from the broker.
+ This message exchange confirms that the connection is open and working.
+ This period is known as the keep alive period.
+
+
+
+
+ Gets or sets the maximum packet size.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the receive maximum.
+ This gives the maximum length of the receive messages.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the request problem information.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the request response information.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the session expiry interval.
+ The time after a session expires when it's not actively used.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets whether an exception should be thrown when the server has sent a non success ACK packet.
+
+
+
+
+ Gets or sets the timeout which will be applied at socket level and internal operations.
+ The default value is the same as for sockets in .NET in general.
+
+
+
+
+ Gets or sets the topic alias maximum.
+ This gives the maximum length of the topic alias.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ If set to true, the bridge will attempt to indicate to the remote broker that it is a bridge not an ordinary
+ client.
+ If successful, this means that loop detection will be more effective and that retained messages will be propagated
+ correctly.
+
+ Not all brokers support this feature so it may be necessary to set it to false if your bridge does not
+ connect properly.
+
+
+
+
+
+ Gets or sets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT
+ packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add
+ metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ When this feature is enabled the client will check if used properties are supported in the selected protocol
+ version.
+ This feature can be validated if an application message is generated one time but sent via different protocol
+ versions.
+ Default values are applied if the validation is off and features are not supported.
+
+
+
+
+ Gets or sets the content type of the will message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the correlation data of the will message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the will delay interval.
+ This is the time between the client disconnect and the time the will message will be sent.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the message expiry interval of the will message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the payload of the will message.
+
+
+
+
+ Gets or sets the payload format indicator of the will message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the QoS level of the will message.
+
+
+
+
+ Gets or sets the response topic of the will message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the retain flag of the will message.
+
+
+
+
+ Gets or sets the topic of the will message.
+
+
+
+
+ Gets or sets the user properties of the will message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the default and initial size of the packet write buffer.
+ It is recommended to set this to a value close to the usual expected packet size * 1.5.
+ Do not change this value when no memory issues are experienced.
+
+
+
+
+ Gets or sets the maximum size of the buffer writer. The writer will reduce its internal buffer
+ to this value after serializing a packet.
+ Do not change this value when no memory issues are experienced.
+
+
+
+
+ Clean session is used in MQTT versions below 5.0.0. It is the same as setting "CleanStart".
+
+
+
+
+ Clean start is used in MQTT versions 5.0.0 and higher. It is the same as setting "CleanSession".
+
+
+
+
+ Usually the MQTT packets can be send partially. This is done by using multiple TCP packets
+ or WebSocket frames etc. Unfortunately not all brokers (like Amazon Web Services (AWS)) do support this feature and
+ will close the connection when receiving such packets. If such a service is used this flag must
+ be set to _true_.
+
+
+
+
+ The client will not throw an exception when the MQTT server responses with a non success ACK packet.
+ This will become the default behavior in future versions of the library.
+
+
+
+
+ Sets the timeout which will be applied at socket level and internal operations.
+ The default value is the same as for sockets in .NET in general.
+
+
+
+
+ If set to true, the bridge will attempt to indicate to the remote broker that it is a bridge not an ordinary
+ client.
+ If successful, this means that loop detection will be more effective and that retained messages will be propagated
+ correctly.
+ Not all brokers support this feature so it may be necessary to set it to false if your bridge does not connect
+ properly.
+
+
+
+
+ Gets the local endpoint (network card) which is used by the client.
+ Set it to _null_ to let the OS select the network card.
+
+
+
+
+ Gets or sets whether the underlying socket should run in dual mode.
+ Leaving this _null_ will avoid setting this value at socket level.
+ Setting this a value other than _null_ will throw an exception when only IPv4 is supported on the machine.
+
+
+
+
+ Gets or sets the provider for certificates.
+ This provider gets called whenever the client wants to connect
+ with the server and requires certificates for authentication.
+ The implementation may return different certificates each time.
+
+
+
+
+ Gets or sets the target host.
+ If the value is null or empty the same host as the TCP socket host will be used.
+
+
+
+
+ Gets or sets the keep alive interval for the Web Socket connection.
+ This is not related to the keep alive interval for the MQTT protocol.
+
+
+
+
+ Gets or sets whether the default (system) credentials should be used when connecting via Web Socket connection.
+ This is not related to the credentials which are used for the MQTT protocol.
+
+
+
+
+ Returns if the overall status of the publish is a success. This can be the reason code _Success_ or
+ _NoMatchingSubscribers_. _NoMatchingSubscribers_ usually indicates only that no other client is interested in the
+ topic but overall transmit
+ to the server etc. was a success.
+
+
+
+
+ Gets the packet identifier which was used for this publish.
+
+
+
+
+ Gets or sets the reason code.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the reason string.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT
+ packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add
+ metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets whether the library should send MQTT ACK packets automatically if required.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets whether this message was handled.
+ This value can be used in user code for custom control flow.
+
+
+
+
+ Gets the identifier of the MQTT packet
+
+
+
+
+ Indicates if the processing of this PUBLISH packet has failed.
+ If the processing has failed the client will not send an ACK packet etc.
+
+
+
+
+ Gets or sets the reason code which will be sent to the server.
+
+
+
+
+ Gets or sets the reason string which will be sent to the server in the ACK packet.
+
+
+
+
+ Gets or sets the user properties which will be sent to the server in the ACK packet etc.
+
+
+
+
+ Gets or sets the subscription identifier.
+ The client can specify a subscription identifier when subscribing.
+ The broker will establish and store the mapping relationship between this subscription and subscription identifier
+ when successfully create or modify subscription.
+ The broker will return the subscription identifier associated with this PUBLISH packet and the PUBLISH packet to
+ the client when need to forward PUBLISH packets matching this subscription to this client.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets a list of topic filters the client wants to subscribe to.
+ Topic filters can include regular topics or wild cards.
+
+
+
+
+ Gets or sets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT
+ packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add
+ metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Adds the user property to the subscribe options.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the result for every topic filter item.
+
+
+
+
+ Gets the user properties which were part of the SUBACK packet.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the reason string.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the packet identifier which was used.
+
+
+
+
+ Gets or sets the topic filter.
+ The topic filter can contain topics and wildcards.
+
+
+
+
+ Gets or sets the result code.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets a list of topic filters the client wants to unsubscribe from.
+ Topic filters can include regular topics or wild cards.
+
+
+
+
+ Gets or sets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT
+ packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add
+ metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Adds the user property to the unsubscribe options.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Adds the user property to the unsubscribe options.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the result for every topic filter item.
+
+
+
+
+ Gets the packet identifier which was used.
+
+
+
+
+ Gets the reason string.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the user properties which were part of the UNSUBACK packet.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the result code.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the topic filter.
+ The topic filter can contain topics and wildcards.
+
+
+
+
+ This logger fires an event when a new message was published.
+
+
+
+
+ This logger does nothing with the messages.
+
+
+
+
+ This is a custom implementation of a memory stream which provides only MQTTnet relevant features.
+ The goal is to avoid lots of argument checks like in the original stream. The growth rule is the
+ same as for the original MemoryStream in .net. Also this implementation allows accessing the internal
+ buffer for all platforms and .net framework versions (which is not available at the regular MemoryStream).
+
+
+
+
+ Gets or sets the content type.
+ The content type must be a UTF-8 encoded string. The content type value identifies the kind of UTF-8 encoded
+ payload.
+
+
+
+
+ Gets or sets the correlation data.
+ In order for the sender to know what sent message the response refers to it can also send correlation data with the
+ published message.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ If the DUP flag is set to 0, it indicates that this is the first occasion that the Client or Server has attempted
+ to send this MQTT PUBLISH Packet.
+ If the DUP flag is set to 1, it indicates that this might be re-delivery of an earlier attempt to send the Packet.
+ The DUP flag MUST be set to 1 by the Client or Server when it attempts to re-deliver a PUBLISH Packet
+ [MQTT-3.3.1.-1].
+ The DUP flag MUST be set to 0 for all QoS 0 messages [MQTT-3.3.1-2].
+
+
+
+
+ Gets or sets the message expiry interval.
+ A client can set the message expiry interval in seconds for each PUBLISH message individually.
+ This interval defines the period of time that the broker stores the PUBLISH message for any matching subscribers
+ that are not currently connected.
+ When no message expiry interval is set, the broker must store the message for matching subscribers indefinitely.
+ When the retained=true option is set on the PUBLISH message, this interval also defines how long a message is
+ retained on a topic.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets the payload.
+ The payload is the data bytes sent via the MQTT protocol.
+
+
+
+
+ Get or set ArraySegment style of Payload.
+
+
+
+
+ Gets or sets the payload format indicator.
+ The payload format indicator is part of any MQTT packet that can contain a payload. The indicator is an optional
+ byte value.
+ A value of 0 indicates an “unspecified byte stream”.
+ A value of 1 indicates a "UTF-8 encoded payload".
+ If no payload format indicator is provided, the default value is 0.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets the quality of service level.
+ The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message
+ that defines the guarantee of delivery for a specific message.
+ There are 3 QoS levels in MQTT:
+ - At most once (0): Message gets delivered no time, once or multiple times.
+ - At least once (1): Message gets delivered at least once (one time or more often).
+ - Exactly once (2): Message gets delivered exactly once (It's ensured that the message only comes once).
+
+
+
+
+ Gets or sets the response topic.
+ In MQTT 5 the ability to publish a response topic was added in the publish message which allows you to implement
+ the request/response pattern between clients that is common in web applications.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets a value indicating whether the message should be retained or not.
+ A retained message is a normal MQTT message with the retained flag set to true.
+ The broker stores the last retained message and the corresponding QoS for that topic.
+
+
+
+
+ Gets or sets the subscription identifiers.
+ The client can specify a subscription identifier when subscribing.
+ The broker will establish and store the mapping relationship between this subscription and subscription identifier
+ when successfully create or modify subscription.
+ The broker will return the subscription identifier associated with this PUBLISH packet and the PUBLISH packet to
+ the client when need to forward PUBLISH packets matching this subscription to this client.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets the MQTT topic.
+ In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected
+ client.
+ The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level
+ separator).
+
+
+
+
+ Gets or sets the topic alias.
+ Topic aliases were introduced are a mechanism for reducing the size of published packets by reducing the size of
+ the topic field.
+ A value of 0 indicates no topic alias is used.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Gets or sets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT
+ packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add
+ metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ Hint: MQTT 5 feature only.
+
+
+
+
+ Adds the content type to the message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Adds the correlation data to the message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Adds the message expiry interval in seconds to the message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Adds the payload format indicator to the message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ The quality of service level.
+ The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message
+ that defines the guarantee of delivery for a specific message.
+ There are 3 QoS levels in MQTT:
+ - At most once (0): Message gets delivered no time, once or multiple times.
+ - At least once (1): Message gets delivered at least once (one time or more often).
+ - Exactly once (2): Message gets delivered exactly once (It's ensured that the message only comes once).
+
+
+
+
+ Adds the response topic to the message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ A value indicating whether the message should be retained or not.
+ A retained message is a normal MQTT message with the retained flag set to true.
+ The broker stores the last retained message and the corresponding QoS for that topic.
+
+
+
+
+ Adds the subscription identifier to the message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ The MQTT topic.
+ In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected
+ client.
+ The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level
+ separator).
+
+
+
+
+ Adds the topic alias to the message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Adds the user property to the message.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ The quality of service level.
+ The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message that defines the guarantee of delivery for a specific message.
+ There are 3 QoS levels in MQTT:
+ - At most once (0): Message gets delivered no time, once or multiple times.
+ - At least once (1): Message gets delivered at least once (one time or more often).
+ - Exactly once (2): Message gets delivered exactly once (It's ensured that the message only comes once).
+
+
+
+
+ The MQTT topic.
+ In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected client.
+ The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level separator).
+
+
+
+ Added in MQTTv5.0.0.
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv3.1.1.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Also called "Clean Start" in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Reason Code is used in MQTTv5.0.0 and backward compatible to v.3.1.1. Return Code is used in MQTTv3.1.1
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ It is a Protocol Error if the Subscription Identifier has a value of 0.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Gets or sets a value indicating whether the sender will not receive its own published application messages.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the quality of service level.
+ The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message
+ that defines the guarantee of delivery for a specific message.
+ There are 3 QoS levels in MQTT:
+ - At most once (0): Message gets delivered no time, once or multiple times.
+ - At least once (1): Message gets delivered at least once (one time or more often).
+ - Exactly once (2): Message gets delivered exactly once (It's ensured that the message only comes once).
+
+
+
+
+ Gets or sets a value indicating whether messages are retained as published or not.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the retain handling.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the MQTT topic.
+ In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected
+ client.
+ The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level
+ separator).
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ Added in MQTTv5.
+
+
+
+
+ The message is accepted but there are no subscribers. This is sent only by the Server. If the Server knows that there are no matching subscribers, it MAY use this Reason Code instead of 0x00 (Success).
+
+
+
+
+ Gets the application message which was not consumed by any client.
+
+
+
+
+ Gets the ID of the client which has sent the affected application message.
+
+
+
+
+ Gets the packet which was used for acknowledge. This can be a PubAck or PubComp packet.
+
+
+
+
+ Gets the ID of the client which acknowledged a PUBLISH packet.
+
+
+
+
+ Gets whether the PUBLISH packet is fully acknowledged. This is the case for PUBACK (QoS 1) and PUBCOMP (QoS 2.
+
+
+
+
+ Gets the PUBLISH packet which was acknowledged.
+
+
+
+
+ Gets the session items which contain custom user data per session.
+
+
+
+
+ Gets the client identifier of the connected client.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets the endpoint of the connected client.
+
+
+
+
+ Gets the protocol version which is used by the connected client.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets the user name of the connected client.
+
+
+
+
+ Gets the user properties sent by the client.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets the reason code sent by the client.
+ Only available for clean disconnects.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the reason string sent by the client.
+ Only available for clean disconnects.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the session expiry interval sent by the client.
+ Only available for clean disconnects.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets the user properties sent by the client.
+ Only available for clean disconnects.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets the topic filter.
+ The topic filter can contain topics and wildcards.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets or sets the topic filter.
+ The topic filter can contain topics and wildcards.
+
+
+
+
+ Gets or sets whether the enqueue of the application message should be performed or not.
+ If set to _False_ the client will not receive the application message.
+
+
+
+
+ Indicates if the connection with the sender should be closed.
+
+
+
+
+ Gets the cancellation token from the connection managing thread.
+ Use this in further event processing.
+
+
+
+
+ Gets the client ID which has sent the packet or will receive the packet.
+
+
+
+
+ Gets the endpoint of the sending or receiving client.
+
+
+
+
+ Gets or sets the MQTT packet which was received or will be sent.
+
+
+
+
+ Gets or sets whether the packet should be processed or not.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets the cancellation token which can indicate that the client connection gets down.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets whether the publish should be processed internally.
+
+
+
+
+ Gets the response which will be sent to the client via the PUBACK etc. packets.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets the cancellation token which can indicate that the client connection gets down.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets whether the broker should close the client connection.
+
+
+
+
+ Gets or sets whether the broker should create an internal subscription for the client.
+ The broker can also avoid this and return "success" to the client.
+ This feature allows using the MQTT Broker as the Frontend and another system as the backend.
+
+
+
+
+ Gets or sets the reason string which will be sent to the client in the SUBACK packet.
+
+
+
+
+ Gets the response which will be sent to the client via the SUBACK packet.
+
+
+
+
+ Gets the current client session.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets or sets the topic filter.
+ The topic filter can contain topics and wildcards.
+
+
+
+
+ Gets or sets the user properties.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the cancellation token which can indicate that the client connection gets down.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets whether the broker should close the client connection.
+
+
+
+
+ Gets or sets whether the broker should remove an internal subscription for the client.
+ The broker can also avoid this and return "success" to the client.
+ This feature allows using the MQTT Broker as the Frontend and another system as the backend.
+
+
+
+
+ Gets the response which will be sent to the client via the UNSUBACK pocket.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets or sets the MQTT topic.
+ In MQTT, the word topic refers to an UTF-8 string that the broker uses to filter messages for each connected
+ client.
+ The topic consists of one or more topic levels. Each topic level is separated by a forward slash (topic level
+ separator).
+
+
+
+
+ Gets or sets the user properties.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the will delay interval.
+ This is the time between the client disconnect and the time the will message will be sent.
+
+
+
+
+ Gets the ID of the session.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets or sets the assigned client identifier.
+ MQTTv5 only.
+
+
+
+
+ Gets or sets the authentication data.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the authentication method.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the channel adapter. This can be a _MqttConnectionContext_ (used in ASP.NET), a _MqttChannelAdapter_ (used for
+ TCP or WebSockets) or a custom implementation.
+
+
+
+
+ Gets or sets a value indicating whether clean sessions are used or not.
+ When a client connects to a broker it can connect using either a non persistent connection (clean session) or a
+ persistent connection.
+ With a non persistent connection the broker doesn't store any subscription information or undelivered messages for
+ the client.
+ This mode is ideal when the client only publishes messages.
+ It can also connect as a durable client using a persistent connection.
+ In this mode, the broker will store subscription information, and undelivered messages for the client.
+
+
+
+
+ Gets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets the keep alive period.
+ The connection is normally left open by the client so that is can send and receive data at any time.
+ If no data flows over an open connection for a certain time period then the client will generate a PINGREQ and
+ expect to receive a PINGRESP from the broker.
+ This message exchange confirms that the connection is open and working.
+ This period is known as the keep alive period.
+
+
+
+
+ A value of 0 indicates that the value is not used.
+
+
+
+
+ Gets or sets the reason code. When a MQTTv3 client connects the enum value must be one which is
+ also supported in MQTTv3. Otherwise the connection attempt will fail because not all codes can be
+ converted properly.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the receive maximum.
+ This gives the maximum length of the receive messages.
+ A value of 0 indicates that the value is not used.
+
+
+
+
+ Gets the request problem information.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the request response information.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the response authentication data.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the response user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT
+ packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add
+ metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the server reference. This can be used together with i.e. "Server Moved" to send
+ a different server address to the client.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets the session expiry interval.
+ The time after a session expires when it's not actively used.
+ A value of 0 means no expiation.
+
+
+
+
+ Gets or sets a key/value collection that can be used to share data within the scope of this session.
+
+
+
+
+ Gets or sets the topic alias maximum.
+ This gives the maximum length of the topic alias.
+ A value of 0 indicates that the value is not used.
+
+
+
+
+ Gets or sets the user properties.
+ In MQTT 5, user properties are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT
+ packet.
+ As long as you don’t exceed the maximum message size, you can use an unlimited number of user properties to add
+ metadata to MQTT messages and pass information between publisher, broker, and subscriber.
+ The feature is very similar to the HTTP header concept.
+ MQTT 5.0.0+ feature.
+
+
+
+
+ Gets or sets the will delay interval.
+ This is the time between the client disconnect and the time the will message will be sent.
+ A value of 0 indicates that the value is not used.
+
+
+
+
+ Gets or sets the session items which should be used for all event handlers which are involved in message
+ processing.
+ If _null_ is specified the singleton session items from the server are used instead.
+
+
+
+
+ Timestamp of the last package that has been sent to the client ("received" from the client's perspective)
+
+
+
+
+ Timestamp of the last package that has been received from the client ("sent" from the client's perspective)
+
+
+
+
+ Session should persist if CleanSession was set to false (Mqtt3) or if SessionExpiryInterval != 0 (Mqtt5)
+
+
+
+
+ Helper class that stores subscriptions by their topic hash mask.
+
+
+
+
+ Gives access to the session items which belong to this server. This session items are passed
+ to several events instead of the client session items if the event is caused by the server instead of a client.
+
+
+
+
+ Gets or sets the default and initial size of the packet write buffer.
+ It is recommended to set this to a value close to the usual expected packet size * 1.5.
+ Do not change this value when no memory issues are experienced.
+
+
+
+
+ Gets or sets the maximum size of the buffer writer. The writer will reduce its internal buffer
+ to this value after serializing a packet.
+ Do not change this value when no memory issues are experienced.
+
+
+
+
+ Usually the MQTT packets can be send partially to improve memory allocations.
+ This is done by using multiple TCP packets or WebSocket frames etc.
+ Unfortunately not all clients do support this and will close the connection when receiving partial packets.
+
+
+
+
+ Gets or sets whether the sockets keep alive feature should be used.
+ The value _null_ indicates that the OS and framework defaults should be used.
+
+
+
+
+ Usually the MQTT packets can be send partially. This is done by using multiple TCP packets
+ or WebSocket frames etc. Unfortunately not all clients do support this feature and
+ will close the connection when receiving such packets. If such clients are connecting to this
+ server the flag must be set to _false_.
+
+
+
+
+ Gets or sets the TCP keep alive interval.
+ The value _null_ indicates that the OS and framework defaults should be used.
+
+
+
+
+ Gets or sets the TCP keep alive retry count.
+ The value _null_ indicates that the OS and framework defaults should be used.
+
+
+
+
+ Gets or sets the TCP keep alive time.
+ The value _null_ indicates that the OS and framework defaults should be used.
+
+
+
+
+ This requires admin permissions on Linux.
+
+
+
+
+ Gets or sets the client identifier.
+ Hint: This identifier needs to be unique over all used clients / devices on the broker to avoid connection issues.
+
+
+
+
+ Gets or sets the reason code which is sent to the client.
+ The subscription is skipped when the value is not GrantedQoS_.
+ MQTTv5 only.
+
+
+
+
+ Gets or sets the reason code which is sent to the client.
+ MQTTv5 only.
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/MaiMuAOI.exe.config b/MaiMuAOI/MaiMuAOI/bin/x64/Release/MaiMuAOI.exe.config
new file mode 100644
index 0000000..27fc164
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/MaiMuAOI.exe.config
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/MaiMuControl.dll.config b/MaiMuAOI/MaiMuAOI/bin/x64/Release/MaiMuControl.dll.config
new file mode 100644
index 0000000..eef1b4e
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/MaiMuControl.dll.config
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.Core.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.Core.xml
new file mode 100644
index 0000000..80368fa
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.Core.xml
@@ -0,0 +1,7634 @@
+
+
+
+ Microsoft.Web.WebView2.Core
+
+
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+ WebView2 enables you to host web content using the latest Microsoft Edge browser and web technology.
+
+
+
+
+ Print the current page to PDF asynchronously with the provided settings.
+
+
+ See for description of settings. Passing null for printSettings results in default print settings used.
+
+ Use resultFilePath to specify the path to the PDF file. The host should provide an absolute path, including file name. If the path points to an existing file, the file will be overwritten. If the path is not valid, the method fails.
+
+ The async PrintToPdf operation completes when the data has been written to the PDF file. If the application exits before printing is complete, the file is not saved. Only one `Printing` operation can be in progress at a time.
+ If PrintToPdf is called while a `PrintToPdf` or `PrintToPdfStream` or `Print` operation is in progress, the operation completes and returns false.
+
+
+
+
+ Opens the browser print preview dialog to print the current web page
+
+
+
+
+ Gets the object contains various modifiable settings for the running WebView.
+
+
+
+
+ Gets the URI of the current top level document.
+
+
+ This value potentially changes as a part of the event raised for some cases such as navigating to a different site or fragment navigations. It remains the same for other types of navigations such as page refreshes or history.pushState with the same URL as the current page.
+
+
+
+
+
+ Gets the process ID of the browser process that hosts the WebView.
+
+
+
+
+ true if the WebView is able to navigate to a previous page in the navigation history.
+
+
+ If CanGoBack changes value, the event is raised.
+
+
+
+
+
+ true if the WebView is able to navigate to a next page in the navigation history.
+
+
+ If CanGoForward changes value, the event is raised.
+
+
+
+
+
+ Gets the title for the current top-level document.
+
+
+ If the document has no explicit title or is otherwise empty, a default that may or may not match the URI of the document is used.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="DocumentTitle":::
+
+
+
+
+ Indicates if the WebView contains a fullscreen HTML element.
+
+
+
+
+ NavigationStarting is raised when the WebView main frame is requesting permission to navigate to a different URI.
+
+
+ Redirects raise this event as well, and the navigation id is the same as the original one. You may block corresponding navigations until the event handler returns.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="NavigationStarting":::
+
+
+
+
+ ContentLoading is raised before any content is loaded, including scripts added with . ContentLoading is not raised if a same page navigation occurs (such as through fragment navigations or history.pushState navigations).
+
+
+ This operation follows the and events and precedes the and events.
+
+
+
+
+
+
+
+
+ SourceChanged is raised when the property changes.
+
+
+ SourceChanged is raised when navigating to a different site or fragment navigations. It is not raised for other types of navigations such as page refreshes or history.pushState with the same URL as the current page. This event is raised before for navigation to a new document.
+
+
+
+
+
+
+ HistoryChanged is raised for changes to joint session history, which consists of top-level and manual frame navigations.
+
+
+ Use HistoryChanged to verify that the or value has changed. HistoryChanged is also raised for using or . HistoryChanged is raised after and . CanGoBack is false for navigations initiated through CoreWebView2Frame APIs if there has not yet been a user gesture.
+
+
+
+
+
+
+
+
+ NavigationCompleted is raised when the WebView has completely loaded (body.onload has been raised) or loading stopped with error.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="NavigationCompleted":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="DOMContentLoaded":::
+
+
+
+
+ FrameNavigationStarting is raised when a child frame in the WebView requests permission to navigate to a different URI.
+
+
+ Redirects raise this operation as well, and the navigation id is the same as the original one. You may block corresponding navigations until the event handler returns.
+
+
+
+
+ FrameNavigationCompleted is raised when a child frame has completely loaded (body.onload has been raised) or loading stopped with error.
+
+
+
+
+ ScriptDialogOpening is raised when a JavaScript dialog (alert, confirm, prompt, or beforeunload) displays for the WebView.
+
+
+ This event only is raised if the property is set to false. This event suppresses dialogs or replaces default dialogs with custom dialogs.
+
+ If a deferral is not taken on the event args, the subsequent scripts are blocked until the event handler returns. If a deferral is taken, the scripts are blocked until the deferral is completed.
+
+
+
+
+
+ PermissionRequested is raised when content in a WebView requests permission to access some privileged resources.
+
+
+ If a deferral is not taken on the event args, the subsequent scripts are blocked until the event handler returns. If a deferral is taken, the scripts are blocked until the deferral is completed.
+
+
+
+
+ ProcessFailed is raised when a WebView process ends unexpectedly or becomes unresponsive.
+
+
+ ProcessFailed is raised when any of the processes in the WebView2 Process Group encounters one of the following conditions:
+
+
+
+ Condition
+ Details
+
+
+ Unexpected exit
+
+ The process indicated by the event args has exited unexpectedly (usually due to a crash). The failure might or might not be recoverable, and some failures are auto-recoverable.
+
+
+
+ Unresponsiveness
+
+ The process indicated by the event args has become unresponsive to user input. This is only reported for renderer processes, and will run every few seconds until the process becomes responsive again.
+
+
+
+
+ Note: When the failing process is the browser process, a event will run too.
+
+ Your application can use to identify which condition and process the event is for, and to collect diagnostics and handle recovery if necessary. For more details about which cases need to be handled by your application, see .
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ProcessFailed":::
+
+
+
+
+ WebMessageReceived is raised when the setting is set and the top-level document of the WebView runs window.chrome.webview.postMessage or window.chrome.webview.postMessageWithAdditionalObjects.
+
+
+ The postMessage function is void postMessage(object) where object is any object supported by JSON conversion.
+ When postMessage is called, the handler's Invoke method will be called with the object parameter postMessage converted to a JSON string.
+ If the same page calls postMessage multiple times, the corresponding WebMessageReceived events are guaranteed to be fired in the same order. However, if multiple frames call postMessage, there is no guaranteed order. In addition, WebMessageReceived events caused by calls to postMessage are not guaranteed to be sequenced with events caused by DOM APIs. For example, if the page runs
+
+ chrome.webview.postMessage("message");
+ window.open();
+
+ then the event might be fired before the WebMessageReceived event. If you need the WebMessageReceived event to happen before anything else, then in the WebMessageReceived handler you can post a message back to the page and have the page wait until it receives that message before continuing.
+
+
+
+
+ NewWindowRequested is raised when content inside the WebView requests to open a new window, such as through window.open().
+
+
+ The app can pass a target WebView that is considered the opened window or mark the event as , in which case WebView2 does not open a window.
+ If either Handled or properties are not set, the target content will be opened on a popup window.
+ If a deferral is not taken on the event args, scripts that resulted in the new window that are requested are blocked until the event handler returns. If a deferral is taken, then scripts are blocked until the deferral is completed.
+
+ On Hololens 2, if the property is not set and the property is not set to true, the WebView2 will navigate to the .
+ If either of these properties are set, the WebView2 will not navigate to the and the the event will continue as normal.
+
+
+
+
+ DocumentTitleChanged is raised when the property changes and may be raised before or after the event.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="DocumentTitleChanged":::
+
+
+
+
+
+ ContainsFullScreenElementChanged is raised when the property changes.
+
+
+ An HTML element inside the WebView may enter fullscreen to the size of the WebView or leave fullscreen. This event is useful when, for example, a video element requests to go fullscreen. The listener of this event may resize the WebView in response.
+
+
+
+
+
+ WebResourceRequested is raised when the WebView is performing a URL request to a matching URL and resource context filter that was added with .
+
+
+ At least one filter must be added for the event to be raised.
+ The web resource requested may be blocked until the event handler returns if a deferral is not taken on the event args. If a deferral is taken, then the web resource requested is blocked until the deferral is completed.
+
+ If this event is subscribed in the handler it should be called after the new window is set. For more details see .
+
+ This event is by default raised for file, http, and https URI schemes. This is also raised for registered custome URI schemes. See for more details.
+
+
+
+
+
+ WindowCloseRequested is raised when content inside the WebView requested to close the window, such as after window.close() is run.
+
+
+ The app should close the WebView and related app window if that makes sense to the app.
+
+
+
+
+ Causes a navigation of the top level document to the specified URI.
+
+ The URI to navigate to.
+
+ For more information, navigate to [Navigation event](/microsoft-edge/webview2/concepts/navigation-events). Note that this operation starts a navigation and the corresponding event is raised sometime after Navigate runs.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="Navigate":::
+
+
+
+
+
+
+ Initiates a navigation to htmlContent as source HTML of a new document.
+
+ A source HTML of a new document.
+
+ The htmlContent parameter may not be larger than 2 MB (2 * 1024 * 1024 bytes) in total size. The origin of the new page is about:blank.
+
+
+
+ webView.CoreWebView2.SetVirtualHostNameToFolderMapping(
+ "appassets.example", "assets", CoreWebView2HostResourceAccessKind.DenyCors);
+ string htmlContent =
+ @"
+
+
+
+
+
+ ";
+ webview.NavigateToString(htmlContent);
+
+
+
+
+
+
+
+
+ Adds the provided JavaScript to a list of scripts that should be run after the global object has been created, but before the HTML document has been parsed and before any other script included by the HTML document is run.
+
+ The JavaScript code to be run.
+ A script ID that may be passed when calling .
+
+ The injected script will apply to all future top level document and child frame navigations until removed with .
+ This is applied asynchronously and you must wait for the returned to complete before you can be sure that the script is ready to execute on future navigations.
+ If the method is run in handler, it should be called before the new window is set. For more details see .
+
+ Note that if an HTML document has sandboxing of some kind via [sandbox](https://developer.mozilla.org/docs/Web/HTML/Element/iframe#attr-sandbox) properties or the [Content-Security-Policy HTTP header](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Security-Policy) this will affect the script run here. So, for example, if the allow-modals keyword is not set then calls to the alert function will be ignored.
+
+
+
+
+
+ Removes the corresponding JavaScript added via with the specified script ID.
+
+ The ID corresponds to the JavaScript code to be removed from the list of scripts.
+ Both use and this method in handler at the same time sometimes causes trouble. Since invalid scripts will be ignored, the script IDs you got may not be valid anymore.
+
+
+
+ Runs JavaScript code from the javaScript parameter in the current top-level document rendered in the WebView.
+
+ The JavaScript code to be run in the current top-level document rendered in the WebView.
+ A JSON encoded string that represents the result of running the provided JavaScript.
+
+ If the result is undefined, contains a reference cycle, or otherwise is not able to be encoded into JSON, the JSON null value is returned as the "null" string.
+
+ A function that has no explicit return value returns undefined. If the script that was run throws an unhandled exception, then the result is also null. This method is applied asynchronously. If the method is run after the event during a navigation, the script runs in the new document when loading it, around the time is run. This operation works even if is set to false.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ExecuteScript":::
+
+
+
+
+
+ Captures an image of what WebView is displaying.
+
+ The format of the image to be captured.
+ The stream to which the resulting image binary data is written.
+
+ When CapturePreviewAsync finishes writing to the stream, the Invoke method on the provided handler parameter is called. This method fails if called before the first event. For example if this is called in the event for the first navigation it will fail. For subsequent navigations, the method may not fail, but will not capture an image of a given webpage until the event has been fired for it. Any call to this method prior to that will result in a capture of the page being navigated away from.
+
+
+
+
+
+ Reloads the current page.
+
+
+ This is similar to navigating to the URI of current top level document including all navigation events firing and respecting any entries in the HTTP cache. But, the back or forward history will not be modified.
+
+
+
+
+ Posts the specified webMessageAsJson to the top level document in this WebView.
+
+ The web message to be posted to the top level document in this WebView.
+
+ The event args is an instance of MessageEvent. The setting must be true or the message will not be sent. The event arg's data property of the event arg is the webMessageAsJson string parameter parsed as a JSON string into a JavaScript object. The event arg's source property of the event arg is a reference to the window.chrome.webview object. For information about sending messages from the HTML document in the WebView to the host, navigate to . The message is sent asynchronously. If a navigation occurs before the message is posted to the page, the message is not be sent.
+
+
+ Runs the message event of the window.chrome.webview of the top-level document. JavaScript in that document may subscribe and unsubscribe to the event using the following code:
+
+ window.chrome.webview.addEventListener('message', handler)
+ window.chrome.webview.removeEventListener('message', handler)
+
+
+
+
+
+
+
+
+ Posts a message that is a simple string rather than a JSON string representation of a JavaScript object.
+
+ The web message to be posted to the top level document in this WebView.
+
+ This behaves in exactly the same manner as , but the data property of the event arg of the window.chrome.webview message is a string with the same value as webMessageAsString. Use this instead of if you want to communicate using simple strings rather than JSON objects.
+
+
+
+
+
+
+ Runs an asynchronous DevToolsProtocol method.
+
+ The full name of the method in the format {domain}.{method}.
+ A JSON formatted string containing the parameters for the corresponding method.
+ A JSON string that represents the method's return object.
+
+ For more information about available methods, navigate to [DevTools Protocol Viewer](https://aka.ms/DevToolsProtocolDocs). The returned task is completed when the method asynchronously completes and will return the method's return object as a JSON string. Note even though WebView2 dispatches the CDP messages in the order called, CDP method calls may be processed out of order. If you require CDP methods to run in a particular order, you should await for the previous method call.
+
+
+
+
+ Navigates the WebView to the previous page in the navigation history.
+
+
+
+
+ Navigates the WebView to the next page in the navigation history.
+
+
+
+
+ Gets a DevTools Protocol event receiver that allows you to subscribe to a DevToolsProtocol event.
+
+ The full name of the event in the format {domain}.{event}.
+ A Devtools Protocol event receiver.
+
+ For more information about DevToolsProtocol events description and event args, navigate to [DevTools Protocol Viewer](https://aka.ms/DevToolsProtocolDocs).
+
+
+
+
+ Stops all navigations and pending resource fetches.
+
+
+ Does not stop scripts.
+
+
+
+
+ Adds the provided host object to script running in the WebView with the specified name.
+
+ The name of the host object.
+ The host object to be added to script.
+
+ Host objects are exposed as host object proxies via window.chrome.webview.hostObjects.{name}. Host object proxies are promises and will resolve to an object representing the host object. Only the COM visible objects/properties/methods can be accessed from script.
+ The app can control which part of .NET objects are exposed using .
+
+ JavaScript code in the WebView will be able to access appObject as following and then access attributes and methods of appObject.
+
+ Note that while simple types, IDispatch and array are supported, and IUnknown objects that also implement IDispatch are treated as IDispatch, generic IUnknown, VT_DECIMAL, or VT_RECORD variant is not supported. Remote JavaScript objects like callback functions are represented as an VT_DISPATCH VARIANT with the object implementing IDispatch. The JavaScript callback method may be invoked using DISPID_VALUE for the DISPID. Such callback method invocations will return immediately and will not wait for the JavaScript function to run and so will not provide the return value of the JavaScript function. Nested arrays are supported up to a depth of 3. Arrays of by reference types are not supported. VT_EMPTY and VT_NULL are mapped into JavaScript as null. In JavaScript null and undefined are mapped to VT_EMPTY.
+
+ Additionally, all host objects are exposed as window.chrome.webview.hostObjects.sync.{name}. Here the host objects are exposed as synchronous host object proxies. These are not promises and calls to functions or property access synchronously block running script waiting to communicate cross process for the host code to run. Accordingly this can result in reliability issues and it is recommended that you use the promise based asynchronous window.chrome.webview.hostObjects.{name} API described above.
+
+ Synchronous host object proxies and asynchronous host object proxies can both proxy the same host object. Remote changes made by one proxy will be reflected in any other proxy of that same host object whether the other proxies and synchronous or asynchronous.
+
+ While JavaScript is blocked on a synchronous call to native code, that native code is unable to call back to JavaScript. Attempts to do so will fail with HRESULT_FROM_WIN32(ERROR_POSSIBLE_DEADLOCK).
+
+ Host object proxies are JavaScript Proxy objects that intercept all property get, property set, and method invocations. Properties or methods that are a part of the Function or Object prototype are run locally. Additionally any property or method in the array chrome.webview.hostObjects.options.forceLocalProperties will also be run locally. This defaults to including optional methods that have meaning in JavaScript like toJSON and Symbol.toPrimitive. You can add more to this array as required.
+
+ There's a method chrome.webview.hostObjects.cleanupSome that will best effort garbage collect host object proxies.
+
+ The chrome.webview.hostObjects.options object provides the ability to change some functionality of host objects.
+
+
+
+ Options property
+ Details
+
+
+ forceLocalProperties
+
+ This is an array of host object property names that will be run locally, instead of being called on the native host object. This defaults to then, toJSON, Symbol.toString, and Symbol.toPrimitive. You can add other properties to specify that they should be run locally on the JavaScript host object proxy.
+
+
+
+ log
+
+ This is a callback that will be called with debug information. For example, you can set this to console.log.bind(console) to have it print debug information to the console to help when troubleshooting host object usage. By default this is null.
+
+
+
+ shouldSerializeDates
+
+ By default this is false, and JavaScript Date objects will be sent to host objects as a string using JSON.stringify. You can set this property to true to have Date objects properly serialize as a System.DateTime when sending to the .NET host object, and have System.DateTime properties and return values create a JavaScript Date object.
+
+
+
+ defaultSyncProxy
+
+ When calling a method on a synchronous proxy, the result should also be a synchronous proxy. But in some cases, the sync/async context is lost (for example, when providing to native code a reference to a function, and then calling that function in native code). In these cases, the proxy will be asynchronous, unless this property is set.
+
+
+
+ forceAsyncMethodMatches
+
+ This is an array of regular expressions. When calling a method on a synchronous proxy, the method call will be performed asynchronously if the method name matches a string or regular expression in this array. Setting this value to Async will make any method that ends with Async be an asynchronous method call. If an async method doesn't match here and isn't forced to be asynchronous, the method will be invoked synchronously, blocking execution of the calling JavaScript and then returning the resolution of the promise, rather than returning a promise.
+
+
+
+ ignoreMemberNotFoundError
+
+ By default, an exception is thrown when attempting to get the value of a proxy property that doesn't exist on the corresponding native class. Setting this property to true switches the behavior to match Chakra WinRT projection (and general JavaScript) behavior of returning undefined with no error.
+
+
+
+
+ Host object proxies additionally have the following methods:
+
+
+
+ Method name
+ Details
+
+
+ applyHostFunction, getHostProperty, setHostProperty
+
+ Perform a method invocation, property get, or property set on the host object. You can use these to explicitly force a method or property to run remotely if there is a conflicting local method or property. For instance, proxy.toString() will run the local toString method on the proxy object. But proxy.applyHostFunction('toString') runs toString on the host proxied object instead.
+
+
+
+ getLocalProperty, setLocalProperty
+
+ Perform property get, or property set locally. You can use these methods to force getting or setting a property on the host object proxy itself rather than on the host object it represents. For instance, proxy.unknownProperty will get the property named unknownProperty from the host proxied object. But proxy.getLocalProperty('unknownProperty') will get the value of the property unknownProperty on the proxy object itself.
+
+
+
+ addEventListener
+
+ This method only exists on proxies for .NET objects. Bind the JavaScript handler to the C# event, so that the JavaScript handler can be called through the C# event. For example, chrome.webview.hostObjects.sample.addEventListener('TestEvent', () => { alert('Invoked from remote');}); bind an anonymous JavaScript function to a C# event called 'TestEvent'. When calling TestEvent?.Invoke() on C# side, the JavaScript function that was just bound will be called asynchronously. It allows adding more than one handler for an event, but if the handler is already in the list of event handler, it will not be added a second time. If the host object cannot find the event with the name passed in by the addEventListener function or it is no public or its return type is not void, an exception will be thrown. If the count and type of C# event's parameters do not match the count and type of JavaScript handler, invoke addEventListener will be successful but an exception will be passed to JavaScript when invoke the event on C# side. If the host object has defined addEventListener function, use the defined function rather than the additionally addEventListener function.
+
+
+
+ removeEventListener
+
+ This method only exists on proxies for .NET objects. Removes a handler previously bound with addEventListener(). If the handler does not exist in the list of event handler, nothing will happen. If the host object cannot find the event with the name passed in by the removeEventListener function or it is no public, an exception will be thrown. If the host object has defined removeEventListener function, use the defined function rather than the additionally removeEventListener function.
+
+
+
+ sync
+
+ Asynchronous host object proxies expose a sync method which returns a promise for a synchronous host object proxy for the same host object. For example, chrome.webview.hostObjects.sample.methodCall() returns an asynchronous host object proxy. You can use the sync method to obtain a synchronous host object proxy instead:
+ const syncProxy = await chrome.webview.hostObjects.sample.methodCall().sync()
+
+
+
+ async
+
+ Synchronous host object proxies expose an async method which blocks and returns an asynchronous host object proxy for the same host object. For example, chrome.webview.hostObjects.sync.sample.methodCall() returns a synchronous host object proxy. Calling the async method on this blocks and then returns an asynchronous host object proxy for the same host object: const asyncProxy = chrome.webview.hostObjects.sync.sample.methodCall().async()
+
+
+
+ then
+
+ Asynchronous host object proxies have a then method. This allows them to be awaitable. then will return a promise that resolves with a representation of the host object. If the proxy represents a JavaScript literal then a copy of that is returned locally. If the proxy represents a function then a non-awaitable proxy is returned. If the proxy represents a JavaScript object with a mix of literal properties and function properties, then the a copy of the object is returned with some properties as host object proxies.
+
+
+
+
+ All other property and method invocations (other than the above Remote object proxy methods, forceLocalProperties list, and properties on Function and Object prototypes) are run remotely. Asynchronous host object proxies return a promise representing asynchronous completion of remotely invoking the method, or getting the property. The promise resolves after the remote operations complete and the promises resolve to the resulting value of the operation. Synchronous host object proxies work similarly but block JavaScript execution and wait for the remote operation to complete.
+
+ Setting a property on an asynchronous host object proxy works slightly differently. The set returns immediately and the return value is the value that will be set. This is a requirement of the JavaScript Proxy object. If you need to asynchronously wait for the property set to complete, use the setHostProperty method which returns a promise as described above. Synchronous object property set property synchronously blocks until the property is set.
+
+ Exposing host objects to script has security risk. Please follow [best practices](/microsoft-edge/webview2/concepts/security).
+
+
+ To create a [IDispatch](/windows/win32/api/oaidl/nn-oaidl-idispatch) implementing class in C# use the following attributes on each class you intend to expose.
+
+ // Bridge and BridgeAnotherClass are C# classes that implement IDispatch and works with AddHostObjectToScript.
+ [ClassInterface(ClassInterfaceType.AutoDual)]
+ [ComVisible(true)]
+ public class BridgeAnotherClass
+ {
+ // Sample property.
+ public string Prop { get; set; } = "Example";
+ }
+
+ [ClassInterface(ClassInterfaceType.AutoDual)]
+ [ComVisible(true)]
+ public class Bridge
+ {
+ public string Func(string param)
+ {
+ return "Example: " + param;
+ }
+
+ public BridgeAnotherClass AnotherObject { get; set; } = new BridgeAnotherClass();
+
+ // Sample indexed property.
+ [System.Runtime.CompilerServices.IndexerName("Items")]
+ public string this[int index]
+ {
+ get { return m_dictionary[index]; }
+ set { m_dictionary[index] = value; }
+ }
+ private Dictionary<int, string> m_dictionary = new Dictionary<int, string>();
+ }
+
+ Then add instances of those classes via :
+
+ webView.CoreWebView2.AddHostObjectToScript("bridge", new Bridge());
+
+ And then in script you can call the methods, and access those properties of the objects added via .
+ Note that `CoreWebView2.AddHostObjectToScript` only applies to the top-level document and not to frames. To add host objects to frames use `CoreWebView2Frame.AddHostObjectToScript`.
+
+ // Find added objects on the hostObjects property
+ const bridge = chrome.webview.hostObjects.bridge;
+
+ // Call a method and pass in a parameter.
+ // The result is another proxy promise so you must await to get the result.
+ console.log(await bridge.Func("testing..."));
+
+ // A property may be another object as long as its class also implements
+ // IDispatch.
+ // Getting a property also gets a proxy promise you must await.
+ const propValue = await bridge.AnotherObject.Prop;
+ console.log(propValue);
+
+ // Indexed properties
+ let index = 123;
+ bridge[index] = "test";
+ let result = await bridge[index];
+ console.log(result);
+
+
+
+
+
+
+ Removes the host object specified by the name so that it is no longer accessible from JavaScript code in the WebView.
+
+ The name of the host object to be removed.
+
+ While new access attempts are denied, if the object is already obtained by JavaScript code in the WebView, the JavaScript code continues to have access to that object. Running this method for a name that is already removed or never added fails.
+
+
+
+
+ Opens the DevTools window for the current document in the WebView.
+
+
+ Does nothing if run when the DevTools window is already open.
+
+
+
+
+ Adds a URI and resource context filter for the event.
+
+ An URI to be added to the event.
+ A resource context filter to be added to the event.
+
+ A web resource request with a resource context that matches this filter's resource context and a URI that matches this filter's URI wildcard string will be raised via the event.
+
+ The uri parameter value is a wildcard string matched against the URI of the web resource request. This is a glob style wildcard string in which a * matches zero or more characters and a ? matches exactly one character.
+ These wildcard characters can be escaped using a backslash just before the wildcard character in order to represent the literal * or ?.
+
+ The matching occurs over the URI as a whole string and not limiting wildcard matches to particular parts of the URI.
+ The wildcard filter is compared to the URI after the URI has been normalized, any URI fragment has been removed, and non-ASCII hostnames have been converted to punycode.
+
+ Specifying a nullptr for the uri is equivalent to an empty string which matches no URIs.
+
+ For more information about resource context filters, navigate to .
+
+
+
+ URI Filter String
+ Request URI
+ Match
+ Notes
+
+
+ *
+ https://contoso.com/a/b/c
+ Yes
+ A single * will match all URIs
+
+
+ *://contoso.com/*
+ https://contoso.com/a/b/c
+ Yes
+ Matches everything in contoso.com across all schemes
+
+
+ *://contoso.com/*
+ https://example.com/?https://contoso.com/
+ Yes
+ But also matches a URI with just the same text anywhere in the URI
+
+
+ example
+ https://contoso.com/example
+ No
+ The filter does not perform partial matches
+
+
+ *example
+ https://contoso.com/example
+ Yes
+ The filter matches across URI parts
+
+
+ *example
+ https://contoso.com/path/?example
+ Yes
+ The filter matches across URI parts
+
+
+ *example
+ https://contoso.com/path/?query#example
+ No
+ The filter is matched against the URI with no fragment
+
+
+ *example
+ https://example
+ No
+ The URI is normalized before filter matching so the actual URI used for comparison is https://example.com/
+
+
+ *example/
+ https://example
+ Yes
+ Just like above, but this time the filter ends with a / just like the normalized URI
+
+
+ https://xn--qei.example/
+ https://❤.example/
+ Yes
+ Non-ASCII hostnames are normalized to punycode before wildcard comparison
+
+
+ https://❤.example/
+ https://xn--qei.example/
+ No
+ Non-ASCII hostnames are normalized to punycode before wildcard comparison
+
+
+
+
+
+
+
+
+
+ Removes a matching WebResource filter that was previously added for the event.
+
+ An URI to at which a web resource filter was added.
+ A previously added resource context filter to be removed.
+ A filter that was never added.
+
+ If the same filter was added multiple times, then it must need to be removed as many times as it was added for the removal to be effective.
+
+
+
+
+
+ Gets the object associated with this .
+
+
+
+
+
+ Exposes the used to create this .
+
+
+
+
+ WebResourceResponseReceived is raised when the WebView receives the response for a request for a web resource (any URI resolution performed by the WebView; such as HTTP/HTTPS, file and data requests from redirects, navigations, declarations in HTML, implicit Favicon lookups, and fetch API usage in the document).
+
+
+ The host app can use this event to view the actual request and response for a web resource. There is no guarantee about the order in which the WebView processes the response and the host app's handler runs. The app's handler will not block the WebView from processing the response.
+ The event args include the as sent by the wire and received, including any additional headers added by the network stack that were not be included as part of the associated event, such as Authentication headers.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="WebResourceResponseReceived":::
+
+
+
+
+ DOMContentLoaded is raised when the initial HTML document has been parsed.
+
+
+ This aligns with the the document's DOMContentLoaded event in HTML.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="DOMContentLoaded":::
+
+
+
+
+ Navigates using a constructed object.
+
+ The constructed web resource object to provide post data or additional request headers during navigation.
+
+ The headers in the override headers added by WebView2 runtime except for Cookie headers. Method can only be either GET or POST. Provided post data will only be sent only if the method is POST and the uri scheme is HTTP(S).
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="NavigateWithWebResourceRequest":::
+
+
+
+
+ Whether WebView is suspended.
+
+
+ True when WebView is suspended, from the time when has completed successfully until WebView is resumed.
+
+
+
+
+ An app may call this API to have the WebView2 consume less memory.
+
+
+ This is useful when a Win32 app becomes invisible, or when a Universal Windows Platform app is being suspended, during the suspended event handler before completing the suspended event.
+
+ The property must be false when the API is called. Otherwise, the API throws COMException with error code of HRESULT_FROM_WIN32(ERROR_INVALID_STATE).
+
+ Suspending is similar to putting a tab to sleep in the Edge browser. Suspending pauses WebView script timers and animations, minimizes CPU usage for the associated browser renderer process and allows the operating system to reuse the memory that was used by the renderer process for other processes.
+
+ Note that Suspend is best effort and considered completed successfully once the request is sent to browser renderer process. If there is a running script, the script will continue to run and the renderer process will be suspended after that script is done.
+
+ See [Sleeping Tabs FAQ](https://techcommunity.microsoft.com/t5/articles/sleeping-tabs-faq/m-p/1705434) for conditions that might prevent WebView from being suspended. In those situations, the result of the async task is false.
+
+ The WebView will be automatically resumed when it becomes visible. Therefore, the app normally does not have to call explicitly.
+
+ The app can call and then periodically for an invisible WebView so that the invisible WebView can sync up with latest data and the page ready to show fresh content when it becomes visible.
+
+ All WebView APIs can still be accessed when a WebView is suspended. Some APIs like Navigate will auto resume the WebView. To avoid unexpected auto resume, check property before calling APIs that might change WebView state.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="TrySuspend":::
+
+
+
+
+ Resumes the WebView so that it resumes activities on the web page.
+
+
+ This API can be called while the WebView2 controller is invisible.
+
+ The app can interact with the WebView immediately after .
+
+ WebView will be automatically resumed when it becomes visible.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="Resume":::
+
+
+
+
+ Sets a mapping between a virtual host name and a folder path to make available to web sites via that host name.
+
+ A virtual host name.
+ A folder path name to be mapped to the virtual host name. The length must not exceed the Windows MAX_PATH limit.
+ The level of access to resources under the virtual host from other sites.
+
+
+ After setting the mapping, documents loaded in the WebView can use HTTP or HTTPS URLs at the specified host name specified by hostName to access files in the local folder specified by folderPath.
+ This mapping applies to both top-level document and iframe navigations as well as subresource references from a document. This also applies to dedicated and shared worker scripts but does not apply to service worker scripts.
+
+ Due to a current implementation limitation, media files accessed using virtual host name can be very slow to load.
+
+ As the resource loaders for the current page might have already been created and running, changes to the mapping might not be applied to the current page and a reload of the page is needed to apply the new mapping.
+
+ Both absolute and relative paths are supported for folderPath. Relative paths are interpreted as relative to the folder where the exe of the app is in.
+
+
+ For example, after calling SetVirtualHostNameToFolderMapping("appassets.example", "assets", CoreWebView2HostResourceAccessKind.Deny);, navigating to https://appassets.example/my-local-file.html will show content from my-local-file.html in the assets subfolder located on disk under the same path as the app's executable file.
+
+ DOM elements that want to reference local files will have their host reference virtual host in the source. If there are multiple folders being used, define one unique virtual host per folder.
+
+
+ You should typically choose virtual host names that are never used by real sites.
+ If you own a domain such as example.com, another option is to use a subdomain reserved for the app (like my-app.example.com).
+
+
+ [RFC 6761](https://tools.ietf.org/html/rfc6761) has reserved several special-use domain names that are guaranteed to not be used by real sites (for example, .example, .test, and .invalid).
+
+
+ Note that using .local as the top-level domain name will work but can cause a delay during navigations. You should avoid using .local if you can.
+
+
+ Apps should use distinct domain names when mapping folder from different sources that should be isolated from each other. For instance, the app might use app-file.example for files that ship as part of the app, and book1.example might be used for files containing books from a less trusted source that were previously downloaded and saved to the disk by the app.
+
+
+ The host name used in the APIs is canonicalized using Chromium's host name parsing logic before being used internally.
+ For more information see [HTML5 2.6 URLs](https://dev.w3.org/html5/spec-LC/urls.html).
+
+
+ All host names that are canonicalized to the same string are considered identical.
+ For example, EXAMPLE.COM and example.com are treated as the same host name.
+ An international host name and its Punycode-encoded host name are considered the same host name. There is no DNS resolution for host name and the trailing '.' is not normalized as part of canonicalization.
+
+
+ Therefore example.com and example.com. are treated as different host names. Similarly, virtual-host-name and virtual-host-name.example.com are treated as different host names even if the machine has a DNS suffix of example.com.
+
+
+ Specify the minimal cross-origin access necessary to run the app. If there is not a need to access local resources from other origins, use .
+
+
+
+
+ webView.CoreWebView2.SetVirtualHostNameToFolderMapping(
+ "appassets.example", "assets", CoreWebView2HostResourceAccessKind.DenyCors);
+ webView.Source = new Uri("https://appassets.example/index.html");
+
+
+ This in an example on how to embed a local image. For more information see .
+
+ webView.CoreWebView2.SetVirtualHostNameToFolderMapping(
+ "appassets.example", "assets", CoreWebView2HostResourceAccessKind.DenyCors);
+ string c_navString = "";
+ webview.NavigateToString(c_navString);
+
+
+
+
+
+
+ Clears a host name mapping for local folder that was added by .
+
+ The host name to be removed from the mapping.
+
+
+
+
+ FrameCreated is raised when a new iframe is created. Handle this event to get access to objects.
+
+
+
+ Use the to listen for when this iframe goes away.
+
+
+
+
+ DownloadStarting is raised when a download has begun, blocking the default download dialog, but not blocking the progress of the download.
+
+
+ The host can choose to cancel a download, change the result file path, and hide the default download dialog. If download is not handled or canceled, the download is saved to the default path after the event completes with default download dialog shown.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="DownloadStarting":::
+
+
+
+
+ ClientCertificateRequested is raised when WebView2 is making a request to an HTTP server that needs a client certificate for HTTP authentication. Read more about HTTP client certificates at [RFC 8446 The Transport Layer Security (TLS) Protocol Version 1.3](https://tools.ietf.org/html/rfc8446).
+
+
+ The host have several options for responding to client certificate requests:
+
+
+
+ Scenario
+ Handled
+ Cancel
+ SelectedCertificate
+
+
+ Respond to server with a certificate
+ True
+ False
+ MutuallyTrustedCertificate value
+
+
+ Respond to server without certificate
+ True
+ False
+ null
+
+
+ Display default client certificate selection dialog prompt
+ False
+ False
+ n/a
+
+
+ Cancel the request
+ n/a
+ True
+ n/a
+
+
+
+ If the host don't handle the event, WebView2 will show the default client certificate selection dialog prompt to the user.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ClientCertificateRequested1":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ClientCertificateRequested2":::
+
+
+
+
+ Opens the Browser Task Manager view as a new window in the foreground.
+
+
+ If the Browser Task Manager is already open, this will bring it into the foreground. WebView2 currently blocks the Shift+Esc shortcut for opening the task manager. An end user can open the browser task manager manually via the Browser task manager entry of the DevTools window's title bar's context menu.
+
+
+
+
+ Indicates whether all audio output from this CoreWebView2 is muted or not. Set to true will mute this CoreWebView2, and set to false will unmute this CoreWebView2. true if audio is muted.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ToggleIsMuted":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="UpdateTitleWithMuteState":::
+
+
+
+
+ Indicates whether any audio output from this CoreWebView2 is playing. true if audio is playing even if is true.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="UpdateTitleWithMuteState":::
+
+
+
+
+ IsMutedChanged is raised when the mute state changes.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="IsMutedChanged":::
+
+
+
+
+ IsDocumentPlayingAudioChanged is raised when document starts or stops playing audio.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="IsDocumentPlayingAudioChanged":::
+
+
+
+
+ True if the default download dialog is currently open.
+
+
+ The value of this property changes only when the default download dialog is explicitly opened or closed. Hiding the WebView implicitly hides the dialog, but does not change the value of this property.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ToggleDefaultDownloadDialog":::
+
+
+
+
+ The default download dialog corner alignment.
+
+
+ The dialog can be aligned to any of the WebView corners (see ). When the WebView or dialog changes size, the dialog keeps it position relative to the corner. The dialog may become partially or completely outside of the WebView bounds if the WebView is small enough. Set the margin from the corner with the property. The corner alignment and margin should be set during initialization to ensure that they are correctly applied when the layout is first computed, otherwise they will not take effect until the next time the WebView position or size is updated.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="SetDefaultDownloadDialogPosition":::
+
+
+
+
+ The default download dialog margin relative to the WebView corner specified by .
+
+
+ The margin is a point that describes the vertical and horizontal distances between the chosen WebView corner and the default download dialog corner nearest to it. Positive values move the dialog towards the center of the WebView from the chosen WebView corner, and negative values move the dialog away from it. Use (0, 0) to align the dialog to the WebView corner with no margin. The corner alignment and margin should be set during initialization to ensure that they are correctly applied when the layout is first computed, otherwise they will not take effect until the next time the WebView position or size is updated.
+
+
+
+
+ Raised when the property changes.
+
+
+ This event comes after the event. Setting the property disables the default download dialog and ensures that this event is never raised.
+
+
+
+
+ Open the default download dialog.
+
+
+ If the dialog is opened before there are recent downloads, the dialog shows all past downloads for the current profile. Otherwise, the dialog shows only the recent downloads with a "See more" button for past downloads. Calling this method raises the event if the dialog was closed. No effect if the dialog is already open.
+
+
+
+
+ Close the default download dialog.
+
+
+ Calling this method raises the event if the dialog was open. No effect if the dialog is already closed.
+
+
+
+
+ BasicAuthenticationRequested event is raised when WebView encounters a Basic HTTP Authentication request as described in https://developer.mozilla.org/docs/Web/HTTP/Authentication, a Digest HTTP Authentication request as described in https://developer.mozilla.org/docs/Web/HTTP/Headers/Authorization#digest, an NTLM authentication or a Proxy Authentication request.
+
+
+ The host can provide a response with credentials for the authentication or cancel the request. If the host sets the Cancel property to false but does not provide either UserName or Password properties on the Response property, then WebView2 will show the default authentication challenge dialog prompt to the user.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="BasicAuthenticationRequested":::
+
+
+
+
+ ContextMenuRequested is raised when a context menu is requested by the user and the content inside WebView hasn't disabled context menus.
+
+
+ The host has the option to create their own context menu with the information provided in the event or can add items to or remove items from WebView context menu. If the host doesn't handle the event, WebView will display the default context menu.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="CustomContextMenu":::
+
+
+
+
+ Runs an asynchronous DevToolsProtocol method for a specific session of an attached target.
+
+ The sessionId for an attached target. null or empty string is treated as the session for the default target for the top page.
+ The full name of the method in the format {domain}.{method}.
+ A JSON formatted string containing the parameters for the corresponding method.
+ A JSON string that represents the method's return object.
+
+ There could be multiple DevToolsProtocol targets in a WebView.
+ Besides the top level page, iframes from different origin and web workers are also separate targets.
+ Attaching to these targets allows interaction with them.
+ When the DevToolsProtocol is attached to a target, the connection is identified by a sessionId.
+
+ To use this API, you must set the flatten parameter to true when calling Target.attachToTarget or Target.setAutoAttachDevToolsProtocol method.
+ Using Target.setAutoAttach is recommended as that would allow you to attach to dedicated worker targets, which are not discoverable via other APIs like Target.getTargets.
+ For more information about targets and sessions, navigate to [Chrome DevTools Protocol - Target domain]( https://chromedevtools.github.io/devtools-protocol/tot/Target).
+
+ For more information about available methods, navigate to [DevTools Protocol Viewer](https://aka.ms/DevToolsProtocolDocs). The handler's Invoke method will be called when the method asynchronously completes. Invoke will be called with the method's return object as a JSON string.
+
+
+
+
+ The current text of the statusbar as defined by [Window.statusbar](https://developer.mozilla.org/docs/Web/API/Window/statusbar).
+
+
+
+
+ StatusBarTextChanged event is raised when the text in the [Window.statusbar](https://developer.mozilla.org/docs/Web/API/Window/statusbar) changes. When the event is fired use the property to get the current statusbar text.
+
+
+ Events which cause causes can be anything from hover, url events, and others. There is not a finite list on how to cause the statusbar to change.
+ The developer must create the status bar and set the text.
+
+
+
+
+ The associated object of .
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="Profile":::
+
+
+
+
+ The ServerCertificateErrorDetected event is raised when the WebView2 cannot verify server's digital certificate while loading a web page.
+
+
+ This event will raise for all web resources and follows the event.
+
+ If you don't handle the event, WebView2 will show the default TLS interstitial error page to the user for navigations, and for non-navigations the web request is cancelled.
+
+ Note that WebView2 before raising `ServerCertificateErrorDetected` raises a event with as FALSE and any of the below WebErrorStatuses that indicate a certificate failure.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For more details see and handle ServerCertificateErrorDetected event or show the default TLS interstitial error page to the user according to the app needs.
+
+ WebView2 caches the response when action is for the RequestUri's host and the server certificate in the session and the event won't be raised again.
+
+ To raise the event again you must clear the cache using .
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ServerCertificateErrorDetected":::
+
+
+
+
+ Clears all cached decisions to proceed with TLS certificate errors from the event for all WebView2's sharing the same session.
+
+
+
+
+ Get the Uri as a string of the current Favicon. This will be an empty string if the page does not have a Favicon.
+
+
+
+
+ Raised when the Favicon has changed. This can include when a new page is loaded and thus by default no icon is set or the icon is set for the page by DOM or JavaScript.
+
+
+ The first argument is the Webview2 which saw the changed Favicon and the second is null.
+
+
+
+
+ Get the downloaded Favicon image for the current page and copy it to the image stream.
+
+ The format to retrieve the Favicon in.
+
+ An IStream populated with the downloaded Favicon.
+
+
+
+
+ Print the current web page asynchronously to the specified printer with the provided settings.
+
+
+ See for description of settings. Passing null for printSettings results in default print settings used.
+
+ The method will return as if printerName doesn't match with the name of any installed printers on the user OS.
+ The method will throw ArgumentException if the caller provides invalid settings for a given printer.
+
+ The async Print operation completes when it finishes printing to the printer. Only one Printing operation can be in progress at a time. If Print is called while a or or job is in progress, throws exception. This is only for printing operation on one webview.
+
+
+
+ Error
+ PrintStatus
+ Notes
+
+
+ No
+
+ Print operation succeeded.
+
+
+ No
+
+ If specified printer is not found or printer status is not available, offline or error state.
+
+
+ No
+
+ Print operation is failed.
+
+
+ ArgumentException
+
+ If the caller provides invalid settings for the specified printer.
+
+
+ Exception
+
+ Print operation is failed as printing job already in progress.
+
+
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="PrintToPrinter":::
+
+
+
+
+ Opens the print dialog to print the current web page.
+
+
+ See for descriptions of print dialog kinds.
+
+ Invoking browser or system print dialog doesn't open new print dialog if it is already open.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ShowPrintUI":::
+
+
+
+
+ Provides the Pdf data of current web page asynchronously for the provided settings.
+
+
+ Stream will be rewound to the start of the pdf data.
+
+ See for description of settings. Passing null for printSettings results in default print settings used.
+
+ The async PrintToPdfStream operation completes when it finishes writing to the stream. Only one Printing operation can be in progress at a time. If is called while a or or job is in progress, the throws an exception. This is only for printing operation on one webview.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="PrintToPdfStream":::
+
+
+
+
+ Share a shared buffer object with script of the main frame in the WebView.
+
+ The object to be shared with script.
+ The desired given to script.
+ Additional data to be send to script. If it is not null or empty string, and it is not a valid JSON string, will be thrown.
+
+ The script will receive a sharedbufferreceived event from chrome.webview.
+ The event arg for that event will have the following methods and properties.
+
+
+
+ Property
+ Description
+
+
+ getBuffer()
+ A method that returns an ArrayBuffer object with the backing content from the shared buffer.
+
+
+ additionalData
+ An object as the result of parsing additionalDataAsJson as JSON string. This property will be undefined if additionalDataAsJson is nullptr or empty string.
+
+
+ source
+ With a value set as chrome.webview object.
+
+
+
+ If access is , the script will only have read access to the buffer.
+ If the script tries to modify the content in a read only buffer, it will cause an access violation in WebView renderer process and crash the renderer process.
+
+ If the shared buffer is already closed, the API throws with error code of RO_E_CLOSED.
+ The script code should call chrome.webview.releaseBuffer with the shared buffer as the parameter to release underlying resources as soon as it does not need access to the shared buffer any more.
+
+ The application can post the same shared buffer object to multiple web pages or iframes, or post to the same web page or iframe multiple times.
+ Each PostSharedBufferToScript will create a separate ArrayBuffer object with its own view of the memory and is separately released.
+ The underlying shared memory will be released when all the views are released.
+
+ Sharing a buffer to script has security risk. You should only share buffer with trusted site.
+ If a buffer is shared to a untrusted site, possible sensitive information could be leaked.
+ If a buffer is shared as modifiable by the script and the script modifies it in an unexpected way, it could result in corrupted data that might even crash the application.
+
+ The example code shows how to send data to script for one time read only consumption.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="OneTimeShareBuffer":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/assets/sharedBuffer.html" id="ShareBufferScriptCode_1":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/assets/sharedBuffer.html" id="ShareBufferScriptCode_2":::
+
+
+
+
+ LaunchingExternalUriScheme is raised when a navigation request is made to a URI scheme that is registered with the OS.
+
+
+ The event handler may suppress the default dialog or replace the default dialog with a custom dialog.
+ If a is not taken on the event args, the external URI scheme launch is blocked until the event handler returns.
+ If a deferral is taken, the external URI scheme launch is blocked until the is completed.
+ The host also has the option to cancel the URI scheme launch.
+
+ The and events will be raised, regardless of whether the property is set to true or false.
+ The event will be raised with the property set to false and the property set to regardless of whether the host sets the property.
+ The , and events will not be raised for this navigation to the external URI scheme regardless of the property.
+ The event will be raised after the event and before the event.
+
+ The default will also be updated upon navigation to an external URI scheme.
+ If a setting on the interface has been changed, navigating to an external URI scheme will trigger the to update.
+
+ The WebView2 may not display the default dialog based on user settings, browser settings, and whether the origin is determined as a [trustworthy origin](https://w3c.github.io/webappsec-secure-contexts#potentially-trustworthy-origin); however, the event will still be raised.
+ If the request is initiated by a cross-origin frame without a user gesture, the request will be blocked and the `LaunchingExternalUriScheme` event will not be raised.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="LaunchingExternalUriScheme":::
+
+
+
+
+ Desired of a WebView.
+
+
+ An app may set to indicate desired memory consumption level of WebView.
+ Scripts will not be impacted and continue to run.
+ This is useful for inactive apps that still want to run scripts and/or keep network connections alive and therefore could not call and to reduce memory consumption.
+ These apps can set memory usage target level to when the app becomes inactive, and set back to when the app becomes active.
+
+ It is not necessary to set CoreWebView2Controller's IsVisible property to false when setting the property.
+
+ It is a best effort operation to change memory usage level, and the API will return before the operation completes.
+
+ Setting the level to could potentially cause memory for some WebView browser processes to be swapped out to disk in some circumstances. It is a best effort to reduce memory usage as much as possible.
+ If a script runs after its related memory has been swapped out, the memory will be swapped back in to ensure the script can still run, but performance might be impacted.
+ Therefore, the app should set the level back to when the app becomes active again. Setting memory usage target level back to normal will not happen automatically.
+
+ An app should choose to use either the combination of and or the combination of setting MemoryUsageTargetLevel to and . It is not advisable to mix them.
+ Trying to set while suspended will be ignored.
+ The and methods will change the .
+ will automatically set to while on suspended WebView will automatically set to .
+ Calling when the WebView is not suspended would not change .
+
+
+
+
+ Represents a certificate. Gives access to a certificate's metadata.
+
+
+
+
+ Converts this to a X509Certificate2.
+
+
+ An object created using PEM encoded data from
+ this object.
+
+
+
+
+
+ The valid date and time for the certificate since the UNIX epoc.
+
+
+
+
+ The valid date and time for the certificate since the UNIX epoc.
+
+
+
+
+ Subject of the certificate.
+
+
+
+
+ Name of the certificate authority that issued the certificate.
+
+
+
+
+ Base64 encoding of DER encoded serial number of the certificate. Read more about DER at [RFC 7468 DER](https://tools.ietf.org/html/rfc7468#appendix-B).
+
+
+
+
+ Display name for a certificate.
+
+
+
+
+ Returns list of PEM encoded certificate issuer chain. In this list first element is the current certificate followed by intermediate1, intermediate2...intermediateN-1. Root certificate is the last element in the list.
+
+
+
+
+ PEM encoded data for the certificate. Returns Base64 encoding of DER encoded certificate. Read more about PEM at [RFC 1421 Privacy Enhanced Mail](https://tools.ietf.org/html/rfc1421).
+
+
+
+
+ Represents a client certificate. Gives access to a certificate's metadata.
+
+
+
+
+ Converts this to a X509Certificate2.
+
+
+ An object created using PEM encoded data from
+ this object.
+
+
+
+
+
+ The valid date and time for the certificate since the UNIX epoc.
+
+
+
+
+ The valid date and time for the certificate since the UNIX epoc.
+
+
+
+
+ Subject of the certificate.
+
+
+
+
+ Name of the certificate authority that issued the certificate.
+
+
+
+
+ Base64 encoding of DER encoded serial number of the certificate. Read more about DER at [RFC 7468 DER](https://tools.ietf.org/html/rfc7468#appendix-B).
+
+
+
+
+ Display name for a certificate.
+
+
+
+
+ Returns list of PEM encoded client certificate issuer chain. In this list first element is the current certificate followed by intermediate1, intermediate2...intermediateN-1. Root certificate is the last element in the list.
+
+
+
+
+ Kind of a certificate. See for descriptions.
+
+
+
+
+ PEM encoded data for the certificate. Returns Base64 encoding of DER encoded certificate. Read more about PEM at [RFC 1421 Privacy Enhanced Mail](https://tools.ietf.org/html/rfc1421).
+
+
+
+
+ This class is the owner of the object, and
+ provides support for resizing, showing and hiding, focusing, and other
+ functionality related to windowing and composition.
+
+
+ The owns the , and if all references to the go away, the WebView will be closed.
+
+
+ The owner of the object that provides support for resizing, showing and hiding, focusing, and other functionality related to windowing and composition.
+
+
+ The CoreWebView2Controller owns the , and if all references to the go away, the WebView is closed.
+
+
+ The owner of the object that provides support for resizing, showing and hiding, focusing, and other functionality related to windowing and composition.
+
+
+ The CoreWebView2Controller owns the , and if all references to the go away, the WebView is closed.
+
+
+ The owner of the object that provides support for resizing, showing and hiding, focusing, and other functionality related to windowing and composition.
+
+
+ The CoreWebView2Controller owns the , and if all references to the go away, the WebView is closed.
+
+
+ The owner of the object that provides support for resizing, showing and hiding, focusing, and other functionality related to windowing and composition.
+
+
+ The CoreWebView2Controller owns the , and if all references to the go away, the WebView is closed.
+
+
+ The owner of the object that provides support for resizing, showing and hiding, focusing, and other functionality related to windowing and composition.
+
+
+ The CoreWebView2Controller owns the , and if all references to the go away, the WebView is closed.
+
+
+
+
+ Gets the associated with this .
+
+
+
+
+
+ Moves focus into WebView.
+
+ The reason for moving focus.
+
+ WebView will get focus and focus will be set to correspondent element in the page hosted in the WebView. For reason, focus is set to previously focused element or the default element if no previously focused element exists. For reason, focus is set to the first element. For reason, focus is set to the last element. WebView changes focus through user interaction including selecting into a WebView or Tab into it. For tabbing, the app runs MoveFocus with or to align with Tab and Shift+Tab respectively when it decides the WebView is the next tabbable element.
+
+
+
+
+ Determines whether to show or hide the WebView.
+
+
+ If IsVisible is set to false, the WebView is transparent and is not rendered. However, this does not affect the window containing the WebView (the ParentWindow parameter that was passed to or ).
+ If you want that window to disappear too, run the corresponding Hide method from the UI framework on it directly in addition to modifying this.
+ WebView as a child window does not get window messages when the top window is minimized or restored. For performance reasons, developers should set the IsVisible property of the WebView to false when the app window is minimized and back to true when the app window is restored. The app window does this by handling SIZE_MINIMIZED and SIZE_RESTORED command upon receiving WM_SIZE message. There are CPU and memory benefits when the page is hidden. For instance Chromium has code that throttles activities on the page like animations and some tasks are run less frequently. Similarly, WebView2 will purge some caches to reduce memory usage.
+
+
+
+
+
+ Gets or sets the WebView bounds.
+
+
+ Bounds are relative to the . The app has two ways to position a WebView:
+
+
+ Create a child HWND that is the WebView parent HWND. Position the window where the WebView should be. Use (0, 0) for the top-left corner (the offset) of the Bounds of the WebView.
+
+
+ Use the top-most window of the app as the WebView parent HWND. For example, to position ebView correctly in the app, set the top-left corner of the Bounds of the WebView.
+
+
+
+ The values of Bounds are limited by the coordinate space of the host.
+
+
+
+
+ Gets or sets the zoom factor for the WebView.
+
+
+ Note that changing zoom factor may cause window.innerWidth or window.innerHeight and page layout to change. A zoom factor that is applied by the host by setting this ZoomFactor property becomes the new default zoom for the WebView. This zoom factor applies across navigations and is the zoom factor WebView is returned to when the user presses Ctrl+0. When the zoom factor is changed by the user (resulting in the app receiving ), that zoom applies only for the current page. Any user applied zoom is only for the current page and is reset on a navigation. Specifying a ZoomFactor less than or equal to 0 is not allowed. WebView also has an internal supported zoom factor range. When a specified zoom factor is out of that range, it is normalized to be within the range, and a event is raised for the real applied zoom factor. When this range normalization happens, this reports the zoom factor specified during the previous modification of the ZoomFactor property until the event is received after WebView applies the normalized zoom factor.
+
+
+
+
+ Gets the parent window provided by the app or sets the parent window that this WebView is using to render content.
+
+
+ It initially returns the ParentWindow passed into or . Setting the property causes the WebView to re-parent the main WebView window to the newly provided window.
+
+
+
+
+ ZoomFactorChanged is raised when the property changes.
+
+
+ The event may be raised because the property was modified, or due to the user manually modifying the zoom. When it is modified using the property, the internal zoom factor is updated immediately and no ZoomFactorChanged event is raised. WebView associates the last used zoom factor for each site. It is possible for the zoom factor to change when navigating to a different page. When the zoom factor changes due to a navigation change, the ZoomFactorChanged event is raised right after the event.
+
+
+
+
+
+ MoveFocusRequested is raised when user tries to tab out of the WebView.
+
+
+ The focus of the WebView has not changed when this event is raised.
+
+
+
+
+ GotFocus is raised when WebView gets focus.
+
+
+
+
+ LostFocus is raised when WebView loses focus.
+
+
+ In the case where event is raised, the focus is still on WebView when event is raised. LostFocus is only raised afterwards when code of the app or default action of event sets focus away from WebView.
+
+
+
+
+ AcceleratorKeyPressed is raised when an accelerator key or key combo is pressed or released while the WebView is focused.
+
+
+ A key is considered an accelerator if either of the following conditions are true:
+
+
+
+ Ctrl or Alt is currently being held.
+
+
+ The pressed key does not map to a character.
+
+
+
+ A few specific keys are never considered accelerators, such as Shift. The Escape key is always considered an accelerator.
+
+ Autorepeated key events caused by holding the key down will also raise this event. Filter out the auto-repeated key events by verifying or .
+
+ In windowed mode, this event is synchronous. Until you set to true or the event handler returns, the browser process is blocked and outgoing cross-process COM calls will fail with RPC_E_CANTCALLOUT_ININPUTSYNCCALL. All methods work, however.
+
+ In windowless mode, the event is asynchronous. Further input do not reach the browser until the event handler returns or is set to true, but the browser process is not blocked, and outgoing COM calls work normally.
+
+ It is recommended to set to true as early as you are able to know that you want to handle the accelerator key.
+
+
+
+
+ Updates and properties at the same time.
+
+ The bounds to be updated.
+ The zoom factor to be updated.
+
+ This operation is atomic from the perspective of the host. After returning from this function, the and properties are both updated if the function is successful, or neither is updated if the function fails. If and are both updated by the same scale (for example, and are both doubled), then the page does not display a change in window.innerWidth or window.innerHeight and the WebView renders the content at the new size and zoom without intermediate renderings. This function also updates just one of or by passing in the new value for one and the current value for the other.
+
+
+
+
+ Tells WebView that the main WebView parent (or any ancestor) HWND moved.
+
+
+ This is a notification separate from . This is needed for accessibility and certain dialogs in WebView to work correctly.
+
+
+
+
+ Closes the WebView and cleans up the underlying browser instance.
+
+
+ Cleaning up the browser instance releases the resources powering the WebView. The browser instance is shut down if no other WebViews are using it.
+
+ After running Close, all methods fail and event handlers stop running. Specifically, the WebView releases the associated references to any associated event handlers when Close is run.
+
+ Close is implicitly run when the loses the final reference and is destructed. But it is best practice to explicitly run Close to avoid any accidental cycle of references between the WebView and the app code. Specifically, if you capture a reference to the WebView in an event handler you create a reference cycle between the WebView and the event handler. Run Close to break the cycle by releasing all event handlers. But to avoid the situation, it is best to both explicitly run Close on the WebView and to not capture a reference to the WebView to ensure the WebView is cleaned up correctly. Close is synchronous and won't trigger the beforeunload event.
+
+
+
+
+ Gets or sets the WebView default background color.
+
+
+ The `DefaultBackgroundColor` is the color that renders underneath all web content. This means WebView renders this color when there is no web content loaded such as before the initial navigation or between navigations. This also means web pages with undefined css background properties or background properties containing transparent pixels will render their contents over this color. Web pages with defined and opaque background properties that span the page will obscure the `DefaultBackgroundColor` and display normally. The default value for this property is white to resemble the native browser experience. Currently this API only supports opaque colors and transparency. It will fail for colors with alpha values that don't equal 0 or 255 ie. translucent colors are not supported. It also does not support transparency on Windows 7. On Windows 7, setting DefaultBackgroundColor to a Color with an Alpha value other than 255 will result in failure. On any OS above Win7, choosing a transparent color will result in showing hosting app content. This means webpages without explicit background properties defined will render web content over hosting app content.
+ This property may also be set via the `WEBVIEW2_DEFAULT_BACKGROUND_COLOR` environment variable. There is a known issue with background color where just setting the color by property can still leave the app with a white flicker before the `DefaultBackgroundColor` property takes effect. Setting the color via environment variable solves this issue. The value must be a hex value that can optionally prepend a 0x. The value must account for the alpha value which is represented by the first 2 digits. So any hex value fewer than 8 digits will assume a prepended 00 to the hex value and result in a transparent color. `DefaultBackgroundColor` will return the result of this environment variable even if it has not been set directly. This environment variable can only set the `DefaultBackgroundColor` once. Subsequent updates to background color must be done by setting the property.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="DefaultBackgroundColor":::
+
+
+
+
+ Gets or sets the WebView rasterization scale.
+
+
+ The rasterization scale is the combination of the monitor DPI scale and text scaling set by the user. This value should be updated when the DPI scale of the app's top level window changes (i.e. monitor DPI scale changes or the window changes monitor) or when the text scale factor of the system changes.
+ Rasterization scale applies to the WebView content, as well as popups, context menus, scroll bars, and so on. Normal app scaling scenarios should use the property or method.
+
+
+
+
+ Determines whether the WebView will detect monitor scale changes.
+
+
+ ShouldDetectMonitorScaleChanges property determines whether the WebView attempts to track monitor DPI scale changes. When true, the WebView will track monitor DPI scale changes, update the property, and fire event. When false, the WebView will not track monitor DPI scale changes, and the app must update the property itself. event will never raise when ShouldDetectMonitorScaleChanges is false. Apps that want to set their own rasterization scale should set this property to false to avoid the WebView2 updating the property to match the monitor DPI scale.
+
+
+
+
+ Gets or sets the WebView bounds mode.
+
+
+ BoundsMode affects how setting the and properties work. Bounds mode can either be in mode or mode.
+
+
+
+
+ RasterizationScaleChanged is raised when the property changes.
+
+
+ The event is raised when the Webview detects that the monitor DPI scale has changed, is true, and the Webview has changed the property.
+
+
+
+
+
+ Gets or sets the WebView allow external drop property.
+
+
+ The AllowExternalDrop is to configure the capability that dropping files into webview2 is allowed or permitted. The default value is true.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ToggleAllowExternalDrop":::
+
+
+
+
+ Used to manage profile options that created by .
+
+
+ Used to manage profile options that created by .
+
+
+
+
+ Manages the value of the controller's script locale.
+
+
+ The ScriptLocale property is to specify the default script
+ locale. It sets the default locale for all Intl JavaScript APIs and
+ other JavaScript APIs that depend on it, namely
+ Intl.DateTimeFormat() which affects string formatting like in
+ the time/date formats.The intended locale value is in the format of
+ BCP 47 Language Tags. More information can be found from [IETF
+ BCP47](https://www.ietf.org/rfc/bcp/bcp47.html ). The default value
+ for ScriptLocale will be depend on the WebView2 language and OS
+ region. If the language portions of the WebView2 language and OS
+ region match, then it will use the OS region. Otherwise, it will use
+ the WebView2 language.
+
+
+ OS Region
+ WebView2 Language
+ Default WebView2 ScriptLocale
+
+
+ en-GB
+ en-US
+ en-GB
+
+
+ es-MX
+ en-US
+ en-US
+
+
+ en-US
+ en-GB
+ en-US
+
+
+ You can set the ScriptLocale to the empty string to get the default ScriptLocale value.
+ Use OS specific APIs to determine the OS region to use with this property if you always want to match with the OS
+ region. For example:
+
+ CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
+ return cultureInfo.Name
+
+
+
+
+
+ Manage the name of the controller's profile.
+
+
+ The ProfileName property is to specify a profile name, which is only allowed to contain the following ASCII characters. It has a maximum length of 64 characters excluding the null-terminator. It is ASCII case insensitive.
+
+ * alphabet characters: a-z and A-Z
+ * digit characters: 0-9
+ * and '#', '@', '$', '(', ')', '+', '-', '_', '~', '.', ' ' (space).
+
+ Note: the text must not end with a period '.' or ' ' (space). And, although upper-case letters are allowed, they're treated just as lower-case counterparts because the profile name will be mapped to the real profile directory path on disk and Windows file system handles path names in a case-insensitive way.
+
+
+
+
+ Manage the controller's InPrivate mode.
+
+
+
+
+ Provides a set of properties that are used to manage a .
+
+
+
+
+ Converts this to a System.Net.Cookie.
+
+
+ An object whose , , , , , , and , matches
+ those , , ,
+ , , , and of this object.
+
+
+ The values of the properties other than those
+ specified above remain their default values.
+
+
+
+
+
+ The expiration date and time for the cookie since the UNIX epoch.
+
+
+ Setting the Expires property to
+ makes this a session cookie, which is its default value.
+
+
+
+
+ Get or sets the cookie name.
+
+
+
+
+ Gets or sets the cookie value.
+
+
+
+
+ Gets the domain for which the cookie is valid.
+
+
+ The default value is the host that this cookie has been received from. Note that, for instance, .bing.com, bing.com, and www.bing.com are considered different domains.
+
+
+
+
+ Gets the path for which the cookie is valid.
+
+
+ The default value is "/", which means this cookie will be sent to all pages on the .
+
+
+
+
+ Determines whether this cookie is http-only.
+
+
+
+
+ Determines the SameSite status of the cookie which represents the enforcement mode of the cookie.
+
+
+ The default value is .
+
+
+
+
+ Gets or sets the security level of this cookie.
+
+
+
+
+ Determines whether this is a session cookie. The default value is false.
+
+
+
+
+ Creates, adds or updates, gets, or or view the cookies.
+
+
+ The changes would apply to the context of the user profile. That is, other WebViews under the same user profile could be affected.
+
+
+
+
+ Creates a CoreWebView2Cookie object whose params matches those of the given System.Net.Cookie.
+
+
+ A System.Net.Cookie whose params to be used to create a CoreWebView2Cookie.
+
+
+ An object whose , , , , , , and , matches those , , , , , , and of the given object.
+
+
+ The default value for the
+ property of the returned object is
+ .
+
+
+
+
+
+ Creates a cookie object with a specified name, value, domain, and path.
+
+
+ One can set other optional properties after cookie creation. This only creates a cookie object and it is not added to the cookie manager until you call . name that starts with whitespace(s) is not allowed.
+
+ The name for the to be created. It cannot start with whitespace(s).
+
+
+
+
+
+
+ Creates a cookie whose params matches those of the specified cookie.
+
+
+
+
+ Gets a list of cookies matching the specific URI.
+
+
+ You can modify the cookie objects by calling , and the changes will be applied to the webview.
+
+ If uri is empty string or null, all cookies under the same profile are returned.
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="GetCookies":::
+
+
+
+
+ Adds or updates a cookie with the given cookie data; may overwrite cookies with matching name, domain, and path if they exist.
+
+ The to be added or updated.
+
+ This method will fail if the domain of the given cookie is not specified.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="AddOrUpdateCookie":::
+
+
+
+
+ Deletes a cookie whose name and domain/path pair match those of the specified cookie.
+
+
+
+
+ Deletes cookies with matching name and uri.
+
+ The name for the cookies to be deleted is required.
+ If uri is specified, deletes all cookies with the given name where domain and path match provided URI.
+
+
+
+ Deletes cookies with matching name and domain/path pair.
+
+ The name for the cookies to be deleted is required.
+ If domain is specified, deletes only cookies with the exact domain.
+ If path is specified, deletes only cookies with the exact path.
+
+
+
+ Deletes all cookies under the same profile.
+
+
+ This could affect other WebViews under the same user profile.
+
+
+
+
+ Represents the registration of a custom scheme with the .
+
+
+ This allows the WebView2 app to be able to handle event for requests with the
+ specified scheme and be able to navigate the WebView2 to the custom
+ scheme. Once the environment is created, the registrations are valid and
+ immutable throughout the lifetime of the associated WebView2s' browser
+ process and any WebView2 environments sharing the browser process must be
+ created with identical custom scheme registrations, otherwise the
+ environment creation will fail. Any further attempts to register the same
+ scheme will fail during environment creation. The URIs of registered
+ custom schemes will be treated similar to http URIs for their origins.
+ They will have tuple origins for URIs with host and opaque origins for
+ URIs without host as specified in [7.5 Origin - HTML Living Standard](https://html.spec.whatwg.org/multipage/origin.html) For event, the cases of request
+ URIs and filter URIs with custom schemes will be normalized according to
+ generic URI syntax rules. Any non-ASCII characters will be preserved. The
+ registered custom schemes also participate in [CORS](https://developer.mozilla.org/docs/Web/HTTP/CORS) and adheres to
+ [CSP](https://developer.mozilla.org/docs/Web/HTTP/CSP). The app needs to
+ set the appropriate access headers in its event handler to allow CORS
+ requests.
+
+
+ custom-scheme-with-host://hostname/path/to/resource has origin of
+ custom-scheme-with-host://hostname.
+ custom-scheme-without-host:path/to/resource has origin of
+ custom-scheme-without-host:path/to/resource.
+
+
+
+
+ The name of the custom scheme to register.
+
+
+
+
+ Whether the sites with this scheme will be treated as a [Secure
+ Context](https://developer.mozilla.org/docs/Web/Security/Secure_Contexts)
+ like an HTTPS site.
+
+
+
+
+ Set this property to true if the URIs with this custom scheme
+ will have an authority component (a host for custom schemes).
+ Specifically, if you have a URI of the following form you should set the
+ HasAuthorityComponent value as listed.
+
+
+
+ URI
+ Recommended HasAuthorityComponent value
+
+
+ custom-scheme-with-authority://host/path
+ true
+
+
+ custom-scheme-without-authority:path
+ false
+
+
+
+
+ When this property is set to true, the URIs with this scheme will
+ be interpreted as having a [scheme and
+ host](https://html.spec.whatwg.org/multipage/origin.html#concept-origin-tuple)
+ origin similar to an http URI. Note that the port and user information
+ are never included in the computation of origins for custom schemes. If
+ this property is set to false, URIs with this scheme will have an
+ [opaque
+ origin](https://html.spec.whatwg.org/multipage/origin.html#concept-origin-opaque)
+ similar to a data URI. This property is false by default. Note:
+ For custom schemes registered as having authority component, navigations
+ to URIs without authority of such custom schemes will fail. However, if
+ the content inside WebView2 references a subresource with a URI that
+ does not have an authority component, but of a custom scheme that is
+ registered as having authority component, the URI will be interpreted as
+ a relative path as specified in
+ [RFC3986](https://www.rfc-editor.org/rfc/rfc3986). For example,
+ custom-scheme-with-authority:path will be interpreted as
+ custom-scheme-with-authority://host/path. However, this behavior
+ cannot be guaranteed to remain in future releases so it is recommended
+ not to rely on this behavior.
+
+
+
+
+ List of origins that are allowed to issue requests with the custom
+ scheme, such as XHRs and subresource requests that have an Origin
+ header.
+
+
+ The origin of any request (requests that have the [Origin
+ header](https://developer.mozilla.org/docs/Web/HTTP/Headers/Origin)) to
+ the custom scheme URI needs to be in this list. No-origin requests are
+ requests that do not have an Origin header, such as link navigations,
+ embedded images and are always allowed. Note that cross-origin
+ restrictions still apply. From any opaque origin (Origin header is
+ null), no cross-origin requests are allowed. If the list is empty, no
+ cross-origin request to this scheme is allowed. Origins are specified as
+ a string in the format of scheme://host:port. The origins are
+ string pattern matched with * (matches 0 or more characters) and
+ ? (matches 0 or 1 character) wildcards just like the URI matching
+ in the API. For example,
+ http://*.example.com:80.
+
+ Here's a set of examples of what is allowed or not:
+
+
+
+ Request URI
+ Originating URL
+ AllowedOrigins
+ Allowed
+
+
+ custom-scheme:request
+ https://www.example.com
+ {"https://www.example.com"}
+ Yes
+
+
+ custom-scheme:request
+ https://www.example.com
+ {"https://*.example.com"}
+ Yes
+
+
+ custom-scheme:request
+ https://www.example.com
+ {"https://www.example2.com"}
+ No
+
+
+ custom-scheme-with-authority://host/path
+ custom-scheme-with-authority://host2
+ {""}
+ No
+
+
+ custom-scheme-with-authority://host/path
+ custom-scheme-with-authority2://host
+ {"custom-scheme-with-authority2://*"}
+ Yes
+
+
+ custom-scheme-without-authority:path
+ custom-scheme-without-authority:path2
+ {"custom-scheme-without-authority:*"}
+ No
+
+
+ custom-scheme-without-authority:path
+ custom-scheme-without-authority:path2
+ {"*"}
+ Yes
+
+
+
+
+
+
+ Initializes a new instance of the CoreWebView2CustomSchemeRegistration
+ class.
+
+
+ The name of the custom scheme to register.
+
+
+
+
+ Represents a download operation. Gives access to a download's metadata and supports a user canceling, pausing, or resuming a download.
+
+
+
+
+ The estimated end time of the download.
+
+
+
+
+ The total bytes to receive count.
+
+
+
+
+ The URI of the download.
+
+
+
+
+ The Content-Disposition header value from the download's HTTP response. If none, the value is an empty string.
+
+
+
+
+ MIME type of the downloaded content.
+
+
+
+
+ The number of bytes that have been written to the download file.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="BytesReceivedChanged":::
+
+
+
+
+ The absolute path to the download file, including file name.
+
+
+ Host can change this from .
+
+
+
+
+ The state of the download. A download can be in progress, interrupted, or completed.
+
+
+ See for descriptions of states.
+
+
+
+
+ The reason why connection with file host was broken.
+
+
+ See for descriptions of reasons.
+
+
+
+
+ Returns true if an interrupted download can be resumed.
+
+
+ Downloads with the following interrupt reasons may automatically resume without you calling any methods: , , . In these cases progress may be restarted with set to 0.
+
+
+
+
+ Event raised when the bytes received count is updated.
+
+
+
+
+ Event raised when the estimated end time changes.
+
+
+
+
+ Event raised when the state of the download changes.
+
+
+ Use to get the current state, and to get the reason if the download is interrupted.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="StateChanged":::
+
+
+
+
+ Cancels the download.
+
+
+ If canceled, the default download dialog shows that the download was canceled. Host should use if download should be canceled without displaying the default download dialog.
+
+
+
+
+ Pauses the download.
+
+
+ If paused, the default download dialog shows that the download is paused. No effect if download is already paused. Pausing a download changes the state from in progress to interrupted, with interrupt reason set to .
+
+
+
+
+ Resumes a paused download. May also resume a download that was interrupted for another reason if returns true.
+
+
+ Resuming a download changes the state from interrupted to in progress.
+
+
+
+
+ This represents the WebView2 Environment.
+
+
+ WebViews created from an environment run on the Browser process specified with environment parameters and objects created from an environment should be used in the same environment. Using it in different environments are not guaranteed to be compatible and may fail.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a WebView2 Environment using the installed or a custom WebView2 Runtime version.
+
+
+ The relative path to the folder that contains a custom version of WebView2 Runtime.
+
+ To use a fixed version of the WebView2 Runtime, pass the
+ folder path that contains the fixed version of the WebView2 Runtime
+ to browserExecutableFolder. BrowserExecutableFolder supports both relative
+ (to the application's executable) and absolute file paths. To create WebView2 controls
+ that use the installed version of the WebView2 Runtime that exists on
+ user machines, pass a null or empty string to
+ browserExecutableFolder. In this scenario, the API tries to
+ find a compatible version of the WebView2 Runtime that is installed
+ on the user machine (first at the machine level, and then per user)
+ using the selected channel preference. The path of fixed version of
+ the WebView2 Runtime should not contain \Edge\Application\. When
+ such a path is used, the API fails with ERROR_NOT_SUPPORTED.
+
+
+
+ The user data folder location for WebView2.
+
+ The path is either an absolute file path or a relative file path
+ that is interpreted as relative to the compiled code for the
+ current process. The default user data folder {Executable File
+ Name}.WebView2 is created in the same directory next to the
+ compiled code for the app. WebView2 creation fails if the compiled
+ code is running in a directory in which the process does not have
+ permission to create a new directory. The app is responsible to
+ clean up the associated user data folder when it is done.
+
+
+
+ Options used to create WebView2 Environment.
+
+ As a browser process may be shared among WebViews, WebView creation
+ fails if the specified options does not match the options of
+ the WebViews that are currently running in the shared browser
+ process.
+
+
+
+
+ The default channel search order is the WebView2 Runtime, Beta, Dev, and
+ Canary. When an override WEBVIEW2_RELEASE_CHANNEL_PREFERENCE environment
+ variable or applicable releaseChannelPreference registry value is set to
+ 1, the channel search order is reversed.
+
+
+ To use a fixed version of the WebView2 Runtime, pass the relative
+ folder path that contains the fixed version of the WebView2 Runtime
+ to browserExecutableFolder. To create WebView2 controls that
+ use the installed version of the WebView2 Runtime that exists on
+ user machines, pass a null or empty string to
+ browserExecutableFolder. In this scenario, the API tries to
+ find a compatible version of the WebView2 Runtime that is installed
+ on the user machine (first at the machine level, and then per user)
+ using the selected channel preference. The path of fixed version of
+ the WebView2 Runtime should not contain \Edge\Application\. When
+ such a path is used, the API fails with the following error.
+
+
+ The , , and may be
+ overridden by values either specified in environment variables or in
+ the registry.
+
+
+ When creating a the following environment variables are verified.
+
+
+
+ WEBVIEW2_BROWSER_EXECUTABLE_FOLDER
+
+
+ WEBVIEW2_USER_DATA_FOLDER
+
+
+ WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS
+
+
+ WEBVIEW2_RELEASE_CHANNEL_PREFERENCE
+
+
+
+ If browser executable folder or user data folder is specified in an
+ environment variable or in the registry, the specified or values are overridden. If additional browser
+ arguments are specified in an environment variable or in the
+ registry, it is appended to the corresponding value in the specified
+ .
+
+
+ While not strictly overrides, additional environment variables may be set.
+
+
+
+ Value
+ Description
+
+
+ WEBVIEW2_WAIT_FOR_SCRIPT_DEBUGGER
+
+ When found with a non-empty value, this indicates that the WebView
+ is being launched under a script debugger. In this case, the WebView
+ issues a Page.waitForDebugger CDP command that runs the
+ script inside the WebView to pause on launch, until a debugger
+ issues a corresponding Runtime.runIfWaitingForDebugger CDP
+ command to resume the runtime.
+ Note that this environment variable does not have a registry key equivalent.
+
+
+
+ WEBVIEW2_PIPE_FOR_SCRIPT_DEBUGGER
+
+ When found with a non-empty value, it indicates that the WebView is
+ being launched under a script debugger that also supports host apps
+ that use multiple WebViews. The value is used as the identifier for
+ a named pipe that is opened and written to when a new WebView is
+ created by the host app. The payload should match the payload of the
+ remote-debugging-port JSON target and an external debugger
+ may use it to attach to a specific WebView instance. The format of
+ the pipe created by the debugger should be
+ \\.\pipe\WebView2\Debugger\{app_name}\{pipe_name}, where the
+ following are true.
+
+
+ {app_name} is the host app exe file name, for example, WebView2Example.exe
+ {pipe_name} is the value set for WEBVIEW2_PIPE_FOR_SCRIPT_DEBUGGER
+
+
+ To enable debugging of the targets identified by the JSON, you must
+ set the WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS environment
+ variable to send --remote-debugging-port={port_num}, where
+ the following is true.
+
+
+ {port_num} is the port on which the CDP server binds.
+
+
+ If both WEBVIEW2_PIPE_FOR_SCRIPT_DEBUGGER and
+ WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS environment variables,
+ the WebViews hosted in your app and associated contents may exposed
+ to 3rd party apps such as debuggers. Note that this environment
+ variable does not have a registry key equivalent.
+
+
+
+
+ If none of those environment variables exist, then the registry is examined
+ next.
+
+
+
+ [{Root}]\Software\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder "{AppId}"=""
+
+
+ [{Root}]\Software\Policies\Microsoft\Edge\WebView2\ReleaseChannelPreference "{AppId}"=""
+
+
+ [{Root}]\Software\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArguments "{AppId}"=""
+
+
+ [{Root}]\Software\Policies\Microsoft\Edge\WebView2\UserDataFolder "{AppId}"=""
+
+
+
+ Use a group policy under Administrative Templates >
+ Microsoft Edge WebView2 to configure browser executable folder
+ and release channel preference.
+
+
+
+ Value
+ Description
+
+
+ ERROR_DISK_FULL
+
+ In the unlikely scenario where some instances of WebView are open during a
+ browser update, the deletion of the previous WebView2 Runtime may be
+ blocked. To avoid running out of disk space, a new WebView creation fails
+ with this error if it detects that too many previous WebView2
+ Runtime versions exist.
+
+
+
+ COREWEBVIEW2_MAX_INSTANCES
+
+ The default maximum number of WebView2 Runtime versions allowed is 20.
+ To override the maximum number of the previous WebView2 Runtime versions
+ allowed, set the value of the following environment variable.
+
+
+
+ ERROR_PRODUCT_UNINSTALLED
+
+ If the Webview depends upon an installed WebView2 Runtime version and it is
+ uninstalled, any subsequent creation fails with this error.
+
+
+
+
+ First verify with Root as HKLM and then HKCU. AppId is first set to
+ the Application User Model ID of the process, then if no corresponding
+ registry key, the AppId is set to the compiled code name of the process,
+ or if that is not a registry key then *. If an override registry key is
+ found, use the browserExecutableFolder and userDataFolder registry
+ values as replacements and append additionalBrowserArguments registry
+ values for the corresponding values in the provided .
+
+
+
+
+
+ Gets the browser version info including channel name if it is not the stable channel or WebView2 Runtime.
+
+
+ The relative path to the folder that contains the WebView2 Runtime.
+
+
+ WebView2 Runtime installation is missing.
+
+
+
+
+ Compares two instances of browser versions correctly and returns an integer that indicates whether the first instance is older, the same as, or newer than the second instance.
+
+
+ One of the version strings to compare.
+
+
+ The other version string to compare.
+
+
+ An integer that indicates whether the first instance is older, the same as, or newer than the second instance.
+
+
+ Value Type
+ Condition
+
+
+ Less than zero
+ version1 is older than version2.
+
+
+ Zero
+ version1 is the same as version2.
+
+
+ Greater than zero
+ version1 is newer than version2.
+
+
+
+
+
+
+ Creates a new object.
+
+ The request URI.
+ The HTTP request method.
+
+ The raw request header string delimited by CRLF (optional in last header).
+
+ uri parameter must be absolute URI. It's also possible to create this object with null headers string and then use the to construct the headers line by line.
+
+
+
+
+
+ Creates a new object,
+ which can be passed as a parameter in and function for multiple profiles
+ support.
+
+
+ A that can be
+ passed when calling and .
+
+
+ The options is a settable property while the default for profile
+ name is an empty string and the default value for is
+ false. The profile will be created on disk or opened when calling
+ CreateCoreWebView2ControllerWithOptions no matter InPrivate mode is
+ enabled or not, and it will be released in memory when the
+ correspoding is closed but
+ still remain on disk. As WebView2 is built on top of Edge browser,
+ it follows Edge's behavior pattern. To create an InPrivate WebView,
+ we get an off-the-record profile (an InPrivate profile) from a
+ regular profile, then create the WebView with the off-the-record
+ profile. Also the profile name can be reused.
+
+
+
+
+ Asynchronously creates a new object.
+
+ The HWND in which the WebView should be displayed and from which receive input.
+
+ The options contains profileName and inPrivate parameters that could be used to create CoreWebView2Profile, and it can be used to create multiple WebViews with multiple profiles under a single user data directory.
+
+
+ Multiple profiles under single user data directory can share some system resources including memory, CPU footprint, disk space (such as compiled shaders and safebrowsing data) etc.
+
+
+
+
+ Asynchronously creates a new object.
+
+ The HWND in which the WebView should be displayed and from which receive input.
+
+ The options contains profileName and inPrivate parameters that could be used to create CoreWebView2Profile, and it can be used to create multiple WebViews with multiple profiles under a single user data directory.
+
+
+ Multiple profiles under single user data directory can share some system resources including memory, CPU footprint, disk space (such as compiled shaders and safebrowsing data) etc.
+
+
+
+
+ Set the path of the folder containing the `WebView2Loader.dll`.
+
+ The path of the folder containing the `WebView2Loader.dll`.
+
+ Thrown when `WebView2Loader.dll` has been successfully loaded.
+
+
+ This function allows you to set the path of the folder containing the `WebView2Loader.dll`. This should be the path of a folder containing `WebView2Loader.dll` and not a path to the `WebView2Loader.dll` file itself.
+ Note that the WebView2 SDK contains multiple `WebView2Loader.dll` files for different CPU architectures. When specifying folder path, you must specify one containing a `WebView2Loader.dll` module with a CPU architecture matching the current process CPU architecture.
+ This function is used to load the `WebView2Loader.dll` module during calls to any other static methods on `CoreWebView2Environment`. So, the path should be specified before any other API is called in `CoreWebView2Environment` class. Once `WebView2Loader.dll` is successfully loaded this function will throw an InvalidOperationException exception.
+ The path can be relative or absolute. Relative paths are relative to the path of the `Microsoft.Web.WebView2.Core.dll` module.
+ If the `WebView2Loader.dll` file does not exist in that path or LoadLibrary cannot load the file, or LoadLibrary fails for any other reason, an exception corresponding to the LoadLibrary failure is thrown when any other API is called in `CoreWebView2Environment` class. For instance, if the file cannot be found a `DllNotFoundException` exception will be thrown.
+
+
+
+
+ Gets the browser version info of the current , including channel name if it is not the stable channel.
+
+
+ It matches the format of the method. Channel names are beta, dev, and canary.
+
+
+
+
+ NewBrowserVersionAvailable is raised when a newer version of the WebView2 Runtime is installed and available using WebView2.
+
+
+ To use the newer version of the browser you must create a new environment and WebView. The event is only raised for new version from the same WebView2 Runtime from which the code is running. When not running with installed WebView2 Runtime, no event is raised.
+
+ Because a user data folder is only able to be used by one browser process at a time, if you want to use the same user data folder in the WebViews using the new version of the browser, you must close the environment and instance of WebView that are using the older version of the browser first. Or simply prompt the user to restart the app.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="SubscribeToNewBrowserVersionAvailable":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="NewBrowserVersionAvailable":::
+
+
+
+
+ Asynchronously creates a new WebView.
+
+ The HWND in which the WebView should be displayed and from which receive input.
+
+ The WebView adds a child window to the provided window during WebView creation. Z-order and other things impacted by sibling window order are affected accordingly.
+
+
+ HWND_MESSAGE is a valid parameter for ParentWindow for an invisible WebView for Windows 8 and above. In this case the window will never become visible. You are not able to reparent the window after you have created the WebView. This is not supported in Windows 7 or below. Passing this parameter in Windows 7 or below will return ERROR_INVALID_WINDOW_HANDLE in the controller callback.
+
+
+
+ It can also accept a which is created by as the second parameter for multiple profiles support. As WebView2 is built on top of Edge browser, it follows Edge's behavior pattern. To create an InPrivate WebView, we gets an off-the-record profile (an InPrivate profile) from a regular profile, then create the WebView with the off-the-record profile. Multiple profiles under single user data directory can share some system resources including memory, CPU footprint, disk space (such as compiled shaders and safebrowsing data) etc.
+
+
+
+ It is recommended that the application set Application User Model ID for the process or the application window. If none is set, during WebView creation a generated Application User Model ID is set to root window of ParentWindow.
+
+
+
+ It is recommended that the app handles restart manager messages, to gracefully restart it in the case when the app is using the WebView2 Runtime from a certain installation and that installation is being uninstalled. For example, if a user installs a version of the WebView2 Runtime and opts to use another version of the WebView2 Runtime for testing the app, and then uninstalls the 1st version of the WebView2 Runtime without closing the app, the app restarts to allow un-installation to succeed.
+
+
+
+ When the app retries CreateCoreWebView2ControllerAsync upon failure, it is recommended that the app restarts from creating a new WebView2 Environment. If a WebView2 Runtime update happens, the version associated with a WebView2 Environment may have been removed and causing the object to no longer work. Creating a new WebView2 Environment works since it uses the latest version.
+
+
+
+ WebView creation fails if a running instance using the same user data folder exists, and the Environment objects have different . For example, if a WebView was created with one , an attempt to create a WebView with a different using the same user data folder fails.
+
+
+
+ WebView creation can fail with `E_UNEXPECTED` if runtime does not have permissions to the user data folder.
+
+
+
+
+
+ Creates a new object.
+
+ HTTP response content as stream.
+ The HTTP response status code.
+ The HTTP response reason phrase.
+ The raw response header string delimited by newline.
+
+ It is also possible to create this object with empty headers string and then use the to construct the headers line by line.
+
+
+
+
+
+ Asynchronously creates a new WebView for use with visual hosting.
+
+ The HWND in which the app will connect the visual tree of the WebView.
+
+ ParentWindow will be the HWND that the app will receive pointer/mouse input meant for the WebView (and will need to use or to forward). If the app moves the WebView visual tree to underneath a different window, then it needs to set to update the new parent HWND of the visual tree.
+
+ Set property on the created to provide a visual to host the browser's visual tree.
+
+ It is recommended that the application set Application User Model ID for the process or the application window. If none is set, during WebView creation a generated Application User Model ID is set to root window of ParentWindow.
+
+ It can also accept a which is created by as the second parameter for multiple profiles support.
+
+ CreateCoreWebView2CompositionController is supported in the following versions of Windows:
+
+
+ Windows 11
+
+
+ Windows 10
+
+
+ Windows Server 2019
+
+
+ Windows Server 2016
+
+
+
+
+
+
+ Creates an empty .
+
+
+ The returned needs to be populated with all of the relevant info before calling .
+
+
+
+
+ BrowserProcessExited is raised when the collection of WebView2 Runtime processes for the browser process of this terminate due to browser process failure or normal shutdown (for example, when all associated WebViews are closed), after all resources have been released (including the user data folder).
+
+
+ Multiple app processes can share a browser process by creating their webviews from a with the same user data folder. When the entire collection of WebView2Runtime processes for the browser process exit, all associated objects receive the BrowserProcessExited event. Multiple processes sharing the same browser process need to coordinate their use of the shared user data folder to avoid race conditions and unnecessary waits. For example, one process should not clear the user data folder at the same time that another process recovers from a crash by recreating its WebView controls; one process should not block waiting for the event if other app processes are using the same browser process (the browser process will not exit until those other processes have closed their webviews too).
+
+ Note this is an event from , not . The difference between BrowserProcessExited and is that BrowserProcessExited is raised for any browser process exit (expected or unexpected, after all associated processes have exited too), while is raised for unexpected process exits of any kind (browser, render, GPU, and all other types), or for main frame render process unresponsiveness. To learn more about the WebView2 Process Model, go to [Process model](/microsoft-edge/webview2/concepts/process-model).
+
+ In the case the browser process crashes, both BrowserProcessExited and events are raised, but the order is not guaranteed. These events are intended for different scenarios. It is up to the app to coordinate the handlers so they do not try to perform reliability recovery while also trying to move to a new WebView2 Runtime version or remove the user data folder.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="SubscribeToBrowserProcessExited":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="BrowserProcessExited":::
+
+
+
+
+ Creates the used by the method.
+
+
+
+
+ Gets the user data folder that all CoreWebView2s created from this environment are using.
+
+
+ This could be either the value passed in by the developer when creating the environment object or the calculated one for default handling. And will always be an absolute path.
+
+
+
+
+ ProcessInfosChanged is raised when a collection of WebView2 Runtime processes changed due to new process being detected or when a existing process gone away.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ProcessInfosChanged":::
+
+
+
+
+ Returns the list of all using same user data folder except for crashpad process.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="GetProcessInfos":::
+
+
+
+
+ Create a custom object to insert into the WebView context menu.
+
+
+ CoreWebView2 will rewind the icon stream before decoding.
+ There is a limit of 1000 active custom context menu items at a given time per . Attempting to create more before deleting existing ones will fail with ERROR_NOT_ENOUGH_QUOTA. It is recommended to reuse custom ContextMenuItems across CoreWebView2ContextMenuRequested events for performance. The created object's property will default to true and property will default to false. A will be assigned that's unique across active custom context menu items, but command ID values of deleted custom ContextMenuItems can be reassigned.
+
+
+
+
+ Gets the failure report folder that all CoreWebView2s created from this environment are using.
+
+
+
+
+ Create a shared memory based buffer with the specified size in bytes.
+
+
+ The buffer can be shared with web contents in WebView by calling or .
+ Once shared, the same content of the buffer will be accessible from both the app process and script in WebView.
+ Modification to the content will be visible to all parties that have access to the buffer.
+ The shared buffer is presented to the script as ArrayBuffer. All JavaScript APIs that work for ArrayBuffer including Atomics APIs can be used on it.
+ There is currently a limitation that only size less than 2GB is supported.
+
+
+
+
+ Options used to create WebView2 Environment.
+
+
+ Default values will use your defaulted Edge WebView2 Runtime binaries and
+ user data folder.
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the CoreWebView2EnvironmentOptions class.
+
+
+ AdditionalBrowserArguments can be specified to change the behavior of
+ the WebView.
+
+
+ The default language that WebView will run with.
+
+
+ The version of the Edge WebView2 Runtime binaries required to be
+ compatible with the calling application.
+
+
+ Set to true if single sign on be enabled using the end user's OS primary
+ account. Defaults to false.
+
+
+ List of custom scheme registrations to be applied to the .
+
+
+
+
+ List of custom scheme registrations to be applied to the
+
+
+
+
+ Gets or sets the additional browser arguments to change the behavior of the WebView.
+
+
+
+ The arguments are passed to the browser process as part of the command. For more information about using command-line switches with Chromium browser processes, navigate to [Run Chromium with Flags](https://aka.ms/RunChromiumWithFlags). The value appended to a switch is appended to the browser process, for example, in --edge-webview-switches=xxx the value is xxx. If you specify a switch that is important to WebView functionality, it is ignored, for example, --user-data-dir. Specific features are disabled internally and blocked from being enabled. If a switch is specified multiple times, only the last instance is used.
+
+
+
+ A merge of the different values of the same switch is not attempted, except for disabled and enabled features. The features specified by --enable-features and --disable-features will be merged with simple logic:
+
+
+
+ The features are the union of the specified features and built-in features. If a feature is disabled, it is removed from the enabled features list.
+
+
+
+
+ If you specify command-line switches and sets this property, the --edge-webview-switches value takes precedence and is processed last. If a switch fails to parse, the switch is ignored. The default state for the operation is to run the browser process with no extra flags.
+
+
+ Please note that calling this API twice will replace the previous value rather than appending to it. If there are multiple switches, there should be a space in between them. The one exception is if multiple features are being enabled/disabled for a single switch, in which case the features should be comma-separated. Ex. "--disable-features=feature1,feature2 --some-other-switch --do-something"
+
+
+
+
+
+ Gets or sets the default display language for WebView.
+
+
+ It applies to browser UIs such as context menu and dialogs. It also applies to the accept-languages HTTP header that WebView sends to websites. The intended locale value is in the format of BCP 47 Language Tags. More information can be found from [IETF BCP47](https://www.ietf.org/rfc/bcp/bcp47.html).
+
+
+
+
+ Gets or sets the version of the WebView2 Runtime binaries required to be compatible with your app.
+
+
+ This defaults to the WebView2 Runtime version that corresponds with the version of the SDK the app is using. The format of this value is the same as the format of the property and other BrowserVersion values. Only the version part of the BrowserVersion value is respected. The channel suffix, if it exists, is ignored. The version of the WebView2 Runtime binaries actually used may be different from the specified TargetCompatibleBrowserVersion. The binaries are only guaranteed to be compatible. Verify the actual version on the property.
+
+
+
+
+ Determines whether to enable single sign on with Azure Active Directory (AAD) resources inside WebView using the logged in Windows account and single sign on (SSO) with web sites using Microsoft account associated with the login in Windows account.
+
+
+ The default value is false. Universal Windows Platform apps must also declare enterpriseCloudSSO [restricted capability](/windows/uwp/packaging/app-capability-declarations#restricted-capabilities) for the single sign on (SSO) to work.
+
+
+
+
+ Determines whether other processes can create from created with the same user data folder and therefore sharing the same WebView browser process instance.
+
+
+ The default value is false.
+
+
+
+
+ When IsCustomCrashReportingEnabled is set to true, Windows won't send crash data to Microsoft endpoint.
+
+
+ The default value is false. In this case, WebView will respect OS consent.
+
+
+
+
+ The EnableTrackingPrevention property is used to enable/disable tracking prevention feature in WebView2. This property enable/disable tracking prevention for all the WebView2's created in the same environment. By default this feature is enabled to block potentially harmful trackers and trackers from sites that aren't visited before and set to or whatever value was last changed/persisted on the profile.
+
+
+ You can set this property to false to disable the tracking prevention feature if the app only renders content in the WebView2 that is known to be safe. Disabling this feature when creating environment also improves runtime performance by skipping related code.
+
+ You shouldn't disable this property if WebView2 is being used as a "full browser" with arbitrary navigation and should protect end user privacy.
+
+ There is property to control levels of tracking prevention of the WebView2's associated with a same profile. However, you can also disable tracking prevention later using property and value but that doesn't improves runtime performance.
+
+ See for more details.
+
+ Tracking prevention protects users from online tracking by restricting the ability of trackers to access browser-based storage as well as the network. See [Tracking prevention](/microsoft-edge/web-platform/tracking-prevention).
+
+
+
+
+ CoreWebView2Frame provides direct access to the iframes information and handling.
+
+
+ CoreWebView2Frame provides direct access to the iframes information and handling. You can get a CoreWebView2Frame by handling the event.
+
+
+ CoreWebView2Frame provides direct access to the iframes information and handling. You can get a CoreWebView2Frame by handling the event.
+
+
+ CoreWebView2Frame provides direct access to the iframes information and handling. You can get a CoreWebView2Frame by handling the event.
+
+
+ CoreWebView2Frame provides direct access to the iframes information and handling. You can get a CoreWebView2Frame by handling the event.
+
+
+
+
+ Adds the provided host object to script running in the WebViewFrame with the specified name for the list of the specified origins.
+ The host object will be accessible for this iframe only if the iframe's origin during
+ access matches one of the origins which are passed. The provided origins
+ will be normalized before comparing to the origin of the document.
+ So the scheme name is made lower case, the host will be punycode decoded
+ as appropriate, default port values will be removed, and so on.
+ This means the origin's host may be punycode encoded or not and will match
+ regardless. If list contains malformed origin the call will fail.
+ The method can be called multiple times in a row without calling
+ RemoveHostObjectFromScript for the same object name. It will replace
+ the previous object with the new object and new list of origins.
+ List of origins will be treated as following:
+ 1. empty list - call will succeed and object will be added for the iframe
+ but it will not be exposed to any origin;
+ 2. list with origins - during access to host object from iframe the
+ origin will be checked that it belongs to this list;
+ 3. list with "*" element - host object will be available for iframe for
+ all origins. We suggest not to use this feature without understanding
+ security implications of giving access to host object from from iframes
+ with unknown origins.
+ 4. list with "file://" element - host object will be available for iframes
+ loaded via file protocol.
+
+
+ The name of the host object.
+
+
+ The host object to be added to script.
+
+
+ The list of the iframe origins for which host object will be accessible.
+
+
+
+
+
+ The name of the iframe from the iframe html tag declaring it.
+
+
+
+
+ NameChanged is raised when the iframe changes its window.name property.
+
+
+
+
+
+ Destroyed event is raised when the iframe corresponding to this object is removed or the document containing that iframe is destroyed.
+
+
+
+
+
+ Remove the host object specified by the name so that it is no longer accessible from JavaScript code in the iframe.
+
+
+ While new access attempts are denied, if the object is already obtained by JavaScript code in the iframe, the JavaScript code continues to have access to that object. Calling this method for a name that is already removed or was never added fails. If the iframe is destroyed this method will return fail also.
+
+
+
+
+ Check whether a frame is destroyed. Returns true during the event.
+
+
+
+
+ NavigationStarting is raised when the current frame is requesting permission to navigate to a different URI.
+
+
+ A frame navigation will raise a event and a event. All of the event handlers will be run before the event handlers. All of the event handlers share a common object. Whichever event handler is last to change the property will decide if the frame navigation will be cancelled.
+ Redirects raise this event as well, and the navigation id is the same as the original one. You may block corresponding navigations until the event handler returns.
+
+
+
+
+ ContentLoading is raised before any content is loaded, including scripts added with . ContentLoading is not raised if a same page navigation occurs.
+
+
+ This operation follows the event and precedes the and events.
+
+
+
+
+ NavigationCompleted is raised when the current frame has completely loaded (body.onload has been raised) or loading stopped with error.
+
+
+
+
+ DOMContentLoaded is raised when the initial HTML document has been parsed.
+
+
+ This aligns with the the document's DOMContentLoaded event in HTML.
+
+
+
+
+ WebMessageReceived is raised when the setting is set and the iframe runs window.chrome.webview.postMessage.
+
+
+ The postMessage function is void postMessage(object) where object is any object supported by JSON conversion.
+ When postMessage is called, the handler's Invoke method will be called with the object parameter postMessage converted to a JSON string.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="WebMessageReceivedIFrame":::
+
+
+
+
+ Runs JavaScript code from the javaScript parameter in the current frame.
+
+ The JavaScript code to be run in the current frame.
+ A JSON encoded string that represents the result of running the provided JavaScript.
+
+ A function that has no explicit return value returns undefined. If the script that was run throws an unhandled exception, then the result is also null. This method is applied asynchronously.
+ If the method is run before , the script will not be executed and the JSON null will be returned.
+ This operation works even if is set to false.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ExecuteScriptFrame":::
+
+
+
+
+ Posts the specified webMessageAsJson to the current frame.
+
+ The web message to be posted to the iframe.
+
+ The event args is an instance of MessageEvent. The setting must be true or the message will not be sent. The event arg's data property of the event arg is the webMessageAsJson string parameter parsed as a JSON string into a JavaScript object. The event arg's source property of the event arg is a reference to the window.chrome.webview object. For information about sending messages from the iframe to the host, navigate to . The message is sent asynchronously. If a navigation occurs before the message is posted to the iframe, the message is not be sent.
+
+
+ Runs the message event of the window.chrome.webview of the iframe. JavaScript in that document may subscribe and unsubscribe to the event using the following code:
+
+ window.chrome.webview.addEventListener('message', handler)
+ window.chrome.webview.removeEventListener('message', handler)
+
+
+
+
+
+
+
+
+ Posts a message that is a simple string rather than a JSON string representation of a JavaScript object.
+
+ The web message to be posted to the iframe.
+
+ This behaves in exactly the same manner as , but the data property of the event arg of the window.chrome.webview message is a string with the same value as webMessageAsString. Use this instead of if you want to communicate using simple strings rather than JSON objects.
+
+
+
+
+
+
+ PermissionRequested is raised when content in an iframe or any of its descendant iframes requests permission to access some privileged resources.
+
+
+ This relates to the PermissionRequested event on the CoreWebView2.
+ Both these events will be raised in the case of an iframe requesting permission. The CoreWebView2Frame's event handlers will be invoked before the event handlers on the CoreWebView2. If the Handled property of the PermissionRequestedEventArgs is set to TRUE within the CoreWebView2Frame event handler, then the event will not be raised on the CoreWebView2, and it's event handlers will not be invoked.
+ In the case of nested iframes, the PermissionRequested event will be raised from the top level iframe.
+ If a deferral is not taken on the event args, the subsequent scripts are blocked until the event handler returns. If a deferral is taken, the scripts are blocked until the deferral is completed.
+
+
+
+
+ Share a shared buffer object with script of the iframe in the WebView.
+
+ The object to be shared with script.
+ The desired given to script.
+ Additional data to be send to script. If it is not null or empty string, and it is not a valid JSON string, will be thrown.
+
+ The script will receive a sharedbufferreceived event from chrome.webview.
+ The event arg for that event will have the following methods and properties.
+
+
+
+ Property
+ Description
+
+
+ getBuffer()
+ A method that returns an ArrayBuffer object with the backing content from the shared buffer.
+
+
+ additionalData
+ An object as the result of parsing additionalDataAsJson as JSON string. This property will be undefined if additionalDataAsJson is nullptr or empty string.
+
+
+ source
+ With a value set as chrome.webview object.
+
+
+
+ If access is , the script will only have read access to the buffer.
+ If the script tries to modify the content in a read only buffer, it will cause an access violation in WebView renderer process and crash the renderer process.
+
+ If the shared buffer is already closed, the API throws with error code of RO_E_CLOSED.
+ The script code should call chrome.webview.releaseBuffer with the shared buffer as the parameter to release underlying resources as soon as it does not need access to the shared buffer any more.
+
+ The application can post the same shared buffer object to multiple web pages or iframes, or post to the same web page or iframe multiple times.
+ Each PostSharedBufferToScript will create a separate ArrayBuffer object with its own view of the memory and is separately released.
+ The underlying shared memory will be released when all the views are released.
+
+ Sharing a buffer to script has security risk. You should only share buffer with trusted site.
+ If a buffer is shared to a untrusted site, possible sensitive information could be leaked.
+ If a buffer is shared as modifiable by the script and the script modifies it in an unexpected way, it could result in corrupted data that might even crash the application.
+
+ The example code shows how to send data to script for one time read only consumption.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="OneTimeShareBuffer":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/assets/sharedBuffer.html" id="ShareBufferScriptCode_1":::
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/assets/sharedBuffer.html" id="ShareBufferScriptCode_2":::
+
+
+
+
+
+ Iterator for a collection of HTTP headers.
+
+
+
+
+
+
+
+
+
+ No COM support; throws instead.
+
+
+ No COM support.
+
+
+
+
+
+
+
+ Gets the header in the
+ or collection at the
+ current position of the enumerator.
+
+
+
+
+
+ true when the iterator has not run out of headers.
+
+
+ If the collection over which the iterator is iterating is empty or if the iterator has gone past the end of the collection then this is false.
+
+
+
+
+ HTTP request headers.
+
+
+ Used to inspect the HTTP request on event and event. It is possible to modify the HTTP request headers from a event, but not from a event.
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an enumerator that iterates through the or collection.
+
+
+
+
+ Gets the header value matching the name.
+
+ The header value matching the name.
+
+
+
+ Gets the header value matching the name using a .
+
+ The header value matching the name.
+
+
+
+ Checks whether the headers contain an entry that matches the header name.
+
+ Whether the headers contain an entry that matches the header name.
+
+
+
+ Adds or updates header that matches the name.
+
+
+
+
+ Removes header that matches the name.
+
+
+
+
+ Gets a over the collection of request headers.
+
+
+
+
+ HTTP response headers.
+
+
+ Used to construct a for the event.
+
+
+
+
+
+
+
+
+
+
+ Returns an enumerator that iterates through the or collection.
+
+
+
+
+ Appends header line with name and value.
+
+ The header name to be appended.
+ The header value to be appended.
+
+
+
+ Checks whether this CoreWebView2HttpResponseHeaders contain entries matching the header name.
+
+ The name of the header to seek.
+
+
+
+ Gets the first header value in the collection matching the name.
+
+ The header name.
+ The first header value in the collection matching the name.
+
+
+
+ Gets the header values matching the name.
+
+ The header name.
+
+
+
+ Gets a over the collection of entire .
+
+
+
+
+ Event args for the CoreWebView2InitializationCompleted event.
+
+
+
+
+ Initializes a new instance of the CoreWebView2InitializationCompletedEventArgs class.
+
+
+ Exception that occurred during initialization, or null if initialization was successful.
+
+
+
+
+ True if the init task completed successfully.
+
+
+
+
+ The exception thrown from the init task. If the task completed successfully, this property is null.
+
+
+
+
+ Multiple profiles can be created under a single user data directory but with separated cookies, user preference settings, and various data storage etc.. If the CoreWebView2 was created with a , the CoreWebView2Profile will match those specified options. Otherwise if this CoreWebView2 was created without a , then this will be the default CoreWebView2Profile for the corresponding CoreWebView2Environment.
+
+
+ Multiple profiles can be created under a single user data directory but with separated cookies, user preference settings, and various data storage etc.. If the CoreWebView2 was created with a , the CoreWebView2Profile will match those specified options. Otherwise if this CoreWebView2 was created without a , then this will be the default CoreWebView2Profile for the corresponding CoreWebView2Environment.
+
+
+ Multiple profiles can be created under a single user data directory but with separated cookies, user preference settings, and various data storage etc.. If the CoreWebView2 was created with a , the CoreWebView2Profile will match those specified options. Otherwise if this CoreWebView2 was created without a , then this will be the default CoreWebView2Profile for the corresponding CoreWebView2Environment.
+
+
+ Multiple profiles can be created under a single user data directory but with separated cookies, user preference settings, and various data storage etc.. If the CoreWebView2 was created with a , the CoreWebView2Profile will match those specified options. Otherwise if this CoreWebView2 was created without a , then this will be the default CoreWebView2Profile for the corresponding CoreWebView2Environment.
+
+
+ Multiple profiles can be created under a single user data directory but with separated cookies, user preference settings, and various data storage etc.. If the CoreWebView2 was created with a , the CoreWebView2Profile will match those specified options. Otherwise if this CoreWebView2 was created without a , then this will be the default CoreWebView2Profile for the corresponding CoreWebView2Environment.
+
+
+ Multiple profiles can be created under a single user data directory but with separated cookies, user preference settings, and various data storage etc.. If the CoreWebView2 was created with a , the CoreWebView2Profile will match those specified options. Otherwise if this CoreWebView2 was created without a , then this will be the default CoreWebView2Profile for the corresponding CoreWebView2Environment.
+
+
+
+
+ Clear the browsing data for the specified dataKinds between the
+ startTime and endTime. Overload the ClearBrowsingDataAsync method to
+ allow for additional time parameters.
+
+
+
+
+ Clear the entirety of the browsing data associated with the profile
+ it is called on. It clears the data regardless of timestamp.
+
+
+
+
+ The name of the profile.
+
+
+
+
+ InPrivate mode is enabled or not.
+
+
+
+
+ Full path of the profile directory.
+
+
+
+
+ The default download folder path.
+
+
+ The default value is the system default download folder path for the user. The default download folder path is persisted in the user data folder across sessions. The value should be an absolute path to a folder that the user and application can write to. Throws an exception if the value is invalid, and the default download path is not changed. Otherwise the path is changed immediately. If the directory does not yet exist, it is created at the time of the next download. If the host application does not have permission to create the directory, then the user is prompted to provide a new path through the Save As dialog. The user can override the default download folder path for a given download by choosing a different path in the Save As dialog.
+
+
+
+
+ The PreferredColorScheme property sets the overall color scheme of the WebView2s associated with this profile.
+
+
+ This sets the color scheme for WebView2 UI like dialogs, prompts, and menus by setting the media feature prefers-color-scheme.
+ The default value for this is , which will follow whatever color scheme the OS is currently set to.
+
+
+
+
+ Clear the browsing data of the associated profile.
+
+
+ Clears browsing data on the profile the method is called on. Additional optional parameters include the start time and end time to clear the browsing data between as well as the data specific data kinds to clear on the profile. The method may be overloaded to take:
+
+
+ No parameters - in which the entirety of the data on the profile will be cleared.
+
+
+ The data kind(s) - in which the data kind(s) will be cleared for their entirety.
+
+
+ The data kind(s), start time, and end time - in which the data kind(s) will be cleared between the start and end time. The start time will be offset by -1.0 and the end time will be offset by +1.0 to include the last fractional second on each respective end. The start time is inclusive in the time period while the end time is exclusive.
+
+
+
+ The exposed methods are as follows:
+
+ ClearBrowsingDataAsync(CoreWebView2BrowsingDataKinds dataKinds);
+ ClearBrowsingDataAsync(CoreWebView2BrowsingDataKinds dataKinds, DateTime startTime, DateTime endTime);
+ ClearBrowsingDataAsync();
+
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ClearBrowsingData":::
+
+
+
+
+ The PreferredTrackingPreventionLevel property allows you to control levels of tracking prevention for WebView2 which are associated with a profile. This level would apply to the context of the profile. That is, all WebView2s sharing the same profile will be affected and also the value is persisted in the user data folder.
+
+
+ See for descriptions of levels.
+
+ If tracking prevention feature is enabled when creating the WebView2 environment, you can also disable tracking prevention later using this property and value but that doesn't improves runtime performance.
+
+ There is property to enable/disable tracking prevention feature for all the WebView2's created in the same environment. If enabled, PreferredTrackingPreventionLevel is set to by default for all the WebView2's and profiles created in the same environment or is set to the level whatever value was last changed/persisted to the profile. If disabled PreferredTrackingPreventionLevel is not respected by WebView2. If PreferredTrackingPreventionLevel is set when the feature is disabled, the property value get changed and persisted but it will takes effect only if is true.
+
+ See for more details.
+
+
+
+
+ Sets permission state for the given permission kind and origin asynchronously.
+
+
+ The state change persists across sessions until it is changed by another call to SetPermissionState, or by setting the State property in PermissionRequestedEventArgs. Setting the state to will erase any state saved in the profile and restore the default behavior. The origin should have a valid scheme and host (e.g. "https://www.example.com"), otherwise the method fails. Additional URI parts like path and fragment are ignored. For example, "https://wwww.example.com/app1/index.html/" is treated the same as "https://wwww.example.com". See the [MDN origin definition](https://developer.mozilla.org/docs/Glossary/Origin) for more details.
+
+
+
+
+ Invokes the handler with a collection of all nondefault permission settings.
+
+
+ Use this method to get the permission state set in the current and previous sessions.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="GetNonDefaultPermissionSettings":::
+
+
+
+
+ Get the which Creates, adds or updates, gets, or or view the cookies for the current profile.
+
+
+ All CoreWebView2s associated with this profile share the same cookie values. Changes to cookies in this cookie manager apply to all CoreWebView2s associated with this profile.
+
+
+
+
+
+ Determines whether password information will be autosaved.
+
+
+ When disabled, no new password data is saved and no Save/Update Password prompts are displayed. However, if there was password data already saved before disabling this setting, then that password information is auto-populated, suggestions are shown and clicking on one will populate the fields.
+ When enabled, password information is auto-populated, suggestions are shown and clicking on one will populate the fields, new data is saved, and a Save/Update Password prompt is displayed. The default value is false. It will apply immediately after setting.
+ This property has the same value as , and changing one will change the other. All WebView2s with the same will share the same value for this property, so for the WebView2s with the same profile, their and will always have the same value.
+
+
+
+
+ Determines whether general form information will be saved and autofilled.
+
+
+ General autofill information includes information like names, street and email addresses, phone numbers, and arbitrary input. This excludes password information. When disabled, no suggestions appear, and no new information is saved.
+ When enabled, information is saved, suggestions appear, and clicking on one will populate the form fields. The default value is true. It will apply immediately after setting.
+ This property has the same value as , and changing one will change the other. All WebView2s with the same will share the same value for this property, so for the WebView2s with the same profile, their and will always have the same value.
+
+
+
+
+ This is used to complete deferrals on event args that support getting deferrals using the GetDeferral method. This class implements .
+
+
+
+
+
+
+
+
+ Protected implementation of Dispose pattern.
+
+
+
+
+ Completes the associated deferred event.
+
+
+ Complete should only be run once for each deferral taken.
+
+
+
+
+ This class is deprecated; use CoreWebView2PrivateHostObjectHelper instead.
+
+
+
+
+ A shared memory based buffer object that is created by . The object is presented to script as ArrayBuffer when posted to script with .
+
+
+
+
+
+
+
+ Protected implementation of Dispose pattern.
+
+
+
+
+ The file mapping handle of the shared memory of the buffer.
+
+
+ Normal app should use to
+ get a stream object to access the buffer.
+ For advanced scenarios, you could use native file mapping APIs to obtain
+ other views or duplicate this handle to another application process and
+ create a view from the duplicated handle in that process to access the buffer
+ from that separate process.
+
+
+
+
+ The size of the shared buffer in bytes.
+
+
+
+
+ The raw memory address of the buffer.
+
+
+ You can cast it to pointer to real data types like byte* to access the memory from unsafe code region.
+ Normal app should use to get a stream object to access the buffer.
+
+
+
+
+ Get an stream object that can be used to access the shared buffer.
+
+
+
+
+ Release the backing shared memory.
+
+
+ The application should call Close or when no access to the buffer is needed any more, to ensure that the underlying resources are released timely even if the shared buffer object itself is not released due to some leaked reference.
+ After the shared buffer is closed, the buffer address and file mapping handle previously obtained becomes invalid and cannot be used anymore.
+ Properties of the object will also be unaccessible. Operations like Read or Write on the stream objects returned from will also fail.
+ will also fail. The failures will be represented as with error code of RO_E_CLOSED.
+
+ The script code should call chrome.webview.releaseBuffer with the shared buffer as the parameter to release underlying resources as soon as it does not need access the shared buffer any more.
+ When script tries to access the buffer after calling chrome.webview.releaseBuffer, JavaScript TypeError exception will be raised complaining about accessing a detached ArrayBuffer, the same exception when trying to access a transferred ArrayBuffer.
+
+ Closing the buffer object on native side doesn't impact access from Script and releasing the buffer from script doesn't impact access to the buffer from native side. The underlying shared memory will be released by the OS when both native and script side release the buffer.
+
+
+
+
+ Constructor
+
+
+
+
+ Read at most bufferSize bytes into buffer and return the effective
+ number of bytes read in bytesReadPtr (unless null).
+
+
+ mscorlib disassembly shows the following MarshalAs parameters
+ void Read([Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] byte[] pv, int cb, IntPtr pcbRead);
+ This means marshaling code will have found the size of the array buffer in the parameter bufferSize.
+
+
+ Critical: calls Marshal.WriteInt32 which LinkDemands, takes pointers as input
+
+
+
+
+ Move the stream pointer to the specified position.
+
+
+ System.IO.stream supports searching past the end of the stream, like
+ OLE streams.
+ newPositionPtr is not an out parameter because the method is required
+ to accept NULL pointers.
+
+
+ Critical: calls Marshal.WriteInt64 which LinkDemands, takes pointers as input
+
+
+
+
+ Sets stream's size.
+
+
+
+
+ Obtain stream stats.
+
+
+ STATSG has to be qualified because it is defined both in System.Runtime.InteropServices and
+ System.Runtime.InteropServices.ComTypes.
+ The STATSTG structure is shared by streams, storages and byte arrays. Members irrelevant to streams
+ or not available from System.IO.Stream are not returned, which leaves only cbSize and grfMode as
+ meaningful and available pieces of information.
+ grfStatFlag is used to indicate whether the stream name should be returned and is ignored because
+ this information is unavailable.
+
+
+
+
+ Write at most bufferSize bytes from buffer.
+
+
+ Critical: calls Marshal.WriteInt32 which LinkDemands, takes pointers as input
+
+
+
+
+ Create a clone.
+
+
+ Not implemented.
+
+
+
+
+ Read at most bufferSize bytes from the receiver and write them to targetStream.
+
+
+ Not implemented.
+
+
+
+
+ Commit changes.
+
+
+ Only relevant to transacted streams.
+
+
+
+
+ Lock at most byteCount bytes starting at offset.
+
+
+ Not supported by System.IO.Stream.
+
+
+
+
+ Undo writes performed since last Commit.
+
+
+ Relevant only to transacted streams.
+
+
+
+
+ Unlock the specified region.
+
+
+ Not supported by System.IO.Stream.
+
+
+
+
+ The exception that is thrown when an WebView2 Runtime installation is missing.
+
+
+
+
+ Initializes a new instance of the WebView2RuntimeNotFoundException class.
+
+
+
+
+ Initializes a new instance of the WebView2RuntimeNotFoundException class with a specified error message.
+
+
+ The error message that explains the reason for the exception.
+
+
+
+
+ Initializes a new instance of the WebView2RuntimeNotFoundException class with a reference to the inner exception that is the cause of this exception.
+
+
+ The exception that is the cause of the current exception.
+
+
+
+
+ Initializes a new instance of the WebView2RuntimeNotFoundException class with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+
+ The error message that explains the reason for the exception.
+
+
+ The exception that is the cause of the current exception.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the web resource request contexts.
+
+
+
+
+ Specifies all resources.
+
+
+
+
+ Specifies a document resources.
+
+
+
+
+ Specifies a CSS resources.
+
+
+
+
+ Specifies an image resources.
+
+
+
+
+ Specifies another media resource such as a video.
+
+
+
+
+ Specifies a font resource.
+
+
+
+
+ Specifies a script resource.
+
+
+
+
+ Specifies an XML HTTP request, Fetch and EventSource HTTP communication.
+
+
+
+
+ Specifies a Fetch API communication.
+
+
+ Note that this isn't working. Fetch API requests are fired as a part
+ of COREWEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST.
+
+
+
+ Specifies a TextTrack resource.
+
+
+
+
+ Specifies an EventSource API communication.
+
+
+ Note that this isn't working. EventSource API requests are fired as a part
+ of COREWEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST.
+
+
+
+ Specifies a WebSocket API communication.
+
+
+
+
+ Specifies a Web App Manifest.
+
+
+
+
+ Specifies a Signed HTTP Exchange.
+
+
+
+
+ Specifies a Ping request.
+
+
+
+
+ Specifies a CSP Violation Report.
+
+
+
+
+ Specifies an other resource.
+
+
+
+
+ Indicates the error status values for web navigations.
+
+
+
+
+ Indicates that an unknown error occurred.
+
+
+
+
+ Indicates that the SSL certificate common name does not match the web address.
+
+
+
+
+ Indicates that the SSL certificate has expired.
+
+
+
+
+ Indicates that the SSL client certificate contains errors.
+
+
+
+
+ Indicates that the SSL certificate has been revoked.
+
+
+
+
+ Indicates that the SSL certificate is not valid. The certificate may not match the public key pins for the host name, the certificate is signed by an untrusted authority or using a weak sign algorithm, the certificate claimed DNS names violate name constraints, the certificate contains a weak key, the validity period of the certificate is too long, lack of revocation information or revocation mechanism, non-unique host name, lack of certificate transparency information, or the certificate is chained to a [legacy Symantec root](https://security.googleblog.com/2018/03/distrust-of-symantec-pki-immediate.html).
+
+
+
+
+ Indicates that the host is unreachable.
+
+
+
+
+ Indicates that the connection has timed out.
+
+
+
+
+ Indicates that the server returned an invalid or unrecognized response.
+
+
+
+
+ Indicates that the connection was stopped.
+
+
+
+
+ Indicates that the connection was reset.
+
+
+
+
+ Indicates that the Internet connection has been lost.
+
+
+
+
+ Indicates that a connection to the destination was not established.
+
+
+
+
+ Indicates that the provided host name was not able to be resolved.
+
+
+
+
+ Indicates that the operation was canceled. This status code is also used when the app cancels a navigation via event, and for original navigation if the app navigates the WebView2 in a rapid succession away after the load for original navigation commenced, but before it completed.
+
+
+
+
+ Indicates that the request redirect failed.
+
+
+
+
+ An unexpected error occurred.
+
+
+
+
+
+
+ Tracking prevention levels.
+
+
+
+
+ Tracking prevention is turned off.
+
+
+
+
+ The least restrictive level of tracking prevention. Set to this level to protect against malicious trackers but allows most other trackers and personalize content and ads. See [Current tracking prevention behavior](/microsoft-edge/web-platform/tracking-prevention#current-tracking-prevention-behavior) for fine-grained information on what is being blocked with this level and can change with different Edge versions.
+
+
+
+
+ The default level of tracking prevention. Set to this level to protect against social media tracking on top of malicious trackers. Content and ads will likely be less personalized. See [Current tracking prevention behavior](/microsoft-edge/web-platform/tracking-prevention#current-tracking-prevention-behavior) for fine-grained information on what is being blocked with this level and can change with different Edge versions.
+
+
+
+
+ The most restrictive level of tracking prevention. Set to this level to protect against malicious trackers and most trackers across sites. Content and ads will likely have minimal personalization. This level blocks the most trackers but could cause some websites to not behave as expected. See [Current tracking prevention behavior](/microsoft-edge/web-platform/tracking-prevention#current-tracking-prevention-behavior) for fine-grained information on what is being blocked with this level and can change with different Edge versions.
+
+
+
+
+ Specifies the desired access from script to .
+
+
+
+
+ Script from web page only has read access to the shared buffer.
+
+
+
+
+ Script from web page has read and write access to the shared buffer.
+
+
+
+
+ Specifies the action type when server certificate error is detected to be used in the .
+
+
+
+
+ Indicates to ignore the warning and continue the request with the TLS certificate. This decision is cached for the RequestUri's host and the server certificate in the session.
+
+
+
+
+ Indicates to reject the certificate and cancel the request.
+
+
+
+
+ Indicates to display the default TLS interstitial error page to user for page navigations. For others TLS certificate is rejected and the request is cancelled.
+
+
+
+
+ Specifies the JavaScript dialog kind used in .
+
+
+
+
+ Indicates that the dialog uses window.alert JavaScript function.
+
+
+
+
+ Indicates that the dialog uses window.confirm JavaScript function.
+
+
+
+
+ Indicates that the dialog uses window.prompt JavaScript function.
+
+
+
+
+ Indicates that the dialog uses window.beforeunload JavaScript event.
+
+
+
+
+
+ Specifies the process kind used in .
+
+
+ The values in this enum make reference to the process kinds in the Chromium architecture. For more information about what these processes are and what they do, see [Browser Architecture - Inside look at modern web browser](https://developers.google.com/web/updates/2018/09/inside-browser-part1).
+
+
+
+
+ Indicates that the process is browser process.
+
+
+
+
+ Indicates that the process is render process.
+
+
+
+
+ Indicates that the process is utility process.
+
+
+
+
+ Indicates that the process is sandbox helper process.
+
+
+
+
+ Indicates that the process is Gpu process.
+
+
+
+
+ Indicates that the process is ppapi plugin process.
+
+
+
+
+ Indicates that the process is ppapi broker process.
+
+
+
+
+ Specifies the process failure reason used in . For process failures where a process has exited, it indicates the type of issue that produced the process exit.
+
+
+
+
+ Indicates that an unexpected process failure occurred.
+
+
+
+
+ Indicates that the process became unresponsive. This only applies to the main frame's render process.
+
+
+
+
+ Indicates that the process was terminated. For example, from Task Manager.
+
+
+
+
+ Indicates that the process crashed. Most crashes will generate dumps in the location indicated by .
+
+
+
+
+ Indicates that the process failed to launch.
+
+
+
+
+ Indicates that the process died due to running out of memory.
+
+
+
+
+ Indicates the webview2's profile has been deleted.
+
+
+
+
+ Specifies the process failure kind used in .
+
+
+ The values in this enum make reference to the process kinds in the Chromium architecture. For more information about what these processes are and what they do, see [Browser Architecture - Inside look at modern web browser](https://developers.google.com/web/updates/2018/09/inside-browser-part1).
+
+
+
+
+
+ Indicates that the browser process ended unexpectedly. The WebView automatically moves to the Closed state. The app has to recreate a new WebView to recover from this failure.
+
+
+
+
+ Indicates that the main frame's render process ended unexpectedly. Any subframes in the WebView will be gone too. A new render process is created automatically and navigated to an error page. You can use the method to try to recover from this failure. Alternatively, you can use and recreate the WebView.
+
+
+
+
+ Indicates that the main frame's render process is unresponsive.
+
+ Renderer process unresponsiveness can happen for the following reasons:
+
+
+
+
+ There is a long-running script being executed. For example, the web content in your WebView might be performing a synchronous XHR, or have entered an infinite loop.
+
+
+
+
+ The system is busy.
+
+
+
+
+ The ProcessFailed event will continue to be raised every few seconds until the renderer procees has become responsive again. The application can consider taking action if the event keeps being raised. For example, the application might show UI for the user to decide to keep waiting or reload the page, or navigate away.
+
+
+
+
+ Indicates that a frame-only render process ended unexpectedly. The process exit does not affect the top-level document, only a subset of the subframes within it. The content in these frames is replaced with an error page in the frame. Your application can communicate with the main frame to recover content in the impacted frames, using to get information about the impacted frames.
+
+
+
+
+ Indicates that a utility process ended unexpectedly. The failed process is recreated automatically. Your application does not need to handle recovery for this event, but can use to collect information about the failure, including ProcessDescription.
+
+
+
+
+ Indicates that a sandbox helper process ended unexpectedly. This failure is not fatal. Your application does not need to handle recovery for this event, but can use to collect information about the failure.
+
+
+
+
+ Indicates that the GPU process ended unexpectedly. The failed process is recreated automatically. This failure is not fatal. Your application does not need to handle recovery for this event, but can use to collect information about the failure.
+
+
+
+
+ Indicates that a PPAPI plugin process ended unexpectedly. This failure is not fatal. Your application does not need to handle recovery for this event, but can use to collect information about the failure, including ProcessDescription.
+
+
+
+
+ Indicates that a PPAPI plugin broker process ended unexpectedly. This failure is not fatal. Your application does not need to handle recovery for this event, but can use to collect information about the failure.
+
+
+
+
+ Indicates that a process of unspecified kind ended unexpectedly. Your application can use to collect information about the failure.
+
+
+
+
+ Indicates the status for printing.
+
+
+
+
+ Indicates that the print operation is succeeded.
+
+
+
+
+ Indicates that the printer is not available.
+
+
+
+
+ Indicates that the print operation is failed.
+
+
+
+
+ The orientation for printing, used by the property.
+
+
+
+
+ Print the page(s) in portrait orientation.
+
+
+
+
+ Print the page(s) in landscape orientation.
+
+
+
+
+ Specifies the media size for a print.
+
+
+
+
+ The default media size for a printer.
+
+
+
+
+ Indicate custom media size that is specific to the printer.
+
+
+
+
+ Specifies the duplex option for a print.
+
+
+
+
+ The default duplex for a printer.
+
+
+
+
+ Print on only one side of the sheet.
+
+
+
+
+ Print on both sides of the sheet, flipped along the long edge.
+
+
+
+
+ Print on both sides of the sheet, flipped along the short edge.
+
+
+
+
+ Specifies the print dialog kind.
+
+
+
+
+ Opens the browser print preview dialog.
+
+
+
+
+ Opens the system print dialog.
+
+
+
+
+ Specifies the color mode for a print.
+
+
+
+
+ The default color mode for a printer.
+
+
+
+
+ Indicate that the printed output will be in color.
+
+
+
+
+ Indicate that the printed output will be in shades of gray.
+
+
+
+
+ Specifies the collation for a print.
+
+
+
+
+ The default collation for a printer.
+
+
+
+
+ Indicate that the collation has been selected for the printed output.
+
+
+
+
+ Indicate that the collation has not been selected for the printed output.
+
+
+
+
+ Preferred color scheme for WebView2's associated with a profile.
+
+
+
+
+ Auto color scheme.
+
+
+
+
+ Light color scheme.
+
+
+
+
+ Dark color scheme.
+
+
+
+
+ Pointer event kind used by to convey the kind of pointer event being sent to WebView.
+
+
+
+
+ Corresponds to WM_POINTERACTIVATE.
+
+
+
+
+ Corresponds to WM_POINTERDOWN.
+
+
+
+
+ Corresponds to WM_POINTERENTER.
+
+
+
+
+ Corresponds to WM_POINTERLEAVE.
+
+
+
+
+ Corresponds to WM_POINTERUP.
+
+
+
+
+ Corresponds to WM_POINTERUPDATE.
+
+
+
+
+ Specifies the response to a permission request.
+
+
+
+
+ Specifies that the default browser behavior is used, which normally prompts users for decision.
+
+
+
+
+ Specifies that the permission request is granted.
+
+
+
+
+ Specifies that the permission request is denied.
+
+
+
+
+ Indicates the kind of a permission request.
+
+
+
+
+ Indicates an unknown permission.
+
+
+
+
+ Indicates permission to capture audio.
+
+
+
+
+ Indicates permission to capture video.
+
+
+
+
+ Indicates permission to access geolocation.
+
+
+
+
+ Indicates permission to send web notifications. Apps that would like to show notifications should handle and/or events and no browser permission prompt will be shown for notification requests. Note that push notifications are currently unavailable in WebView2.
+
+
+
+
+ Indicates permission to access generic sensor. Generic Sensor covers ambient-light-sensor, accelerometer, gyroscope, and magnetometer.
+
+
+
+
+ Indicates permission to read the system clipboard without a user gesture.
+
+
+
+
+ Indicates permission to automatically download multiple files. Permission is requested when multiple downloads are triggered in quick succession.
+
+
+
+
+ Indicates permission to read and write to files or folders on the device. Permission is requested when developers use the [File System Access API](https://developer.mozilla.org/docs/Web/API/File_System_Access_API) to show the file or folder picker to the end user, and then request "readwrite" permission for the user's selection.
+
+
+
+
+ Indicates permission to play audio and video automatically on sites. This permission affects the autoplay attribute and play method of the audio and video HTML elements, and the start method of the Web Audio API. See the [Autoplay guide for media and Web Audio APIs](https://developer.mozilla.org/docs/Web/Media/Autoplay_guide) for details.
+
+
+
+
+ Indicates permission to use fonts on the device. Permission is requested when developers use the [Local Font Access API](https://wicg.github.io/local-font-access/) to query the system fonts available for styling web content.
+
+
+
+
+ Indicates permission to send and receive system exclusive messages to/from MIDI (Musical Instrument Digital Interface) devices. Permission is requested when developers use the [Web MIDI API](https://developer.mozilla.org/docs/Web/API/Web_MIDI_API) to request access to system exclusive MIDI messages.
+
+
+
+
+ Indicates permission to open and place windows on the screen. Permission is requested when developers use the [Multi-Screen Window Placement API](https://www.w3.org/TR/window-placement/) to get screen details.
+
+
+
+
+ Specifies the PDF toolbar item types used for the .
+
+
+
+
+ No item. By default the equal to this value.
+
+
+
+
+ The save button on PDF toolbar.
+
+
+
+
+ The print button on PDF toolbar.
+
+
+
+
+ The save as button on PDF toolbar.
+
+
+
+
+ The zoom in button on PDF toolbar.
+
+
+
+
+ The zoom out button on PDF toolbar.
+
+
+
+
+ The rotate button on PDF toolbar.
+
+
+
+
+ The fit to width button on PDF toolbar.
+
+
+
+
+ The page view button on PDF toolbar.
+
+
+
+
+ The contents button on PDF toolbar.
+
+
+
+
+ The page number button on PDF toolbar.
+
+
+
+
+ The search button on PDF toolbar.
+
+
+
+
+ The full screen button on PDF toolbar.
+
+
+
+
+ The setting and more button on PDF toolbar.
+
+
+
+
+ Specifies the navigation kind of each navigation.
+
+
+
+
+ A navigation caused by CoreWebView2.Reload(), location.reload(), the end user using F5 or other UX, or other reload mechanisms to reload the current document without modifying the navigation history.
+
+
+
+
+ A navigation back or forward to a different entry in the session navigation history, like via CoreWebView2.Back(), location.back(), the end user pressing Alt+Left or other UX, or other mechanisms to navigate back or forward in the current session navigation history.
+
+
+
+
+ A navigation to another document, which can be caused by CoreWebView2.Navigate(),window.location.href = ..., or other WebView2 or DOM APIs that navigate to a new URI.
+
+
+
+
+ Specifies the reason for moving focus.
+
+
+
+
+ Specifies that the code is setting focus into WebView.
+
+
+
+
+ Specifies that the focus is moved due to Tab traversal forward.
+
+
+
+
+ Specifies that the focus is moved due to Tab traversal backward.
+
+
+
+
+ Mouse event virtual keys associated with a for .
+
+
+
+
+ No additional keys pressed.
+
+
+
+
+ Left mouse button is down, MK_LBUTTON.
+
+
+
+
+ Right mouse button is down, MK_RBUTTON.
+
+
+
+
+ Shift key is down, MK_SHIFT.
+
+
+
+
+ Ctrl key is down, MK_CONTROL.
+
+
+
+
+ Middle mouse button is down, MK_MBUTTON.
+
+
+
+
+ First X button is down, MK_XBUTTON1.
+
+
+
+
+ Second X button is down, MK_XBUTTON2.
+
+
+
+
+ Mouse event kind used by to convey the kind of mouse event being sent to WebView.
+
+
+
+
+ Mouse horizontal wheel scroll event, WM_MOUSEHWHEEL.
+
+
+
+
+ Left button double click mouse event, WM_LBUTTONDBLCLK.
+
+
+
+
+ Left button down mouse event, WM_LBUTTONDOWN.
+
+
+
+
+ Left button up mouse event, WM_LBUTTONUP.
+
+
+
+
+ Mouse leave event, WM_MOUSELEAVE.
+
+
+
+
+ Middle button double click mouse event, WM_MBUTTONDBLCLK.
+
+
+
+
+ Middle button down mouse event, WM_MBUTTONDOWN.
+
+
+
+
+ Middle button up mouse event, WM_MBUTTONUP.
+
+
+
+
+ Mouse move event, WM_MOUSEMOVE.
+
+
+
+
+ Right button double click mouse event, WM_RBUTTONDBLCLK.
+
+
+
+
+ Right button down mouse event, WM_RBUTTONDOWN.
+
+
+
+
+ Right button up mouse event, WM_RBUTTONUP.
+
+
+
+
+ Mouse wheel scroll event, WM_MOUSEWHEEL.
+
+
+
+
+ First or second X button double click mouse event, WM_XBUTTONDBLCLK.
+
+
+
+
+ First or second X button down mouse event, WM_XBUTTONDOWN.
+
+
+
+
+ First or second X button up mouse event, WM_XBUTTONUP.
+
+
+
+
+ R button down over non client area, WM_NCRBUTTONDOWN.
+
+
+
+
+ R button up over non client area, WM_NCRBUTTONUP.
+
+
+
+
+ Desired memory consumption level of a WebView.
+
+
+
+
+ Normal memory usage target level.
+
+
+
+
+ Low memory usage target level. Used for inactivate WebView for reduced memory consumption.
+
+
+
+
+ Specifies the key event kind that raises an event.
+
+
+
+
+ Specifies that the key event kind corresponds to window message WM_KEYDOWN.
+
+
+
+
+ Specifies that the key event kind corresponds to window message WM_KEYUP.
+
+
+
+
+ Specifies that the key event kind corresponds to window message WM_SYSKEYDOWN.
+
+
+
+
+ Specifies that the key event kind corresponds to window message WM_SYSKEYUP.
+
+
+
+
+ Kind of cross origin resource access allowed for host resources during download.
+
+
+ Note that other normal access checks like same origin DOM access check and [Content Security Policy](https://developer.mozilla.org/docs/Web/HTTP/CSP) still apply.
+ The following table illustrates the host resource cross origin access according to access context and CoreWebView2HostResourceAccessKind.
+
+
+
+ Cross Origin Access Context
+ Deny
+ Allow
+ DenyCors
+
+
+ From DOM like src of img, script or iframe element
+ Deny
+ Allow
+ Allow
+
+
+ From Script like Fetch or XMLHttpRequest
+ Deny
+ Allow
+ Deny
+
+
+
+
+
+
+ All cross origin resource access is denied, including normal sub resource access as src of a script or image element.
+
+
+
+
+ All cross origin resource access is allowed, including accesses that are subject to Cross-Origin Resource Sharing(CORS) check. The behavior is similar to a web site sends back http header Access-Control-Allow-Origin: *.
+
+
+
+
+ Cross origin resource access is allowed for normal sub resource access like as src of a script or image element, while any access that subjects to CORS check will be denied. See [Cross-Origin Resource Sharing](https://developer.mozilla.org/docs/Web/HTTP/CORS) for more information.
+
+
+
+
+ The requested format to get the Favicon from .
+
+
+
+
+ Request the Favicon to be retrieved a Png Format.
+
+
+
+
+ Request the Favicon to be retrieved a Jpeg Format.
+
+
+
+
+ The state of the .
+
+
+
+
+ The download is in progress.
+
+
+
+
+ The connection with the file host was broken. The reason why a download was interrupted can accessed from . See for descriptions of the different kinds of interrupt reasons. Host can check whether an interrupted download can be resumed with . Once resumed, the download state is in progress.
+
+
+
+
+ The download completed successfully.
+
+
+
+
+ The reason why the was interrupted.
+
+
+
+
+ No interrupt reason.
+
+
+
+
+ Generic file error.
+
+
+
+
+ Access denied due to security restrictions.
+
+
+
+
+ Disk full. User should free some space or choose a different location to store the file.
+
+
+
+
+ Result file path with file name is too long.
+
+
+
+
+ File is too large for file system.
+
+
+
+
+ Microsoft Defender Smartscreen detected a virus in the file.
+
+
+
+
+ File was in use, too many files opened, or out of memory.
+
+
+
+
+ File blocked by local policy.
+
+
+
+
+ Security check failed unexpectedly. Microsoft Defender SmartScreen could not scan this file.
+
+
+
+
+ Seeking past the end of a file in opening a file, as part of resuming an interrupted download. The file did not exist or was not as large as expected. Partially downloaded file was truncated or deleted, and download will be restarted automatically.
+
+
+
+
+ Partial file did not match the expected hash and was deleted. Download will be restarted automatically.
+
+
+
+
+ Generic network error. User can retry the download manually.
+
+
+
+
+ Network operation timed out.
+
+
+
+
+ Network connection lost. User can retry the download manually.
+
+
+
+
+ Server has gone down. User can retry the download manually.
+
+
+
+
+ Network request invalid because original or redirected URI is invalid, has an unsupported scheme, or is disallowed by network policy.
+
+
+
+
+ Generic server error. User can retry the download manually.
+
+
+
+
+ Server does not support range requests.
+
+
+
+
+ Server does not have the requested data.
+
+
+
+
+ Server did not authorize access to resource.
+
+
+
+
+ Server certificate problem.
+
+
+
+
+ Server access forbidden.
+
+
+
+
+ Unexpected server response. Responding server may not be intended server. User can retry the download manually.
+
+
+
+
+ Server sent fewer bytes than the Content-Length header. Content-Length header may be invalid or connection may have closed. Download is treated as complete unless there are [strong validators](https://tools.ietf.org/html/rfc7232#section-2) present to interrupt the download.
+
+
+
+
+ Unexpected cross-origin redirect.
+
+
+
+
+ User canceled the download.
+
+
+
+
+ User shut down the WebView. Resuming downloads that were interrupted during shutdown is not yet supported.
+
+
+
+
+ User paused the download.
+
+
+
+
+ WebView crashed.
+
+
+
+
+ The default download dialog can be aligned to any of the WebView corners by setting the property. The default position is top-right corner.
+
+
+
+
+ The top-left corner of the WebView.
+
+
+
+
+ The top-right corner of the WebView.
+
+
+
+
+ The bottom-left corner of the WebView.
+
+
+
+
+ The bottom-right corner of the WebView.
+
+
+
+
+ Kind of cookie SameSite status used in the class.
+
+
+ These fields match those as specified in https://developer.mozilla.org/docs/Web/HTTP/Cookies#.
+ Learn more about SameSite cookies here: https://tools.ietf.org/html/draft-west-first-party-cookies-07
+
+
+
+
+ None SameSite type. No restrictions on cross-site requests.
+
+
+
+
+ Lax SameSite type. The cookie will be sent with "same-site" requests, and with "cross-site" top level navigation.
+
+
+
+
+ Strict SameSite type. The cookie will only be sent along with "same-site" requests.
+
+
+
+
+ Indicates the kind of context for which the context menu was created for the property. This enum will always represent the active element that caused the context menu request. If there is a selection with multiple images, audio and text, for example, the element that the end user right clicks on within this selection will be the option represented by this enum.
+
+
+
+
+ Indicates that the context menu was created for the page without any additional content.
+
+
+
+
+ Indicates that the context menu was created for an image element.
+
+
+
+
+ Indicates that the context menu was created for selected text.
+
+
+
+
+ Indicates that the context menu was created for an audio element.
+
+
+
+
+ Indicates that the context menu was created for a video element.
+
+
+
+
+ Specifies the menu item kind for the property.
+
+
+
+
+ Specifies a command menu item kind.
+
+
+
+
+ Specifies a check box menu item kind. objects of this kind will need the property to determine current state of the check box.
+
+
+
+
+ Specifies a radio button menu item kind. objects of this kind will need the property to determine current state of the radio button.
+
+
+
+
+ Specifies a separator menu item kind. objects of this kind are used to signal a visual separator with no functionality.
+
+
+
+
+ Specifies a submenu menu item kind. objects of this kind will contain a collection of its children objects.
+
+
+
+
+ The kind of the .
+
+
+
+
+ Specifies smart card certificate.
+
+
+
+
+ Specifies PIN certificate.
+
+
+
+
+ Specifies other certificate.
+
+
+
+
+ Specifies the image format for the method.
+
+
+
+
+ Indicates that the PNG image format is used.
+
+
+
+
+ Indicates that the JPEG image format is used.
+
+
+
+
+ Indicates the kind of browsing data to clear. Or operations can be applied to create a mask representing multiple CoreWebView2BrowsingDataKinds. The resulting mask may be passed to or to clear the corresponding data.
+
+
+
+
+ Specifies file systems data.
+
+
+
+
+ Specifies data stored by the IndexedDB DOM feature.
+
+
+
+
+ Specifies data stored by the localStorage DOM API.
+
+
+
+
+ Specifies data stored by the Web SQL database DOM API.
+
+
+
+
+ Specifies data stored by the CacheStorage DOM API.
+
+
+
+
+ Specifies DOM storage data, now and future. This browsing data kind is inclusive of CoreWebView2BrowsingDataKinds.FileSystems, CoreWebView2BrowsingDataKinds.IndexedDb, CoreWebView2BrowsingDataKinds.WebSql, CoreWebView2BrowsingDataKinds.ServiceWorkers, CoreWebView2BrowsingDataKinds.CacheStorage, and some other data kinds not listed yet to keep consistent with [DOM-accessible storage](https://www.w3.org/TR/clear-site-data/#storage).
+
+
+
+
+ Specifies HTTP cookies data.
+
+
+
+
+ Specifies all site data, now and future. This browsing data kind is inclusive of CoreWebView2BrowsingDataKinds.AllDomStorage and CoreWebView2BrowsingDataKinds.Cookies. New site data types may be added to this data kind in the future.
+
+
+
+
+ Specifies disk cache.
+
+
+
+
+ Specifies download history data.
+
+
+
+
+ Specifies general autofill form data. This excludes password information and includes information like: names, street and email addresses, phone numbers, and arbitrary input. This also includes payment data.
+
+
+
+
+ Specifies password autosave data.
+
+
+
+
+ Specifies browsing history data.
+
+
+
+
+ Specifies settings data.
+
+
+
+
+ Specifies profile data that should be wiped to make it look like a new profile. This does not delete account-scoped data like passwords but will remove access to account-scoped data by signing the user out. Specifies all profile data, now and future. New profile data types may be added to this data kind in the future. This browsing data kind is inclusive of , , , , , , .
+
+
+
+
+ Specifies service workers registered for an origin, and clear will result in termination and deregistration of them.
+
+
+
+
+ Specifies the browser process exit kind used in .
+
+
+
+
+ Indicates that the browser process ended normally.
+
+
+
+
+ Indicates that the browser process ended unexpectedly. A event will also be raised to listening WebViews from the associated to the failed process.
+
+
+
+
+ Mode for how the property is interpreted in relation to the property.
+
+
+
+
+ property represents raw pixels. Physical size of WebView is not impacted by .
+
+
+
+
+ property represents logical pixels and the property is used to get the physical size of the WebView.
+
+
+
+
+ Contains the information packed into the LPARAM sent to a Win32 key event.
+
+
+ For more information about WM_KEYDOWN, navigate to [WM_KEYDOWN message](/windows/win32/inputdev/wm-keydown).
+
+
+
+
+ Specifies the repeat count for the current message.
+
+
+
+
+ Specifies the scan code.
+
+
+
+
+ Indicates that the key is an extended key.
+
+
+
+
+ Indicates that a menu key is held down (context code).
+
+
+
+
+ Indicates that the key was held down.
+
+
+
+
+ Indicates that the key was released.
+
+
+
+
+ A value representing RGBA color (Red, Green, Blue, Alpha) for WebView2.
+
+
+ Each component takes a value from 0 to 255, with 0 being no intensity and 255 being the highest intensity.
+
+
+
+
+ Specifies the intensity of the Alpha ie. opacity value. 0 is transparent, 255 is opaque.
+
+
+
+
+ Specifies the intensity of the Red color.
+
+
+
+
+ Specifies the intensity of the Green color.
+
+
+
+
+ Specifies the intensity of the Blue color.
+
+
+
+
+ The window features for a WebView popup window.
+
+
+ The fields match the windowFeatures passed to window.open() as specified in [Window features](https://developer.mozilla.org/docs/Web/API/Window/open#Window_features) on MDN. There is no requirement for you to respect the values. If your app does not have corresponding UI features (for example, no toolbar) or if all instance of WebView are opened in tabs and do not have distinct size or positions, then your app does not respect the values. You may want to respect values, but perhaps only some apply to the UI of you app. Accordingly, you may respect all, some, or none of the properties as appropriate for your app. For all numeric properties, if the value that is passed to window.open() is outside the range of an uint, the resulting value is uint.MaxValue. If you are not able to parse the value an integer, it is considered 0. If the value is a floating point value, it is rounded down to an integer.
+
+
+
+
+ Indicates whether the left and top values are specified.
+
+
+
+
+ Indicates whether the height and width values are specified.
+
+
+
+
+ Gets the left position of the window. Ignored if is false.
+
+
+
+
+ Gets the top position of the window. Ignored if is false.
+
+
+
+
+ Gets the height of the window. Ignored if is false.
+
+
+
+
+ Gets the width of the window. Ignored if is false.
+
+
+
+
+ Indicates that the menu bar is displayed.
+
+
+
+
+ Indicates that the status bar is displayed.
+
+
+
+
+ Indicates that the browser toolbar is displayed.
+
+
+
+
+ Indicates that the scroll bars are displayed.
+
+
+
+
+ View of the HTTP representation for a web resource response.
+
+
+ The properties of this object are not mutable. This response view is used with the event.
+
+
+
+
+ Gets the HTTP response headers as received.
+
+
+
+
+ Gets the HTTP response status code.
+
+
+
+
+ Gets the HTTP response reason phrase.
+
+
+
+
+ Gets the response content stream asynchronously.
+
+ The content failed to load.
+
+ A null stream means no content was found. Note content (if any) for redirect responses is ignored.
+ This method returns null if content size is more tha 123MB or for navigations that become downloads or if response is downloadable content type (e.g., application/octet-stream). See event to handle the response.
+ If this method is being called again before a first call has completed, it will complete at the same time all prior calls do.
+ If this method is being called after a first call has completed, it will return immediately (asynchronously).
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="WebResourceResponseReceived":::
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Gets the request object for the web resource, as committed.
+
+
+ This includes headers added by the network stack that were not be included during the associated event, such as Authentication headers. Modifications to this object have no effect on how the request is processed as it has already been sent.
+
+
+
+
+ Gets view of the response object received for the web resource.
+
+
+
+
+ An HTTP response used with the event.
+
+
+
+
+ Gets HTTP response content as stream.
+
+
+ Stream must have all the content data available by the time the event deferral of this response is completed. Stream should be agile or be created from a background thread to prevent performance impact to the UI thread. null means no content data.
+ When providing the response data, you should consider relevant HTTP request headers just like an HTTP server would do. For example, if the request was for a video resource in a HTML video element, the request may contain the [Range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range) header to request only a part of the video that is streaming. In this case, your response stream should be only the portion of the video specified by the range HTTP request headers and you should set the appropriate [Content-Range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range) header in the response.
+
+
+
+
+
+ Gets the overridden HTTP response headers.
+
+
+
+
+ Gets or sets the HTTP response status code.
+
+
+
+
+ Gets or sets the HTTP response reason phrase.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Gets the web resource request.
+
+
+ The request object may be missing some headers that are added by network stack at a later time.
+
+
+
+
+ Gets or sets the object.
+
+
+ If this object is set, the event will be completed with this Response.
+ An empty object can be created with and then modified to construct the Response.
+
+
+
+
+ Gets the web resource request context.
+
+
+
+
+ Gets a object and put the event into a deferred state.
+
+
+ Use this to the event at a later time.
+
+
+
+
+ An HTTP request used with the event.
+
+
+
+
+ Gets or sets the request URI.
+
+
+
+
+ Gets or sets the HTTP request method.
+
+
+
+
+ Gets or sets the HTTP request message body as stream.
+
+
+ POST data should be here. If a stream is set, which overrides the message body, the stream must have all the content data available by the time the event deferral of this request is completed. Stream should be agile or be created from a background STA to prevent performance impact to the UI thread. null means no content data.
+
+
+
+
+
+ Gets the mutable HTTP request headers.
+
+
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+
+
+ Gets the URI of the document that sent this web message.
+
+
+
+
+ Gets the message posted from the WebView content to the host converted to a JSON string.
+
+
+ Run this operation to communicate using JavaScript objects.
+
+
+ For example, the following postMessage runs result in the following WebMessageAsJson values:
+
+
+ postMessage({'a': 'b'}) "{\"a\": \"b\"}"
+ postMessage(1.2) "1.2"
+ postMessage('example') "\"example\""
+
+
+
+
+
+ Gets the message posted from the WebView content to the host as a string.
+
+ The message posted from the WebView content to the host.
+ The message posted is some other kind of JavaScript type.
+
+ Run this operation to communicate using simple strings.
+
+
+ For example the following postMessage runs result in the following values returned by TryWebMessageAsString:
+
+
+ postMessage({'a': 'b'}) ArgumentException
+ postMessage(1.2) ArgumentException
+ postMessage('example') "example"
+
+
+
+
+
+ Additional received WebMessage objects.
+
+
+ To pass AdditionalObjects via WebMessage to the app, use the chrome.webview.postMessageWithAdditionalObjects content API. Any DOM object type that can be natively representable that has been passed in to additionalObjects parameter will be accessible here. Currently a WebMessage object can be the type.
+ Entries in the collection can be nullptr if null or undefined was passed. Cast the object to the native type to access its specific properties.
+
+ object additionalObject = eventArgs.AdditionalObjects[0];
+ if (additionalObject is CoreWebView2File)
+ {
+ CoreWebView2File file = additionalObject as CoreWebView2File;
+ } else if ...
+
+
+
+
+
+ Event args for the event.
+
+
+
+
+ true if the page being navigated to is a new document.
+
+
+
+
+ Defines properties that enable, disable, or modify WebView features.
+
+
+ Changes to and will take effect immediately, while other setting changes made after event do not apply until the next top-level navigation.
+
+
+ Defines properties that enable, disable, or modify WebView features.
+
+
+ Changes to and will take effect immediately, while other setting changes made after event do not apply until the next top-level navigation.
+
+
+ Defines properties that enable, disable, or modify WebView features.
+
+
+ Changes to and will take effect immediately, while other setting changes made after event do not apply until the next top-level navigation.
+
+
+ Defines properties that enable, disable, or modify WebView features.
+
+
+ Changes to and will take effect immediately, while other setting changes made after event do not apply until the next top-level navigation.
+
+
+ Defines properties that enable, disable, or modify WebView features.
+
+
+ Changes to and will take effect immediately, while other setting changes made after event do not apply until the next top-level navigation.
+
+
+ Defines properties that enable, disable, or modify WebView features.
+
+
+ Changes to and will take effect immediately, while other setting changes made after event do not apply until the next top-level navigation.
+
+
+ Defines properties that enable, disable, or modify WebView features.
+
+
+ Changes to and will take effect immediately, while other setting changes made after event do not apply until the next top-level navigation.
+
+
+ Defines properties that enable, disable, or modify WebView features.
+
+
+ Changes to and will take effect immediately, while other setting changes made after event do not apply until the next top-level navigation.
+
+
+
+
+ Determines whether running JavaScript is enabled in all future navigations in the WebView.
+
+
+ This only affects scripts in the document. Scripts injected with runs even if script is disabled. The default value is true.
+
+
+
+
+ Determines whether communication from the host to the top-level HTML document of the WebView is allowed.
+
+
+ This is used when loading a new HTML document. If set to true, communication from the host to the top-level HTML document of the WebView is allowed using , , and message event of window.chrome.webview. Communication from the top-level HTML document of the WebView to the host is allowed using window.chrome.webview.postMessage function and the event. If set to false, then communication is disallowed. and fail and window.chrome.webview.postMessage fails by throwing an instance of an Error object. The default value is true.
+
+
+
+
+
+
+
+ Determines whether WebView renders the default JavaScript dialog box.
+
+
+ This is used when loading a new HTML document. If set to false, WebView does not render the default JavaScript dialog box (specifically those displayed by the JavaScript alert, confirm, prompt functions and beforeunload event). Instead, WebView raises event that contains all of the information for the dialog and allow the host app to show a custom UI. The default value is true.
+
+
+
+
+
+ Determines whether the status bar is displayed.
+
+
+ The status bar is usually displayed in the lower left of the WebView and shows things such as the URI of a link when the user hovers over it and other information. The default value is true. The status bar UI can be altered by web content and should not be considered secure.
+
+
+
+
+ Determines whether the user is able to use the context menu or keyboard shortcuts to open the DevTools window.
+
+
+ The default value is true.
+
+
+
+
+ Determines whether the default context menus are shown to the user in WebView.
+
+
+ The default value is true.
+
+
+
+
+ Determines whether host objects are accessible from the page in WebView.
+
+
+ The default value is true.
+
+
+
+
+ Determines whether the user is able to impact the zoom of the WebView.
+
+
+ When disabled, the user is not able to zoom using Ctrl++, Ctr+-, or Ctrl+mouse wheel, but the zoom is set using property. The default value is true.
+
+
+
+
+ Determines whether to disable built in error page for navigation failure and render process failure.
+
+
+ When disabled, blank page is displayed when related error happens. The default value is true.
+
+
+
+
+ Determines WebView2's User Agent.
+
+
+ The default value is the default User Agent of the Edge browser. This property may be overridden if the User-Agent header is set in a request. If the parameter is empty the User Agent will not be updated and the current User Agent will remain.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="SetUserAgent":::
+
+
+
+
+ Determines whether browser-specific accelerator keys are enabled.
+
+
+ When this setting is set to false, it disables all accelerator keys that access
+ features specific to a web browser, including but not limited to:
+
+
+
+ Ctrl+F and F3 for Find on Page
+
+
+ Ctrl+P for Print
+
+
+ Ctrl+R and F5 for Reload
+
+
+ Ctrl+Plus and Ctrl+Minus for zooming
+
+
+ Ctrl+Shift-C and F12 for DevTools
+
+
+ Special keys for browser functions, such as Back, Forward, and Search
+
+
+
+ It does not disable accelerator keys related to movement and text editing, such
+ as:
+
+
+
+ Home, End, Page Up, and Page Down
+
+
+ Ctrl+X, Ctrl+C, Ctrl+V
+
+
+ Ctrl+A for Select All
+
+
+ Ctrl+Z for Undo
+
+
+
+ Those accelerator keys will always be enabled unless they are handled in the event.
+
+ This setting has no effect on the event. The event
+ will be fired for all accelerator keys, whether they are enabled or not.
+
+ The default value of AreBrowserAcceleratorKeysEnabled is true.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="AllowWebViewShortcutKeys":::
+
+
+
+
+ Determines whether password information will be autosaved.
+
+
+ When disabled, no new password data is saved and no Save/Update Password prompts are displayed. However, if there was password data already saved before disabling this setting, then that password information is auto-populated, suggestions are shown and clicking on one will populate the fields.
+ When enabled, password information is auto-populated, suggestions are shown and clicking on one will populate the fields, new data is saved, and a Save/Update Password prompt is displayed. The default value is false. It will apply immediately after setting.
+ This property has the same value as , and changing one will change the other. All WebView2s with the same will share the same value for this property, so for the WebView2s with the same profile, their and will always have the same value.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="PasswordAutosaveEnabled":::
+
+
+
+
+ Determines whether general form information will be saved and autofilled.
+
+
+ General autofill information includes information like names, street and email addresses, phone numbers, and arbitrary input. This excludes password information. When disabled, no suggestions appear, and no new information is saved.
+ When enabled, information is saved, suggestions appear, and clicking on one will populate the form fields. The default value is true. It will apply immediately after setting.
+ This property has the same value as , and changing one will change the other. And all WebView2s that created with the same will share the same value for this property, so for the WebView2s with the same profile, their and will always have the same value.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="GeneralAutofillEnabled":::
+
+
+
+
+
+ Determines the ability of the end users to use pinching motions on touch input enabled devices to scale the web content in the WebView2.
+
+
+ When disabled, the end users cannot use pinching motions on touch input enabled devices to scale the web content in the WebView2. The default value is true.
+ Pinch-zoom, referred to as "Page Scale" zoom, is performed as a post-rendering step, it changes the page scale factor property and scales the surface the web page is rendered onto when user performs a pinch zooming action. It does not change the layout but rather changes the viewport and clips the web content, the content outside of the viewport isn't visible onscreen and users can't reach this content using mouse. This API only affects the Page Scale zoom and has no effect on the existing browser zoom properties ( and ) or other end user mechanisms for zooming.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="TogglePinchZoomEnabled":::
+
+
+
+
+ Determines whether the end user to use swiping gesture on touch input enabled devices to navigate in WebView2.
+
+
+ Swiping gesture navigation on touch screen includes:
+
+
+ Swipe left/right (swipe horizontally) to navigate to previous/next page in navigation history.
+
+
+ Pull to refresh (swipe vertically) the current page. (This feature is currently disabled by default in the browser, to enable in WebView2, set property with --pull-to-refresh switch).
+
+
+ It defaults to true. When set to false, the end user cannot swipe to navigate or pull to refresh. This API only affects the overscrolling navigation functionality and has no effect on the scrolling interaction used to explore the web content shown in WebView2.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ToggleSwipeNavigationEnabled":::
+
+
+
+
+ Used to customize the PDF toolbar items.
+
+
+ By default, it is and so it displays all of the items.
+ Changes to this property apply to all CoreWebView2s in the same environment and using the same profile.
+ Changes to this setting apply only after the next navigation.
+
+
+ :::code language="csharp" source="../code/sample/SampleApps/WebView2WpfBrowser/MainWindow.xaml.cs" id="ToggleHiddenPdfToolbarItems":::
+
+
+
+
+ Determines whether SmartScreen is enabled when visiting web pages
+
+
+ The default value is true.
+ IsReputationCheckingRequired is used to control whether SmartScreen is enabled or not.
+ SmartScreen is enabled or disabled for all CoreWebView2s using the same user data folder.
+ If CoreWebView2Setting.IsReputationCheckingRequired is true for any CoreWebView2 using the same user data folder, then SmartScreen is enabled. If CoreWebView2Setting.IsReputationCheckingRequired is false for all CoreWebView2 using the same user data folder, then SmartScreen is disabled.
+ When it is changed, the change will be applied to all WebViews using the same user data folder on the next navigation or download.
+ If the newly created CoreWebview2 does not set SmartScreen to false, when navigating(Such as Navigate(), LoadDataUrl(), ExecuteScript(), etc.), the default value will be applied to all CoreWebview2 using the same user data folder.
+ SmartScreen of WebView2 apps can be controlled by Windows system setting "SmartScreen for Microsoft Edge", specially, for WebView2 in Windows Store apps, SmartScreen is controlled by another Windows system setting "SmartScreen for Microsoft Store apps". When the Windows setting is enabled, the SmartScreen operates under the control of the `IsReputationCheckingRequired`. When the Windows setting is disabled, the SmartScreen will be disabled regardless of the `IsReputationCheckingRequired` value set in WebView2 apps. In other words, under this circumstance the value of `IsReputationCheckingRequired` will be saved but overridden by system setting. Upon re-enabling the Windows setting, the CoreWebview2 will reference the `IsReputationCheckingRequired` to determine the SmartScreen status.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ The TLS error code for the invalid certificate.
+
+
+
+
+ URI associated with the request for the invalid certificate.
+
+
+
+
+ Returns the .
+
+
+
+
+ The action of the server certificate error detection.
+
+
+ The default value is .
+
+
+
+
+ Gets a object.
+
+
+ Use this to the event at a later time.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Gets the URI of the page that requested the dialog box.
+
+
+
+
+ Gets the kind of JavaScript dialog box.
+
+
+
+
+
+ Gets the message of the dialog box.
+
+
+ From JavaScript this is the first parameter passed to alert, confirm, and prompt and is empty for beforeunload.
+
+
+
+
+ Gets the default value to use for the result of the prompt JavaScript function.
+
+
+ This is the second parameter passed to the JavaScript prompt dialog.
+
+
+
+
+ Gets or sets the return value from the JavaScript prompt function if is run.
+
+
+ This value is ignored for s other than . If is not run, this value is ignored and false is returned from prompt.
+
+
+
+
+
+ Responds with **OK** to confirm, prompt, and beforeunload dialogs. Not run this method to indicate cancel.
+
+
+ From JavaScript, this means that the confirm function and beforeunload event returns true if Accept is run. And for the prompt function it returns the value of if Accept is run and otherwise returns false.
+
+
+
+
+ Gets a object.
+
+
+ Use this to the event at a later time.
+
+
+
+
+ Provides a set of properties for a process list in the .
+
+
+
+
+ Get the process id of the process.
+
+
+
+
+ Get the kind of the process.
+
+
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+
+
+ Gets the kind of process failure that has occurred.
+
+
+ ProcessFailedKind is a combination of process kind (for example, browser, renderer, gpu) and failure (exit, unresponsiveness). Renderer processes are further divided in main frame renderer (RenderProcessExited, RenderProcessUnresponsive) and subframe renderer (FrameRenderProcessExited). To learn about the conditions under which each failure kind occurs, see .
+
+
+
+
+
+ Gets the reason for the process failure.
+
+
+ Some of the reasons are only applicable to specific values of , and the following values always return the indicated reason value:
+
+
+
+ ProcessFailedKind
+ Reason
+
+
+ BrowserProcessExited
+
+ Unexpected
+
+
+
+ RenderProcessUnresponsive
+
+ Unresponsive
+
+
+
+
+ For other values, the reason may be any of the reason values. To learn about what these values mean, see .
+
+
+
+
+
+ Gets the exit code of the failing process, for telemetry purposes.
+
+
+ The exit code is always 1 when is , and STILL_ACTIVE(259) when is .
+
+
+
+
+
+ Gets a description of the failing process, assigned by the WebView2 Runtime.
+
+
+ This is a technical English term appropriate for logging or development purposes, and not localized for the end user. It applies to utility processes (for example, "Audio Service", "Video Capture") and plugin processes (for example, "Flash"). The returned string is empty if the WebView2 Runtime did not assign a description to the process.
+
+
+
+
+ Gets the collection of s for frames in the that were being rendered by the failed process.
+
+
+ The content in these frames is replaced with an error page.
+ This is only available when is ; the returned collection is empty for all other process failure kinds, including the case in which the failed process was the renderer for the main frame and subframes within it, for which the failure kind is .
+
+
+
+
+ Settings used by the method.
+
+
+ Settings used by the method.
+
+
+
+
+ The orientation can be portrait or landscape.
+
+
+ The default orientation is portrait. See .
+
+
+
+
+ The scale factor is a value between 0.1 and 2.0.
+
+
+ The default is 1.0. If an invalid value is provided, the current value is not changed and an ArgumentException is thrown.
+
+
+
+
+ The page width in inches.
+
+
+ The default width is 8.5 inches. If the provided page width is less than or equal to zero, the current value is not changed and an ArgumentException is thrown.
+
+
+
+
+ The page height in inches.
+
+
+ The default height is 11 inches. If the provided page height is less than or equal to zero, the current value is not changed and an ArgumentException is thrown.
+
+
+
+
+ The top margin in inches.
+
+
+ The default is 1 cm, or ~0.4 inches. A margin cannot be less than zero. If an invalid value is provided, the current value is not changed and an ArgumentException is thrown.
+
+
+
+
+ The bottom margin in inches.
+
+
+ The default is 1 cm, or ~0.4 inches. A margin cannot be less than zero. If an invalid value is provided, the current value is not changed and an ArgumentException is thrown.
+
+
+
+
+ The left margin in inches.
+
+
+ The default is 1 cm, or ~0.4 inches. A margin cannot be less than zero. If an invalid value is provided, the current value is not changed and an ArgumentException is thrown.
+
+
+
+
+ The right margin in inches.
+
+
+ The default is 1 cm, or ~0.4 inches. A margin cannot be less than zero. If an invalid value is provided, the current value is not changed and an ArgumentException is thrown.
+
+
+
+
+ true if background colors and images should be printed.
+
+
+ The default value is false.
+
+
+
+
+ true if only the current end user's selection of HTML in the document should be printed.
+
+
+ The default value is false.
+
+
+
+
+ true if header and footer should be printed.
+
+
+ The default value is false. The header consists of the date and time of printing, and the title of the page. The footer consists of the URI and page number. The height of the header and footer is 0.5 cm, or ~0.2 inches.
+
+
+
+
+ The title in the header if is true.
+
+
+ The default value is the title of the current document. If an empty string or null value is provided, no title is shown in the header.
+
+
+
+
+ The URI in the footer if is true.
+
+
+ The default value is the current URI. If an empty string or null value is provided, no URI is shown in the footer.
+
+
+
+
+ Page range to print. Defaults to empty string, which means print all pages.
+
+
+ The PageRanges property is a list of page ranges specifying one or more pages that should be printed separated by commas. Any whitespace between page ranges is ignored.
+ A valid page range is either a single integer identifying the page to print, or a range in the form [start page]-[last page] where start page and last page are integers identifying the first and last inclusive pages respectively to print.
+ Every page identifier is an integer greater than 0 unless wildcards are used (see below examples).
+ The first page is 1.
+
+ In a page range of the form [start page]-[last page] the start page number must be larger than 0 and less than or equal to the document's total page count.
+ If the start page is not present, then 1 is used as the start page.
+ The last page must be larger than the start page.
+ If the last page is not present, then the document total page count is used as the last page.
+
+ Repeating a page does not print it multiple times. To print multiple times, use the property.
+
+ The pages are always printed in ascending order, even if specified in non-ascending order.
+
+ If page range is not valid or if a page is greater than document total page count, ArgumentException is thrown.
+
+ The following examples assume a document with 20 total pages.
+
+
+
+ Example
+ Result
+ Notes
+
+
+ "2"
+ Page 2
+
+
+
+ "1-4, 9, 3-6, 10, 11"
+ Pages 1-6, 9-11
+
+
+
+ "1-4, -6"
+ Pages 1-6
+ The "-6" is interpreted as "1-6".
+
+
+ "2-"
+ Pages 2-20
+ The "2-" is interpreted as "pages 2 to the end of the document".
+
+
+ "4-2, 11, -6"
+ Invalid
+ "4-2" is an invalid range.
+
+
+ "-"
+ Pages 1-20
+ The "-" is interpreted as "page 1 to the end of the document".
+
+
+ "1-4dsf, 11"
+ Invalid
+
+
+
+ "2-2"
+ Page 2
+
+
+
+
+
+
+
+ Prints multiple pages of a document on a single piece of paper. Choose from 1, 2, 4, 6, 9 or 16.
+
+
+ The default value is 1.
+
+ If an invalid value is provided, ArgumentException is thrown.
+
+ Below examples shows print output for PagesPerSide and Duplex.
+
+
+
+ PagesPerSide
+ Total pages
+ Two-sided printing
+ Result
+
+
+ 1
+ 1
+ -
+ 1 page on the front side.
+
+
+ 2
+ 1
+ Yes
+ 1 page on the front side.
+
+
+ 2
+ 4
+ -
+ 2 pages on the first paper and 2 pages on the next paper.
+
+
+ 2
+ 4
+ Yes
+ 2 pages on the front side and 2 pages on back side.
+
+
+ 4
+ 4
+ Yes
+ 4 pages on the front side.
+
+
+ 4
+ 8
+ Yes
+ 4 pages on the front side and 4 pages on the back side.
+
+
+
+
+
+
+ Number of copies to print. Minimum value is 1 and the maximum copies count is 999.
+
+
+ The default value is 1.
+
+
+
+
+ Printer collation.
+
+
+ See for descriptions of collation. The default value is .
+
+ Printing uses default value of printer's collation if an invalid value is provided for the specific printer.
+
+ This value is ignored in method.
+
+
+
+
+ Printer color mode.
+
+
+ See for descriptions of color modes. The default value is .
+
+ Printing uses default value of printer supported color if an invalid value is provided for the specific printer.
+
+
+
+
+ Printer duplex settings.
+
+
+ See for descriptions of duplex. The default value is .
+
+ Printing uses default value of printer's duplex if an invalid value is provided for the specific printer.
+
+ This value is ignored in method.
+
+
+
+
+ Printer media size.
+
+
+ See for descriptions of media size. The default value is .
+
+ If media size is , you should set the and .
+
+ Printing uses default value of printer supported media size if an invalid value is provided for the specific printer.
+
+ This value is ignored in method.
+
+
+
+
+ The name of the printer to use.
+
+
+ Defaults to empty string. If the printer name is empty string or null, then it prints to the default printer on the user OS.
+
+ If provided printer name doesn't match with the name of any installed printers on the user OS, the method returns with .
+
+ Use [PrintCapabilities](/dotnet/api/system.printing.printcapabilities?view=windowsdesktop-6.0) class to enumerate available printers.
+
+ This value is ignored in method.
+
+
+
+
+ This mostly represents a combined win32 POINTER_INFO, POINTER_TOUCH_INFO, and POINTER_PEN_INFO object.
+
+
+
+
+ Gets or sets the PointerKind of the pointer event.
+
+
+ This corresponds to the pointerKind property of the POINTER_INFO struct. The values are defined by the POINTER_INPUT_KIND enum in the Windows SDK (_winuser.h_). Supports PT_PEN and PT_TOUCH.
+
+
+
+
+ Gets or sets the PointerId of the pointer event.
+
+
+ This corresponds to the pointerId property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the FrameID of the pointer event.
+
+
+ This corresponds to the frameId property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PointerFlags of the pointer event.
+
+
+ This corresponds to the pointerFlags property of the POINTER_INFO struct. The values are defined by the POINTER_FLAGS constants in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PointerDeviceRect of the sourceDevice property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the DisplayRect of the sourceDevice property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PixelLocation of the pointer event.
+
+
+ This corresponds to the ptPixelLocation property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the HimetricLocation of the pointer event.
+
+
+ This corresponds to the ptHimetricLocation property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PixelLocationRaw of the pointer event.
+
+
+ This corresponds to the ptPixelLocationRaw property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the HimetricLocationRaw of the pointer event.
+
+
+ This corresponds to the ptHimetricLocationRaw property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the Time of the pointer event.
+
+
+ This corresponds to the dwTime property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the HistoryCount of the pointer event.
+
+
+ This corresponds to the historyCount property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the InputData of the pointer event.
+
+
+ This corresponds to the InputData property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the KeyStates of the pointer event.
+
+
+ This corresponds to the dwKeyStates property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PerformanceCount of the pointer event.
+
+
+ This corresponds to the PerformanceCount property of the POINTER_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the ButtonChangeKind of the pointer event.
+
+
+ This corresponds to the ButtonChangeKind property of the POINTER_INFO struct. The values are defined by the POINTER_BUTTON_CHANGE_KIND enum in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PenFlags of the pointer event.
+
+
+ This corresponds to the penFlags property of the POINTER_PEN_INFO struct. The values are defined by the PEN_FLAGS constants in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PenMask of the pointer event.
+
+
+ This corresponds to the penMask property of the POINTER_PEN_INFO struct. The values are defined by the PEN_MASK constants in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PenPressure of the pointer event.
+
+
+ This corresponds to the pressure property of the POINTER_PEN_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PenRotation of the pointer event.
+
+
+ This corresponds to the rotation property of the POINTER_PEN_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PenTiltX of the pointer event.
+
+
+ This corresponds to the tiltX property of the POINTER_PEN_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the PenTiltY of the pointer event.
+
+
+ This corresponds to the tiltY property of the POINTER_PEN_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the TouchFlags of the pointer event.
+
+
+ This corresponds to the touchFlags property of the POINTER_TOUCH_INFO struct. The values are defined by the TOUCH_FLAGS constants in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the TouchMask of the pointer event.
+
+
+ This corresponds to the touchMask property of the POINTER_TOUCH_INFO struct. The values are defined by the TOUCH_MASK constants in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the TouchContact of the pointer event.
+
+
+ This corresponds to the rcContact property of the POINTER_TOUCH_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the TouchContactRaw of the pointer event.
+
+
+ This corresponds to the rcContactRaw property of the POINTER_TOUCH_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the TouchOrientation of the pointer event.
+
+
+ This corresponds to the orientation property of the POINTER_TOUCH_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Gets or sets the TouchPressure of the pointer event.
+
+
+ This corresponds to the pressure property of the POINTER_TOUCH_INFO struct as defined in the Windows SDK (_winuser.h_).
+
+
+
+
+ Provides a set of properties for a permission setting.
+
+
+
+
+ The kind of the permission setting.
+
+
+
+
+ The origin of the permission setting.
+
+
+
+
+ The state of the permission setting.
+
+
+
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+
+
+ Gets the origin of the web content that requests the permission.
+
+
+
+
+ Gets the kind of the permission that is requested.
+
+
+
+
+ true when the permission request was initiated through a user gesture such as clicking an anchor tag with target.
+
+
+ Being initiated through a user gesture does not mean that user intended to access the associated resource.
+
+
+
+
+ Gets or sets the status of a permission request. For example, whether the request is granted.
+
+
+ The default value is .
+
+
+
+
+ Gets a object.
+
+
+ Use the deferral object to make the permission decision at a later time. The deferral only applies to the current request, and does not prevent the PermissionRequested event from getting raised for new requests. However, for some permission kinds the WebView will avoid creating a new request if there is a pending request of the same kind.
+
+
+
+
+ The host may set this flag to TRUE to prevent the PermissionRequested event from firing on the CoreWebView2 as well.
+
+ By default, both the PermissionRequested on the CoreWebView2Frame and CoreWebView2 will be fired.
+
+
+
+ Set the SavesInProfile property to FALSE to not persist the state beyond the current request, and to continue to receive PermissionRequested events for this origin and permission kind.
+
+
+ The permission state set from the PermissionRequested event is saved in the profile by default; it is persisted across sessions and becomes the new default behavior for future PermissionRequested events. Browser heuristics can affect whether the event continues to be raised when the state is persisted.
+
+
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+
+
+ Gets the target uri of the new window request.
+
+
+
+
+ Gets the new window or sets a WebView as a result of the new window requested.
+
+
+ Provides a WebView as the target for a window.open() from inside the requesting WebView. If this is set, the top-level window of this WebView is returned as the opened [WindowProxy](https://developer.mozilla.org/docs/glossary/windowproxy) to the opener script. If this is not set, then is checked to determine behavior for the .
+ The methods which should affect the new web contents like has to be called and completed before setting NewWindow. Other methods which should affect the new web contents like have to be called after setting NewWindow. It is best not to use before setting NewWindow, otherwise it may not work for later added scripts.
+ WebView provided in the NewWindow property must be on the same as the opener WebView and cannot be navigated. Changes to settings should be made before setting NewWindow to ensure that those settings take effect for the newly setup WebView. The new WebView must have the same profile as the opener WebView.
+
+
+
+
+ Indicates whether the event is handled by host.
+
+
+ If this is false and no is set, the WebView opens a popup window and returns the opened WindowProxy to the opener script. Note that in this case, there is no avenue to control the popup window from the app. If set to true and no is set for window.open(), the opened proxy is for a dummy window object, but this window does not load and is immediately closed. The default value is false.
+
+
+
+
+ true when the new window request was initiated through a user gesture such as selecting an anchor tag with target.
+
+
+ The Microsoft Edge popup blocker is disabled for WebView so the app is able to use this flag to block non-user initiated popups.
+
+
+
+
+ Gets the window features specified by the window.open() call. These features should be considered for positioning and sizing of new WebView windows.
+
+
+
+
+ Gets a object and put the event into a deferred state.
+
+
+ Use this to the window open request at a later time. While this event is deferred the opener window returns a WindowProxy to an un-navigated window, which navigates when the deferral is complete.
+
+
+
+
+ Gets the name of the new window.
+
+
+ This window can be created via window.open(url, windowName), where the windowName parameter corresponds to Name property.
+ If no windowName is passed to window.open, then the Name property will be set to an empty string. Additionally, if window is opened through other means, such as <a target="windowName"> or <iframe name="windowName">, then the Name property will be set accordingly. In the case of target=_blank, the Name property will be an empty string.
+ Opening a window via Ctrl+clicking a link would result in the Name property being set to an empty string.
+
+
+
+
+ The frame info of the frame where the new window request originated.
+
+
+ The OriginalSourceFrameInfo is a snapshot of frame information at the time when the new window was requested. See for details on frame properties.
+
+
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+
+
+ Gets the uri of the requested navigation.
+
+
+
+
+ true when the new window request was initiated through a user gesture.
+
+
+ Examples of user initiated requests are:
+ - Selecting an anchor tag with target
+ - Programmatic window open from a script that directly run as a result of user interaction such as via onclick handlers.
+ Non-user initiated requests are programmatic window opens from a script that are not directly triggered by user interaction, such as those that run while loading a new page or via timers.
+ The Microsoft Edge popup blocker is disabled for WebView so the app is able to use this flag to block non-user initiated popups.
+
+
+
+
+ true when the navigation is redirected.
+
+
+
+
+ Gets the HTTP request headers for the navigation.
+
+
+ Note, you are not able to modify the HTTP request headers in a event.
+
+
+
+
+
+ Determines whether to cancel the navigation.
+
+
+ If set to true, the navigation is no longer present and the content of the current page is intact. For performance reasons, GET HTTP requests may happen, while the host is responding. You may set cookies and use part of a request for the navigation. Cancellation for navigation to about:blank or frame navigation to srcdoc is not supported and ignored.
+
+
+
+
+ Gets the ID of the navigation.
+
+
+
+
+ Additional allowed frame ancestors set by the host app.
+
+
+ The app may set this property to allow a frame to be embedded by additional ancestors besides what is allowed by http header [X-Frame-Options](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Frame-Options) and [Content-Security-Policy frame-ancestors directive](https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors).
+ If set, a frame ancestor is allowed if it is allowed by the additional allowed frame ancestors or original http header from the site.
+ Whether an ancestor is allowed by the additional allowed frame ancestors is done the same way as if the site provided it as the source list of the Content-Security-Policy frame-ancestors directive.
+ For example, if https://example.com and https://www.example.com are the origins of the top page and intermediate iframes that embed a nested site-embedding iframe, and you fully trust those origins, you should set this property to https://example.com https://www.example.com.
+
+ This property gives the app the ability to use iframe to embed sites that otherwise could not be embedded in an iframe in trusted app pages.
+ This could potentially subject the embedded sites to [Clickjacking](https://wikipedia.org/wiki/Clickjacking) attack from the code running in the embedding web page. Therefore, you should only set this property with origins of fully trusted embedding page and any intermediate iframes.
+ Whenever possible, you should use the list of specific origins of the top and intermediate frames instead of wildcard characters for this property.
+ This API is to provide limited support for app scenarios that used to be supported by <webview> element in other solutions like JavaScript UWP apps and Electron.
+ You should limit the usage of this property to trusted pages, and specific navigation target url, by checking the , and .
+
+ This property is ignored for top level document navigation.
+
+
+
+
+ Gets the navigation kind of the navigation.
+
+
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+
+
+ true when the navigation is successful; false for a navigation that ended up in an error page (failures due to no network, DNS lookup failure, HTTP server responds with 4xx). Note that WebView2 will report the navigation as 'unsuccessful' if the load for the navigation did not reach the expected completion for any reason. Such reasons include potentially catastrophic issues such network and certificate issues, but can also be the result of intended actions such as the app canceling a navigation or navigating away before the original navigation completed. Applications should not just rely on this flag, but also consider the reported WebErrorStatus to determine whether the failure is indeed catastrophic in their context.
+
+
+ WebErrorStatuses that may indicate a non-catastrophic failure include:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This may also be false for additional scenarios such as window.stop() run on navigated page.
+
+
+
+
+ Gets the error code if the navigation failed.
+
+
+
+
+ Gets the ID of the navigation.
+
+
+
+
+ The HTTP status code of the navigation if it involved an HTTP request. For instance, this will usually be 200 if the request was successful, 404 if a page was not found, etc. See https://developer.mozilla.org/docs/Web/HTTP/Status for a list of common status codes.
+
+
+ The HttpStatusCode property will be 0 in the following cases:
+
+
+ The navigation did not involve an HTTP request. For instance, if it was a navigation to a file:// URL, or if it was a same-document navigation.
+
+
+ The navigation failed before a response was received. For instance, if the hostname was not found, or if there was a network error.
+
+
+ In those cases, you can get more information from the and properties.
+
+ If the navigation receives a successful HTTP response, but the navigated page calls window.stop() before it finishes loading, then HttpStatusCode may contain a success code like 200, but will be false and will be .
+
+ Since WebView2 handles HTTP continuations and redirects automatically, it is unlikely for HttpStatusCode to ever be in the 1xx or 3xx ranges.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Gets the reason for WebView to raise the event.
+
+
+
+
+ Indicates whether the event has been handled by the app.
+
+
+ If the app has moved the focus to another desired location, it should set Handled property to true. When Handled property is false after the event handler returns, default action is taken. The default action is to try to find the next tab stop child window in the app and try to move focus to that window. If no other window exists to move focus, focus is cycled within the web content of the WebView.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Gets the URI with the external URI scheme to be launched.
+
+
+
+
+ Gets the origin initiating the external URI scheme launch.
+
+
+ The origin will be an empty string if the request is initiated by calling on the external URI scheme. If a script initiates the navigation, the `InitiatingOrigin` will be the top-level document's `Source`, i.e. if `window.location` is set to `"calculator://", the `InitiatingOrigin` will be set to `calculator://`. If the request is initiated from a child frame, the `InitiatingOrigin` will be the source of that child frame.
+
+
+
+
+ true when the launching external URI scheme request was initiated through a user gesture.
+
+
+
+
+ Determines whether to cancel the navigation.
+
+
+
+
+ Gets a object and put the event into a deferred state.
+
+
+ Use this to the launching external URI scheme request at a later time.
+
+
+
+
+ Provides a set of properties for a frame in the .
+
+
+
+
+ Gets the name attribute of the frame, as in <iframe name="frame-name" ...>.
+
+
+ The returned string is empty when the frame has no name attribute.
+
+
+
+
+ The URI of the document in the frame.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Gets the created frame.
+
+
+
+
+
+ Representation of a DOM[File](https://developer.mozilla.org/docs/Web/API/File) object passed via WebMessage.
+
+
+ You can use this object to obtain the path of a File dropped on WebView2.
+
+
+
+
+ The absolute file path.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Returns the for the download that has started.
+
+
+
+
+ Indicates whether to cancel the download.
+
+
+ If canceled, the download save dialog is not displayed regardless of the value and the state is changed to with interrupt reason .
+
+
+
+
+ The path to the file.
+
+
+ If setting the path, the host should ensure that it is an absolute path, including the file name, and that the path does not point to an existing file. If the path points to an existing file, the file will be overwritten. If the directory does not exist, it is created.
+
+
+
+
+ Indicates whether to hide the default download dialog.
+
+
+ If set to true, the default download dialog is hidden for this download. The download progresses normally if it is not canceled, there will just be no default UI shown. By default the value is false and the default download dialog is shown.
+
+
+
+
+ Gets a object.
+
+
+ Use this to the event at a later time.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Gets the ID of the navigation.
+
+
+
+
+ A Receiver is created for a particular DevTools Protocol event and allows you to subscribe and unsubscribe from that event.
+
+
+ Obtained from the WebView object using .
+
+
+
+
+
+ DevToolsProtocolEventReceived is raised when the corresponding DevToolsProtocol event is raised.
+
+
+
+
+
+ Event args for the event.
+
+
+ Event args for the event.
+
+
+
+
+ Gets the parameter object of the corresponding DevToolsProtocol event represented as a JSON string.
+
+
+
+
+ Gets the sessionId of the target where the event originates from. Empty string is returned as sessionId if the event comes from the default session for the top page.
+
+
+
+
+ Represents the information regarding the context menu target. Includes the context selected and the appropriate data used for the actions of a context menu.
+
+
+
+
+ Gets the kind of context that the user selected as .
+
+
+
+
+ Returns true if the context menu is requested on an editable component.
+
+
+
+
+ Returns true if the context menu was requested on the main frame and false if invoked on another frame.
+
+
+
+
+ Gets the uri of the page.
+
+
+
+
+ Gets the uri of the frame. Will match the if is true.
+
+
+
+
+ Returns true if the context menu is requested on HTML containing an anchor tag.
+
+
+
+
+ Gets the uri of the link (if is true, null otherwise).
+
+
+
+
+ Returns true if the context menu is requested on text element that contains an anchor tag.
+
+
+
+
+ Gets the text of the link (if is true, null otherwise).
+
+
+
+
+ Returns true if the context menu is requested on HTML containing a source uri.
+
+
+
+
+ Gets the active source uri of element (if is true, null otherwise).
+
+
+
+
+ Returns true if the context menu is requested on a selection.
+
+
+
+
+ Gets the selected text (if is true, null otherwise).
+
+
+
+
+ Event args for the event.
+
+
+ Will contain the selection information and a collection of all of the default context menu items that the WebView would show. Allows the app to draw its own context menu or add/remove from the default context menu.
+
+
+
+
+ Gets the collection of objects.
+
+
+
+
+ Gets the target information associated with the requested context menu.
+
+
+
+
+
+ Gets the coordinates where the context menu request occurred in relation to the upper left corner of the WebView bounds.
+
+
+
+
+ Gets or sets the selected 's .
+
+
+ When the app handles the event, it can set this to report the selected command from the context menu. The default value is -1 which means that no selection occurred. The app can also set the command ID for a custom context menu item, which will cause the event to be fired, however while command IDs for each custom context menu item is unique during a ContextMenuRequested event, WebView may reassign command ID values of deleted custom ContextMenuItems to new objects and the command ID assigned to the same custom item can be different between each app runtime. The command ID should always be obtained via the property.
+
+
+
+
+ Gets or sets whether the event is handled by host after the event handler completes or after the deferral is completed if there is a taken .
+
+
+ If Handled is set to true then WebView2 will not display a context menu and will instead use the property to indicate which, if any, context menu item to invoke. If after the event handler or deferral completes, Handled is set to false then WebView will display a context menu based on the contents of the property. The default value is false.
+
+
+
+
+ Returns a object.
+
+
+ Use this operation to complete the event when the custom context menu is closed.
+
+
+
+
+ Represents a context menu item of a context menu displayed by WebView.
+
+
+
+
+ Gets the unlocalized name for the .
+
+
+ Use this to distinguish between context menu item types. This will be the English label of the menu item in lower camel case. For example, the "Save as" menu item will be "saveAs". Extension menu items will be "extension", custom menu items will be "custom" and spellcheck items will be "spellCheck".
+ Some example context menu item names are:
+
+
+
+ "saveAs"
+
+
+ "copyImage"
+
+
+ "openLinkInNewWindow"
+
+
+
+
+
+
+ Gets the localized label for the . Will contain an ampersand for characters to be used as keyboard accelerator.
+
+
+
+
+ Gets the Command ID for the .
+
+
+ Use this to report the in event.
+
+
+
+
+ Gets the localized keyboard shortcut for this .
+
+
+ It will be the empty string if there is no keyboard shortcut. This is text intended to be displayed to the end user to show the keyboard shortcut. For example this property is Ctrl+Shift+I for the "Inspect" .
+
+
+
+
+ Gets the Icon for the in PNG, Bitmap or SVG formats in the form of an IStream.
+
+
+ Stream will be rewound to the start of the image data before being read.
+
+
+
+
+ Gets the kind of as .
+
+
+
+
+ Gets or sets the enabled property of the . Must only be used in the case of a custom context menu item.
+
+
+ The default value for this is true.
+
+
+
+
+ Gets or sets the checked property of the .
+
+
+ Must only be used for custom context menu items that are of kind or .
+
+
+
+
+ Gets the list of children menu items if the kind is .
+
+
+ If the kind is not , will return null.
+
+
+
+
+ CustomItemSelected event is raised when the user selects this .
+
+
+ Will only be raised for end developer created context menu items.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ true if the loaded content is an error page.
+
+
+
+
+ Gets the ID of the navigation.
+
+
+
+
+ This class is an extension of the class to support visual hosting.
+
+
+ This class is an extension of the class to support visual hosting.
+
+
+ This class is an extension of the class to support visual hosting.
+
+
+
+
+ Gets or sets the root visual in the hosting app's visual tree.
+
+
+ This visual is where the WebView will connect its visual tree. The app uses this visual to position the WebView within the app. The app still needs to use the property to size the WebView. The RootVisualTarget property can be an IDCompositionVisual or a Windows::UI::Composition::ContainerVisual. WebView will connect its visual tree to the provided visual before returning from the property setter. The app needs to commit on its device setting the RootVisualTarget property. The RootVisualTarget property supports being set to null to disconnect the WebView from the app's visual tree.
+
+
+
+
+ Gets the current cursor that WebView thinks it should be.
+
+
+ The cursor should be set in WM_SETCURSOR through Mouse.SetCursor or set on the corresponding parent/ancestor HWND of the WebView through ::SetClassLongPtr. The HCURSOR can be freed so CopyCursor/DestroyCursor is recommended to keep your own copy if you are doing more than immediately setting the cursor.
+
+
+
+
+ Gets the current system cursor ID reported by the underlying rendering engine for WebView.
+
+
+
+
+ The event is raised when WebView thinks the cursor should be changed.
+
+
+ For example, when the mouse cursor is currently the default cursor but is then moved over text, it may try to change to the IBeam cursor.
+ It is expected for the developer to send messages (in addition to messages) through . This is to ensure that the mouse is actually within the WebView that sends out CursorChanged events.
+
+
+
+
+ Sends mouse input to the WebView.
+
+ The mouse event kind.
+ The virtual keys associated with the eventKind.
+ The amount of wheel movement.
+ The absolute position of the mouse, or the amount of motion since the last mouse event was generated, depending on the eventKind.
+
+ If eventKind is or , then mouseData specifies the amount of wheel movement.
+ A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. One wheel click is defined as WHEEL_DELTA, which is 120. If eventKind is , , or , then mouseData specifies which X buttons were pressed or released. This value should be 1 if the first X button is pressed/released and 2 if the second X button is pressed/released. If eventKind is , then virtualKeys, mouseData, and point should all be zero. If eventKind is any other value, then mouseData should be zero. point is expected to be in the client coordinate space of the WebView. To track mouse events that start in the WebView and can potentially move outside of the WebView and host application, calling SetCapture and ReleaseCapture is recommended. To dismiss hover popups, it is also recommended to send messages.
+
+
+
+
+ Sends pen or pointer input to the WebView.
+
+ The pointer event kind.
+ The pointer information.
+
+ Accepts touch or pen pointer input of kinds defined in .
+ Any pointer input from the system must be converted into a first.
+
+
+
+
+ Call this method to inform the CoreWebView2CompositionController that a drag operation has left the WebView.
+
+
+ Corresponds to the [ICoreDropOperationTarget.LeaveAsync](/uwp/api/windows.applicationmodel.datatransfer.dragdrop.core.icoredropoperationtarget.leaveasync) method when performing a drag operation into the WebView.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Returns host name of the server that requested client certificate authentication.
+
+
+ Normalization rules applied to the hostname are:
+
+
+
+ Convert to lowercase characters for ascii characters.
+
+
+ Punycode is used for representing non ascii characters.
+
+
+ Strip square brackets for IPV6 address.
+
+
+
+
+
+
+ Returns port of the server that requested client certificate authentication.
+
+
+
+
+ Returns true if the server that issued this request is an http proxy. Returns false if the server is the origin server.
+
+
+
+
+ The list contains Base64 encoding of DER encoded distinguished names of certificate authorities allowed by the server.
+
+
+
+
+ Returns the list of when client certificate authentication is requested. The list contains mutually trusted CA certificate.
+
+
+
+
+ Selected certificate to respond to the server.
+
+
+
+
+ Indicates whether to cancel the certificate selection.
+
+
+ If canceled, the request is aborted regardless of the property. By default the value is false.
+
+
+
+
+ Indicates whether the event has been handled by host.
+
+
+ Set to true to respond to the server with or without a certificate. If this flag is true with a it responds to the server with the selected certificate otherwise respond to the server without a certificate. By default the value of and are false and display default client certificate selection dialog prompt to allow the user to choose a certificate. The is ignored unless is set to true.
+
+
+
+
+ Gets a object.
+
+
+ Use this to the event at a later time.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ The kind of browser process exit that has occurred.
+
+
+
+
+ The process ID of the browser process that has exited.
+
+
+
+
+ Represents a Basic HTTP authentication response that contains a user name and a password as according to RFC7617 (https://tools.ietf.org/html/rfc7617)
+
+
+
+
+ User name provided for authentication.
+
+
+
+
+ Password provided for authentication.
+
+
+
+
+ Event args for the BasicAuthenticationRequested event. Will contain the request that led to the HTTP authorization challenge, the challenge and allows the host to provide authentication response or cancel the request.
+
+
+
+
+ The URI that led to the authentication challenge. For proxy authentication requests, this will be the URI of the proxy server.
+
+
+
+
+ The authentication challenge string.
+
+
+
+
+ Response to the authentication request with credentials.
+
+
+ This object will be populated by the app if the host would like to provide authentication credentials.
+
+
+
+
+ Indicates whether to cancel the authentication request.
+
+
+ false by default. If set to true, Response will be ignored.
+
+
+
+
+ Gets a object.
+
+
+ Use this Deferral to defer the decision to show the Basic Authentication dialog.
+
+
+
+
+ Event args for the event.
+
+
+
+
+ Gets the key event kind that caused the event to run.
+
+
+
+
+ Gets the Win32 virtual key code of the key that was pressed or released.
+
+
+ It is one of the Win32 virtual key constants such as VK_RETURN or an (uppercase) ASCII value such as 'A'. Verify whether Ctrl or Alt are pressed by running GetKeyState(VK_CONTROL) or GetKeyState(VK_MENU).
+
+
+
+
+ Gets the LPARAM value that accompanied the window message.
+
+
+ See the documentation for the WM_KEYDOWN and WM_KEYUP messages.
+
+
+
+
+ Gets a representing the information passed in the LPARAM of the window message.
+
+
+
+
+ Indicates whether the event is handled by host.
+
+
+ If set to true then this prevents the WebView from performing the default action for this accelerator key. Otherwise the WebView will perform the default action for the accelerator key.
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.WinForms.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.WinForms.xml
new file mode 100644
index 0000000..f9db45f
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.WinForms.xml
@@ -0,0 +1,504 @@
+
+
+
+ Microsoft.Web.WebView2.WinForms
+
+
+
+
+ This class is a bundle of the most common parameters used to create and instances.
+ Its main purpose is to be set to in order to customize the environment and/or controller used by a during implicit initialization.
+
+
+ This class isn't intended to contain all possible environment or controller customization options.
+ If you need complete control over the environment and/or controller used by a WebView2 control then you'll need to initialize the control explicitly by
+ creating your own environment (with ) and/or controller options (with ) and passing them to
+ *before* you set the property to anything.
+ See the class documentation for an initialization overview.
+
+
+
+
+ Creates a new instance of with default data for all properties.
+
+
+
+
+ Gets or sets the value to pass as the browserExecutableFolder parameter of when creating an environment with this instance.
+
+
+
+
+ Gets or sets the value to pass as the userDataFolder parameter of when creating an environment with this instance.
+
+
+
+
+ Gets or sets the value to use for the Language property of the CoreWebView2EnvironmentOptions parameter passed to when creating an environment with this instance.
+
+
+
+
+ Gets or sets the value to use for the ProfileName property of the CoreWebView2ControllerOptions parameter passed to CreateCoreWebView2ControllerWithOptionsAsync when creating an controller with this instance.
+
+
+
+
+ Gets or sets the value to pass as the AdditionalBrowserArguments parameter of which is passed to when creating an environment with this instance.
+
+
+
+
+ Gets or sets the value to use for the IsInPrivateModeEnabled property of the CoreWebView2ControllerOptions parameter passed to CreateCoreWebView2ControllerWithOptionsAsync when creating an controller with this instance.
+
+
+
+
+ Create a using the current values of this instance's properties.
+
+ A task which will provide the created environment on completion, or null if no environment-related options are set.
+
+ As long as no other properties on this instance are changed, repeated calls to this method will return the same task/environment as earlier calls.
+ If some other property is changed then the next call to this method will return a different task/environment.
+
+
+
+
+ Creates a using the current values of this instance's properties.
+
+ A object or null if no controller-related properties are set.
+ Thrown if the parameter environment is null.
+
+
+
+ Control to embed WebView2 in WinForms.
+
+
+
+
+ Create a new WebView2 WinForms control.
+ After construction the property is null.
+ Call to initialize the underlying .
+
+
+ This control is effectively a wrapper around the WebView2 COM API, which you can find documentation for here: https://aka.ms/webview2
+ You can directly access the underlying ICoreWebView2 interface and all of its functionality by accessing the property.
+ Some of the most common COM functionality is also accessible directly through wrapper methods/properties/events on the control.
+
+ Upon creation, the control's CoreWebView2 property will be null.
+ This is because creating the CoreWebView2 is an expensive operation which involves things like launching Edge browser processes.
+ There are two ways to cause the CoreWebView2 to be created:
+ 1) Call the method. This is referred to as explicit initialization.
+ 2) Set the property. This is referred to as implicit initialization.
+ Either option will start initialization in the background and return back to the caller without waiting for it to finish.
+ To specify options regarding the initialization process, either pass your own to EnsureCoreWebView2Async or set the control's property prior to initialization.
+
+ When initialization has finished (regardless of how it was triggered) then the following things will occur, in this order:
+ 1) The control's event will be invoked. If you need to perform one time setup operations on the CoreWebView2 prior to its use then you should do so in a handler for that event.
+ 2) If a Uri has been set to the property then the control will start navigating to it in the background (i.e. these steps will continue without waiting for the navigation to finish).
+ 3) The Task returned from will complete.
+
+ For more details about any of the methods/properties/events involved in the initialization process, see its specific documentation.
+
+ Accelerator key presses (e.g. Ctrl+P) that occur within the control will
+ fire standard key press events such as OnKeyDown. You can suppress the
+ control's default implementation of an accelerator key press (e.g.
+ printing, in the case of Ctrl+P) by setting the Handled property of its
+ EventArgs to true. Also note that the underlying browser process is
+ blocked while these handlers execute, so:
+
+
+ You should avoid doing a lot of work in these handlers.
+
+
+ Some of the WebView2 and CoreWebView2 APIs may throw errors if
+ invoked within these handlers due to being unable to communicate with
+ the browser process.
+
+
+ If you need to do a lot of work and/or invoke WebView2 APIs in response to
+ accelerator keys then consider kicking off a background task or queuing
+ the work for later execution on the UI thread.
+
+
+
+
+ Cleans up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Overrides the base OnPaint event to have custom actions
+ in designer mode
+
+ The graphics devices which is the source
+
+
+
+ Overrides the base WndProc events to handle specific window messages.
+
+ The Message object containing the HWND window message and parameters
+
+
+
+ Gets or sets a bag of options which are used during initialization of the control's .
+ This property cannot be modified (an exception will be thrown) after initialization of the control's CoreWebView2 has started.
+
+ Thrown if initialization of the control's CoreWebView2 has already started.
+
+
+
+ Explicitly trigger initialization of the control's .
+
+
+ A pre-created that should be used to create the .
+ Creating your own environment gives you control over several options that affect how the is initialized.
+ If you pass null (the default value) then a default environment will be created and used automatically.
+
+
+ A pre-created that should be used to create the .
+ Creating your own controller options gives you control over several options that affect how the is initialized.
+ If you pass a controllerOptions to this method then it will override any settings specified on the property.
+ If you pass null (the default value) and no value has been set to then a default controllerOptions will be created and used automatically.
+
+
+ A Task that represents the background initialization process.
+ When the task completes then the property will be available for use (i.e. non-null).
+ Note that the control's event will be invoked before the task completes
+ or on exceptions.
+
+
+ Unless previous initialization has already failed, calling this method additional times with the same parameter will have no effect (any specified environment is ignored) and return the same Task as the first call.
+ Unless previous initialization has already failed, calling this method after initialization has been implicitly triggered by setting the property will have no effect if no environment is given
+ and simply return a Task representing that initialization already in progress.
+ Unless previous initialization has already failed, calling this method with a different environment after initialization has begun will result in an . For example, this can happen if you begin initialization
+ by setting the property and then call this method with a new environment, if you begin initialization with and then call this method with a new
+ environment, or if you begin initialization with one environment and then call this method with no environment specified.
+ When this method is called after previous initialization has failed, it will trigger initialization of the control's again.
+ Note that even though this method is asynchronous and returns a Task, it still must be called on the UI thread like most public functionality of most UI controls.
+
+ The following summarizes the possible error values and a description of why these errors occur.
+
+
+ Error Value
+ Description
+
+
+ HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
+ *\\Edge\\Application* path used in browserExecutableFolder.
+
+
+ HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
+ Specified options do not match the options of the WebViews that are currently running in the shared browser process.
+
+
+ HRESULT_FROM_WIN32(ERROR_INVALID_WINDOW_HANDLE)
+ WebView2 Initialization failed due to an invalid host HWND parentWindow.
+
+
+ HRESULT_FROM_WIN32(ERROR_DISK_FULL)
+ WebView2 Initialization failed due to reaching the maximum number of installed runtime versions.
+
+
+ HRESULT_FROM_WIN32(ERROR_PRODUCT_UNINSTALLED
+ If the Webview depends upon an installed WebView2 Runtime version and it is uninstalled.
+
+
+ HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
+ Could not find Edge installation.
+
+
+ HRESULT_FROM_WIN32(ERROR_FILE_EXISTS)
+ User data folder cannot be created because a file with the same name already exists.
+
+
+ E_ACCESSDENIED
+ Unable to create user data folder, Access Denied.
+
+
+ E_FAIL
+ Edge runtime unable to start.
+
+
+
+
+
+ Thrown if this method is called with a different environment than when it was initialized. See Remarks for more info.
+
+
+ Thrown if this instance of is already disposed, or if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+
+
+
+ Explicitly trigger initialization of the control's .
+
+
+ A pre-created that should be used to create the .
+ Creating your own environment gives you control over several options that affect how the is initialized.
+ If you pass null then a default environment will be created and used automatically.
+
+
+ A Task that represents the background initialization process.
+ When the task completes then the property will be available for use (i.e. non-null).
+ Note that the control's event will be invoked before the task completes
+ or on exceptions.
+
+
+ Unless previous initialization has already failed, calling this method additional times with the same parameter will have no effect (any specified environment is ignored) and return the same Task as the first call.
+ Unless previous initialization has already failed, calling this method after initialization has been implicitly triggered by setting the property will have no effect if no environment is given
+ and simply return a Task representing that initialization already in progress.
+ Unless previous initialization has already failed, calling this method with a different environment after initialization has begun will result in an . For example, this can happen if you begin initialization
+ by setting the property and then call this method with a new environment, if you begin initialization with and then call this method with a new
+ environment, or if you begin initialization with one environment and then call this method with no environment specified.
+ When this method is called after previous initialization has failed, it will trigger initialization of the control's again.
+ Note that even though this method is asynchronous and returns a Task, it still must be called on the UI thread like most public functionality of most UI controls.
+
+
+ Thrown if this method is called with a different environment than when it was initialized. See Remarks for more info.
+
+
+ Thrown if this instance of is already disposed, or if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+
+
+
+ This is the private function which implements the actual background initialization task.
+ Cannot be called if the control is already initialized or has been disposed.
+
+
+ The environment to use to create the .
+ If that is null then a default environment is created with and its default parameters.
+
+
+ The controllerOptions to use to create the .
+ If that is null then a default controllerOptions is created with its default parameters.
+
+ A task representing the background initialization process.
+ All the event handlers added here need to be removed in .
+
+
+
+ Protected CreateParams property. Used to set custom window styles to the forms HWND.
+
+
+
+
+ Protected VisibilityChanged handler.
+
+
+
+
+ Protected SizeChanged handler.
+
+
+
+
+ Protected Select method: override this to capture tab direction when WebView control is activated
+
+
+
+
+ Protected OnGotFocus handler.
+
+
+
+
+ Protected OnParentChanged handler.
+
+
+
+
+ True if initialization finished successfully and the control is not disposed yet.
+
+
+
+
+ Recursive retrieval of the parent control
+
+ The control to get the parent for
+ The root parent control
+
+
+
+ The underlying CoreWebView2. Use this property to perform more operations on the WebView2 content than is exposed
+ on the WebView2. This value is null until it is initialized and the object itself has undefined behaviour once the control is disposed.
+ You can force the underlying CoreWebView2 to
+ initialize via the method.
+
+ Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+
+
+
+ The zoom factor for the WebView.
+
+
+
+
+ Enable/disable external drop.
+
+
+
+
+ The Source property is the URI of the top level document of the
+ WebView2. Setting the Source is equivalent to calling .
+ Setting the Source will trigger initialization of the , if not already initialized.
+ The default value of Source is null, indicating that the is not yet initialized.
+
+ Specified value is not an absolute .
+ Specified value is null and the control is initialized.
+
+
+
+
+ Returns true if the webview can navigate to a next page in the
+ navigation history via the method.
+ This is equivalent to the .
+ If the underlying is not yet initialized, this property is false.
+
+
+
+
+
+ Returns true if the webview can navigate to a previous page in the
+ navigation history via the method.
+ This is equivalent to the .
+ If the underlying is not yet initialized, this property is false.
+
+
+
+
+
+ The default background color for the WebView.
+
+
+
+
+ Executes the provided script in the top level document of the .
+ This is equivalent to .
+
+ The underlying is not yet initialized.
+ Thrown when browser process has unexpectedly and left this control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+
+
+
+ Reloads the top level document of the .
+ This is equivalent to .
+
+ The underlying is not yet initialized.
+ Thrown when browser process has unexpectedly and left this control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+
+
+
+ Navigates to the next page in navigation history.
+ This is equivalent to .
+ If the underlying is not yet initialized, this method does nothing.
+
+
+
+
+
+ Navigates to the previous page in navigation history.
+ This is equivalent to .
+ If the underlying is not yet initialized, this method does nothing.
+
+
+
+
+
+ Renders the provided HTML as the top level document of the .
+ This is equivalent to .
+
+ The underlying is not yet initialized.
+ Thrown when browser process has unexpectedly and left this control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+ The htmlContent parameter may not be larger than 2 MB (2 * 1024 * 1024 bytes) in total size. The origin of the new page is about:blank.
+
+
+
+
+ Stops any in progress navigation in the .
+ This is equivalent to .
+ If the underlying is not yet initialized, this method does nothing.
+
+
+
+
+
+ This event is triggered either 1) when the control's has finished being initialized (regardless of how it was triggered or whether it succeeded) but before it is used for anything
+ OR 2) the initialization failed.
+ You should handle this event if you need to perform one time setup operations on the CoreWebView2 which you want to affect all of its usages
+ (e.g. adding event handlers, configuring settings, installing document creation scripts, adding host objects).
+
+
+ This sender will be the WebView2 control, whose CoreWebView2 property will now be valid (i.e. non-null) for the first time
+ if is true.
+ Unlikely this event can fire second time (after reporting initialization success first)
+ if the initialization is followed by navigation which fails.
+
+
+
+
+ NavigationStarting dispatches before a new navigate starts for the top
+ level document of the .
+ This is equivalent to the event.
+
+
+
+
+
+ NavigationCompleted dispatches after a navigate of the top level
+ document completes rendering either successfully or not.
+ This is equivalent to the event.
+
+
+
+
+
+ WebMessageReceived dispatches after web content sends a message to the
+ app host via chrome.webview.postMessage.
+ This is equivalent to the event.
+
+
+
+
+
+ SourceChanged dispatches after the property changes. This may happen
+ during a navigation or if otherwise the script in the page changes the
+ URI of the document.
+ This is equivalent to the event.
+
+
+
+
+
+ ContentLoading dispatches after a navigation begins to a new URI and the
+ content of that URI begins to render.
+ This is equivalent to the event.
+
+
+
+
+
+ ZoomFactorChanged dispatches when the property changes.
+ This is equivalent to the event.
+
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.Wpf.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.Wpf.xml
new file mode 100644
index 0000000..95a9fdc
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Microsoft.Web.WebView2.Wpf.xml
@@ -0,0 +1,1057 @@
+
+
+
+ Microsoft.Web.WebView2.Wpf
+
+
+
+
+ This class is a bundle of the most common parameters used to create and instances.
+ Its main purpose is to be set to in order to customize the environment and/or controller used by a during implicit initialization.
+ It is also a nice WPF integration utility which allows commonly used environment/controller parameters to be dependency properties and be created and used in markup.
+
+
+ This class isn't intended to contain all possible environment or controller customization options.
+ If you need complete control over the environment and/or controller used by a WebView2 control then you'll need to initialize the control explicitly by
+ creating your own environment (with ) and/or controller options (with ) and passing them to
+ *before* you set the property to anything.
+ See the class documentation for an initialization overview.
+
+
+
+
+ Creates a new instance of with default data for all properties.
+
+
+
+
+ The WPF DependencyProperty which backs the property.
+
+
+
+
+ Gets or sets the value to pass as the browserExecutableFolder parameter of when creating an environment with this instance.
+
+
+
+
+ The WPF DependencyProperty which backs the property.
+
+
+
+
+ Gets or sets the value to pass as the userDataFolder parameter of when creating an environment with this instance.
+
+
+
+
+ The WPF DependencyProperty which backs the property.
+
+
+
+
+ Gets or sets the value to use for the Language property of the CoreWebView2EnvironmentOptions parameter passed to when creating an environment with this instance.
+
+
+
+
+ The WPF DependencyProperty which backs the property.
+
+
+
+
+ Gets or sets the value to use for the AdditionalBrowserArguments property of the CoreWebView2EnvironmentOptions parameter passed to when creating an environment with this instance.
+
+
+
+
+ The WPF DependencyProperty which backs the property.
+
+
+
+
+ Gets or sets the value to use for the AreBrowserExtensionsEnabled property of the CoreWebView2EnvironmentOptions parameter passed to when creating an environment with this instance.
+
+
+
+
+ The WPF DependencyProperty which backs the property.
+
+
+
+
+ Gets or sets the value to use for the ProfileName property of the CoreWebView2ControllerOptions parameter passed to CreateCoreWebView2ControllerWithOptionsAsync when creating an controller with this instance.
+
+
+
+
+ The WPF DependencyProperty which backs the property.
+
+
+
+
+ Gets or sets the value to use for the IsInPrivateModeEnabled property of the CoreWebView2ControllerOptions parameter passed to CreateCoreWebView2ControllerWithOptionsAsync when creating an controller with this instance.
+
+
+
+
+ The WPF DependencyProperty which backs the property.
+
+
+
+
+ Gets or sets the value to use for the ScriptLocale property of the CoreWebView2ControllerOptions parameter passed to CreateCoreWebView2ControllerWithOptionsAsync when creating an controller with this instance.
+
+
+
+
+ Create a using the current values of this instance's properties.
+
+ A task which will provide the created environment on completion, or null if no environment-related options are set.
+
+ As long as no other properties on this instance are changed, repeated calls to this method will return the same task/environment as earlier calls.
+ If some other property is changed then the next call to this method will return a different task/environment.
+
+
+
+
+ Create a using the current values of this instance's properties.
+
+ A object or null if no controller-related properties are set.
+ Thrown if the parameter environment is null.
+
+
+
+ Tracks the conditions which block implicit initialization and whether it has been requested or not.
+ The analogy is a set of gates which are either open (implicit init allowed) or closed (will have to wait).
+ All sub-gates must be open before implicit init can proceed.
+ If implicit init is requested while the gate is open then it happens immediately.
+ If it's requested while the gate is closed then it occurs when the gate becomes open.
+
+
+ It should be reasonably straight-forward to expand this class in the future to:
+ * add new sub-gates to further restrict when implicit initialization can occur
+ * support storing and invoking multiple actions next time the gate is open instead of only one
+
+
+
+
+ Tracks whether a sub-gate regarding / is open or closed.
+ This sub-gate is only closed after calls to `BeginInit` and before an equal number of calls to `EndInit`.
+
+
+ We don't want implicit initialization to occur in between those calls,
+ because implicit initialization is a side effect of setting the Source property,
+ and side effects of setting properties during that period are supposed to be delayed until `EndInit`.
+
+
+
+
+ How many times has been called without being called.
+
+
+
+
+ Tracks whether a sub-gate regarding is open or closed.
+ This sub-gate is closed if `SynchronizationContext.Current == null`.
+
+
+ Initialization won't work without a `SynchronizationContext` because otherwise an `await` might resume on a different thread.
+ As far as I know so far this only occurs before an event loop as started on the running thread.
+ Once there's an event loop running the `SynchronizationContext` ensures that `await`s resume in the same event loop (i.e. same thread).
+ Although it's a rare corner case, it's possible to create a `Window` w/ `WebView2` before an app's event loop starts.
+ This sub-gate handles that corner case.
+
+
+
+
+ An action which will trigger initialization next time the gate is open (and only once).
+
+
+ This basically tracks whether or not implicit initialization has been requested while the gate is closed.
+ If this is non-null then it should be a delegate that calls .
+
+
+
+
+ Closes the gate until is called an equal number of times.
+
+
+
+
+ Opens the gate closed by after being called the same number of times.
+
+
+
+
+ A handler that should be attached to an event which indicates that exists.
+ The best one I know of right now is .
+ When the handler is called, the gate will re-evaluate its state and potentially allow any pending initialization action.
+
+
+
+
+ Run a given action when the gate is open.
+
+
+ If the gate is currently open then the action runs immediately.
+ Otherwise the action runs next time the gate is discovered to be open.
+ The action is only ever run once; it will not run again a second/subsequent time the gate opens.
+ If the gate is closed and another action is already pending then the new action *overwrites* the current one (i.e. the currently stored action will never run).
+ To "forget" a currently stored action, pass `null`.
+
+ Action to run when the gate is open, or null to clear a previously specified action.
+
+
+
+ Examine our overall open/closed state and run any pending action if appropriate.
+
+
+
+
+ A control to embed web content in a WPF application.
+
+
+ This control is effectively a wrapper around the [WebView2 COM
+ API](https://aka.ms/webview2). You can directly access the underlying
+ ICoreWebView2 interface and all of its functionality by accessing the
+ property. Some of the most common COM
+ functionality is also accessible directly through wrapper
+ methods/properties/events on the control.
+
+ Upon creation, the control's property will be
+ null. This is because creating the is an
+ expensive operation which involves things like launching Edge browser
+ processes. There are two ways to cause the to
+ be created:
+
+
+ Call the method. This is
+ referred to as explicit initialization.
+
+
+ Set the property (which could be done from
+ markup, for example). This is referred to as implicit initialization.
+ Either option will start initialization in the background and return
+ back to the caller without waiting for it to finish.
+ To specify options regarding the initialization process, either pass
+ your own to or set the control's property prior to initialization.
+
+
+
+ When initialization has finished (regardless of how it was triggered or
+ whether it succeeded) then the following things will occur, in this
+ order:
+
+
+ The control's event
+ will be invoked. If you need to perform one time setup operations on
+ the prior to its use then you should
+ do so in a handler for that event.
+
+
+ If initialization was successful and a Uri has been set to the property then the control will start navigating to it in
+ the background (i.e. these steps will continue without waiting for the
+ navigation to finish).
+
+
+ The Task returned from will
+ complete.
+
+
+
+ For more details about any of the methods/properties/events involved in
+ the initialization process, see its specific documentation.
+
+ Because the control's is a very heavyweight
+ object (potentially responsible for multiple running processes and
+ megabytes of disk space) the control implements to provide an explicit means to free it.
+ Calling will release the
+ and its underlying resources (except any that are also being used by other
+ WebViews), and reset to null. After has been called the cannot be
+ re-initialized, and any attempt to use functionality which requires it
+ will throw an .
+
+ Accelerator key presses (e.g. Ctrl+P) that occur within the control will
+ fire standard key press events such as OnKeyDown. You can suppress the
+ control's default implementation of an accelerator key press (e.g.
+ printing, in the case of Ctrl+P) by setting the Handled property of its
+ EventArgs to true. Also note that the underlying browser process is
+ blocked while these handlers execute, so:
+
+
+ You should avoid doing a lot of work in these handlers.
+
+
+ Some of the WebView2 and CoreWebView2 APIs may throw errors if
+ invoked within these handlers due to being unable to communicate with
+ the browser process.
+
+
+ If you need to do a lot of work and/or invoke WebView2 APIs in response to
+ accelerator keys then consider kicking off a background task or queuing
+ the work for later execution on the UI thread.
+
+ Note that this control extends in order to embed
+ windows which live outside of the WPF ecosystem. This has some
+ implications regarding the control's input and output behavior as well as
+ the functionality it "inherits" from and .
+ See the and [WPF/Win32
+ interop](https://docs.microsoft.com/dotnet/framework/wpf/advanced/wpf-and-win32-interoperation#hwnds-inside-wpf)
+ documentation for more information.
+
+
+
+
+
+ Creates a new instance of a WebView2 control.
+ Note that the control's will be null until initialized.
+ See the class documentation for an initialization overview.
+
+
+
+
+ The WPF which backs the property.
+
+
+
+
+
+ Gets or sets a bag of options which are used during initialization of the control's .
+ Setting this property will not work after initialization of the control's has started (the old value will be retained).
+ See the class documentation for an initialization overview.
+
+
+
+
+
+ This is overridden from and is called to instruct us to create our HWND.
+
+ The HWND that we should use as the parent of the one we create.
+ The HWND that we created.
+
+
+
+
+ This is overridden from and is called to instruct us to destroy our HWND.
+
+ Our HWND that we need to destroy.
+
+
+
+
+ This is overridden from and is called to provide us with Win32 messages that are sent to our hwnd.
+
+ Window receiving the message (should always match our ).
+ Indicates the message being received. See Win32 documentation for WM_* constant values.
+ The "wParam" data being provided with the message. Meaning varies by message.
+ The "lParam" data being provided with the message. Meaning varies by message.
+ If true then the message will not be forwarded to any (more) handlers.
+ Return value varies by message.
+
+
+
+
+ Override for painting to draw
+
+ The tools to handle the drawing via .
+
+
+
+ Accesses the complete functionality of the underlying COM API.
+ Returns null until initialization has completed.
+ See the class documentation for an initialization overview.
+
+
+ Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+
+
+
+
+
+ This event is triggered either
+ 1) when the control's has finished being initialized (regardless of how initialization was triggered) but before it is used for anything, or
+ 2) if the initialization failed.
+ You should handle this event if you need to perform one time setup operations on the which you want to affect all of its usages.
+ (e.g. adding event handlers, configuring settings, installing document creation scripts, adding host objects).
+ See the class documentation for an initialization overview.
+
+
+ This sender will be the control, whose property will now be valid (i.e. non-null) for the first time
+ if is true.
+ Unlikely this event can fire second time (after reporting initialization success first)
+ if the initialization is followed by navigation which fails.
+
+
+
+
+
+ Explicitly triggers initialization of the control's .
+ See the class documentation for an initialization overview.
+
+
+ A pre-created that should be used to create the .
+ Creating your own environment gives you control over several options that affect how the is initialized.
+ If you pass an environment to this method then it will override any settings specified on the property.
+ If you pass null (the default value) and no value has been set to then a default environment will be created and used automatically.
+
+
+ A pre-created that should be used to create the .
+ Creating your own controller options gives you control over several options that affect how the is initialized.
+ If you pass a controllerOptions to this method then it will override any settings specified on the property.
+ If you pass null (the default value) and no value has been set to then a default controllerOptions will be created and used automatically.
+
+
+ A Task that represents the background initialization process.
+ When the task completes then the property will be available for use (i.e. non-null).
+ Note that the control's event will be invoked before the task completes.
+
+
+ Unless previous initialization has already failed, calling this method additional times with the same parameter will have no effect (any specified environment is ignored) and return the same Task as the first call.
+ Unless previous initialization has already failed, calling this method after initialization has been implicitly triggered by setting the property will have no effect if no environment is given
+ and simply return a Task representing that initialization already in progress, unless previous initialization has already failed.
+ Unless previous initialization has already failed, calling this method with a different environment after initialization has begun will result in an . For example, this can happen if you begin initialization
+ by setting the property and then call this method with a new environment, if you begin initialization with and then call this method with a new
+ environment, or if you begin initialization with one environment and then call this method with no environment specified.
+ When this method is called after previous initialization has failed, it will trigger initialization of the control's again.
+ Note that even though this method is asynchronous and returns a Task, it still must be called on the UI thread like most public functionality of most UI controls.
+
+ The following summarizes the possible error values and a description of why these errors occur.
+
+
+ Error Value
+ Description
+
+
+ HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
+ *\\Edge\\Application* path used in browserExecutableFolder.
+
+
+ HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
+ Specified options do not match the options of the WebViews that are currently running in the shared browser process.
+
+
+ HRESULT_FROM_WIN32(ERROR_INVALID_WINDOW_HANDLE)
+ WebView2 Initialization failed due to an invalid host HWND parentWindow.
+
+
+ HRESULT_FROM_WIN32(ERROR_DISK_FULL)
+ WebView2 Initialization failed due to reaching the maximum number of installed runtime versions.
+
+
+ HRESULT_FROM_WIN32(ERROR_PRODUCT_UNINSTALLED
+ If the Webview depends upon an installed WebView2 Runtime version and it is uninstalled.
+
+
+ HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
+ Could not find Edge installation.
+
+
+ HRESULT_FROM_WIN32(ERROR_FILE_EXISTS)
+ User data folder cannot be created because a file with the same name already exists.
+
+
+ E_ACCESSDENIED
+ Unable to create user data folder, Access Denied.
+
+
+ E_FAIL
+ Edge runtime unable to start.
+
+
+
+
+
+ Thrown if this method is called with a different environment than when it was initialized. See Remarks for more info.
+
+
+ Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if is null, which probably indicates that the application's event loop hasn't started yet.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+
+
+
+
+
+ Explicitly triggers initialization of the control's .
+ See the class documentation for an initialization overview.
+
+
+ A pre-created that should be used to create the .
+ Creating your own environment gives you control over several options that affect how the is initialized.
+ If you pass an environment to this method then it will override any settings specified on the property.
+ If you pass null and no value has been set to then a default environment will be created and used automatically.
+
+
+ A Task that represents the background initialization process.
+ When the task completes then the property will be available for use (i.e. non-null).
+ Note that the control's event will be invoked before the task completes.
+
+
+ Unless previous initialization has already failed, calling this method additional times with the same parameter will have no effect (any specified environment is ignored) and return the same Task as the first call.
+ Unless previous initialization has already failed, calling this method after initialization has been implicitly triggered by setting the property will have no effect if no environment is given
+ and simply return a Task representing that initialization already in progress, unless previous initialization has already failed.
+ Unless previous initialization has already failed, calling this method with a different environment after initialization has begun will result in an . For example, this can happen if you begin initialization
+ by setting the property and then call this method with a new environment, if you begin initialization with and then call this method with a new
+ environment, or if you begin initialization with one environment and then call this method with no environment specified.
+ When this method is called after previous initialization has failed, it will trigger initialization of the control's again.
+ Note that even though this method is asynchronous and returns a Task, it still must be called on the UI thread like most public functionality of most UI controls.
+
+
+ Thrown if this method is called with a different environment than when it was initialized. See Remarks for more info.
+
+
+ Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if is null, which probably indicates that the application's event loop hasn't started yet.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+
+
+
+
+
+ This is called by our base class according to the typical implementation of the pattern.
+ We implement it by releasing all of our underlying COM resources, including our .
+
+ True if a caller is explicitly calling Dispose, false if we're being finalized.
+
+
+
+ This is an event handler for our CoreWebView2's ProcessFailedEvent
+
+
+
+
+ This is a "gate" which controls whether or not implicit initialization can occur.
+ If implicit initialization is triggered while the gate is closed,
+ then the initialization should be delayed until the gate opens.
+ When we want to trigger implicit initialization we route the call through this gate.
+ If the gate is open then the initialization will proceed.
+ If the gate is closed then it will remember to trigger the initialization when it opens.
+
+
+
+
+ Implementation of the ISupportInitialize pattern.
+ Prevents the control from implicitly initializing its until is called.
+ Does *not* prevent explicit initialization of the CoreWebView2 (i.e. ).
+ Mainly intended for use by interactive UI designers.
+
+
+ Note that the "Initialize" in ISupportInitialize and the "Init" in BeginInit/EndInit mean
+ something different and more general than this control's specific concept of initializing
+ its CoreWebView2 (explicitly or implicitly). This ISupportInitialize pattern is a general
+ way to set batches of properties on the control to their initial values without triggering
+ any dependent side effects until all of the values are set (i.e. until EndInit is called).
+ In the case of this control, a specific side effect to be avoided is triggering implicit
+ initialization of the CoreWebView2 when setting the Source property.
+ For example, normally if you set after you've already set Source,
+ the data set to CreationProperties is ignored because implicit initialization has already started.
+ However, if you set the two properties (in the same order) in between calls to BeginInit and
+ EndInit then the implicit initialization of the CoreWebView2 is delayed until EndInit, so the data
+ set to CreationProperties is still used even though it was set after Source.
+
+
+
+
+ Implementation of the ISupportInitialize pattern.
+ Invokes any functionality that has been delayed since the corresponding call to .
+ Mainly intended for use by interactive UI designers.
+
+
+ See the documentation of for more information.
+
+
+
+
+ Updates one of our dependency properties to match a new value from the .
+ It both sets the value and remembers (in _propertyChangingFromCore) that it came from the CoreWebView2 rather than the caller,
+ allowing the property's "on changed" handler to alter its behavior based on where the new value came from.
+ It's only intended to be called in a CoreWebView2 event handler that's informing us of a new property value.
+ It's basically just a wrapper around the inherited SetCurrentValue which also maintains _propertyChangingFromCore.
+ See the comments on for additional background info.
+ One more thing worth explicitly stating is that it wraps SetCurrentValue rather than SetValue,
+ in order to avoid overwriting any OneWay bindings that are set on the specified properties.
+ Check the link https://stackoverflow.com/q/4230698 for more information about the difference between SetValue and SetCurrentValue.
+
+ The property to change due to an equivalent change in the CoreWebView2.
+ The new value from the CoreWebView2.
+
+
+
+ Checks if a given property is currently being updated to match an equivalent change in the .
+ This method should only be called from a property's "on changed" handler; it has no meaning at any other time.
+ It is used to determine if the property is changing to match the CoreWebView2 or because the caller set it.
+ Usually this is used in order to decide if the new value needs to be propagated down to the CoreWebView2.
+ See the comments on for additional background info.
+
+ The property to check.
+ True if the property is changing to match the CoreWebView2, or false if the property was changed by the caller.
+
+
+
+ Changes our controller's ParentWindow to the given HWND, along with any other necessary associated work.
+
+ The new HWND to set as the controller's parent. IntPtr.Zero means that the controller will have no parent and the CoreWebView2 will be hidden.
+ Whether or not to call as required. Defaults to true. If you pass false then you should call it yourself if required.
+
+ Reparenting the controller isn't necessarily as simple as changing its ParentWindow property,
+ and this method exists to ensure that any other work that needs to be done at the same time gets done.
+ The reason that SyncControllerWithParentWindow isn't baked directly into this method is because
+ sometimes we want to call the Sync functionality without necessarily reparenting (e.g. during initialization).
+
+
+
+
+ Syncs visual/windowing information between the controller and its parent HWND.
+ This should be called any time a new, non-null HWND is set as the controller's parent,
+ including when the controller is first created.
+
+
+
+
+ This is a handler for our base UIElement's IsVisibleChanged event.
+ It's predictably fired whenever IsVisible changes, and IsVisible reflects the actual current visibility status of the control.
+ We just need to pass this info through to our CoreWebView2Controller so it can save some effort when the control isn't visible.
+
+
+
+
+ This is overridden from and called when our control's location has changed.
+ The HwndHost takes care of updating the HWND we created.
+ What we need to do is move our CoreWebView2 to match the new location.
+
+
+
+
+ The WPF which backs the property.
+
+
+
+
+ The top-level which the WebView is currently displaying (or will display once initialization of its is finished).
+ Generally speaking, getting this property is equivalent to getting the property and setting this property (to a different value) is equivalent to calling the method.
+
+
+ Getting this property before the has been initialized will retrieve the last Uri which was set to it, or null (the default) if none has been.
+ Setting this property before the has been initialized will cause initialization to start in the background (if not already in progress), after which the will navigate to the specified .
+ This property can never be set back to null or to a relative .
+ See the class documentation for an initialization overview.
+
+ Thrown if has already been called on the control.
+ Thrown if the property is set to null.
+ Thrown if the property is set to a relative (i.e. a whose property is false).
+
+
+
+
+ This is a callback that WPF calls to validate a potential new Source value.
+
+
+ True if the value is valid, false if it is not.
+ If we return false then WPF should respond by throwing an .
+
+
+ Note that we unfortunately can't treat null as invalid here because null is valid prior to initialization.
+
+
+
+
+ This is a callback that WPF calls when the WPF Source property's value changes.
+ This might have been triggered by either:
+ 1) The caller set Source to programmatically trigger a navigation.
+ 2) The CoreWebView changed its own source and we're just updating the dependency property to match.
+ We use to distinguish the two cases.
+
+
+
+
+ A wrapper around the .
+ The only difference between this event and is the first parameter that's passed to handlers.
+ Handlers of this event will receive the control, whereas handlers of will receive the instance.
+
+
+
+
+
+ This is an event handler for our CoreWebView2's SourceChanged event.
+ Unsurprisingly, it fires when the CoreWebView2's source URI has been changed.
+ Note that there are two distinct triggers for this:
+ 1) The CoreWebView2 was told to navigate programmatically (potentially by us, see SourcePropertyChanged).
+ 2) The user interacted with the CoreWebView2, e.g. clicked a link.
+ In either of the above cases, this event might trigger several times due to e.g. redirection.
+ Aside from propagating to our own event, we just need to update our WPF Source property to match the CoreWebView2's.
+
+
+
+
+ A wrapper around the .
+ The only difference between this event and is the first parameter that's passed to handlers.
+ Handlers of this event will receive the control, whereas handlers of will receive the instance.
+
+
+
+
+
+ This is an event handler for our CoreWebView2's NavigationStarting event.
+ We just need to propagate the event to WPF.
+
+
+
+
+ A wrapper around the .
+ The only difference between this event and is the first parameter that's passed to handlers.
+ Handlers of this event will receive the control, whereas handlers of will receive the instance.
+
+
+
+
+
+ This is an event handler for our CoreWebView2's NavigationCompleted event.
+ We just need to propagate the event to WPF.
+
+
+
+
+ This is an event handler for our CoreWebView2's HistoryChanged event.
+ We're handling it in order to update our WPF CanGoBack and CanGoForward properties.
+
+
+
+
+ The WPF which backs the property.
+
+
+
+
+ Returns true if the WebView can navigate to a previous page in the navigation history.
+ Wrapper around the property of .
+ If isn't initialized yet then returns false.
+
+
+
+
+
+ The WPF which backs the property.
+
+
+
+
+ Returns true if the WebView can navigate to a next page in the navigation history.
+ Wrapper around the property of .
+ If isn't initialized yet then returns false.
+
+
+
+
+
+ This is overridden from and is called to inform us that tabbing has caused the focus to move into our control/window.
+ Since WPF can't manage the transition of focus to a non-WPF HWND, it delegates the transition to us here.
+ So our job is just to place the focus in our external HWND.
+
+ Information about how the focus is moving.
+ true to indicate that we handled the navigation, or false to indicate that we didn't.
+
+
+
+ This is overridden from and is called to inform us when we receive the keyboard focus.
+ We handle this by passing the keyboard focus on to the underlying .
+ We never want to land in a state where our window (this.Handle) actually has the keyboard focus.
+
+ Arguments from the underlying GotKeyboardFocus event.
+
+ Note that it's actually possible for us to receive keyboard focus without this method being called.
+ One known case where that happens is when our parent window is deactivated while we have focus, then reactivated.
+ We handle that case in .
+
+
+
+
+
+ This is an event handler for our CoreWebView2Controller's MoveFocusRequested event.
+ It fires when the CoreWebView2Controller has focus but wants to move it elsewhere in the app.
+ E.g. this happens when the user tabs past the last item in the CoreWebView2 and focus needs to return to some other app control.
+ So our job is just to tell WPF to move the focus on to the next control.
+ Note that we don't propagate this event outward as a standard WPF routed event because we've implemented its purpose here.
+ If users of the control want to track focus shifting in/out of the control, they should use standard WPF events.
+
+
+
+
+ This is an event handler for our CoreWebView2Controller's GotFocus event.
+ We just need to propagate the event to WPF.
+
+
+
+
+ This is an event handler for our CoreWebView2Controller's LostFocus event.
+ We just need to propagate the event to WPF.
+
+
+
+
+ This is an event handler for our CoreWebView2Controller's AcceleratorKeyPressed event.
+ This is called to inform us about key presses that are likely to have special behavior (e.g. esc, return, Function keys, letters with modifier keys).
+ WPF can't detect this input because Windows sends it directly to the Win32 CoreWebView2Controller control.
+ We implement this by generating standard WPF key input events, allowing callers to handle the input in the usual WPF way if they want.
+ If nobody handles the WPF key events then we'll allow the default CoreWebView2Controller logic (if any) to handle it.
+ Of the possible options, this implementation should provide the most flexibility to callers.
+
+
+
+
+ This is overridden from and called to allow us to handle key press input.
+ WPF should never actually call this in response to keyboard events because we're hosting a non-WPF window.
+ When our window has focus Windows will send the input directly to it rather than to WPF's top-level window and input system.
+ This override should only be called when we're explicitly forwarding accelerator key input from the CoreWebView2 to WPF (in CoreWebView2Controller_AcceleratorKeyPressed).
+ Even then, this KeyDownEvent is only triggered because our PreviewKeyDownEvent implementation explicitly triggers it, matching WPF's usual system.
+ So the process is:
+
+ CoreWebView2Controller_AcceleratorKeyPressed
+ PreviewKeyDownEvent
+ KeyDownEvent
+ OnKeyDown
+
+ .
+
+
+
+
+ See .
+
+
+
+
+ This is the "Preview" (i.e. tunneling) version of , so it actually happens first.
+ Like OnKeyDown, this will only ever be called if we're explicitly forwarding key presses from the CoreWebView2.
+ In order to mimic WPF's standard input handling, when we receive this we turn around and fire off the standard bubbling KeyDownEvent.
+ That way others in the WPF tree see the same standard pair of input events that WPF itself would have triggered if it were handling the key press.
+
+
+
+
+
+ See .
+
+
+
+
+ The WPF which backs the property.
+
+
+
+
+ The zoom factor for the WebView.
+ This property directly exposes , see its documentation for more info.
+ Getting this property before the has been initialized will retrieve the last value which was set to it, or 1.0 (the default) if none has been.
+ The most recent value set to this property before the CoreWebView2 has been initialized will be set on it after initialization.
+
+
+
+
+
+ This is a callback that WPF calls when our WPF ZoomFactor property's value changes.
+ This might have been triggered by either:
+ 1) The caller set ZoomFactor to change the zoom of the CoreWebView2.
+ 2) The CoreWebView2 changed its own ZoomFactor and we're just updating the dependency property to match.
+ We use to distinguish the two cases.
+
+
+
+
+ The event is raised when the property changes.
+ This event directly exposes .
+
+
+
+
+
+
+ This is an event handler for our CoreWebView2Controller's ZoomFactorChanged event.
+ Unsurprisingly, it fires when the CoreWebView2Controller's ZoomFactor has been changed.
+ Note that there are two distinct triggers for this:
+ 1) The value was changed programmatically (potentially by us, see ZoomFactorPropertyChanged).
+ 2) The user interacted with the CoreWebView2, e.g. CTRL + Mouse Wheel.
+ Aside from propagating to our own event, we just need to update our WPF ZoomFactor property to match the CoreWebView2Controller's.
+
+
+
+
+ The WPF which backs the property.
+
+
+
+
+ The default background color for the WebView.
+ This property directly exposes , see its documentation for more info.
+ Getting this property before the has been initialized will retrieve the last value which was
+ set to it, or Color.White (the default) if none has been.
+ The most recent value set to this property before CoreWebView2Controller has been initialized will be set on it after initialization.
+
+
+
+
+ This is a callback that WPF calls when our WPF DefaultBackgroundColor property's value changes.
+ Since CoreWebView2Controller does not update this property itself, this is only triggered by the
+ caller setting DefaultBackgroundColor.
+
+
+
+
+ The WPF which backs the property.
+
+
+
+
+ The AllowExternalDrop property for the WebView.
+ This property directly exposes , see its documentation for more info.
+ Getting this property before the has been initialized will retrieve the last value which was
+ set to it, or true (the default) if none has been.
+ The most recent value set to this property before CoreWebView2Controller has been initialized will be set on it after initialization.
+
+
+
+
+ This is a callback that WPF calls when our WPF AllowExternalDrop property's value changes.
+ Since CoreWebView2Controller does not update this property itself, this is only triggered by the
+ caller setting AllowExternalDrop.
+
+
+
+
+ The WPF which backs the property.
+
+
+
+
+ The foreground color to be used in design mode.
+
+
+
+
+ Navigates the WebView to the previous page in the navigation history.
+ Equivalent to calling
+ If hasn't been initialized yet then does nothing.
+
+
+ Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+
+
+
+
+
+ Navigates the WebView to the next page in the navigation history.
+ Equivalent to calling .
+ If hasn't been initialized yet then does nothing.
+
+
+ Thrown if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+
+
+
+
+
+ Reloads the current page.
+ Equivalent to calling .
+
+
+ Thrown if hasn't been initialized yet, or if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+
+
+
+
+
+ Stops all navigations and pending resource fetches.
+ Equivalent to calling .
+
+
+ Thrown if hasn't been initialized yet, or if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+
+
+
+
+
+ Initiates a navigation to htmlContent as source HTML of a new document.
+ Equivalent to calling .
+
+
+ Thrown if hasn't been initialized yet, or if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+ The htmlContent parameter may not be larger than 2 MB (2 * 1024 * 1024 bytes) in total size. The origin of the new page is about:blank.
+
+
+
+
+
+ A wrapper around the .
+ The only difference between this event and is the first parameter that's passed to handlers.
+ Handlers of this event will receive the control, whereas handlers of will receive the instance.
+
+
+
+
+
+ This is an event handler for our CoreWebView2's ContentLoading event.
+ We just need to propagate the event to WPF.
+
+
+
+
+ Executes JavaScript code from the javaScript parameter in the current top level document rendered in the WebView.
+ Equivalent to calling .
+
+
+ Thrown if hasn't been initialized yet, or if the calling thread isn't the thread which created this object (usually the UI thread). See for more info.
+ May also be thrown if the browser process has crashed unexpectedly and left the control in an invalid state. We are considering throwing a different type of exception for this case in the future.
+
+ Thrown if has already been called on the control.
+
+
+
+
+
+ A wrapper around the .
+ The only difference between this event and is the first parameter that's passed to handlers.
+ Handlers of this event will receive the control, whereas handlers of will receive the instance.
+
+
+
+
+
+ This is an event handler for our CoreWebView2's WebMessageReceived event.
+ We just need to propagate the event to WPF.
+
+
+
+
+ True when we're in design mode and shouldn't create an underlying CoreWebView2.
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/MySql.Data.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/MySql.Data.xml
new file mode 100644
index 0000000..fb6d0a6
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/MySql.Data.xml
@@ -0,0 +1,18498 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt, relying party name and set it in the object.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Signs the challenge obtained from the FIDO device and returns it to the server.
+
+
+
+
+ Method to obtain an assertion from a FIDO device.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+
+
+ 1
+
+
+ Disables batch updating.
+
+
+
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when FIDO authentication requests to perform gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+
+ From to ,
+ using the method of the connection object.
+
+
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets the event for the callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement. Since we're getting only one assertion, the index will always be zero.
+
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the ID of statement idx in assert
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins..
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported..
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher..
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. .
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type..
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels..
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized..
+
+
+
+
+ Looks up a localized string similar to Compression is not supported..
+
+
+
+
+ Looks up a localized string similar to The connection is already open..
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated..
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open..
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null..
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format..
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first..
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions..
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted..
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}..
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation..
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read..
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset..
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate..
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key..
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location..
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}..
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}..
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server..
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format..
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server..
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid..
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal..
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'..
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid..
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999..
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond..
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'..
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'..
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid..
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature..
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option..
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values..
+
+
+
+
+ Looks up a localized string similar to Option not supported..
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'..
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed..
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected..
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported..
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set..
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported..
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows..
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix..
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read..
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found..
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry..
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file..
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'..
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed..
+
+
+
+
+ Looks up a localized string similar to Security token file could not be found at location given by OCI configuration entry 'security_token_file'..
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed..
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords..
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined..
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection..
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare..
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty..
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server..
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache..
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported..
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes..
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server..
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed..
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed..
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements..
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed..
+
+
+
+
+ Looks up a localized string similar to No available server found..
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine..
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections..
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported..
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache..
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match..
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate..
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA)..
+
+
+
+
+ Looks up a localized string similar to SSL Connection error..
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections..
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty..
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding..
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLSv1.3 is not supported by this framework..
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use..
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query..
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts..
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details..
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled..
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered..
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'..
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition..
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key..
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string..
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running..
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested..
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'..
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid..
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid..
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker..
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined..
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection..
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'..
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid..
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported..
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework..
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable..
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled..
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it..
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed..
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later..
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled..
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid..
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string..
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes"..
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string..
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified..
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported..
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher..
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs..
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect..
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute..
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0)..
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid..
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row..
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row..
+
+
+
+
+ Looks up a localized string similar to Session state is not valid..
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_"..
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both..
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found..
+
+
+
+
+ Looks up a localized string similar to Keyword not supported..
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory..
+
+
+
+
+ Looks up a localized string similar to Missed required schema option..
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead..
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified..
+
+
+
+
+ Looks up a localized string similar to No more data in resultset..
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders..
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0..
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'..
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool..
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead..
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host..
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100..
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined..
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document..
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both..
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded..
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded..
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host..
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value..
+
+
+
+
+ Looks up a localized string similar to Unable to open a session..
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed..
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type..
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/Newtonsoft.Json.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Newtonsoft.Json.xml
new file mode 100644
index 0000000..80cb43c
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Newtonsoft.Json.xml
@@ -0,0 +1,11363 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets the naming strategy used to resolve how enum text is written.
+
+ The naming strategy used to resolve how enum text is written.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when serializing and deserializing.
+ The default value is true.
+
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The naming strategy used to resolve how enum text is written.
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Gets or sets a value indicating whether the dates before Unix epoch
+ should converted to and from JSON.
+
+
+ true to allow converting dates before Unix epoch to and from JSON;
+ false to throw an exception when a date being converted to or from JSON
+ occurred before Unix epoch. The default value is false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ true to allow converting dates before Unix epoch to and from JSON;
+ false to throw an exception when a date being converted to or from JSON
+ occurred before Unix epoch. The default value is false.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ true if special characters are encoded; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ The default JSON name table implementation.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a string containing the same characters as the specified range of characters in the given array.
+
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ A string containing the same characters as the specified range of characters in the given array.
+
+
+
+ Adds the specified string into name table.
+
+ The string to add.
+ This method is not thread-safe.
+ The resolved string.
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by ,
+ writes a Json.NET array attribute for collections, and encodes special characters.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+
+ A value to indicate whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by ,
+ writes a Json.NET array attribute for collections, and encodes special characters.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+
+ A value to indicate whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Base class for a table of atomized string objects.
+
+
+
+
+ Gets a string containing the same characters as the specified range of characters in the given array.
+
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ A string containing the same characters as the specified range of characters in the given array.
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets the missing member handling used when deserializing this object.
+
+ The missing member handling.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the type used when serializing the property's collection items.
+
+ The collection's items type.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is 64.
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is 64.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to read values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to read values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is 64.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ using values copied from the passed in .
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's property name table.
+
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Specifies how duplicate property names are handled when loading JSON.
+
+
+
+
+ Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used.
+
+
+
+
+ Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used.
+
+
+
+
+ Throw a when a duplicate property is encountered.
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a with the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets the with the specified name.
+ The exact name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ The property name.
+ One of the enumeration values that specifies how the strings will be compared.
+ A matched with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when cloning JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a flag that indicates whether to copy annotations when cloning a .
+ The default value is true.
+
+
+ A flag that indicates whether to copy annotations when cloning a .
+
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+ The default value is .
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+ The default value is .
+
+ The JSON line info handling.
+
+
+
+ Gets or sets how duplicate property names in JSON objects are handled when loading JSON.
+ The default value is .
+
+ The JSON duplicate property name handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Gets or sets the comparison used to match property names while merging.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ The comparison used to match property names while merging.
+
+
+
+ Specifies the settings used when selecting JSON.
+
+
+
+
+ Gets or sets a timeout that will be used when executing regular expressions.
+
+ The timeout that will be used when executing regular expressions.
+
+
+
+ Gets or sets a flag that indicates whether an error should be thrown if
+ no tokens are found when evaluating part of the expression.
+
+
+ A flag that indicates whether an error should be thrown if
+ no tokens are found when evaluating part of the expression.
+
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ ToString() returns a non-JSON string value for tokens with a type of .
+ If you want the JSON for all token types then you should use .
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ The used to select tokens.
+ A .
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ The used to select tokens.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A object to configure cloning settings.
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+ The initial path of the token. It is prepended to the returned .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ ToString() returns a non-JSON string value for tokens with a type of .
+ If you want the JSON for all token types then you should use .
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets the internally resolved for the contract's type.
+ This converter is used as a fallback converter when no other converter is resolved.
+ Setting will always override this converter.
+
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets the missing member handling used when deserializing this object.
+
+ The missing member handling.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets a value indicating whether has a value specified.
+
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ A kebab case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Hash code calculation
+
+
+
+
+
+ Object equality implementation
+
+
+
+
+
+
+ Compare to another NamingStrategy
+
+
+
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+ Specifies that an output will not be null even if the corresponding type allows it.
+
+
+ Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it.
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+
+ Gets the return value condition.
+
+
+ Specifies that an output may be null even if the corresponding type disallows it.
+
+
+ Specifies that null is allowed as an input even if the corresponding type disallows it.
+
+
+
+ Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
+ the associated parameter matches this value.
+
+
+
+ Gets the condition parameter value.
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/OpenCvSharp.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/OpenCvSharp.xml
new file mode 100644
index 0000000..7f23d80
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/OpenCvSharp.xml
@@ -0,0 +1,39243 @@
+
+
+
+ OpenCvSharp
+
+
+
+
+ OpenCV Functions of C++ I/F (cv::xxx)
+
+
+
+
+ The ratio of a circle's circumference to its diameter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 引数がnullの時はIntPtr.Zeroに変換する
+
+
+
+
+
+
+ converts rotation vector to rotation matrix or vice versa using Rodrigues transformation
+
+ Input rotation vector (3x1 or 1x3) or rotation matrix (3x3).
+ Output rotation matrix (3x3) or rotation vector (3x1 or 1x3), respectively.
+ Optional output Jacobian matrix, 3x9 or 9x3, which is a matrix of partial derivatives of the output array components with respect to the input array components.
+
+
+
+ converts rotation vector to rotation matrix using Rodrigues transformation
+
+ Input rotation vector (3x1).
+ Output rotation matrix (3x3).
+ Optional output Jacobian matrix, 3x9, which is a matrix of partial derivatives of the output array components with respect to the input array components.
+
+
+
+ converts rotation matrix to rotation vector using Rodrigues transformation
+
+ Input rotation matrix (3x3).
+ Output rotation vector (3x1).
+ Optional output Jacobian matrix, 3x9, which is a matrix of partial derivatives of the output array components with respect to the input array components.
+
+
+
+ computes the best-fit perspective transformation mapping srcPoints to dstPoints.
+
+ Coordinates of the points in the original plane, a matrix of the type CV_32FC2
+ Coordinates of the points in the target plane, a matrix of the type CV_32FC2
+ Method used to computed a homography matrix.
+ Maximum allowed reprojection error to treat a point pair as an inlier (used in the RANSAC method only)
+ Optional output mask set by a robust method ( CV_RANSAC or CV_LMEDS ). Note that the input mask values are ignored.
+ The maximum number of RANSAC iterations.
+ Confidence level, between 0 and 1.
+
+
+
+
+ computes the best-fit perspective transformation mapping srcPoints to dstPoints.
+
+ Coordinates of the points in the original plane
+ Coordinates of the points in the target plane
+ Method used to computed a homography matrix.
+ Maximum allowed reprojection error to treat a point pair as an inlier (used in the RANSAC method only)
+ Optional output mask set by a robust method ( CV_RANSAC or CV_LMEDS ). Note that the input mask values are ignored.
+ The maximum number of RANSAC iterations.
+ Confidence level, between 0 and 1.
+
+
+
+
+ computes the best-fit perspective transformation mapping srcPoints to dstPoints.
+
+ Coordinates of the points in the original plane, a matrix of the type CV_32FC2
+ Coordinates of the points in the target plane, a matrix of the type CV_32FC2
+ Optional output mask set by a robust method ( CV_RANSAC or CV_LMEDS ). Note that the input mask values are ignored.
+
+
+
+
+
+
+ Computes RQ decomposition of 3x3 matrix
+
+ 3x3 input matrix.
+ Output 3x3 upper-triangular matrix.
+ Output 3x3 orthogonal matrix.
+ Optional output 3x3 rotation matrix around x-axis.
+ Optional output 3x3 rotation matrix around y-axis.
+ Optional output 3x3 rotation matrix around z-axis.
+
+
+
+
+ Computes RQ decomposition of 3x3 matrix
+
+ 3x3 input matrix.
+ Output 3x3 upper-triangular matrix.
+ Output 3x3 orthogonal matrix.
+
+
+
+
+ Computes RQ decomposition of 3x3 matrix
+
+ 3x3 input matrix.
+ Output 3x3 upper-triangular matrix.
+ Output 3x3 orthogonal matrix.
+ Optional output 3x3 rotation matrix around x-axis.
+ Optional output 3x3 rotation matrix around y-axis.
+ Optional output 3x3 rotation matrix around z-axis.
+
+
+
+
+ Decomposes the projection matrix into camera matrix and the rotation martix and the translation vector
+
+ 3x4 input projection matrix P.
+ Output 3x3 camera matrix K.
+ Output 3x3 external rotation matrix R.
+ Output 4x1 translation vector T.
+ Optional 3x3 rotation matrix around x-axis.
+ Optional 3x3 rotation matrix around y-axis.
+ Optional 3x3 rotation matrix around z-axis.
+ ptional three-element vector containing three Euler angles of rotation in degrees.
+
+
+
+ Decomposes the projection matrix into camera matrix and the rotation martix and the translation vector
+
+ 3x4 input projection matrix P.
+ Output 3x3 camera matrix K.
+ Output 3x3 external rotation matrix R.
+ Output 4x1 translation vector T.
+ Optional 3x3 rotation matrix around x-axis.
+ Optional 3x3 rotation matrix around y-axis.
+ Optional 3x3 rotation matrix around z-axis.
+ ptional three-element vector containing three Euler angles of rotation in degrees.
+
+
+
+ Decomposes the projection matrix into camera matrix and the rotation martix and the translation vector
+
+ 3x4 input projection matrix P.
+ Output 3x3 camera matrix K.
+ Output 3x3 external rotation matrix R.
+ Output 4x1 translation vector T.
+
+
+
+ computes derivatives of the matrix product w.r.t each of the multiplied matrix coefficients
+
+ First multiplied matrix.
+ Second multiplied matrix.
+ First output derivative matrix d(A*B)/dA of size A.rows*B.cols X A.rows*A.cols .
+ Second output derivative matrix d(A*B)/dB of size A.rows*B.cols X B.rows*B.cols .
+
+
+
+ composes 2 [R|t] transformations together. Also computes the derivatives of the result w.r.t the arguments
+
+ First rotation vector.
+ First translation vector.
+ Second rotation vector.
+ Second translation vector.
+ Output rotation vector of the superposition.
+ Output translation vector of the superposition.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+
+
+
+ composes 2 [R|t] transformations together. Also computes the derivatives of the result w.r.t the arguments
+
+ First rotation vector.
+ First translation vector.
+ Second rotation vector.
+ Second translation vector.
+ Output rotation vector of the superposition.
+ Output translation vector of the superposition.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+ Optional output derivatives of rvec3 or tvec3 with regard to rvec1, rvec2, tvec1 and tvec2, respectively.
+
+
+
+ composes 2 [R|t] transformations together. Also computes the derivatives of the result w.r.t the arguments
+
+ First rotation vector.
+ First translation vector.
+ Second rotation vector.
+ Second translation vector.
+ Output rotation vector of the superposition.
+ Output translation vector of the superposition.
+
+
+
+ projects points from the model coordinate space to the image coordinates.
+ Also computes derivatives of the image coordinates w.r.t the intrinsic
+ and extrinsic camera parameters
+
+ Array of object points, 3xN/Nx3 1-channel or
+ 1xN/Nx1 3-channel, where N is the number of points in the view.
+ Rotation vector (3x1).
+ Translation vector (3x1).
+ Camera matrix (3x3)
+ Input vector of distortion coefficients
+ (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Output array of image points, 2xN/Nx2 1-channel
+ or 1xN/Nx1 2-channel
+ Optional output 2Nx(10 + numDistCoeffs) jacobian matrix
+ of derivatives of image points with respect to components of the rotation vector,
+ translation vector, focal lengths, coordinates of the principal point and
+ the distortion coefficients. In the old interface different components of
+ the jacobian are returned via different output parameters.
+ Optional “fixed aspect ratio” parameter.
+ If the parameter is not 0, the function assumes that the aspect ratio (fx/fy)
+ is fixed and correspondingly adjusts the jacobian matrix.
+
+
+
+ projects points from the model coordinate space to the image coordinates.
+ Also computes derivatives of the image coordinates w.r.t the intrinsic
+ and extrinsic camera parameters
+
+ Array of object points, 3xN/Nx3 1-channel or
+ 1xN/Nx1 3-channel, where N is the number of points in the view.
+ Rotation vector (3x1).
+ Translation vector (3x1).
+ Camera matrix (3x3)
+ Input vector of distortion coefficients
+ (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Output array of image points, 2xN/Nx2 1-channel
+ or 1xN/Nx1 2-channel
+ Optional output 2Nx(10 + numDistCoeffs) jacobian matrix
+ of derivatives of image points with respect to components of the rotation vector,
+ translation vector, focal lengths, coordinates of the principal point and
+ the distortion coefficients. In the old interface different components of
+ the jacobian are returned via different output parameters.
+ Optional “fixed aspect ratio” parameter.
+ If the parameter is not 0, the function assumes that the aspect ratio (fx/fy)
+ is fixed and correspondingly adjusts the jacobian matrix.
+
+
+
+ Finds an object pose from 3D-2D point correspondences.
+
+ Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel,
+ where N is the number of points. vector<Point3f> can be also passed here.
+ Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel,
+ where N is the number of points. vector<Point2f> can be also passed here.
+ Input camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Output rotation vector that, together with tvec , brings points from the model coordinate system to the
+ camera coordinate system.
+ Output translation vector.
+ If true, the function uses the provided rvec and tvec values as initial approximations of
+ the rotation and translation vectors, respectively, and further optimizes them.
+ Method for solving a PnP problem:
+
+
+
+ Finds an object pose from 3D-2D point correspondences.
+
+ Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel,
+ where N is the number of points. vector<Point3f> can be also passed here.
+ Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel,
+ where N is the number of points. vector<Point2f> can be also passed here.
+ Input camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Output rotation vector that, together with tvec , brings points from the model coordinate system to the
+ camera coordinate system.
+ Output translation vector.
+ If true, the function uses the provided rvec and tvec values as initial approximations of
+ the rotation and translation vectors, respectively, and further optimizes them.
+ Method for solving a PnP problem
+
+
+
+ computes the camera pose from a few 3D points and the corresponding projections. The outliers are possible.
+
+ Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel,
+ where N is the number of points. List<Point3f> can be also passed here.
+ Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points.
+ List<Point2f> can be also passed here.
+ Input 3x3 camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Output rotation vector that, together with tvec , brings points from the model coordinate system
+ to the camera coordinate system.
+ Output translation vector.
+ If true, the function uses the provided rvec and tvec values as initial approximations
+ of the rotation and translation vectors, respectively, and further optimizes them.
+ Number of iterations.
+ Inlier threshold value used by the RANSAC procedure.
+ The parameter value is the maximum allowed distance between the observed and computed point projections to consider it an inlier.
+ The probability that the algorithm produces a useful result.
+ Output vector that contains indices of inliers in objectPoints and imagePoints .
+ Method for solving a PnP problem
+
+
+
+ computes the camera pose from a few 3D points and the corresponding projections. The outliers are possible.
+
+ Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel,
+ where N is the number of points. List<Point3f> can be also passed here.
+ Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points.
+ List<Point2f> can be also passed here.
+ Input 3x3 camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Output rotation vector that, together with tvec , brings points from the model coordinate system
+ to the camera coordinate system.
+ Output translation vector.
+
+
+
+ computes the camera pose from a few 3D points and the corresponding projections. The outliers are possible.
+
+ Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel,
+ where N is the number of points. List<Point3f> can be also passed here.
+ Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points.
+ List<Point2f> can be also passed here.
+ Input 3x3 camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Output rotation vector that, together with tvec , brings points from the model coordinate system
+ to the camera coordinate system.
+ Output translation vector.
+ If true, the function uses the provided rvec and tvec values as initial approximations
+ of the rotation and translation vectors, respectively, and further optimizes them.
+ Number of iterations.
+ Inlier threshold value used by the RANSAC procedure.
+ The parameter value is the maximum allowed distance between the observed and computed point projections to consider it an inlier.
+ The probability that the algorithm produces a useful result.
+ Output vector that contains indices of inliers in objectPoints and imagePoints .
+ Method for solving a PnP problem
+
+
+
+ initializes camera matrix from a few 3D points and the corresponding projections.
+
+ Vector of vectors (vector<vector<Point3d>>) of the calibration pattern points in the calibration pattern coordinate space. In the old interface all the per-view vectors are concatenated.
+ Vector of vectors (vector<vector<Point2d>>) of the projections of the calibration pattern points. In the old interface all the per-view vectors are concatenated.
+ Image size in pixels used to initialize the principal point.
+ If it is zero or negative, both f_x and f_y are estimated independently. Otherwise, f_x = f_y * aspectRatio .
+
+
+
+
+ initializes camera matrix from a few 3D points and the corresponding projections.
+
+ Vector of vectors of the calibration pattern points in the calibration pattern coordinate space. In the old interface all the per-view vectors are concatenated.
+ Vector of vectors of the projections of the calibration pattern points. In the old interface all the per-view vectors are concatenated.
+ Image size in pixels used to initialize the principal point.
+ If it is zero or negative, both f_x and f_y are estimated independently. Otherwise, f_x = f_y * aspectRatio .
+
+
+
+
+ Finds the positions of internal corners of the chessboard.
+
+ Source chessboard view. It must be an 8-bit grayscale or color image.
+ Number of inner corners per a chessboard row and column
+ ( patternSize = Size(points_per_row,points_per_colum) = Size(columns, rows) ).
+ Output array of detected corners.
+ Various operation flags that can be zero or a combination of the ChessboardFlag values
+ The function returns true if all of the corners are found and they are placed in a certain order (row by row, left to right in every row).
+ Otherwise, if the function fails to find all the corners or reorder them, it returns false.
+
+
+
+ Finds the positions of internal corners of the chessboard.
+
+ Source chessboard view. It must be an 8-bit grayscale or color image.
+ Number of inner corners per a chessboard row and column
+ ( patternSize = Size(points_per_row,points_per_colum) = Size(columns, rows) ).
+ Output array of detected corners.
+ Various operation flags that can be zero or a combination of the ChessboardFlag values
+ The function returns true if all of the corners are found and they are placed in a certain order (row by row, left to right in every row).
+ Otherwise, if the function fails to find all the corners or reorder them, it returns false.
+
+
+
+ Checks whether the image contains chessboard of the specific size or not.
+
+
+
+
+
+
+
+ Finds the positions of internal corners of the chessboard using a sector based approach.
+
+ image Source chessboard view. It must be an 8-bit grayscale or color image.
+ Number of inner corners per a chessboard row and column
+ (patternSize = Size(points_per_row, points_per_column) = Size(columns, rows) ).
+ Output array of detected corners.
+ flags Various operation flags that can be zero or a combination of the ChessboardFlags values.
+
+
+
+
+ Finds the positions of internal corners of the chessboard using a sector based approach.
+
+ image Source chessboard view. It must be an 8-bit grayscale or color image.
+ Number of inner corners per a chessboard row and column
+ (patternSize = Size(points_per_row, points_per_column) = Size(columns, rows) ).
+ Output array of detected corners.
+ flags Various operation flags that can be zero or a combination of the ChessboardFlags values.
+
+
+
+
+ finds subpixel-accurate positions of the chessboard corners
+
+
+
+
+
+
+
+
+ finds subpixel-accurate positions of the chessboard corners
+
+
+
+
+
+
+
+
+ Renders the detected chessboard corners.
+
+ Destination image. It must be an 8-bit color image.
+ Number of inner corners per a chessboard row and column (patternSize = cv::Size(points_per_row,points_per_column)).
+ Array of detected corners, the output of findChessboardCorners.
+ Parameter indicating whether the complete board was found or not. The return value of findChessboardCorners() should be passed here.
+
+
+
+ Renders the detected chessboard corners.
+
+ Destination image. It must be an 8-bit color image.
+ Number of inner corners per a chessboard row and column (patternSize = cv::Size(points_per_row,points_per_column)).
+ Array of detected corners, the output of findChessboardCorners.
+ Parameter indicating whether the complete board was found or not. The return value of findChessboardCorners() should be passed here.
+
+
+
+ Draw axes of the world/object coordinate system from pose estimation.
+
+ Input/output image. It must have 1 or 3 channels. The number of channels is not altered.
+ Input 3x3 floating-point matrix of camera intrinsic parameters.
+ Input vector of distortion coefficients
+ \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of
+ 4, 5, 8, 12 or 14 elements.If the vector is empty, the zero distortion coefficients are assumed.
+ Rotation vector (see @ref Rodrigues ) that, together with tvec , brings points from
+ the model coordinate system to the camera coordinate system.
+ Translation vector.
+ Length of the painted axes in the same unit than tvec (usually in meters).
+ Line thickness of the painted axes.
+ This function draws the axes of the world/object coordinate system w.r.t. to the camera frame.
+ OX is drawn in red, OY in green and OZ in blue.
+
+
+
+ Finds centers in the grid of circles.
+
+ grid view of input circles; it must be an 8-bit grayscale or color image.
+ number of circles per row and column ( patternSize = Size(points_per_row, points_per_colum) ).
+ output array of detected centers.
+ various operation flags that can be one of the FindCirclesGridFlag values
+ feature detector that finds blobs like dark circles on light background.
+
+
+
+
+ Finds centers in the grid of circles.
+
+ grid view of input circles; it must be an 8-bit grayscale or color image.
+ number of circles per row and column ( patternSize = Size(points_per_row, points_per_colum) ).
+ output array of detected centers.
+ various operation flags that can be one of the FindCirclesGridFlag values
+ feature detector that finds blobs like dark circles on light background.
+
+
+
+
+ finds intrinsic and extrinsic camera parameters from several fews of a known calibration pattern.
+
+ In the new interface it is a vector of vectors of calibration pattern points in the calibration pattern coordinate space.
+ The outer vector contains as many elements as the number of the pattern views. If the same calibration pattern is shown in each view and
+ it is fully visible, all the vectors will be the same. Although, it is possible to use partially occluded patterns, or even different patterns
+ in different views. Then, the vectors will be different. The points are 3D, but since they are in a pattern coordinate system, then,
+ if the rig is planar, it may make sense to put the model to a XY coordinate plane so that Z-coordinate of each input object point is 0.
+ In the old interface all the vectors of object points from different views are concatenated together.
+ In the new interface it is a vector of vectors of the projections of calibration pattern points.
+ imagePoints.Count() and objectPoints.Count() and imagePoints[i].Count() must be equal to objectPoints[i].Count() for each i.
+ Size of the image used only to initialize the intrinsic camera matrix.
+ Output 3x3 floating-point camera matrix.
+ If CV_CALIB_USE_INTRINSIC_GUESS and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be
+ initialized before calling the function.
+ Output vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ Output vector of rotation vectors (see Rodrigues() ) estimated for each pattern view. That is, each k-th rotation vector
+ together with the corresponding k-th translation vector (see the next output parameter description) brings the calibration pattern
+ from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the
+ calibration pattern in the k-th pattern view (k=0.. M -1)
+ Output vector of translation vectors estimated for each pattern view.
+ Different flags that may be zero or a combination of the CalibrationFlag values
+ Termination criteria for the iterative optimization algorithm.
+
+
+
+
+ finds intrinsic and extrinsic camera parameters from several fews of a known calibration pattern.
+
+ In the new interface it is a vector of vectors of calibration pattern points in the calibration pattern coordinate space.
+ The outer vector contains as many elements as the number of the pattern views. If the same calibration pattern is shown in each view and
+ it is fully visible, all the vectors will be the same. Although, it is possible to use partially occluded patterns, or even different patterns
+ in different views. Then, the vectors will be different. The points are 3D, but since they are in a pattern coordinate system, then,
+ if the rig is planar, it may make sense to put the model to a XY coordinate plane so that Z-coordinate of each input object point is 0.
+ In the old interface all the vectors of object points from different views are concatenated together.
+ In the new interface it is a vector of vectors of the projections of calibration pattern points.
+ imagePoints.Count() and objectPoints.Count() and imagePoints[i].Count() must be equal to objectPoints[i].Count() for each i.
+ Size of the image used only to initialize the intrinsic camera matrix.
+ Output 3x3 floating-point camera matrix.
+ If CV_CALIB_USE_INTRINSIC_GUESS and/or CV_CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be
+ initialized before calling the function.
+ Output vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ Output vector of rotation vectors (see Rodrigues() ) estimated for each pattern view. That is, each k-th rotation vector
+ together with the corresponding k-th translation vector (see the next output parameter description) brings the calibration pattern
+ from the model coordinate space (in which object points are specified) to the world coordinate space, that is, a real position of the
+ calibration pattern in the k-th pattern view (k=0.. M -1)
+ Output vector of translation vectors estimated for each pattern view.
+ Different flags that may be zero or a combination of the CalibrationFlag values
+ Termination criteria for the iterative optimization algorithm.
+
+
+
+
+ computes several useful camera characteristics from the camera matrix, camera frame resolution and the physical sensor size.
+
+ Input camera matrix that can be estimated by calibrateCamera() or stereoCalibrate() .
+ Input image size in pixels.
+ Physical width of the sensor.
+ Physical height of the sensor.
+ Output field of view in degrees along the horizontal sensor axis.
+ Output field of view in degrees along the vertical sensor axis.
+ Focal length of the lens in mm.
+ Principal point in pixels.
+ fy / fx
+
+
+
+ computes several useful camera characteristics from the camera matrix, camera frame resolution and the physical sensor size.
+
+ Input camera matrix that can be estimated by calibrateCamera() or stereoCalibrate() .
+ Input image size in pixels.
+ Physical width of the sensor.
+ Physical height of the sensor.
+ Output field of view in degrees along the horizontal sensor axis.
+ Output field of view in degrees along the vertical sensor axis.
+ Focal length of the lens in mm.
+ Principal point in pixels.
+ fy / fx
+
+
+
+ finds intrinsic and extrinsic parameters of a stereo camera
+
+ Vector of vectors of the calibration pattern points.
+ Vector of vectors of the projections of the calibration pattern points, observed by the first camera.
+ Vector of vectors of the projections of the calibration pattern points, observed by the second camera.
+ Input/output first camera matrix
+ Input/output vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ The output vector length depends on the flags.
+ Input/output second camera matrix. The parameter is similar to cameraMatrix1 .
+ Input/output lens distortion coefficients for the second camera. The parameter is similar to distCoeffs1 .
+ Size of the image used only to initialize intrinsic camera matrix.
+ Output rotation matrix between the 1st and the 2nd camera coordinate systems.
+ Output translation vector between the coordinate systems of the cameras.
+ Output essential matrix.
+ Output fundamental matrix.
+ Termination criteria for the iterative optimization algorithm.
+ Different flags that may be zero or a combination of the CalibrationFlag values
+
+
+
+
+ finds intrinsic and extrinsic parameters of a stereo camera
+
+ Vector of vectors of the calibration pattern points.
+ Vector of vectors of the projections of the calibration pattern points, observed by the first camera.
+ Vector of vectors of the projections of the calibration pattern points, observed by the second camera.
+ Input/output first camera matrix
+ Input/output vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ The output vector length depends on the flags.
+ Input/output second camera matrix. The parameter is similar to cameraMatrix1 .
+ Input/output lens distortion coefficients for the second camera. The parameter is similar to distCoeffs1 .
+ Size of the image used only to initialize intrinsic camera matrix.
+ Output rotation matrix between the 1st and the 2nd camera coordinate systems.
+ Output translation vector between the coordinate systems of the cameras.
+ Output essential matrix.
+ Output fundamental matrix.
+ Termination criteria for the iterative optimization algorithm.
+ Different flags that may be zero or a combination of the CalibrationFlag values
+
+
+
+
+ computes the rectification transformation for a stereo camera from its intrinsic and extrinsic parameters
+
+ First camera matrix.
+ First camera distortion parameters.
+ Second camera matrix.
+ Second camera distortion parameters.
+ Size of the image used for stereo calibration.
+ Rotation matrix between the coordinate systems of the first and the second cameras.
+ Translation vector between coordinate systems of the cameras.
+ Output 3x3 rectification transform (rotation matrix) for the first camera.
+ Output 3x3 rectification transform (rotation matrix) for the second camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the first camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the second camera.
+ Output 4x4 disparity-to-depth mapping matrix (see reprojectImageTo3D() ).
+ Operation flags that may be zero or CV_CALIB_ZERO_DISPARITY.
+ If the flag is set, the function makes the principal points of each camera have the same pixel coordinates in the rectified views.
+ And if the flag is not set, the function may still shift the images in the horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the useful image area.
+ Free scaling parameter.
+ If it is -1 or absent, the function performs the default scaling. Otherwise, the parameter should be between 0 and 1.
+ alpha=0 means that the rectified images are zoomed and shifted so that only valid pixels are visible (no black areas after rectification).
+ alpha=1 means that the rectified image is decimated and shifted so that all the pixels from the original images from the cameras are retained
+ in the rectified images (no source image pixels are lost). Obviously, any intermediate value yields an intermediate result between those two extreme cases.
+ New image resolution after rectification. The same size should be passed to initUndistortRectifyMap(). When (0,0) is passed (default), it is set to the original imageSize .
+ Setting it to larger value can help you preserve details in the original image, especially when there is a big radial distortion.
+
+
+
+ computes the rectification transformation for a stereo camera from its intrinsic and extrinsic parameters
+
+ First camera matrix.
+ First camera distortion parameters.
+ Second camera matrix.
+ Second camera distortion parameters.
+ Size of the image used for stereo calibration.
+ Rotation matrix between the coordinate systems of the first and the second cameras.
+ Translation vector between coordinate systems of the cameras.
+ Output 3x3 rectification transform (rotation matrix) for the first camera.
+ Output 3x3 rectification transform (rotation matrix) for the second camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the first camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the second camera.
+ Output 4x4 disparity-to-depth mapping matrix (see reprojectImageTo3D() ).
+ Operation flags that may be zero or CV_CALIB_ZERO_DISPARITY.
+ If the flag is set, the function makes the principal points of each camera have the same pixel coordinates in the rectified views.
+ And if the flag is not set, the function may still shift the images in the horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the useful image area.
+ Free scaling parameter.
+ If it is -1 or absent, the function performs the default scaling. Otherwise, the parameter should be between 0 and 1.
+ alpha=0 means that the rectified images are zoomed and shifted so that only valid pixels are visible (no black areas after rectification).
+ alpha=1 means that the rectified image is decimated and shifted so that all the pixels from the original images from the cameras are retained
+ in the rectified images (no source image pixels are lost). Obviously, any intermediate value yields an intermediate result between those two extreme cases.
+ New image resolution after rectification. The same size should be passed to initUndistortRectifyMap(). When (0,0) is passed (default), it is set to the original imageSize .
+ Setting it to larger value can help you preserve details in the original image, especially when there is a big radial distortion.
+ Optional output rectangles inside the rectified images where all the pixels are valid. If alpha=0 , the ROIs cover the whole images.
+ Otherwise, they are likely to be smaller.
+ Optional output rectangles inside the rectified images where all the pixels are valid. If alpha=0 , the ROIs cover the whole images.
+ Otherwise, they are likely to be smaller.
+
+
+
+ computes the rectification transformation for a stereo camera from its intrinsic and extrinsic parameters
+
+ First camera matrix.
+ First camera distortion parameters.
+ Second camera matrix.
+ Second camera distortion parameters.
+ Size of the image used for stereo calibration.
+ Rotation matrix between the coordinate systems of the first and the second cameras.
+ Translation vector between coordinate systems of the cameras.
+ Output 3x3 rectification transform (rotation matrix) for the first camera.
+ Output 3x3 rectification transform (rotation matrix) for the second camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the first camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the second camera.
+ Output 4x4 disparity-to-depth mapping matrix (see reprojectImageTo3D() ).
+ Operation flags that may be zero or CV_CALIB_ZERO_DISPARITY.
+ If the flag is set, the function makes the principal points of each camera have the same pixel coordinates in the rectified views.
+ And if the flag is not set, the function may still shift the images in the horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the useful image area.
+ Free scaling parameter.
+ If it is -1 or absent, the function performs the default scaling. Otherwise, the parameter should be between 0 and 1.
+ alpha=0 means that the rectified images are zoomed and shifted so that only valid pixels are visible (no black areas after rectification).
+ alpha=1 means that the rectified image is decimated and shifted so that all the pixels from the original images from the cameras are retained
+ in the rectified images (no source image pixels are lost). Obviously, any intermediate value yields an intermediate result between those two extreme cases.
+ New image resolution after rectification. The same size should be passed to initUndistortRectifyMap(). When (0,0) is passed (default), it is set to the original imageSize .
+ Setting it to larger value can help you preserve details in the original image, especially when there is a big radial distortion.
+
+
+
+ computes the rectification transformation for a stereo camera from its intrinsic and extrinsic parameters
+
+ First camera matrix.
+ First camera distortion parameters.
+ Second camera matrix.
+ Second camera distortion parameters.
+ Size of the image used for stereo calibration.
+ Rotation matrix between the coordinate systems of the first and the second cameras.
+ Translation vector between coordinate systems of the cameras.
+ Output 3x3 rectification transform (rotation matrix) for the first camera.
+ Output 3x3 rectification transform (rotation matrix) for the second camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the first camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the second camera.
+ Output 4x4 disparity-to-depth mapping matrix (see reprojectImageTo3D() ).
+ Operation flags that may be zero or CV_CALIB_ZERO_DISPARITY.
+ If the flag is set, the function makes the principal points of each camera have the same pixel coordinates in the rectified views.
+ And if the flag is not set, the function may still shift the images in the horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the useful image area.
+ Free scaling parameter.
+ If it is -1 or absent, the function performs the default scaling. Otherwise, the parameter should be between 0 and 1.
+ alpha=0 means that the rectified images are zoomed and shifted so that only valid pixels are visible (no black areas after rectification).
+ alpha=1 means that the rectified image is decimated and shifted so that all the pixels from the original images from the cameras are retained
+ in the rectified images (no source image pixels are lost). Obviously, any intermediate value yields an intermediate result between those two extreme cases.
+ New image resolution after rectification. The same size should be passed to initUndistortRectifyMap(). When (0,0) is passed (default), it is set to the original imageSize .
+ Setting it to larger value can help you preserve details in the original image, especially when there is a big radial distortion.
+ Optional output rectangles inside the rectified images where all the pixels are valid. If alpha=0 , the ROIs cover the whole images.
+ Otherwise, they are likely to be smaller.
+ Optional output rectangles inside the rectified images where all the pixels are valid. If alpha=0 , the ROIs cover the whole images.
+ Otherwise, they are likely to be smaller.
+
+
+
+ computes the rectification transformation for an uncalibrated stereo camera (zero distortion is assumed)
+
+ Array of feature points in the first image.
+ The corresponding points in the second image.
+ The same formats as in findFundamentalMat() are supported.
+ Input fundamental matrix. It can be computed from the same set
+ of point pairs using findFundamentalMat() .
+ Size of the image.
+ Output rectification homography matrix for the first image.
+ Output rectification homography matrix for the second image.
+ Optional threshold used to filter out the outliers.
+ If the parameter is greater than zero, all the point pairs that do not comply
+ with the epipolar geometry (that is, the points for which |points2[i]^T * F * points1[i]| > threshold )
+ are rejected prior to computing the homographies. Otherwise, all the points are considered inliers.
+
+
+
+
+ computes the rectification transformation for an uncalibrated stereo camera (zero distortion is assumed)
+
+ Array of feature points in the first image.
+ The corresponding points in the second image.
+ The same formats as in findFundamentalMat() are supported.
+ Input fundamental matrix. It can be computed from the same set
+ of point pairs using findFundamentalMat() .
+ Size of the image.
+ Output rectification homography matrix for the first image.
+ Output rectification homography matrix for the second image.
+ Optional threshold used to filter out the outliers.
+ If the parameter is greater than zero, all the point pairs that do not comply
+ with the epipolar geometry (that is, the points for which |points2[i]^T * F * points1[i]| > threshold )
+ are rejected prior to computing the homographies. Otherwise, all the points are considered inliers.
+
+
+
+
+ computes the rectification transformations for 3-head camera, where all the heads are on the same line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the new camera matrix based on the free scaling parameter.
+
+ Input camera matrix.
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the array is null, the zero distortion coefficients are assumed.
+ Original image size.
+ Free scaling parameter between 0 (when all the pixels in the undistorted image are valid)
+ and 1 (when all the source image pixels are retained in the undistorted image).
+ Image size after rectification. By default,it is set to imageSize .
+ Optional output rectangle that outlines all-good-pixels region in the undistorted image. See roi1, roi2 description in stereoRectify() .
+ Optional flag that indicates whether in the new camera matrix the principal point
+ should be at the image center or not. By default, the principal point is chosen to best fit a
+ subset of the source image (determined by alpha) to the corrected image.
+ optimal new camera matrix
+
+
+
+ Returns the new camera matrix based on the free scaling parameter.
+
+ Input camera matrix.
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the array is null, the zero distortion coefficients are assumed.
+ Original image size.
+ Free scaling parameter between 0 (when all the pixels in the undistorted image are valid)
+ and 1 (when all the source image pixels are retained in the undistorted image).
+ Image size after rectification. By default,it is set to imageSize .
+ Optional output rectangle that outlines all-good-pixels region in the undistorted image. See roi1, roi2 description in stereoRectify() .
+ Optional flag that indicates whether in the new camera matrix the principal point
+ should be at the image center or not. By default, the principal point is chosen to best fit a
+ subset of the source image (determined by alpha) to the corrected image.
+ optimal new camera matrix
+
+
+
+ Computes Hand-Eye calibration.
+
+ The function performs the Hand-Eye calibration using various methods. One approach consists in estimating the
+ rotation then the translation(separable solutions) and the following methods are implemented:
+ - R.Tsai, R.Lenz A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/EyeCalibration \cite Tsai89
+ - F.Park, B.Martin Robot Sensor Calibration: Solving AX = XB on the Euclidean Group \cite Park94
+ - R.Horaud, F.Dornaika Hand-Eye Calibration \cite Horaud95
+
+ Another approach consists in estimating simultaneously the rotation and the translation(simultaneous solutions),
+ with the following implemented method:
+ - N.Andreff, R.Horaud, B.Espiau On-line Hand-Eye Calibration \cite Andreff99
+ - K.Daniilidis Hand-Eye Calibration Using Dual Quaternions \cite Daniilidis98
+
+ Rotation part extracted from the homogeneous matrix that
+ transforms a pointexpressed in the gripper frame to the robot base frame that contains the rotation
+ matrices for all the transformationsfrom gripper frame to robot base frame.
+ Translation part extracted from the homogeneous matrix that transforms a point
+ expressed in the gripper frame to the robot base frame.
+ This is a vector(`vector<Mat>`) that contains the translation vectors for all the transformations
+ from gripper frame to robot base frame.
+ Rotation part extracted from the homogeneous matrix that transforms a point
+ expressed in the target frame to the camera frame.
+ This is a vector(`vector<Mat>`) that contains the rotation matrices for all the transformations
+ from calibration target frame to camera frame.
+ Rotation part extracted from the homogeneous matrix that transforms a point
+ expressed in the target frame to the camera frame.
+ This is a vector(`vector<Mat>`) that contains the translation vectors for all the transformations
+ from calibration target frame to camera frame.
+ Estimated rotation part extracted from the homogeneous matrix that transforms a point
+ expressed in the camera frame to the gripper frame.
+ Estimated translation part extracted from the homogeneous matrix that transforms a point
+ expressed in the camera frame to the gripper frame.
+ One of the implemented Hand-Eye calibration method
+
+
+
+ Computes Robot-World/Hand-Eye calibration.
+ The function performs the Robot-World/Hand-Eye calibration using various methods. One approach consists in estimating the
+ rotation then the translation(separable solutions):
+ - M.Shah, Solving the robot-world/hand-eye calibration problem using the kronecker product \cite Shah2013SolvingTR
+
+ [in] R_world2cam Rotation part extracted from the homogeneous matrix that transforms a point
+ expressed in the world frame to the camera frame. This is a vector of Mat that contains the rotation,
+ `(3x3)` rotation matrices or `(3x1)` rotation vectors,for all the transformations from world frame to the camera frame.
+ [in] Translation part extracted from the homogeneous matrix that transforms a point
+ expressed in the world frame to the camera frame. This is a vector (`vector<Mat>`) that contains the `(3x1)`
+ translation vectors for all the transformations from world frame to the camera frame.
+ [in] Rotation part extracted from the homogeneous matrix that transforms a point expressed
+ in the robot base frame to the gripper frame. This is a vector (`vector<Mat>`) that contains the rotation,
+ `(3x3)` rotation matrices or `(3x1)` rotation vectors, for all the transformations from robot base frame to the gripper frame.
+ [in] Rotation part extracted from the homogeneous matrix that transforms a point
+ expressed in the robot base frame to the gripper frame. This is a vector (`vector<Mat>`) that contains the
+ `(3x1)` translation vectors for all the transformations from robot base frame to the gripper frame.
+ [out] R_base2world Estimated `(3x3)` rotation part extracted from the homogeneous matrix
+ that transforms a point expressed in the robot base frame to the world frame.
+ [out] t_base2world Estimated `(3x1)` translation part extracted from the homogeneous matrix
+ that transforms a point expressed in the robot base frame to the world frame.
+ [out] R_gripper2cam Estimated `(3x3)` rotation part extracted from the homogeneous matrix
+ that transforms a point expressed in the gripper frame to the camera frame.
+ [out] Estimated `(3x1)` translation part extracted from the homogeneous matrix that
+ transforms a pointexpressed in the gripper frame to the camera frame.
+ One of the implemented Robot-World/Hand-Eye calibration method
+
+
+
+ omputes Robot-World/Hand-Eye calibration.
+ The function performs the Robot-World/Hand-Eye calibration using various methods. One approach consists in estimating the
+ rotation then the translation(separable solutions):
+ - M.Shah, Solving the robot-world/hand-eye calibration problem using the kronecker product \cite Shah2013SolvingTR
+
+ [in] R_world2cam Rotation part extracted from the homogeneous matrix that transforms a point
+ expressed in the world frame to the camera frame. This is a vector of Mat that contains the rotation,
+ `(3x3)` rotation matrices or `(3x1)` rotation vectors,for all the transformations from world frame to the camera frame.
+ [in] Translation part extracted from the homogeneous matrix that transforms a point
+ expressed in the world frame to the camera frame. This is a vector (`vector<Mat>`) that contains the `(3x1)`
+ translation vectors for all the transformations from world frame to the camera frame.
+ [in] Rotation part extracted from the homogeneous matrix that transforms a point expressed
+ in the robot base frame to the gripper frame. This is a vector (`vector<Mat>`) that contains the rotation,
+ `(3x3)` rotation matrices or `(3x1)` rotation vectors, for all the transformations from robot base frame to the gripper frame.
+ [in] Rotation part extracted from the homogeneous matrix that transforms a point
+ expressed in the robot base frame to the gripper frame. This is a vector (`vector<Mat>`) that contains the
+ `(3x1)` translation vectors for all the transformations from robot base frame to the gripper frame.
+ [out] R_base2world Estimated `(3x3)` rotation part extracted from the homogeneous matrix
+ that transforms a point expressed in the robot base frame to the world frame.
+ [out] t_base2world Estimated `(3x1)` translation part extracted from the homogeneous matrix
+ that transforms a point expressed in the robot base frame to the world frame.
+ [out] R_gripper2cam Estimated `(3x3)` rotation part extracted from the homogeneous matrix
+ that transforms a point expressed in the gripper frame to the camera frame.
+ [out] Estimated `(3x1)` translation part extracted from the homogeneous matrix that
+ transforms a pointexpressed in the gripper frame to the camera frame.
+ One of the implemented Robot-World/Hand-Eye calibration method
+
+
+
+ converts point coordinates from normal pixel coordinates to homogeneous coordinates ((x,y)->(x,y,1))
+
+ Input vector of N-dimensional points.
+ Output vector of N+1-dimensional points.
+
+
+
+ converts point coordinates from normal pixel coordinates to homogeneous coordinates ((x,y)->(x,y,1))
+
+ Input vector of N-dimensional points.
+ Output vector of N+1-dimensional points.
+
+
+
+ converts point coordinates from normal pixel coordinates to homogeneous coordinates ((x,y)->(x,y,1))
+
+ Input vector of N-dimensional points.
+ Output vector of N+1-dimensional points.
+
+
+
+ converts point coordinates from homogeneous to normal pixel coordinates ((x,y,z)->(x/z, y/z))
+
+ Input vector of N-dimensional points.
+ Output vector of N-1-dimensional points.
+
+
+
+ converts point coordinates from homogeneous to normal pixel coordinates ((x,y,z)->(x/z, y/z))
+
+ Input vector of N-dimensional points.
+ Output vector of N-1-dimensional points.
+
+
+
+ converts point coordinates from homogeneous to normal pixel coordinates ((x,y,z)->(x/z, y/z))
+
+ Input vector of N-dimensional points.
+ Output vector of N-1-dimensional points.
+
+
+
+ Converts points to/from homogeneous coordinates.
+
+ Input array or vector of 2D, 3D, or 4D points.
+ Output vector of 2D, 3D, or 4D points.
+
+
+
+ Calculates a fundamental matrix from the corresponding points in two images.
+
+ Array of N points from the first image.
+ The point coordinates should be floating-point (single or double precision).
+ Array of the second image points of the same size and format as points1 .
+ Method for computing a fundamental matrix.
+ Parameter used for RANSAC.
+ It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is
+ considered an outlier and is not used for computing the final fundamental matrix. It can be set to
+ something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise.
+ Parameter used for the RANSAC or LMedS methods only.
+ It specifies a desirable level of confidence (probability) that the estimated matrix is correct.
+ Output array of N elements, every element of which is set to 0 for outliers and
+ to 1 for the other points. The array is computed only in the RANSAC and LMedS methods. For other methods, it is set to all 1’s.
+ fundamental matrix
+
+
+
+ Calculates a fundamental matrix from the corresponding points in two images.
+
+ Array of N points from the first image.
+ The point coordinates should be floating-point (single or double precision).
+ Array of the second image points of the same size and format as points1 .
+ Method for computing a fundamental matrix.
+ Parameter used for RANSAC.
+ It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is
+ considered an outlier and is not used for computing the final fundamental matrix. It can be set to
+ something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise.
+ Parameter used for the RANSAC or LMedS methods only.
+ It specifies a desirable level of confidence (probability) that the estimated matrix is correct.
+ Output array of N elements, every element of which is set to 0 for outliers and
+ to 1 for the other points. The array is computed only in the RANSAC and LMedS methods. For other methods, it is set to all 1’s.
+ fundamental matrix
+
+
+
+ Calculates a fundamental matrix from the corresponding points in two images.
+
+ Array of N points from the first image.
+ The point coordinates should be floating-point (single or double precision).
+ Array of the second image points of the same size and format as points1 .
+ Method for computing a fundamental matrix.
+ Parameter used for RANSAC.
+ It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is
+ considered an outlier and is not used for computing the final fundamental matrix. It can be set to
+ something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise.
+ Parameter used for the RANSAC or LMedS methods only.
+ It specifies a desirable level of confidence (probability) that the estimated matrix is correct.
+ Output array of N elements, every element of which is set to 0 for outliers and
+ to 1 for the other points. The array is computed only in the RANSAC and LMedS methods. For other methods, it is set to all 1’s.
+ fundamental matrix
+
+
+
+ For points in an image of a stereo pair, computes the corresponding epilines in the other image.
+
+ Input points. N \times 1 or 1 x N matrix of type CV_32FC2 or CV_64FC2.
+ Index of the image (1 or 2) that contains the points .
+ Fundamental matrix that can be estimated using findFundamentalMat() or stereoRectify() .
+ Output vector of the epipolar lines corresponding to the points in the other image.
+ Each line ax + by + c=0 is encoded by 3 numbers (a, b, c) .
+
+
+
+ For points in an image of a stereo pair, computes the corresponding epilines in the other image.
+
+ Input points. N \times 1 or 1 x N matrix of type CV_32FC2 or CV_64FC2.
+ Index of the image (1 or 2) that contains the points .
+ Fundamental matrix that can be estimated using findFundamentalMat() or stereoRectify() .
+ Output vector of the epipolar lines corresponding to the points in the other image.
+ Each line ax + by + c=0 is encoded by 3 numbers (a, b, c) .
+
+
+
+ For points in an image of a stereo pair, computes the corresponding epilines in the other image.
+
+ Input points. N \times 1 or 1 x N matrix of type CV_32FC2 or CV_64FC2.
+ Index of the image (1 or 2) that contains the points .
+ Fundamental matrix that can be estimated using findFundamentalMat() or stereoRectify() .
+ Output vector of the epipolar lines corresponding to the points in the other image.
+ Each line ax + by + c=0 is encoded by 3 numbers (a, b, c) .
+
+
+
+ Reconstructs points by triangulation.
+
+ 3x4 projection matrix of the first camera.
+ 3x4 projection matrix of the second camera.
+ 2xN array of feature points in the first image. In case of c++ version
+ it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.
+ 2xN array of corresponding points in the second image. In case of c++ version
+ it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.
+ 4xN array of reconstructed points in homogeneous coordinates.
+
+
+
+ Reconstructs points by triangulation.
+
+ 3x4 projection matrix of the first camera.
+ 3x4 projection matrix of the second camera.
+ 2xN array of feature points in the first image. In case of c++ version
+ it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.
+ 2xN array of corresponding points in the second image. In case of c++ version
+ it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.
+ 4xN array of reconstructed points in homogeneous coordinates.
+
+
+
+ Refines coordinates of corresponding points.
+
+ 3x3 fundamental matrix.
+ 1xN array containing the first set of points.
+ 1xN array containing the second set of points.
+ The optimized points1.
+ The optimized points2.
+
+
+
+ Refines coordinates of corresponding points.
+
+ 3x3 fundamental matrix.
+ 1xN array containing the first set of points.
+ 1xN array containing the second set of points.
+ The optimized points1.
+ The optimized points2.
+
+
+
+ Recover relative camera rotation and translation from an estimated essential matrix and the corresponding points in two images, using cheirality check.
+ Returns the number of inliers which pass the check.
+
+ The input essential matrix.
+ Array of N 2D points from the first image. The point coordinates should be floating-point (single or double precision).
+ Array of the second image points of the same size and format as points1.
+ Camera matrix K=⎡⎣⎢fx000fy0cxcy1⎤⎦⎥ . Note that this function assumes that points1 and points2 are feature points from cameras with the same camera matrix.
+ Recovered relative rotation.
+ Recovered relative translation.
+ Input/output mask for inliers in points1 and points2. :
+ If it is not empty, then it marks inliers in points1 and points2 for then given essential matrix E.
+ Only these inliers will be used to recover pose. In the output mask only inliers which pass the cheirality check.
+ This function decomposes an essential matrix using decomposeEssentialMat and then verifies possible pose hypotheses by doing cheirality check.
+ The cheirality check basically means that the triangulated 3D points should have positive depth.
+
+
+
+ Recover relative camera rotation and translation from an estimated essential matrix and the corresponding points in two images, using cheirality check.
+ Returns the number of inliers which pass the check.
+
+ The input essential matrix.
+ Array of N 2D points from the first image. The point coordinates should be floating-point (single or double precision).
+ Array of the second image points of the same size and format as points1.
+ Recovered relative rotation.
+ Recovered relative translation.
+ Focal length of the camera. Note that this function assumes that points1 and points2 are feature points from cameras with same focal length and principal point.
+ principal point of the camera.
+ Input/output mask for inliers in points1 and points2. :
+ If it is not empty, then it marks inliers in points1 and points2 for then given essential matrix E.
+ Only these inliers will be used to recover pose. In the output mask only inliers which pass the cheirality check.
+ This function decomposes an essential matrix using decomposeEssentialMat and then verifies possible pose hypotheses by doing cheirality check.
+ The cheirality check basically means that the triangulated 3D points should have positive depth.
+
+
+
+ Recover relative camera rotation and translation from an estimated essential matrix and the corresponding points in two images, using cheirality check.
+ Returns the number of inliers which pass the check.
+
+ The input essential matrix.
+ Array of N 2D points from the first image. The point coordinates should be floating-point (single or double precision).
+ Array of the second image points of the same size and format as points1.
+ Camera matrix K=⎡⎣⎢fx000fy0cxcy1⎤⎦⎥ . Note that this function assumes that points1 and points2 are feature points from cameras with the same camera matrix.
+ Recovered relative rotation.
+ Recovered relative translation.
+ threshold distance which is used to filter out far away points (i.e. infinite points).
+ Input/output mask for inliers in points1 and points2. :
+ If it is not empty, then it marks inliers in points1 and points2 for then given essential matrix E.
+ Only these inliers will be used to recover pose. In the output mask only inliers which pass the cheirality check.
+ This function decomposes an essential matrix using decomposeEssentialMat and then verifies possible pose hypotheses by doing cheirality check.
+ The cheirality check basically means that the triangulated 3D points should have positive depth.
+ 3d points which were reconstructed by triangulation.
+
+
+
+ Calculates an essential matrix from the corresponding points in two images.
+
+ Array of N (N >= 5) 2D points from the first image.
+ The point coordinates should be floating-point (single or double precision).
+ Array of the second image points of the same size and format as points1 .
+ Camera matrix K=⎡⎣⎢fx000fy0cxcy1⎤⎦⎥ . Note that this function assumes that points1 and points2 are feature points from cameras with the same camera matrix.
+ Method for computing an essential matrix.
+ RANSAC for the RANSAC algorithm.
+ LMEDS for the LMedS algorithm.
+ Parameter used for the RANSAC or LMedS methods only.
+ It specifies a desirable level of confidence (probability) that the estimated matrix is correct.
+ Parameter used for RANSAC.
+ It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is considered an outlier and is not used for computing the final fundamental matrix.
+ It can be set to something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise.
+ Output array of N elements, every element of which is set to 0 for outliers and to 1 for the other points. The array is computed only in the RANSAC and LMedS methods.
+ essential matrix
+
+
+
+ Calculates an essential matrix from the corresponding points in two images.
+
+ Array of N (N >= 5) 2D points from the first image.
+ The point coordinates should be floating-point (single or double precision).
+ Array of the second image por LMedS methods only.
+ It specifies a desirable level of confidence (probability) that the estimated matrix is correct.
+ Parameter used for RANSAC.
+ It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is considered an outlier and is not used for computing the final fundamental matrix.
+ It can be set to something like 1-3, depending on ints of the same size and format as points1 .
+ Focal length of the camera. Note that this function assumes that points1 and points2 are feature points from cameras with same focal length and principal point.
+ principal point of the camera.
+ Method for computing an essential matrix.
+ RANSAC for the RANSAC algorithm.
+ LMEDS for the LMedS algorithm.
+ Parameter used for the RANSAC othe accuracy of the point localization, image resolution, and the image noise.
+ Output array of N elements, every element of which is set to 0 for outliers and to 1 for the other points. The array is computed only in the RANSAC and LMedS methods.
+ essential matrix
+
+
+
+ filters off speckles (small regions of incorrectly computed disparity)
+
+ The input 16-bit signed disparity image
+ The disparity value used to paint-off the speckles
+ The maximum speckle size to consider it a speckle. Larger blobs are not affected by the algorithm
+ Maximum difference between neighbor disparity pixels to put them into the same blob.
+ Note that since StereoBM, StereoSGBM and may be other algorithms return a fixed-point disparity map, where disparity values
+ are multiplied by 16, this scale factor should be taken into account when specifying this parameter value.
+ The optional temporary buffer to avoid memory allocation within the function.
+
+
+
+ computes valid disparity ROI from the valid ROIs of the rectified images (that are returned by cv::stereoRectify())
+
+
+
+
+
+
+
+
+
+
+ validates disparity using the left-right check. The matrix "cost" should be computed by the stereo correspondence algorithm
+
+
+
+
+
+
+
+
+
+ reprojects disparity image to 3D: (x,y,d)->(X,Y,Z) using the matrix Q returned by cv::stereoRectify
+
+ Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit floating-point disparity image.
+ Output 3-channel floating-point image of the same size as disparity.
+ Each element of _3dImage(x,y) contains 3D coordinates of the point (x,y) computed from the disparity map.
+ 4 x 4 perspective transformation matrix that can be obtained with stereoRectify().
+ Indicates, whether the function should handle missing values (i.e. points where the disparity was not computed).
+ If handleMissingValues=true, then pixels with the minimal disparity that corresponds to the outliers (see StereoBM::operator() ) are
+ transformed to 3D points with a very large Z value (currently set to 10000).
+ he optional output array depth. If it is -1, the output image will have CV_32F depth.
+ ddepth can also be set to CV_16S, CV_32S or CV_32F.
+
+
+
+ Computes an optimal affine transformation between two 3D point sets.
+
+ First input 3D point set.
+ Second input 3D point set.
+ Output 3D affine transformation matrix 3 x 4 .
+ Output vector indicating which points are inliers.
+ Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier.
+ Confidence level, between 0 and 1, for the estimated transformation.
+ Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly.
+ Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.
+
+
+
+
+ Calculates the Sampson Distance between two points.
+
+ first homogeneous 2d point
+ second homogeneous 2d point
+ F fundamental matrix
+ The computed Sampson distance.
+ https://github.com/opencv/opencv/blob/master/modules/calib3d/src/fundam.cpp#L1109
+
+
+
+ Calculates the Sampson Distance between two points.
+
+ first homogeneous 2d point
+ second homogeneous 2d point
+ F fundamental matrix
+ The computed Sampson distance.
+ https://github.com/opencv/opencv/blob/master/modules/calib3d/src/fundam.cpp#L1109
+
+
+
+ Computes an optimal affine transformation between two 2D point sets.
+
+ First input 2D point set containing (X,Y).
+ Second input 2D point set containing (x,y).
+ Output vector indicating which points are inliers (1-inlier, 0-outlier).
+ Robust method used to compute transformation.
+ Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier.Applies only to RANSAC.
+ The maximum number of robust method iterations.
+ Confidence level, between 0 and 1, for the estimated transformation.
+ Anything between 0.95 and 0.99 is usually good enough.Values too close to 1 can slow down the estimation
+ significantly.Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.
+ Maximum number of iterations of refining algorithm (Levenberg-Marquardt).
+ Passing 0 will disable refining, so the output matrix will be output of robust method.
+ Output 2D affine transformation matrix \f$2 \times 3\f$ or empty matrix if transformation could not be estimated.
+
+
+
+ Computes an optimal limited affine transformation with 4 degrees of freedom between two 2D point sets.
+
+ First input 2D point set.
+ Second input 2D point set.
+ Output vector indicating which points are inliers.
+ Robust method used to compute transformation.
+ Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier.Applies only to RANSAC.
+ The maximum number of robust method iterations.
+ Confidence level, between 0 and 1, for the estimated transformation.
+ Anything between 0.95 and 0.99 is usually good enough.Values too close to 1 can slow down the estimation
+ significantly.Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.
+
+ Output 2D affine transformation (4 degrees of freedom) matrix 2x3 or empty matrix if transformation could not be estimated.
+
+
+
+ Decompose a homography matrix to rotation(s), translation(s) and plane normal(s).
+
+ The input homography matrix between two images.
+ The input intrinsic camera calibration matrix.
+ Array of rotation matrices.
+ Array of translation matrices.
+ Array of plane normal matrices.
+
+
+
+
+ Filters homography decompositions based on additional information.
+
+ Vector of rotation matrices.
+ Vector of plane normal matrices.
+ Vector of (rectified) visible reference points before the homography is applied
+ Vector of (rectified) visible reference points after the homography is applied
+ Vector of int indices representing the viable solution set after filtering
+ optional Mat/Vector of 8u type representing the mask for the inliers as given by the findHomography function
+
+
+
+ corrects lens distortion for the given camera matrix and distortion coefficients
+
+ Input (distorted) image.
+ Output (corrected) image that has the same size and type as src .
+ Input camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5,
+ or 8 elements. If the vector is null, the zero distortion coefficients are assumed.
+ Camera matrix of the distorted image.
+ By default, it is the same as cameraMatrix but you may additionally scale
+ and shift the result by using a different matrix.
+
+
+
+ initializes maps for cv::remap() to correct lens distortion and optionally rectify the image
+
+
+
+
+
+
+
+
+
+
+
+
+ initializes maps for cv::remap() for wide-angle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ returns the default new camera matrix (by default it is the same as cameraMatrix unless centerPricipalPoint=true)
+
+ Input camera matrix.
+ Camera view image size in pixels.
+ Location of the principal point in the new camera matrix.
+ The parameter indicates whether this location should be at the image center or not.
+ the camera matrix that is either an exact copy of the input cameraMatrix
+ (when centerPrinicipalPoint=false), or the modified one (when centerPrincipalPoint=true).
+
+
+
+ Computes the ideal point coordinates from the observed point coordinates.
+
+ Observed point coordinates, 1xN or Nx1 2-channel (CV_32FC2 or CV_64FC2).
+ Output ideal point coordinates after undistortion and reverse perspective transformation.
+ If matrix P is identity or omitted, dst will contain normalized point coordinates.
+ Camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Rectification transformation in the object space (3x3 matrix).
+ R1 or R2 computed by stereoRectify() can be passed here.
+ If the matrix is empty, the identity transformation is used.
+ New camera matrix (3x3) or new projection matrix (3x4).
+ P1 or P2 computed by stereoRectify() can be passed here. If the matrix is empty,
+ the identity new camera matrix is used.
+
+
+
+ Computes the ideal point coordinates from the observed point coordinates.
+
+ Observed point coordinates, 1xN or Nx1 2-channel (CV_32FC2 or CV_64FC2).
+ Output ideal point coordinates after undistortion and reverse perspective transformation.
+ If matrix P is identity or omitted, dst will contain normalized point coordinates.
+ Camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Rectification transformation in the object space (3x3 matrix).
+ R1 or R2 computed by stereoRectify() can be passed here.
+ If the matrix is empty, the identity transformation is used.
+ New camera matrix (3x3) or new projection matrix (3x4).
+ P1 or P2 computed by stereoRectify() can be passed here. If the matrix is empty,
+ the identity new camera matrix is used.
+
+
+
+
+ The methods in this class use a so-called fisheye camera model.
+
+
+
+
+ Projects points using fisheye model.
+
+ The function computes projections of 3D points to the image plane given intrinsic and extrinsic
+ camera parameters.Optionally, the function computes Jacobians - matrices of partial derivatives of
+ image points coordinates(as functions of all the input parameters) with respect to the particular
+ parameters, intrinsic and/or extrinsic.
+
+ Array of object points, 1xN/Nx1 3-channel (or vector<Point3f> ),
+ where N is the number of points in the view.
+ Output array of image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel,
+ or vector<Point2f>.
+
+
+ Camera matrix
+ Input vector of distortion coefficients
+ The skew coefficient.
+ Optional output 2Nx15 jacobian matrix of derivatives of image points with respect
+ to components of the focal lengths, coordinates of the principal point, distortion coefficients,
+ rotation vector, translation vector, and the skew.In the old interface different components of
+ the jacobian are returned via different output parameters.
+
+
+
+ Distorts 2D points using fisheye model.
+
+ Array of object points, 1xN/Nx1 2-channel (or vector<Point2f> ),
+ where N is the number of points in the view.
+ Output array of image points, 1xN/Nx1 2-channel, or vector<Point2f> .
+ Camera matrix
+ Input vector of distortion coefficients
+ The skew coefficient.
+
+
+
+ Undistorts 2D points using fisheye model
+
+ Array of object points, 1xN/Nx1 2-channel (or vector<Point2f> ),
+ where N is the number of points in the view.
+ Output array of image points, 1xN/Nx1 2-channel, or vector>Point2f> .
+ Camera matrix
+ Input vector of distortion coefficients (k_1, k_2, k_3, k_4).
+ Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3 1-channel or 1x1 3-channel
+ New camera matrix (3x3) or new projection matrix (3x4)
+
+
+
+ Computes undistortion and rectification maps for image transform by cv::remap().
+ If D is empty zero distortion is used, if R or P is empty identity matrixes are used.
+
+ Camera matrix
+ Input vector of distortion coefficients (k_1, k_2, k_3, k_4).
+ Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3 1-channel or 1x1 3-channel
+ New camera matrix (3x3) or new projection matrix (3x4)
+ Undistorted image size.
+ Type of the first output map that can be CV_32FC1 or CV_16SC2 . See convertMaps() for details.
+ The first output map.
+ The second output map.
+
+
+
+ Transforms an image to compensate for fisheye lens distortion.
+
+ image with fisheye lens distortion.
+ Output image with compensated fisheye lens distortion.
+ Camera matrix
+ Input vector of distortion coefficients (k_1, k_2, k_3, k_4).
+ Camera matrix of the distorted image. By default, it is the identity matrix but you
+ may additionally scale and shift the result by using a different matrix.
+
+
+
+
+ Estimates new camera matrix for undistortion or rectification.
+
+ Camera matrix
+ Input vector of distortion coefficients (k_1, k_2, k_3, k_4).
+
+ Rectification transformation in the object space: 3x3 1-channel, or vector: 3x1/1x3
+ 1-channel or 1x1 3-channel
+ New camera matrix (3x3) or new projection matrix (3x4)
+ Sets the new focal length in range between the min focal length and the max focal
+ length.Balance is in range of[0, 1].
+
+ Divisor for new focal length.
+
+
+
+ Performs camera calibaration
+
+ vector of vectors of calibration pattern points in the calibration pattern coordinate space.
+ vector of vectors of the projections of calibration pattern points.
+ imagePoints.size() and objectPoints.size() and imagePoints[i].size() must be equal to
+ objectPoints[i].size() for each i.
+ Size of the image used only to initialize the intrinsic camera matrix.
+ Output 3x3 floating-point camera matrix
+ Output vector of distortion coefficients (k_1, k_2, k_3, k_4).
+ Output vector of rotation vectors (see Rodrigues ) estimated for each pattern view.
+ That is, each k-th rotation vector together with the corresponding k-th translation vector(see
+ the next output parameter description) brings the calibration pattern from the model coordinate
+ space(in which object points are specified) to the world coordinate space, that is, a real
+ position of the calibration pattern in the k-th pattern view(k= 0.. * M * -1).
+ Output vector of translation vectors estimated for each pattern view.
+ Different flags that may be zero or a combination of flag values
+ Termination criteria for the iterative optimization algorithm.
+
+
+
+
+ Stereo rectification for fisheye camera model
+
+ First camera matrix.
+ First camera distortion parameters.
+ Second camera matrix.
+ Second camera distortion parameters.
+ Size of the image used for stereo calibration.
+ Rotation matrix between the coordinate systems of the first and the second cameras.
+ Translation vector between coordinate systems of the cameras.
+ Output 3x3 rectification transform (rotation matrix) for the first camera.
+ Output 3x3 rectification transform (rotation matrix) for the second camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the first camera.
+ Output 3x4 projection matrix in the new (rectified) coordinate systems for the second camera.
+ Output 4x4 disparity-to-depth mapping matrix (see reprojectImageTo3D ).
+ Operation flags that may be zero or CALIB_ZERO_DISPARITY . If the flag is set,
+ the function makes the principal points of each camera have the same pixel coordinates in the
+ rectified views.And if the flag is not set, the function may still shift the images in the
+ horizontal or vertical direction(depending on the orientation of epipolar lines) to maximize the
+ useful image area.
+ New image resolution after rectification. The same size should be passed to
+ initUndistortRectifyMap(see the stereo_calib.cpp sample in OpenCV samples directory). When(0,0)
+ is passed(default), it is set to the original imageSize.Setting it to larger value can help you
+ preserve details in the original image, especially when there is a big radial distortion.
+ Sets the new focal length in range between the min focal length and the max focal
+ length.Balance is in range of[0, 1].
+ Divisor for new focal length.
+
+
+
+ Performs stereo calibration
+
+ Vector of vectors of the calibration pattern points.
+ Vector of vectors of the projections of the calibration pattern points,
+ observed by the first camera.
+ Vector of vectors of the projections of the calibration pattern points,
+ observed by the second camera.
+ Input/output first camera matrix
+ Input/output vector of distortion coefficients (k_1, k_2, k_3, k_4) of 4 elements.
+ Input/output second camera matrix. The parameter is similar to K1 .
+ Input/output lens distortion coefficients for the second camera. The parameter is
+ similar to D1.
+ Size of the image used only to initialize intrinsic camera matrix.
+ Output rotation matrix between the 1st and the 2nd camera coordinate systems.
+ Output translation vector between the coordinate systems of the cameras.
+ Different flags that may be zero or a combination of the FishEyeCalibrationFlags values
+ Termination criteria for the iterative optimization algorithm.
+
+
+
+
+ Computes the source location of an extrapolated pixel.
+
+ 0-based coordinate of the extrapolated pixel along one of the axes, likely <0 or >= len
+ Length of the array along the corresponding axis.
+ Border type, one of the #BorderTypes, except for #BORDER_TRANSPARENT and BORDER_ISOLATED.
+ When borderType==BORDER_CONSTANT, the function always returns -1, regardless
+
+
+
+
+ Forms a border around the image
+
+ The source image
+ The destination image; will have the same type as src and
+ the size Size(src.cols+left+right, src.rows+top+bottom)
+ Specify how much pixels in each direction from the source image rectangle one needs to extrapolate
+ Specify how much pixels in each direction from the source image rectangle one needs to extrapolate
+ Specify how much pixels in each direction from the source image rectangle one needs to extrapolate
+ Specify how much pixels in each direction from the source image rectangle one needs to extrapolate
+ The border type
+ The border value if borderType == Constant
+
+
+
+ Computes the per-element sum of two arrays or an array and a scalar.
+
+ The first source array
+ The second source array. It must have the same size and same type as src1
+ The destination array; it will have the same size and same type as src1
+ The optional operation mask, 8-bit single channel array; specifies elements of the destination array to be changed. [By default this is null]
+
+
+
+
+ Calculates per-element difference between two arrays or array and a scalar
+
+ The first source array
+ The second source array. It must have the same size and same type as src1
+ The destination array; it will have the same size and same type as src1
+ The optional operation mask, 8-bit single channel array; specifies elements of the destination array to be changed. [By default this is null]
+
+
+
+
+ Calculates per-element difference between two arrays or array and a scalar
+
+ The first source array
+ The second source array. It must have the same size and same type as src1
+ The destination array; it will have the same size and same type as src1
+ The optional operation mask, 8-bit single channel array; specifies elements of the destination array to be changed. [By default this is null]
+
+
+
+
+ Calculates per-element difference between two arrays or array and a scalar
+
+ The first source array
+ The second source array. It must have the same size and same type as src1
+ The destination array; it will have the same size and same type as src1
+ The optional operation mask, 8-bit single channel array; specifies elements of the destination array to be changed. [By default this is null]
+
+
+
+
+ Calculates the per-element scaled product of two arrays
+
+ The first source array
+ The second source array of the same size and the same type as src1
+ The destination array; will have the same size and the same type as src1
+ The optional scale factor. [By default this is 1]
+
+
+
+
+ Performs per-element division of two arrays or a scalar by an array.
+
+ The first source array
+ The second source array; should have the same size and same type as src1
+ The destination array; will have the same size and same type as src2
+ Scale factor [By default this is 1]
+
+
+
+
+ Performs per-element division of two arrays or a scalar by an array.
+
+ Scale factor
+ The first source array
+ The destination array; will have the same size and same type as src2
+
+
+
+
+ adds scaled array to another one (dst = alpha*src1 + src2)
+
+
+
+
+
+
+
+
+ computes weighted sum of two arrays (dst = alpha*src1 + beta*src2 + gamma)
+
+
+
+
+
+
+
+
+
+
+
+ Scales, computes absolute values and converts the result to 8-bit.
+
+ The source array
+ The destination array
+ The optional scale factor. [By default this is 1]
+ The optional delta added to the scaled values. [By default this is 0]
+
+
+
+ Converts an array to half precision floating number.
+
+ This function converts FP32(single precision floating point) from/to FP16(half precision floating point). CV_16S format is used to represent FP16 data.
+ There are two use modes(src -> dst) : CV_32F -> CV_16S and CV_16S -> CV_32F.The input array has to have type of CV_32F or
+ CV_16S to represent the bit depth.If the input array is neither of them, the function will raise an error.
+ The format of half precision floating point is defined in IEEE 754-2008.
+
+ input array.
+ output array.
+
+
+
+ transforms array of numbers using a lookup table: dst(i)=lut(src(i))
+
+ Source array of 8-bit elements
+ Look-up table of 256 elements.
+ In the case of multi-channel source array, the table should either have
+ a single channel (in this case the same table is used for all channels)
+ or the same number of channels as in the source array
+ Destination array;
+ will have the same size and the same number of channels as src,
+ and the same depth as lut
+
+
+
+ transforms array of numbers using a lookup table: dst(i)=lut(src(i))
+
+ Source array of 8-bit elements
+ Look-up table of 256 elements.
+ In the case of multi-channel source array, the table should either have
+ a single channel (in this case the same table is used for all channels)
+ or the same number of channels as in the source array
+ Destination array;
+ will have the same size and the same number of channels as src,
+ and the same depth as lut
+
+
+
+ computes sum of array elements
+
+ The source array; must have 1 to 4 channels
+
+
+
+
+ computes the number of nonzero array elements
+
+ Single-channel array
+ number of non-zero elements in mtx
+
+
+
+ returns the list of locations of non-zero pixels
+
+
+
+
+
+
+ computes mean value of selected array elements
+
+ The source array; it should have 1 to 4 channels
+ (so that the result can be stored in Scalar)
+ The optional operation mask
+
+
+
+
+ computes mean value and standard deviation of all or selected array elements
+
+ The source array; it should have 1 to 4 channels
+ (so that the results can be stored in Scalar's)
+ The output parameter: computed mean value
+ The output parameter: computed standard deviation
+ The optional operation mask
+
+
+
+ computes mean value and standard deviation of all or selected array elements
+
+ The source array; it should have 1 to 4 channels
+ (so that the results can be stored in Scalar's)
+ The output parameter: computed mean value
+ The output parameter: computed standard deviation
+ The optional operation mask
+
+
+
+ Calculates absolute array norm, absolute difference norm, or relative difference norm.
+
+ The first source array
+ Type of the norm
+ The optional operation mask
+
+
+
+
+ computes norm of selected part of the difference between two arrays
+
+ The first source array
+ The second source array of the same size and the same type as src1
+ Type of the norm
+ The optional operation mask
+
+
+
+
+ Computes the Peak Signal-to-Noise Ratio (PSNR) image quality metric.
+
+ This function calculates the Peak Signal-to-Noise Ratio(PSNR) image quality metric in decibels(dB),
+ between two input arrays src1 and src2.The arrays must have the same type.
+
+ first input array.
+ second input array of the same size as src1.
+ the maximum pixel value (255 by default)
+
+
+
+
+ naive nearest neighbor finder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scales and shifts array elements so that either the specified norm (alpha)
+ or the minimum (alpha) and maximum (beta) array values get the specified values
+
+ The source array
+ The destination array; will have the same size as src
+ The norm value to normalize to or the lower range boundary
+ in the case of range normalization
+ The upper range boundary in the case of range normalization;
+ not used for norm normalization
+ The normalization type
+ When the parameter is negative,
+ the destination array will have the same type as src,
+ otherwise it will have the same number of channels as src and the depth =CV_MAT_DEPTH(rtype)
+ The optional operation mask
+
+
+
+ Finds indices of max elements along provided axis
+
+ Input single-channel array
+ Output array of type CV_32SC1 with the same dimensionality as src,
+ except for axis being reduced - it should be set to 1.
+ Axis to reduce along
+ Whether to get the index of first or last occurrence of max
+
+
+
+ Finds indices of min elements along provided axis
+
+ Input single-channel array
+ Output array of type CV_32SC1 with the same dimensionality as src,
+ except for axis being reduced - it should be set to 1.
+ Axis to reduce along
+ Whether to get the index of first or last occurrence of min
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ The source single-channel array
+ Pointer to returned minimum value
+ Pointer to returned maximum value
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ The source single-channel array
+ Pointer to returned minimum location
+ Pointer to returned maximum location
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ The source single-channel array
+ Pointer to returned minimum value
+ Pointer to returned maximum value
+ Pointer to returned minimum location
+ Pointer to returned maximum location
+ The optional mask used to select a sub-array
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ The source single-channel array
+ Pointer to returned minimum value
+ Pointer to returned maximum value
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ The source single-channel array
+
+
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ The source single-channel array
+ Pointer to returned minimum value
+ Pointer to returned maximum value
+
+
+
+
+
+
+ transforms 2D matrix to 1D row or column vector by taking sum, minimum, maximum or mean value over all the rows
+
+ The source 2D matrix
+ The destination vector.
+ Its size and type is defined by dim and dtype parameters
+ The dimension index along which the matrix is reduced.
+ 0 means that the matrix is reduced to a single row and 1 means that the matrix is reduced to a single column
+
+ When it is negative, the destination vector will have
+ the same type as the source matrix, otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), mtx.channels())
+
+
+
+ makes multi-channel array out of several single-channel arrays
+
+
+
+
+
+
+ Copies each plane of a multi-channel array to a dedicated array
+
+ The source multi-channel array
+ The destination array or vector of arrays;
+ The number of arrays must match mtx.channels() .
+ The arrays themselves will be reallocated if needed
+
+
+
+ Copies each plane of a multi-channel array to a dedicated array
+
+ The source multi-channel array
+ The number of arrays must match mtx.channels() .
+ The arrays themselves will be reallocated if needed
+
+
+
+ copies selected channels from the input arrays to the selected channels of the output arrays
+
+
+
+
+
+
+
+ extracts a single channel from src (coi is 0-based index)
+
+
+
+
+
+
+
+ inserts a single channel to dst (coi is 0-based index)
+
+
+
+
+
+
+
+ reverses the order of the rows, columns or both in a matrix
+
+ The source array
+ The destination array; will have the same size and same type as src
+ Specifies how to flip the array:
+ 0 means flipping around the x-axis, positive (e.g., 1) means flipping around y-axis,
+ and negative (e.g., -1) means flipping around both axes. See also the discussion below for the formulas.
+
+
+
+ Rotates a 2D array in multiples of 90 degrees.
+
+ input array.
+ output array of the same type as src.
+ The size is the same with ROTATE_180, and the rows and cols are switched for
+ ROTATE_90_CLOCKWISE and ROTATE_90_COUNTERCLOCKWISE.
+ an enum to specify how to rotate the array.
+
+
+
+ replicates the input matrix the specified number of times in the horizontal and/or vertical direction
+
+ The source array to replicate
+ How many times the src is repeated along the vertical axis
+ How many times the src is repeated along the horizontal axis
+ The destination array; will have the same type as src
+
+
+
+ replicates the input matrix the specified number of times in the horizontal and/or vertical direction
+
+ The source array to replicate
+ How many times the src is repeated along the vertical axis
+ How many times the src is repeated along the horizontal axis
+
+
+
+
+ Applies horizontal concatenation to given matrices.
+
+ input array or vector of matrices. all of the matrices must have the same number of rows and the same depth.
+ output array. It has the same number of rows and depth as the src, and the sum of cols of the src.
+
+
+
+ Applies horizontal concatenation to given matrices.
+
+ first input array to be considered for horizontal concatenation.
+ second input array to be considered for horizontal concatenation.
+ output array. It has the same number of rows and depth as the src1 and src2, and the sum of cols of the src1 and src2.
+
+
+
+ Applies vertical concatenation to given matrices.
+
+ input array or vector of matrices. all of the matrices must have the same number of cols and the same depth.
+ output array. It has the same number of cols and depth as the src, and the sum of rows of the src.
+
+
+
+ Applies vertical concatenation to given matrices.
+
+ first input array to be considered for vertical concatenation.
+ second input array to be considered for vertical concatenation.
+ output array. It has the same number of cols and depth as the src1 and src2, and the sum of rows of the src1 and src2.
+
+
+
+ computes bitwise conjunction of the two arrays (dst = src1 & src2)
+
+ first input array or a scalar.
+ second input array or a scalar.
+ output array that has the same size and type as the input
+ optional operation mask, 8-bit single channel array, that specifies elements of the output array to be changed.
+
+
+
+ computes bitwise disjunction of the two arrays (dst = src1 | src2)
+
+ first input array or a scalar.
+ second input array or a scalar.
+ output array that has the same size and type as the input
+ optional operation mask, 8-bit single channel array, that specifies elements of the output array to be changed.
+
+
+
+ computes bitwise exclusive-or of the two arrays (dst = src1 ^ src2)
+
+ first input array or a scalar.
+ second input array or a scalar.
+ output array that has the same size and type as the input
+ optional operation mask, 8-bit single channel array, that specifies elements of the output array to be changed.
+
+
+
+ inverts each bit of array (dst = ~src)
+
+ input array.
+ output array that has the same size and type as the input
+ optional operation mask, 8-bit single channel array, that specifies elements of the output array to be changed.
+
+
+
+ Calculates the per-element absolute difference between two arrays or between an array and a scalar.
+
+ first input array or a scalar.
+ second input array or a scalar.
+ output array that has the same size and type as input arrays.
+
+
+
+ Copies the matrix to another one.
+ When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, the newly allocated matrix is initialized with all zeros before copying the data.
+
+ Source matrix.
+ Destination matrix. If it does not have a proper size or type before the operation, it is reallocated.
+ Operation mask of the same size as \*this. Its non-zero elements indicate which matrix
+ elements need to be copied.The mask has to be of type CV_8U and can have 1 or multiple channels.
+
+
+
+ Checks if array elements lie between the elements of two other arrays.
+
+ first input array.
+ inclusive lower boundary array or a scalar.
+ inclusive upper boundary array or a scalar.
+ output array of the same size as src and CV_8U type.
+
+
+
+ Checks if array elements lie between the elements of two other arrays.
+
+ first input array.
+ inclusive lower boundary array or a scalar.
+ inclusive upper boundary array or a scalar.
+ output array of the same size as src and CV_8U type.
+
+
+
+ Performs the per-element comparison of two arrays or an array and scalar value.
+
+ first input array or a scalar; when it is an array, it must have a single channel.
+ second input array or a scalar; when it is an array, it must have a single channel.
+ output array of type ref CV_8U that has the same size and the same number of channels as the input arrays.
+ a flag, that specifies correspondence between the arrays (cv::CmpTypes)
+
+
+
+ computes per-element minimum of two arrays (dst = min(src1, src2))
+
+
+
+
+
+
+
+ computes per-element minimum of two arrays (dst = min(src1, src2))
+
+
+
+
+
+
+
+ computes per-element minimum of array and scalar (dst = min(src1, src2))
+
+
+
+
+
+
+
+ computes per-element maximum of two arrays (dst = max(src1, src2))
+
+
+
+
+
+
+
+ computes per-element maximum of two arrays (dst = max(src1, src2))
+
+
+
+
+
+
+
+ computes per-element maximum of array and scalar (dst = max(src1, src2))
+
+
+
+
+
+
+
+ computes square root of each matrix element (dst = src**0.5)
+
+ The source floating-point array
+ The destination array; will have the same size and the same type as src
+
+
+
+ raises the input matrix elements to the specified power (b = a**power)
+
+ The source array
+ The exponent of power
+ The destination array; will have the same size and the same type as src
+
+
+
+ computes exponent of each matrix element (dst = e**src)
+
+ The source array
+ The destination array; will have the same size and same type as src
+
+
+
+ computes natural logarithm of absolute value of each matrix element: dst = log(abs(src))
+
+ The source array
+ The destination array; will have the same size and same type as src
+
+
+
+ Calculates x and y coordinates of 2D vectors from their magnitude and angle.
+
+ input floating-point array of magnitudes of 2D vectors;
+ it can be an empty matrix(=Mat()), in this case, the function assumes that all the magnitudes are = 1; if it is not empty,
+ it must have the same size and type as angle.
+ input floating-point array of angles of 2D vectors.
+ output array of x-coordinates of 2D vectors; it has the same size and type as angle.
+ output array of y-coordinates of 2D vectors; it has the same size and type as angle.
+ when true, the input angles are measured in degrees, otherwise, they are measured in radians.
+
+
+
+ Calculates the magnitude and angle of 2D vectors.
+
+ array of x-coordinates; this must be a single-precision or double-precision floating-point array.
+ array of y-coordinates, that must have the same size and same type as x.
+ output array of magnitudes of the same size and type as x.
+ output array of angles that has the same size and type as x;
+ the angles are measured in radians(from 0 to 2\*Pi) or in degrees(0 to 360 degrees).
+ a flag, indicating whether the angles are measured in radians(which is by default), or in degrees.
+
+
+
+ Calculates the rotation angle of 2D vectors.
+
+ input floating-point array of x-coordinates of 2D vectors.
+ input array of y-coordinates of 2D vectors; it must have the same size and the same type as x.
+ output array of vector angles; it has the same size and same type as x.
+ when true, the function calculates the angle in degrees, otherwise, they are measured in radians.
+
+
+
+ Calculates the magnitude of 2D vectors.
+
+ floating-point array of x-coordinates of the vectors.
+ floating-point array of y-coordinates of the vectors; it must have the same size as x.
+ output array of the same size and type as x.
+
+
+
+ checks that each matrix element is within the specified range.
+
+ The array to check
+ The flag indicating whether the functions quietly
+ return false when the array elements are out of range,
+ or they throw an exception.
+
+
+
+
+ checks that each matrix element is within the specified range.
+
+ The array to check
+ The flag indicating whether the functions quietly
+ return false when the array elements are out of range,
+ or they throw an exception.
+ The optional output parameter, where the position of
+ the first outlier is stored.
+ The inclusive lower boundary of valid values range
+ The exclusive upper boundary of valid values range
+
+
+
+
+ converts NaN's to the given number
+
+
+
+
+
+
+ implements generalized matrix product algorithm GEMM from BLAS
+
+
+
+
+
+
+
+
+
+
+
+ multiplies matrix by its transposition from the left or from the right
+
+ The source matrix
+ The destination square matrix
+ Specifies the multiplication ordering; see the description below
+ The optional delta matrix, subtracted from src before the
+ multiplication. When the matrix is empty ( delta=Mat() ), it’s assumed to be
+ zero, i.e. nothing is subtracted, otherwise if it has the same size as src,
+ then it’s simply subtracted, otherwise it is "repeated" to cover the full src
+ and then subtracted. Type of the delta matrix, when it's not empty, must be the
+ same as the type of created destination matrix, see the rtype description
+ The optional scale factor for the matrix product
+ When it’s negative, the destination matrix will have the
+ same type as src . Otherwise, it will have type=CV_MAT_DEPTH(rtype),
+ which should be either CV_32F or CV_64F
+
+
+
+ transposes the matrix
+
+ The source array
+ The destination array of the same type as src
+
+
+
+ performs affine transformation of each element of multi-channel input matrix
+
+ The source array; must have as many channels (1 to 4) as mtx.cols or mtx.cols-1
+ The destination array; will have the same size and depth as src and as many channels as mtx.rows
+ The transformation matrix
+
+
+
+ performs perspective transformation of each element of multi-channel input matrix
+
+ The source two-channel or three-channel floating-point array;
+ each element is 2D/3D vector to be transformed
+ The destination array; it will have the same size and same type as src
+ 3x3 or 4x4 transformation matrix
+
+
+
+ performs perspective transformation of each element of multi-channel input matrix
+
+ The source two-channel or three-channel floating-point array;
+ each element is 2D/3D vector to be transformed
+ 3x3 or 4x4 transformation matrix
+ The destination array; it will have the same size and same type as src
+
+
+
+ performs perspective transformation of each element of multi-channel input matrix
+
+ The source two-channel or three-channel floating-point array;
+ each element is 2D/3D vector to be transformed
+ 3x3 or 4x4 transformation matrix
+ The destination array; it will have the same size and same type as src
+
+
+
+ performs perspective transformation of each element of multi-channel input matrix
+
+ The source two-channel or three-channel floating-point array;
+ each element is 2D/3D vector to be transformed
+ 3x3 or 4x4 transformation matrix
+ The destination array; it will have the same size and same type as src
+
+
+
+ performs perspective transformation of each element of multi-channel input matrix
+
+ The source two-channel or three-channel floating-point array;
+ each element is 2D/3D vector to be transformed
+ 3x3 or 4x4 transformation matrix
+ The destination array; it will have the same size and same type as src
+
+
+
+ extends the symmetrical matrix from the lower half or from the upper half
+
+ Input-output floating-point square matrix
+ If true, the lower half is copied to the upper half,
+ otherwise the upper half is copied to the lower half
+
+
+
+ initializes scaled identity matrix
+
+ The matrix to initialize (not necessarily square)
+ The value to assign to the diagonal elements
+
+
+
+ computes determinant of a square matrix
+
+ The input matrix; must have CV_32FC1 or CV_64FC1 type and square size
+ determinant of the specified matrix.
+
+
+
+ computes trace of a matrix
+
+ The source matrix
+
+
+
+
+ computes inverse or pseudo-inverse matrix
+
+ The source floating-point MxN matrix
+ The destination matrix; will have NxM size and the same type as src
+ The inversion method
+
+
+
+
+ solves linear system or a least-square problem
+
+
+
+
+
+
+
+
+
+ Solve given (non-integer) linear programming problem using the Simplex Algorithm (Simplex Method).
+
+ This row-vector corresponds to \f$c\f$ in the LP problem formulation (see above).
+ It should contain 32- or 64-bit floating point numbers.As a convenience, column-vector may be also submitted,
+ in the latter case it is understood to correspond to \f$c^T\f$.
+ `m`-by-`n+1` matrix, whose rightmost column corresponds to \f$b\f$ in formulation above
+ and the remaining to \f$A\f$. It should containt 32- or 64-bit floating point numbers.
+ The solution will be returned here as a column-vector - it corresponds to \f$c\f$ in the
+ formulation above.It will contain 64-bit floating point numbers.
+
+
+
+
+ sorts independently each matrix row or each matrix column
+
+ The source single-channel array
+ The destination array of the same size and the same type as src
+ The operation flags, a combination of the SortFlag values
+
+
+
+ sorts independently each matrix row or each matrix column
+
+ The source single-channel array
+ The destination integer array of the same size as src
+ The operation flags, a combination of SortFlag values
+
+
+
+ finds real roots of a cubic polynomial
+
+ The equation coefficients, an array of 3 or 4 elements
+ The destination array of real roots which will have 1 or 3 elements
+
+
+
+
+ finds real and complex roots of a polynomial
+
+ The array of polynomial coefficients
+ The destination (complex) array of roots
+ The maximum number of iterations the algorithm does
+
+
+
+
+ Computes eigenvalues and eigenvectors of a symmetric matrix.
+
+ The input matrix; must have CV_32FC1 or CV_64FC1 type,
+ square size and be symmetric: src^T == src
+ The output vector of eigenvalues of the same type as src;
+ The eigenvalues are stored in the descending order.
+ The output matrix of eigenvectors;
+ It will have the same size and the same type as src; The eigenvectors are stored
+ as subsequent matrix rows, in the same order as the corresponding eigenvalues
+
+
+
+
+ Calculates eigenvalues and eigenvectors of a non-symmetric matrix (real eigenvalues only).
+
+ input matrix (CV_32FC1 or CV_64FC1 type).
+ output vector of eigenvalues (type is the same type as src).
+ output matrix of eigenvectors (type is the same type as src). The eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding eigenvalues.
+
+
+
+ computes covariation matrix of a set of samples
+
+ samples stored as separate matrices
+ output covariance matrix of the type ctype and square size.
+ input or output (depending on the flags) array as the average value of the input vectors.
+ operation flags as a combination of CovarFlags
+ type of the matrixl; it equals 'CV_64F' by default.
+
+
+
+ computes covariation matrix of a set of samples
+
+ samples stored as rows/columns of a single matrix.
+ output covariance matrix of the type ctype and square size.
+ input or output (depending on the flags) array as the average value of the input vectors.
+ operation flags as a combination of CovarFlags
+ type of the matrixl; it equals 'CV_64F' by default.
+
+
+
+ PCA of the supplied dataset.
+
+ input samples stored as the matrix rows or as the matrix columns.
+ optional mean value; if the matrix is empty (noArray()), the mean is computed from the data.
+ eigenvectors of the covariation matrix
+ maximum number of components that PCA should
+ retain; by default, all the components are retained.
+
+
+
+ PCA of the supplied dataset.
+
+ input samples stored as the matrix rows or as the matrix columns.
+ optional mean value; if the matrix is empty (noArray()), the mean is computed from the data.
+ eigenvectors of the covariation matrix
+ eigenvalues of the covariation matrix
+ maximum number of components that PCA should
+ retain; by default, all the components are retained.
+
+
+
+ PCA of the supplied dataset.
+
+ input samples stored as the matrix rows or as the matrix columns.
+ optional mean value; if the matrix is empty (noArray()), the mean is computed from the data.
+ eigenvectors of the covariation matrix
+ Percentage of variance that PCA should retain.
+ Using this parameter will let the PCA decided how many components to retain but it will always keep at least 2.
+
+
+
+ PCA of the supplied dataset.
+
+ input samples stored as the matrix rows or as the matrix columns.
+ optional mean value; if the matrix is empty (noArray()), the mean is computed from the data.
+ eigenvectors of the covariation matrix
+ eigenvalues of the covariation matrix
+ Percentage of variance that PCA should retain.
+ Using this parameter will let the PCA decided how many components to retain but it will always keep at least 2.
+
+
+
+ Projects vector(s) to the principal component subspace.
+
+ input samples stored as the matrix rows or as the matrix columns.
+ optional mean value; if the matrix is empty (noArray()), the mean is computed from the data.
+ eigenvectors of the covariation matrix
+ output vectors
+
+
+
+ Reconstructs vectors from their PC projections.
+
+ input samples stored as the matrix rows or as the matrix columns.
+ optional mean value; if the matrix is empty (noArray()), the mean is computed from the data.
+ eigenvectors of the covariation matrix
+ output vectors
+
+
+
+ decomposes matrix and stores the results to user-provided matrices
+
+ decomposed matrix. The depth has to be CV_32F or CV_64F.
+ calculated singular values
+ calculated left singular vectors
+ transposed matrix of right singular vectors
+ peration flags - see SVD::Flags.
+
+
+
+ performs back substitution for the previously computed SVD
+
+ calculated singular values
+ calculated left singular vectors
+ transposed matrix of right singular vectors
+ right-hand side of a linear system (u*w*v')*dst = rhs to be solved, where A has been previously decomposed.
+ output
+
+
+
+ Calculates the Mahalanobis distance between two vectors.
+
+ first 1D input vector.
+ second 1D input vector.
+ inverse covariance matrix.
+
+
+
+
+ Performs a forward Discrete Fourier transform of 1D or 2D floating-point array.
+
+ The source array, real or complex
+ The destination array, which size and type depends on the flags
+ Transformation flags, a combination of the DftFlag2 values
+ When the parameter != 0, the function assumes that
+ only the first nonzeroRows rows of the input array ( DFT_INVERSE is not set)
+ or only the first nonzeroRows of the output array ( DFT_INVERSE is set) contain non-zeros,
+ thus the function can handle the rest of the rows more efficiently and
+ thus save some time. This technique is very useful for computing array cross-correlation
+ or convolution using DFT
+
+
+
+ Performs an inverse Discrete Fourier transform of 1D or 2D floating-point array.
+
+ The source array, real or complex
+ The destination array, which size and type depends on the flags
+ Transformation flags, a combination of the DftFlag2 values
+ When the parameter != 0, the function assumes that
+ only the first nonzeroRows rows of the input array ( DFT_INVERSE is not set)
+ or only the first nonzeroRows of the output array ( DFT_INVERSE is set) contain non-zeros,
+ thus the function can handle the rest of the rows more efficiently and
+ thus save some time. This technique is very useful for computing array cross-correlation
+ or convolution using DFT
+
+
+
+ Performs forward or inverse 1D or 2D Discrete Cosine Transformation
+
+ The source floating-point array
+ The destination array; will have the same size and same type as src
+ Transformation flags, a combination of DctFlag2 values
+
+
+
+ Performs inverse 1D or 2D Discrete Cosine Transformation
+
+ The source floating-point array
+ The destination array; will have the same size and same type as src
+ Transformation flags, a combination of DctFlag2 values
+
+
+
+ Performs the per-element multiplication of two Fourier spectrums.
+
+ first input array.
+ second input array of the same size and type as src1.
+ output array of the same size and type as src1.
+ operation flags; currently, the only supported flag is cv::DFT_ROWS, which indicates that
+ each row of src1 and src2 is an independent 1D Fourier spectrum. If you do not want to use this flag, then simply add a `0` as value.
+ optional flag that conjugates the second input array before the multiplication (true) or not (false).
+
+
+
+ Returns the optimal DFT size for a given vector size.
+
+ vector size.
+
+
+
+
+ Returns the thread-local Random number generator
+
+
+
+
+
+ Sets the thread-local Random number generator
+
+
+
+
+
+ fills array with uniformly-distributed random numbers from the range [low, high)
+
+ The output array of random numbers.
+ The array must be pre-allocated and have 1 to 4 channels
+ The inclusive lower boundary of the generated random numbers
+ The exclusive upper boundary of the generated random numbers
+
+
+
+ fills array with uniformly-distributed random numbers from the range [low, high)
+
+ The output array of random numbers.
+ The array must be pre-allocated and have 1 to 4 channels
+ The inclusive lower boundary of the generated random numbers
+ The exclusive upper boundary of the generated random numbers
+
+
+
+ fills array with normally-distributed random numbers with the specified mean and the standard deviation
+
+ The output array of random numbers.
+ The array must be pre-allocated and have 1 to 4 channels
+ The mean value (expectation) of the generated random numbers
+ The standard deviation of the generated random numbers
+
+
+
+ fills array with normally-distributed random numbers with the specified mean and the standard deviation
+
+ The output array of random numbers.
+ The array must be pre-allocated and have 1 to 4 channels
+ The mean value (expectation) of the generated random numbers
+ The standard deviation of the generated random numbers
+
+
+
+ shuffles the input array elements
+
+ The input/output numerical 1D array
+ The scale factor that determines the number of random swap operations.
+
+
+
+ shuffles the input array elements
+
+ The input/output numerical 1D array
+ The scale factor that determines the number of random swap operations.
+ The optional random number generator used for shuffling.
+ If it is null, theRng() is used instead.
+
+
+
+ Finds centers of clusters and groups input samples around the clusters.
+
+ Data for clustering. An array of N-Dimensional points with float coordinates is needed.
+ Number of clusters to split the set by.
+ Input/output integer array that stores the cluster indices for every sample.
+ The algorithm termination criteria, that is, the maximum number of iterations and/or
+ the desired accuracy. The accuracy is specified as criteria.epsilon. As soon as each of the cluster centers
+ moves by less than criteria.epsilon on some iteration, the algorithm stops.
+ Flag to specify the number of times the algorithm is executed using different
+ initial labellings. The algorithm returns the labels that yield the best compactness (see the last function parameter).
+ Flag that can take values of cv::KmeansFlags
+ Output matrix of the cluster centers, one row per each cluster center.
+ The function returns the compactness measure that is computed as
+ \f[\sum _i \| \texttt{samples} _i - \texttt{centers} _{ \texttt{labels} _i} \| ^2\f]
+ after every attempt. The best (minimum) value is chosen and the corresponding labels and the compactness
+ value are returned by the function. Basically, you can use only the core of the function,
+ set the number of attempts to 1, initialize labels each time using a custom algorithm,
+ pass them with the ( flags = #KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best (most-compact) clustering.
+
+
+
+ computes the angle in degrees (0..360) of the vector (x,y)
+
+
+
+
+
+
+
+ computes cube root of the argument
+
+
+
+
+
+
+ OpenCV will try to set the number of threads for the next parallel region.
+ If threads == 0, OpenCV will disable threading optimizations and run all it's functions
+ sequentially.Passing threads < 0 will reset threads number to system default. This function must
+ be called outside of parallel region.
+ OpenCV will try to run its functions with specified threads number, but some behaviour differs from framework:
+ - `TBB` - User-defined parallel constructions will run with the same threads number, if another is not specified.If later on user creates his own scheduler, OpenCV will use it.
+ - `OpenMP` - No special defined behaviour.
+ - `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run its functions sequentially.
+ - `GCD` - Supports only values <= 0.
+ - `C=` - No special defined behaviour.
+
+ Number of threads used by OpenCV.
+
+
+
+ Returns the number of threads used by OpenCV for parallel regions.
+
+ Always returns 1 if OpenCV is built without threading support.
+ The exact meaning of return value depends on the threading framework used by OpenCV library:
+ - `TBB` - The number of threads, that OpenCV will try to use for parallel regions. If there is
+ any tbb::thread_scheduler_init in user code conflicting with OpenCV, then function returns default
+ number of threads used by TBB library.
+ - `OpenMP` - An upper bound on the number of threads that could be used to form a new team.
+ - `Concurrency` - The number of threads, that OpenCV will try to use for parallel regions.
+ - `GCD` - Unsupported; returns the GCD thread pool limit(512) for compatibility.
+ - `C=` - The number of threads, that OpenCV will try to use for parallel regions, if before
+ called setNumThreads with threads > 0, otherwise returns the number of logical CPUs,
+ available for the process.
+
+
+
+
+
+ Returns the index of the currently executed thread within the current parallel region.
+ Always returns 0 if called outside of parallel region.
+ @deprecated Current implementation doesn't corresponding to this documentation.
+ The exact meaning of the return value depends on the threading framework used by OpenCV library:
+ - `TBB` - Unsupported with current 4.1 TBB release.Maybe will be supported in future.
+ - `OpenMP` - The thread number, within the current team, of the calling thread.
+ - `Concurrency` - An ID for the virtual processor that the current context is executing
+ on(0 for master thread and unique number for others, but not necessary 1,2,3,...).
+ - `GCD` - System calling thread's ID. Never returns 0 inside parallel region.
+ - `C=` - The index of the current parallel task.
+
+
+
+
+
+ Returns full configuration time cmake output.
+
+ Returned value is raw cmake output including version control system revision, compiler version,
+ compiler flags, enabled modules and third party libraries, etc.Output format depends on target architecture.
+
+
+
+
+
+ Returns library version string.
+ For example "3.4.1-dev".
+
+
+
+
+
+ Returns major library version
+
+
+
+
+
+ Returns minor library version
+
+
+
+
+
+ Returns revision field of the library version
+
+
+
+
+
+ Returns the number of ticks.
+ The function returns the number of ticks after the certain event (for example, when the machine was
+ turned on). It can be used to initialize RNG or to measure a function execution time by reading the
+ tick count before and after the function call.
+
+
+
+
+
+ Returns the number of ticks per second.
+ The function returns the number of ticks per second.That is, the following code computes the execution time in seconds:
+
+
+
+
+
+ Returns the number of CPU ticks.
+
+ The function returns the current number of CPU ticks on some architectures(such as x86, x64, PowerPC).
+ On other platforms the function is equivalent to getTickCount.It can also be used for very accurate time
+ measurements, as well as for RNG initialization.Note that in case of multi-CPU systems a thread, from which
+ getCPUTickCount is called, can be suspended and resumed at another CPU with its own counter. So,
+ theoretically (and practically) the subsequent calls to the function do not necessary return the monotonously
+ increasing values. Also, since a modern CPU varies the CPU frequency depending on the load, the number of CPU
+ clocks spent in some code cannot be directly converted to time units.Therefore, getTickCount is generally
+ a preferable solution for measuringexecution time.
+
+
+
+
+
+ Returns true if the specified feature is supported by the host hardware.
+ The function returns true if the host hardware supports the specified feature.When user calls
+ setUseOptimized(false), the subsequent calls to checkHardwareSupport() will return false until
+ setUseOptimized(true) is called.This way user can dynamically switch on and off the optimized code in OpenCV.
+
+ The feature of interest, one of cv::CpuFeatures
+
+
+
+
+ Returns feature name by ID.
+ Returns empty string if feature is not defined
+
+
+
+
+
+
+ Returns list of CPU features enabled during compilation.
+ Returned value is a string containing space separated list of CPU features with following markers:
+ - no markers - baseline features
+ - prefix `*` - features enabled in dispatcher
+ - suffix `?` - features enabled but not available in HW
+
+
+ `SSE SSE2 SSE3* SSE4.1 *SSE4.2 *FP16* AVX *AVX2* AVX512-SKX?`
+
+
+
+
+
+ Returns the number of logical CPUs available for the process.
+
+
+
+
+
+ Turns on/off available optimization.
+ The function turns on or off the optimized code in OpenCV. Some optimization can not be enabled
+ or disabled, but, for example, most of SSE code in OpenCV can be temporarily turned on or off this way.
+
+
+
+
+
+ Returns the current optimization status.
+ The function returns the current optimization status, which is controlled by cv::setUseOptimized().
+
+
+
+
+
+ Aligns buffer size by the certain number of bytes
+ This small inline function aligns a buffer size by
+ the certian number of bytes by enlarging it.
+
+
+
+
+
+
+
+ Sets/resets the break-on-error mode.
+ When the break-on-error mode is set, the default error handler issues a hardware exception,
+ which can make debugging more convenient.
+
+
+ the previous state
+
+
+
+
+
+
+
+
+
+
+
+ Set global logging level
+
+ logging level
+ previous logging level
+
+
+
+ Get global logging level
+
+ logging level
+
+
+
+ Computes absolute value of each matrix element
+
+ matrix
+
+
+
+
+ Computes absolute value of each matrix element
+
+ matrix expression
+
+
+
+
+ Equivalence predicate (a boolean function of two arguments).
+ The predicate returns true when the elements are certainly in the same class, and returns false if they may or may not be in the same class.
+
+
+
+
+
+
+
+
+ Splits an element set into equivalency classes.
+ Consider using GroupBy of Linq instead.
+
+
+ Set of elements stored as a vector.
+ Output vector of labels. It contains as many elements as vec. Each label labels[i] is a 0-based cluster index of vec[i] .
+ Equivalence predicate (a boolean function of two arguments).
+ The predicate returns true when the elements are certainly in the same class, and returns false if they may or may not be in the same class.
+
+
+
+
+ Detects corners using the FAST algorithm
+
+ grayscale image where keypoints (corners) are detected.
+ threshold on difference between intensity of the central pixel
+ and pixels of a circle around this pixel.
+ if true, non-maximum suppression is applied to
+ detected corners (keypoints).
+ keypoints detected on the image.
+
+
+
+ Detects corners using the FAST algorithm
+
+ grayscale image where keypoints (corners) are detected.
+ threshold on difference between intensity of the central pixel
+ and pixels of a circle around this pixel.
+ if true, non-maximum suppression is applied to
+ detected corners (keypoints).
+ one of the three neighborhoods as defined in the paper
+ keypoints detected on the image.
+
+
+
+ Detects corners using the AGAST algorithm
+
+ grayscale image where keypoints (corners) are detected.
+ threshold on difference between intensity of the central pixel
+ and pixels of a circle around this pixel.
+ if true, non-maximum suppression is applied to
+ detected corners (keypoints).
+ one of the four neighborhoods as defined in the paper
+ keypoints detected on the image.
+
+
+
+ Draw keypoints.
+
+ Source image.
+ Keypoints from the source image.
+ Output image. Its content depends on the flags value defining what is drawn in the output image. See possible flags bit values below.
+ Color of keypoints.
+ Flags setting drawing features. Possible flags bit values are defined by DrawMatchesFlags.
+
+
+
+ Draws the found matches of keypoints from two images.
+
+ First source image.
+ Keypoints from the first source image.
+ Second source image.
+ Keypoints from the second source image.
+ Matches from the first image to the second one, which means that keypoints1[i]
+ has a corresponding point in keypoints2[matches[i]] .
+ Output image. Its content depends on the flags value defining what is drawn in the
+ output image. See possible flags bit values below.
+ Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1),
+ the color is generated randomly.
+ Color of single keypoints (circles), which means that keypoints do not
+ have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.
+ Mask determining which matches are drawn. If the mask is empty, all matches are drawn.
+ Flags setting drawing features. Possible flags bit values are defined by DrawMatchesFlags.
+
+
+
+ Draws the found matches of keypoints from two images.
+
+ First source image.
+ Keypoints from the first source image.
+ Second source image.
+ Keypoints from the second source image.
+ Matches from the first image to the second one, which means that keypoints1[i]
+ has a corresponding point in keypoints2[matches[i]] .
+ Output image. Its content depends on the flags value defining what is drawn in the
+ output image. See possible flags bit values below.
+ Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1),
+ the color is generated randomly.
+ Color of single keypoints (circles), which means that keypoints do not
+ have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.
+ Mask determining which matches are drawn. If the mask is empty, all matches are drawn.
+ Flags setting drawing features. Possible flags bit values are defined by DrawMatchesFlags.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ recallPrecisionCurve
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a window.
+
+ Name of the window in the window caption that may be used as a window identifier.
+
+ Flags of the window. Currently the only supported flag is CV WINDOW AUTOSIZE. If this is set,
+ the window size is automatically adjusted to fit the displayed image (see imshow ), and the user can not change the window size manually.
+
+
+
+
+ Destroys the specified window.
+
+
+
+
+
+ Destroys all of the HighGUI windows.
+
+
+
+
+
+
+
+
+
+
+ Waits for a pressed key.
+ Similar to #waitKey, but returns full key code.
+ Key code is implementation specific and depends on used backend: QT/GTK/Win32/etc
+
+ Delay in milliseconds. 0 is the special value that means ”forever”
+ Returns the code of the pressed key or -1 if no key was pressed before the specified time had elapsed.
+
+
+
+ Waits for a pressed key.
+
+ Delay in milliseconds. 0 is the special value that means ”forever”
+ Returns the code of the pressed key or -1 if no key was pressed before the specified time had elapsed.
+
+
+
+ Displays the image in the specified window
+
+ Name of the window.
+ Image to be shown.
+
+
+
+ Resizes window to the specified size
+
+ Window name
+ The new window width
+ The new window height
+
+
+
+ Resizes window to the specified size
+
+ Window name
+ The new window size
+
+
+
+ Moves window to the specified position
+
+ Window name
+ The new x-coordinate of the window
+ The new y-coordinate of the window
+
+
+
+ Changes parameters of a window dynamically.
+
+ Name of the window.
+ Window property to retrieve.
+ New value of the window property.
+
+
+
+ Updates window title
+
+ Name of the window
+ New title
+
+
+
+ Provides parameters of a window.
+
+ Name of the window.
+ Window property to retrieve.
+
+
+
+
+ Provides rectangle of image in the window.
+ The function getWindowImageRect returns the client screen coordinates, width and height of the image rendering area.
+
+ Name of the window.
+
+
+
+
+ Sets the callback function for mouse events occuring within the specified window.
+
+ Name of the window.
+ Reference to the function to be called every time mouse event occurs in the specified window.
+
+
+
+
+ Gets the mouse-wheel motion delta, when handling mouse-wheel events cv::EVENT_MOUSEWHEEL and cv::EVENT_MOUSEHWHEEL.
+
+ For regular mice with a scroll-wheel, delta will be a multiple of 120. The value 120 corresponds to
+ a one notch rotation of the wheel or the threshold for action to be taken and one such action should
+ occur for each delta.Some high-precision mice with higher-resolution freely-rotating wheels may
+ generate smaller values.
+
+ For cv::EVENT_MOUSEWHEEL positive and negative values mean forward and backward scrolling,
+ respectively.For cv::EVENT_MOUSEHWHEEL, where available, positive and negative values mean right and
+ left scrolling, respectively.
+
+ The mouse callback flags parameter.
+
+
+
+
+ Selects ROI on the given image.
+ Function creates a window and allows user to select a ROI using mouse.
+ Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).
+
+ name of the window where selection process will be shown.
+ image to select a ROI.
+ if true crosshair of selection rectangle will be shown.
+ if true center of selection will match initial mouse position. In opposite case a corner of
+ selection rectangle will correspond to the initial mouse position.
+ selected ROI or empty rect if selection canceled.
+
+
+
+ Selects ROI on the given image.
+ Function creates a window and allows user to select a ROI using mouse.
+ Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).
+
+ image to select a ROI.
+ if true crosshair of selection rectangle will be shown.
+ if true center of selection will match initial mouse position. In opposite case a corner of
+ selection rectangle will correspond to the initial mouse position.
+ selected ROI or empty rect if selection canceled.
+
+
+
+ Selects ROIs on the given image.
+ Function creates a window and allows user to select a ROIs using mouse.
+ Controls: use `space` or `enter` to finish current selection and start a new one,
+ use `esc` to terminate multiple ROI selection process.
+
+ name of the window where selection process will be shown.
+ image to select a ROI.
+ if true crosshair of selection rectangle will be shown.
+ if true center of selection will match initial mouse position. In opposite case a corner of
+ selection rectangle will correspond to the initial mouse position.
+ selected ROIs.
+
+
+
+ Creates a trackbar and attaches it to the specified window.
+ The function createTrackbar creates a trackbar(a slider or range control) with the specified name
+ and range, assigns a variable value to be a position synchronized with the trackbar and specifies
+ the callback function onChange to be called on the trackbar position change.The created trackbar is
+ displayed in the specified window winName.
+
+ Name of the created trackbar.
+ Name of the window that will be used as a parent of the created trackbar.
+ Optional pointer to an integer variable whose value reflects the position of the slider.Upon creation,
+ the slider position is defined by this variable.
+ Maximal position of the slider. The minimal position is always 0.
+ Pointer to the function to be called every time the slider changes position.
+ This function should be prototyped as void Foo(int, void\*); , where the first parameter is the trackbar
+ position and the second parameter is the user data(see the next parameter). If the callback is
+ the NULL pointer, no callbacks are called, but only value is updated.
+ User data that is passed as is to the callback. It can be used to handle trackbar events without using global variables.
+
+
+
+
+ Creates a trackbar and attaches it to the specified window.
+ The function createTrackbar creates a trackbar(a slider or range control) with the specified name
+ and range, assigns a variable value to be a position synchronized with the trackbar and specifies
+ the callback function onChange to be called on the trackbar position change.The created trackbar is
+ displayed in the specified window winName.
+
+ Name of the created trackbar.
+ Name of the window that will be used as a parent of the created trackbar.
+ Maximal position of the slider. The minimal position is always 0.
+ Pointer to the function to be called every time the slider changes position.
+ This function should be prototyped as void Foo(int, void\*); , where the first parameter is the trackbar
+ position and the second parameter is the user data(see the next parameter). If the callback is
+ the NULL pointer, no callbacks are called, but only value is updated.
+ User data that is passed as is to the callback. It can be used to handle trackbar events without using global variables.
+
+
+
+
+ Returns the trackbar position.
+
+ Name of the trackbar.
+ Name of the window that is the parent of the trackbar.
+ trackbar position
+
+
+
+ Sets the trackbar position.
+
+ Name of the trackbar.
+ Name of the window that is the parent of trackbar.
+ New position.
+
+
+
+ Sets the trackbar maximum position.
+ The function sets the maximum position of the specified trackbar in the specified window.
+
+ Name of the trackbar.
+ Name of the window that is the parent of trackbar.
+ New maximum position.
+
+
+
+ Sets the trackbar minimum position.
+ The function sets the minimum position of the specified trackbar in the specified window.
+
+ Name of the trackbar.
+ Name of the window that is the parent of trackbar.
+ New minimum position.
+
+
+
+ get native window handle (HWND in case of Win32 and Widget in case of X Window)
+
+
+
+
+
+ Loads an image from a file.
+
+ Name of file to be loaded.
+ Specifies color type of the loaded image
+
+
+
+
+ Loads a multi-page image from a file.
+
+ Name of file to be loaded.
+ A vector of Mat objects holding each page, if more than one.
+ Flag that can take values of @ref cv::ImreadModes, default with IMREAD_ANYCOLOR.
+
+
+
+
+ Saves an image to a specified file.
+
+ Name of the file.
+ Image to be saved.
+ Format-specific save parameters encoded as pairs
+
+
+
+
+ Saves an image to a specified file.
+
+ Name of the file.
+ Image to be saved.
+ Format-specific save parameters encoded as pairs
+
+
+
+
+ Saves an image to a specified file.
+
+ Name of the file.
+ Image to be saved.
+ Format-specific save parameters encoded as pairs
+
+
+
+
+ Saves an image to a specified file.
+
+ Name of the file.
+ Image to be saved.
+ Format-specific save parameters encoded as pairs
+
+
+
+
+ Reads image from the specified buffer in memory.
+
+ The input array of vector of bytes.
+ The same flags as in imread
+
+
+
+
+ Reads image from the specified buffer in memory.
+
+ The input array of vector of bytes.
+ The same flags as in imread
+
+
+
+
+ Reads image from the specified buffer in memory.
+
+ The input array of vector of bytes.
+ The same flags as in imread
+
+
+
+
+ Reads image from the specified buffer in memory.
+
+ The input slice of bytes.
+ The same flags as in imread
+
+
+
+
+ Compresses the image and stores it in the memory buffer
+
+ The file extension that defines the output format
+ The image to be written
+ Output buffer resized to fit the compressed image.
+ Format-specific parameters.
+
+
+
+ Compresses the image and stores it in the memory buffer
+
+ The file extension that defines the output format
+ The image to be written
+ Output buffer resized to fit the compressed image.
+ Format-specific parameters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns Gaussian filter coefficients.
+
+ Aperture size. It should be odd and positive.
+ Gaussian standard deviation.
+ If it is non-positive, it is computed from ksize as `sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8`.
+ Type of filter coefficients. It can be CV_32F or CV_64F.
+
+
+
+
+ Returns filter coefficients for computing spatial image derivatives.
+
+ Output matrix of row filter coefficients. It has the type ktype.
+ Output matrix of column filter coefficients. It has the type ktype.
+ Derivative order in respect of x.
+ Derivative order in respect of y.
+ Aperture size. It can be CV_SCHARR, 1, 3, 5, or 7.
+ Flag indicating whether to normalize (scale down) the filter coefficients or not.
+ Theoretically, the coefficients should have the denominator \f$=2^{ksize*2-dx-dy-2}\f$.
+ If you are going to filter floating-point images, you are likely to use the normalized kernels.
+ But if you compute derivatives of an 8-bit image, store the results in a 16-bit image,
+ and wish to preserve all the fractional bits, you may want to set normalize = false.
+ Type of filter coefficients. It can be CV_32f or CV_64F.
+
+
+
+ Returns Gabor filter coefficients.
+
+
+ For more details about gabor filter equations and parameters, see: https://en.wikipedia.org/wiki/Gabor_filter
+
+ Size of the filter returned.
+ Standard deviation of the gaussian envelope.
+ Orientation of the normal to the parallel stripes of a Gabor function.
+ Wavelength of the sinusoidal factor.
+ Spatial aspect ratio.
+ Phase offset.
+ Type of filter coefficients. It can be CV_32F or CV_64F.
+
+
+
+
+ Returns a structuring element of the specified size and shape for morphological operations.
+ The function constructs and returns the structuring element that can be further passed to erode,
+ dilate or morphologyEx.But you can also construct an arbitrary binary mask yourself and use it as the structuring element.
+
+ Element shape that could be one of MorphShapes
+ Size of the structuring element.
+
+
+
+
+ Returns a structuring element of the specified size and shape for morphological operations.
+ The function constructs and returns the structuring element that can be further passed to erode,
+ dilate or morphologyEx.But you can also construct an arbitrary binary mask yourself and use it as the structuring element.
+
+ Element shape that could be one of MorphShapes
+ Size of the structuring element.
+ Anchor position within the element. The default value (−1,−1) means that the anchor is at the center.
+ Note that only the shape of a cross-shaped element depends on the anchor position.
+ In other cases the anchor just regulates how much the result of the morphological operation is shifted.
+
+
+
+
+ Smoothes image using median filter
+
+ The source 1-, 3- or 4-channel image.
+ When ksize is 3 or 5, the image depth should be CV_8U , CV_16U or CV_32F.
+ For larger aperture sizes it can only be CV_8U
+ The destination array; will have the same size and the same type as src
+ The aperture linear size. It must be odd and more than 1, i.e. 3, 5, 7 ...
+
+
+
+ Blurs an image using a Gaussian filter.
+
+ input image; the image can have any number of channels, which are processed independently,
+ but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.
+ output image of the same size and type as src.
+ Gaussian kernel size. ksize.width and ksize.height can differ but they both must be positive and odd.
+ Or, they can be zero’s and then they are computed from sigma* .
+ Gaussian kernel standard deviation in X direction.
+ Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be equal to sigmaX,
+ if both sigmas are zeros, they are computed from ksize.width and ksize.height,
+ respectively (see getGaussianKernel() for details); to fully control the result
+ regardless of possible future modifications of all this semantics, it is recommended to specify all of ksize, sigmaX, and sigmaY.
+ pixel extrapolation method
+
+
+
+ Applies bilateral filter to the image
+
+ The source 8-bit or floating-point, 1-channel or 3-channel image
+ The destination image; will have the same size and the same type as src
+ The diameter of each pixel neighborhood, that is used during filtering.
+ If it is non-positive, it's computed from sigmaSpace
+ Filter sigma in the color space.
+ Larger value of the parameter means that farther colors within the pixel neighborhood
+ will be mixed together, resulting in larger areas of semi-equal color
+ Filter sigma in the coordinate space.
+ Larger value of the parameter means that farther pixels will influence each other
+ (as long as their colors are close enough; see sigmaColor). Then d>0 , it specifies
+ the neighborhood size regardless of sigmaSpace, otherwise d is proportional to sigmaSpace
+
+
+
+
+ Smoothes image using box filter
+
+ The source image
+ The destination image; will have the same size and the same type as src
+
+ The smoothing kernel size
+ The anchor point. The default value Point(-1,-1) means that the anchor is at the kernel center
+ Indicates, whether the kernel is normalized by its area or not
+ The border mode used to extrapolate pixels outside of the image
+
+
+
+ Calculates the normalized sum of squares of the pixel values overlapping the filter.
+
+ For every pixel f(x, y) in the source image, the function calculates the sum of squares of those neighboring
+ pixel values which overlap the filter placed over the pixel f(x, y).
+
+ The unnormalized square box filter can be useful in computing local image statistics such as the the local
+ variance and standard deviation around the neighborhood of a pixel.
+
+
+
+
+
+
+
+
+
+
+
+ Smoothes image using normalized box filter
+
+ The source image
+ The destination image; will have the same size and the same type as src
+ The smoothing kernel size
+ The anchor point. The default value Point(-1,-1) means that the anchor is at the kernel center
+ The border mode used to extrapolate pixels outside of the image
+
+
+
+ Convolves an image with the kernel
+
+ The source image
+ The destination image. It will have the same size and the same number of channels as src
+ The desired depth of the destination image. If it is negative, it will be the same as src.depth()
+ Convolution kernel (or rather a correlation kernel),
+ a single-channel floating point matrix. If you want to apply different kernels to
+ different channels, split the image into separate color planes using split() and process them individually
+ The anchor of the kernel that indicates the relative position of
+ a filtered point within the kernel. The anchor should lie within the kernel.
+ The special default value (-1,-1) means that the anchor is at the kernel center
+ The optional value added to the filtered pixels before storing them in dst
+ The pixel extrapolation method
+
+
+
+ Applies separable linear filter to an image
+
+ The source image
+ The destination image; will have the same size and the same number of channels as src
+ The destination image depth
+ The coefficients for filtering each row
+ The coefficients for filtering each column
+ The anchor position within the kernel; The default value (-1, 1) means that the anchor is at the kernel center
+ The value added to the filtered results before storing them
+ The pixel extrapolation method
+
+
+
+ Calculates the first, second, third or mixed image derivatives using an extended Sobel operator
+
+ The source image
+ The destination image; will have the same size and the same number of channels as src
+ The destination image depth
+ Order of the derivative x
+ Order of the derivative y
+ Size of the extended Sobel kernel, must be 1, 3, 5 or 7
+ The optional scale factor for the computed derivative values (by default, no scaling is applied
+ The optional delta value, added to the results prior to storing them in dst
+ The pixel extrapolation method
+
+
+
+ Calculates the first order image derivative in both x and y using a Sobel operator
+
+ input image.
+ output image with first-order derivative in x.
+ output image with first-order derivative in y.
+ size of Sobel kernel. It must be 3.
+ pixel extrapolation method
+
+
+
+ Calculates the first x- or y- image derivative using Scharr operator
+
+ The source image
+ The destination image; will have the same size and the same number of channels as src
+ The destination image depth
+ Order of the derivative x
+ Order of the derivative y
+ The optional scale factor for the computed derivative values (by default, no scaling is applie
+ The optional delta value, added to the results prior to storing them in dst
+ The pixel extrapolation method
+
+
+
+ Calculates the Laplacian of an image
+
+ Source image
+ Destination image; will have the same size and the same number of channels as src
+ The desired depth of the destination image
+ The aperture size used to compute the second-derivative filters
+ The optional scale factor for the computed Laplacian values (by default, no scaling is applied
+ The optional delta value, added to the results prior to storing them in dst
+ The pixel extrapolation method
+
+
+
+ Finds edges in an image using Canny algorithm.
+
+ Single-channel 8-bit input image
+ The output edge map. It will have the same size and the same type as image
+ The first threshold for the hysteresis procedure
+ The second threshold for the hysteresis procedure
+ Aperture size for the Sobel operator [By default this is ApertureSize.Size3]
+ Indicates, whether the more accurate L2 norm should be used to compute the image gradient magnitude (true), or a faster default L1 norm is enough (false). [By default this is false]
+
+
+
+ Finds edges in an image using the Canny algorithm with custom image gradient.
+
+ 16-bit x derivative of input image (CV_16SC1 or CV_16SC3).
+ 16-bit y derivative of input image (same type as dx).
+ output edge map; single channels 8-bit image, which has the same size as image.
+ first threshold for the hysteresis procedure.
+ second threshold for the hysteresis procedure.
+ Indicates, whether the more accurate L2 norm should be used to compute the image gradient magnitude (true), or a faster default L1 norm is enough (false). [By default this is false]
+
+
+
+ Calculates the minimal eigenvalue of gradient matrices for corner detection.
+
+ Input single-channel 8-bit or floating-point image.
+ Image to store the minimal eigenvalues. It has the type CV_32FC1 and the same size as src .
+ Neighborhood size (see the details on #cornerEigenValsAndVecs ).
+ Aperture parameter for the Sobel operator.
+ Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.
+
+
+
+ Harris corner detector.
+
+ Input single-channel 8-bit or floating-point image.
+ Image to store the Harris detector responses.
+ It has the type CV_32FC1 and the same size as src.
+ Neighborhood size (see the details on #cornerEigenValsAndVecs ).
+ Aperture parameter for the Sobel operator.
+ Harris detector free parameter. See the formula above.
+ Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.
+
+
+
+ computes both eigenvalues and the eigenvectors of 2x2 derivative covariation matrix at each pixel. The output is stored as 6-channel matrix.
+
+
+
+
+
+
+
+
+
+ computes another complex cornerness criteria at each pixel
+
+
+
+
+
+
+
+
+ adjusts the corner locations with sub-pixel accuracy to maximize the certain cornerness criteria
+
+ Input image.
+ Initial coordinates of the input corners and refined coordinates provided for output.
+ Half of the side length of the search window.
+ Half of the size of the dead region in the middle of the search zone
+ over which the summation in the formula below is not done. It is used sometimes to avoid possible singularities
+ of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such a size.
+ Criteria for termination of the iterative process of corner refinement.
+ That is, the process of corner position refinement stops either after criteria.maxCount iterations
+ or when the corner position moves by less than criteria.epsilon on some iteration.
+
+
+
+
+ finds the strong enough corners where the cornerMinEigenVal() or cornerHarris() report the local maxima
+
+ Input 8-bit or floating-point 32-bit, single-channel image.
+ Maximum number of corners to return. If there are more corners than are found,
+ the strongest of them is returned.
+ Parameter characterizing the minimal accepted quality of image corners.
+ The parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue
+ or the Harris function response (see cornerHarris() ). The corners with the quality measure less than
+ the product are rejected. For example, if the best corner has the quality measure = 1500, and the qualityLevel=0.01,
+ then all the corners with the quality measure less than 15 are rejected.
+ Minimum possible Euclidean distance between the returned corners.
+ Optional region of interest. If the image is not empty
+ (it needs to have the type CV_8UC1 and the same size as image ), it specifies the region
+ in which the corners are detected.
+ Size of an average block for computing a derivative covariation matrix over each pixel neighborhood.
+ Parameter indicating whether to use a Harris detector
+ Free parameter of the Harris detector.
+ Output vector of detected corners.
+
+
+
+ Finds lines in a binary image using standard Hough transform.
+
+ The 8-bit, single-channel, binary source image. The image may be modified by the function
+ Distance resolution of the accumulator in pixels
+ Angle resolution of the accumulator in radians
+ The accumulator threshold parameter. Only those lines are returned that get enough votes ( > threshold )
+ For the multi-scale Hough transform it is the divisor for the distance resolution rho. [By default this is 0]
+ For the multi-scale Hough transform it is the divisor for the distance resolution theta. [By default this is 0]
+ The output vector of lines. Each line is represented by a two-element vector (rho, theta) .
+ rho is the distance from the coordinate origin (0,0) (top-left corner of the image) and theta is the line rotation angle in radians
+
+
+
+ Finds lines segments in a binary image using probabilistic Hough transform.
+
+
+ Distance resolution of the accumulator in pixels
+ Angle resolution of the accumulator in radians
+ The accumulator threshold parameter. Only those lines are returned that get enough votes ( > threshold )
+ The minimum line length. Line segments shorter than that will be rejected. [By default this is 0]
+ The maximum allowed gap between points on the same line to link them. [By default this is 0]
+ The output lines. Each line is represented by a 4-element vector (x1, y1, x2, y2)
+
+
+
+ Finds lines in a set of points using the standard Hough transform.
+ The function finds lines in a set of points using a modification of the Hough transform.
+
+ Input vector of points. Each vector must be encoded as a Point vector \f$(x,y)\f$. Type must be CV_32FC2 or CV_32SC2.
+ Output vector of found lines. Each vector is encoded as a vector<Vec3d>
+ Max count of hough lines.
+ Accumulator threshold parameter. Only those lines are returned that get enough votes
+ Minimum Distance value of the accumulator in pixels.
+ Maximum Distance value of the accumulator in pixels.
+ Distance resolution of the accumulator in pixels.
+ Minimum angle value of the accumulator in radians.
+ Maximum angle value of the accumulator in radians.
+ Angle resolution of the accumulator in radians.
+
+
+
+ Finds circles in a grayscale image using a Hough transform.
+
+ The 8-bit, single-channel, grayscale input image
+ The available methods are HoughMethods.Gradient and HoughMethods.GradientAlt
+ The inverse ratio of the accumulator resolution to the image resolution.
+ Minimum distance between the centers of the detected circles.
+ The first method-specific parameter. [By default this is 100]
+ The second method-specific parameter. [By default this is 100]
+ Minimum circle radius. [By default this is 0]
+ Maximum circle radius. [By default this is 0]
+ The output vector found circles. Each vector is encoded as 3-element floating-point vector (x, y, radius)
+
+
+
+ Default borderValue for Dilate/Erode
+
+
+
+
+
+ Dilates an image by using a specific structuring element.
+
+ The source image
+ The destination image. It will have the same size and the same type as src
+ The structuring element used for dilation. If element=new Mat() , a 3x3 rectangular structuring element is used
+ Position of the anchor within the element. The default value (-1, -1) means that the anchor is at the element center
+ The number of times dilation is applied. [By default this is 1]
+ The pixel extrapolation method. [By default this is BorderType.Constant]
+ The border value in case of a constant border. The default value has a special meaning. [By default this is CvCpp.MorphologyDefaultBorderValue()]
+
+
+
+ Erodes an image by using a specific structuring element.
+
+ The source image
+ The destination image. It will have the same size and the same type as src
+ The structuring element used for dilation. If element=new Mat(), a 3x3 rectangular structuring element is used
+ Position of the anchor within the element. The default value (-1, -1) means that the anchor is at the element center
+ The number of times erosion is applied
+ The pixel extrapolation method
+ The border value in case of a constant border. The default value has a special meaning. [By default this is CvCpp.MorphologyDefaultBorderValue()]
+
+
+
+ Performs advanced morphological transformations
+
+ Source image
+ Destination image. It will have the same size and the same type as src
+ Type of morphological operation
+ Structuring element
+ Position of the anchor within the element. The default value (-1, -1) means that the anchor is at the element center
+ Number of times erosion and dilation are applied. [By default this is 1]
+ The pixel extrapolation method. [By default this is BorderType.Constant]
+ The border value in case of a constant border. The default value has a special meaning. [By default this is CvCpp.MorphologyDefaultBorderValue()]
+
+
+
+ Resizes an image.
+
+ input image.
+ output image; it has the size dsize (when it is non-zero) or the size computed
+ from src.size(), fx, and fy; the type of dst is the same as of src.
+ output image size; if it equals zero, it is computed as:
+ dsize = Size(round(fx*src.cols), round(fy*src.rows))
+ Either dsize or both fx and fy must be non-zero.
+ scale factor along the horizontal axis; when it equals 0,
+ it is computed as: (double)dsize.width/src.cols
+ scale factor along the vertical axis; when it equals 0,
+ it is computed as: (double)dsize.height/src.rows
+ interpolation method
+
+
+
+ Applies an affine transformation to an image.
+
+ input image.
+ output image that has the size dsize and the same type as src.
+ 2x3 transformation matrix.
+ size of the output image.
+ combination of interpolation methods and the optional flag
+ WARP_INVERSE_MAP that means that M is the inverse transformation (dst -> src) .
+ pixel extrapolation method; when borderMode=BORDER_TRANSPARENT,
+ it means that the pixels in the destination image corresponding to the "outliers"
+ in the source image are not modified by the function.
+ value used in case of a constant border; by default, it is 0.
+
+
+
+ Applies a perspective transformation to an image.
+
+ input image.
+ output image that has the size dsize and the same type as src.
+ 3x3 transformation matrix.
+ size of the output image.
+ combination of interpolation methods (INTER_LINEAR or INTER_NEAREST)
+ and the optional flag WARP_INVERSE_MAP, that sets M as the inverse transformation (dst -> src).
+ pixel extrapolation method (BORDER_CONSTANT or BORDER_REPLICATE).
+ value used in case of a constant border; by default, it equals 0.
+
+
+
+ Applies a perspective transformation to an image.
+
+ input image.
+ output image that has the size dsize and the same type as src.
+ 3x3 transformation matrix.
+ size of the output image.
+ combination of interpolation methods (INTER_LINEAR or INTER_NEAREST)
+ and the optional flag WARP_INVERSE_MAP, that sets M as the inverse transformation (dst -> src).
+ pixel extrapolation method (BORDER_CONSTANT or BORDER_REPLICATE).
+ value used in case of a constant border; by default, it equals 0.
+
+
+
+ Applies a generic geometrical transformation to an image.
+
+ Source image.
+ Destination image. It has the same size as map1 and the same type as src
+ The first map of either (x,y) points or just x values having the type CV_16SC2, CV_32FC1, or CV_32FC2.
+ The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map if map1 is (x,y) points), respectively.
+ Interpolation method. The method INTER_AREA is not supported by this function.
+ Pixel extrapolation method. When borderMode=BORDER_TRANSPARENT,
+ it means that the pixels in the destination image that corresponds to the "outliers" in
+ the source image are not modified by the function.
+ Value used in case of a constant border. By default, it is 0.
+
+
+
+ Converts image transformation maps from one representation to another.
+
+ The first input map of type CV_16SC2 , CV_32FC1 , or CV_32FC2 .
+ The second input map of type CV_16UC1 , CV_32FC1 , or none (empty matrix), respectively.
+ The first output map that has the type dstmap1type and the same size as src.
+ The second output map.
+ Type of the first output map that should be CV_16SC2 , CV_32FC1 , or CV_32FC2 .
+ Flag indicating whether the fixed-point maps are used for the nearest-neighbor or for a more complex interpolation.
+
+
+
+ Calculates an affine matrix of 2D rotation.
+
+ Center of the rotation in the source image.
+ Rotation angle in degrees. Positive values mean counter-clockwise rotation (the coordinate origin is assumed to be the top-left corner).
+ Isotropic scale factor.
+
+
+
+
+ Inverts an affine transformation.
+
+ Original affine transformation.
+ Output reverse affine transformation.
+
+
+
+ Calculates a perspective transform from four pairs of the corresponding points.
+ The function calculates the 3×3 matrix of a perspective transform.
+
+ Coordinates of quadrangle vertices in the source image.
+ Coordinates of the corresponding quadrangle vertices in the destination image.
+
+
+
+
+ Calculates a perspective transform from four pairs of the corresponding points.
+ The function calculates the 3×3 matrix of a perspective transform.
+
+ Coordinates of quadrangle vertices in the source image.
+ Coordinates of the corresponding quadrangle vertices in the destination image.
+
+
+
+
+ Calculates an affine transform from three pairs of the corresponding points.
+ The function calculates the 2×3 matrix of an affine transform.
+
+ Coordinates of triangle vertices in the source image.
+ Coordinates of the corresponding triangle vertices in the destination image.
+
+
+
+
+ Calculates an affine transform from three pairs of the corresponding points.
+ The function calculates the 2×3 matrix of an affine transform.
+
+ Coordinates of triangle vertices in the source image.
+ Coordinates of the corresponding triangle vertices in the destination image.
+
+
+
+
+ Retrieves a pixel rectangle from an image with sub-pixel accuracy.
+
+ Source image.
+ Size of the extracted patch.
+ Floating point coordinates of the center of the extracted rectangle
+ within the source image. The center must be inside the image.
+ Extracted patch that has the size patchSize and the same number of channels as src .
+ Depth of the extracted pixels. By default, they have the same depth as src.
+
+
+
+ Remaps an image to log-polar space.
+
+ Source image
+ Destination image
+ The transformation center; where the output precision is maximal
+ Magnitude scale parameter.
+ A combination of interpolation methods, see cv::InterpolationFlags
+
+
+
+ Remaps an image to polar space.
+
+ Source image
+ Destination image
+ The transformation center
+ Inverse magnitude scale parameter
+ A combination of interpolation methods, see cv::InterpolationFlags
+
+
+
+ Remaps an image to polar or semilog-polar coordinates space.
+
+
+ - The function can not operate in-place.
+ - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.
+ - This function uses #remap. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.
+
+ Source image.
+ Destination image. It will have same type as src.
+ The destination image size (see description for valid options).
+ The transformation center.
+ The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.
+ interpolation methods.
+ interpolation methods.
+
+
+
+ Calculates the integral of an image.
+ The function calculates one or more integral images for the source image.
+
+
+
+
+
+
+
+ Calculates the integral of an image.
+ The function calculates one or more integral images for the source image.
+
+
+
+
+
+
+
+
+ Calculates the integral of an image.
+ The function calculates one or more integral images for the source image.
+
+ input image as W×H, 8-bit or floating-point (32f or 64f).
+ integral image as (W+1)×(H+1) , 32-bit integer or floating-point (32f or 64f).
+ integral image for squared pixel values; it is (W+1)×(H+1), double-precision floating-point (64f) array.
+ integral for the image rotated by 45 degrees; it is (W+1)×(H+1) array with the same data type as sum.
+ desired depth of the integral and the tilted integral images, CV_32S, CV_32F, or CV_64F.
+ desired depth of the integral image of squared pixel values, CV_32F or CV_64F.
+
+
+
+ Adds an image to the accumulator.
+
+ Input image as 1- or 3-channel, 8-bit or 32-bit floating point.
+ Accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point.
+ Optional operation mask.
+
+
+
+ Adds the square of a source image to the accumulator.
+
+ Input image as 1- or 3-channel, 8-bit or 32-bit floating point.
+ Accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point.
+ Optional operation mask.
+
+
+
+ Adds the per-element product of two input images to the accumulator.
+
+ First input image, 1- or 3-channel, 8-bit or 32-bit floating point.
+ Second input image of the same type and the same size as src1
+ Accumulator with the same number of channels as input images, 32-bit or 64-bit floating-point.
+ Optional operation mask.
+
+
+
+ Updates a running average.
+
+ Input image as 1- or 3-channel, 8-bit or 32-bit floating point.
+ Accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point.
+ Weight of the input image.
+ Optional operation mask.
+
+
+
+ The function is used to detect translational shifts that occur between two images.
+
+ The operation takes advantage of the Fourier shift theorem for detecting the translational shift in
+ the frequency domain.It can be used for fast image registration as well as motion estimation.
+ For more information please see http://en.wikipedia.org/wiki/Phase_correlation.
+
+ Calculates the cross-power spectrum of two supplied source arrays. The arrays are padded if needed with getOptimalDFTSize.
+
+ Source floating point array (CV_32FC1 or CV_64FC1)
+ Source floating point array (CV_32FC1 or CV_64FC1)
+ Floating point array with windowing coefficients to reduce edge effects (optional).
+ Signal power within the 5x5 centroid around the peak, between 0 and 1 (optional).
+ detected phase shift(sub-pixel) between the two arrays.
+
+
+
+ Computes a Hanning window coefficients in two dimensions.
+
+ Destination array to place Hann coefficients in
+ The window size specifications
+ Created array type
+
+
+
+ Applies a fixed-level threshold to each array element.
+
+ input array (single-channel, 8-bit or 32-bit floating point).
+ output array of the same size and type as src.
+ threshold value.
+ maximum value to use with the THRESH_BINARY and THRESH_BINARY_INV thresholding types.
+ thresholding type (see the details below).
+ the computed threshold value when type == OTSU
+
+
+
+ Applies an adaptive threshold to an array.
+
+ Source 8-bit single-channel image.
+ Destination image of the same size and the same type as src .
+ Non-zero value assigned to the pixels for which the condition is satisfied. See the details below.
+ Adaptive thresholding algorithm to use, ADAPTIVE_THRESH_MEAN_C or ADAPTIVE_THRESH_GAUSSIAN_C .
+ Thresholding type that must be either THRESH_BINARY or THRESH_BINARY_INV .
+ Size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, and so on.
+ Constant subtracted from the mean or weighted mean (see the details below).
+ Normally, it is positive but may be zero or negative as well.
+
+
+
+ Blurs an image and downsamples it.
+
+ input image.
+ output image; it has the specified size and the same type as src.
+ size of the output image; by default, it is computed as Size((src.cols+1)/2
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Upsamples an image and then blurs it.
+
+ input image.
+ output image. It has the specified size and the same type as src.
+ size of the output image; by default, it is computed as Size(src.cols*2, (src.rows*2)
+
+
+
+
+ computes the joint dense histogram for a set of images.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ computes the joint dense histogram for a set of images.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ computes the joint dense histogram for a set of images.
+
+
+
+
+
+
+
+
+
+
+ compares two histograms stored in dense arrays
+
+ The first compared histogram
+ The second compared histogram of the same size as h1
+ The comparison method
+
+
+
+
+ normalizes the grayscale image brightness and contrast by normalizing its histogram
+
+ The source 8-bit single channel image
+ The destination image; will have the same size and the same type as src
+
+
+
+ Creates a predefined CLAHE object
+
+
+
+
+
+
+
+ Computes the "minimal work" distance between two weighted point configurations.
+
+ The function computes the earth mover distance and/or a lower boundary of the distance between the
+ two weighted point configurations.One of the applications described in @cite RubnerSept98,
+ @cite Rubner2000 is multi-dimensional histogram comparison for image retrieval.EMD is a transportation
+ problem that is solved using some modification of a simplex algorithm, thus the complexity is
+ exponential in the worst case, though, on average it is much faster.In the case of a real metric
+ the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used
+ to determine roughly whether the two signatures are far enough so that they cannot relate to the same object.
+
+ First signature, a \f$\texttt{size1}\times \texttt{dims}+1\f$ floating-point matrix.
+ Each row stores the point weight followed by the point coordinates.The matrix is allowed to have
+ a single column(weights only) if the user-defined cost matrix is used.The weights must be non-negative
+ and have at least one non-zero value.
+ Second signature of the same format as signature1 , though the number of rows
+ may be different.The total weights may be different.In this case an extra "dummy" point is added
+ to either signature1 or signature2. The weights must be non-negative and have at least one non-zero value.
+ Used metric.
+
+
+
+
+ Computes the "minimal work" distance between two weighted point configurations.
+
+ The function computes the earth mover distance and/or a lower boundary of the distance between the
+ two weighted point configurations.One of the applications described in @cite RubnerSept98,
+ @cite Rubner2000 is multi-dimensional histogram comparison for image retrieval.EMD is a transportation
+ problem that is solved using some modification of a simplex algorithm, thus the complexity is
+ exponential in the worst case, though, on average it is much faster.In the case of a real metric
+ the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used
+ to determine roughly whether the two signatures are far enough so that they cannot relate to the same object.
+
+ First signature, a \f$\texttt{size1}\times \texttt{dims}+1\f$ floating-point matrix.
+ Each row stores the point weight followed by the point coordinates.The matrix is allowed to have
+ a single column(weights only) if the user-defined cost matrix is used.The weights must be non-negative
+ and have at least one non-zero value.
+ Second signature of the same format as signature1 , though the number of rows
+ may be different.The total weights may be different.In this case an extra "dummy" point is added
+ to either signature1 or signature2. The weights must be non-negative and have at least one non-zero value.
+ Used metric.
+ User-defined size1 x size2 cost matrix. Also, if a cost matrix
+ is used, lower boundary lowerBound cannot be calculated because it needs a metric function.
+
+
+
+
+ Computes the "minimal work" distance between two weighted point configurations.
+
+ The function computes the earth mover distance and/or a lower boundary of the distance between the
+ two weighted point configurations.One of the applications described in @cite RubnerSept98,
+ @cite Rubner2000 is multi-dimensional histogram comparison for image retrieval.EMD is a transportation
+ problem that is solved using some modification of a simplex algorithm, thus the complexity is
+ exponential in the worst case, though, on average it is much faster.In the case of a real metric
+ the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used
+ to determine roughly whether the two signatures are far enough so that they cannot relate to the same object.
+
+ First signature, a \f$\texttt{size1}\times \texttt{dims}+1\f$ floating-point matrix.
+ Each row stores the point weight followed by the point coordinates.The matrix is allowed to have
+ a single column(weights only) if the user-defined cost matrix is used.The weights must be non-negative
+ and have at least one non-zero value.
+ Second signature of the same format as signature1 , though the number of rows
+ may be different.The total weights may be different.In this case an extra "dummy" point is added
+ to either signature1 or signature2. The weights must be non-negative and have at least one non-zero value.
+ Used metric.
+ User-defined size1 x size2 cost matrix. Also, if a cost matrix
+ is used, lower boundary lowerBound cannot be calculated because it needs a metric function.
+ Optional input/output parameter: lower boundary of a distance between the two
+ signatures that is a distance between mass centers.The lower boundary may not be calculated if
+ the user-defined cost matrix is used, the total weights of point configurations are not equal, or
+ if the signatures consist of weights only(the signature matrices have a single column). You ** must**
+ initialize \*lowerBound.If the calculated distance between mass centers is greater or equal to
+ \*lowerBound(it means that the signatures are far enough), the function does not calculate EMD.
+ In any case \*lowerBound is set to the calculated distance between mass centers on return.
+ Thus, if you want to calculate both distance between mass centers and EMD, \*lowerBound should be set to 0.
+ Resultant size1 x size2 flow matrix: flow[i,j] is a flow from i-th point of signature1
+ to j-th point of signature2.
+
+
+
+
+ Performs a marker-based image segmentation using the watershed algorithm.
+
+ Input 8-bit 3-channel image.
+ Input/output 32-bit single-channel image (map) of markers.
+ It should have the same size as image.
+
+
+
+ Performs initial step of meanshift segmentation of an image.
+
+ The source 8-bit, 3-channel image.
+ The destination image of the same format and the same size as the source.
+ The spatial window radius.
+ The color window radius.
+ Maximum level of the pyramid for the segmentation.
+ Termination criteria: when to stop meanshift iterations.
+
+
+
+ Segments the image using GrabCut algorithm
+
+ Input 8-bit 3-channel image.
+ Input/output 8-bit single-channel mask.
+ The mask is initialized by the function when mode is set to GC_INIT_WITH_RECT.
+ Its elements may have Cv2.GC_BGD / Cv2.GC_FGD / Cv2.GC_PR_BGD / Cv2.GC_PR_FGD
+ ROI containing a segmented object. The pixels outside of the ROI are
+ marked as "obvious background". The parameter is only used when mode==GC_INIT_WITH_RECT.
+ Temporary array for the background model. Do not modify it while you are processing the same image.
+ Temporary arrays for the foreground model. Do not modify it while you are processing the same image.
+ Number of iterations the algorithm should make before returning the result.
+ Note that the result can be refined with further calls with mode==GC_INIT_WITH_MASK or mode==GC_EVAL .
+ Operation mode that could be one of GrabCutFlag value.
+
+
+
+ Calculates the distance to the closest zero pixel for each pixel of the source image.
+
+ 8-bit, single-channel (binary) source image.
+ Output image with calculated distances. It is a 8-bit or 32-bit floating-point,
+ single-channel image of the same size as src.
+ Output 2D array of labels (the discrete Voronoi diagram). It has the type
+ CV_32SC1 and the same size as src.
+ Type of distance
+ Size of the distance transform mask, see #DistanceTransformMasks.
+ #DIST_MASK_PRECISE is not supported by this variant. In case of the #DIST_L1 or #DIST_C distance type,
+ the parameter is forced to 3 because a 3x3 mask gives the same result as 5x5 or any larger aperture.
+ Type of the label array to build
+
+
+
+ computes the distance transform map
+
+ 8-bit, single-channel (binary) source image.
+ Output image with calculated distances. It is a 8-bit or 32-bit floating-point,
+ single-channel image of the same size as src.
+ Type of distance
+ Size of the distance transform mask, see #DistanceTransformMasks. In case of the
+ #DIST_L1 or #DIST_C distance type, the parameter is forced to 3 because a 3x3 mask gives
+ the same result as 5x5 or any larger aperture.
+ Type of output image. It can be MatType.CV_8U or MatType.CV_32F.
+ Type CV_8U can be used only for the first variant of the function and distanceType == #DIST_L1.
+
+
+
+ Fills a connected component with the given color.
+
+ Input/output 1- or 3-channel, 8-bit, or floating-point image.
+ It is modified by the function unless the FLOODFILL_MASK_ONLY flag is set in the
+ second variant of the function. See the details below.
+ Starting point.
+ New value of the repainted domain pixels.
+
+
+
+
+ Fills a connected component with the given color.
+
+ Input/output 1- or 3-channel, 8-bit, or floating-point image.
+ It is modified by the function unless the FLOODFILL_MASK_ONLY flag is set in the
+ second variant of the function. See the details below.
+ Starting point.
+ New value of the repainted domain pixels.
+ Optional output parameter set by the function to the
+ minimum bounding rectangle of the repainted domain.
+ Maximal lower brightness/color difference between the currently
+ observed pixel and one of its neighbors belonging to the component, or a seed pixel
+ being added to the component.
+ Maximal upper brightness/color difference between the currently
+ observed pixel and one of its neighbors belonging to the component, or a seed pixel
+ being added to the component.
+ Operation flags. Lower bits contain a connectivity value,
+ 4 (default) or 8, used within the function. Connectivity determines which
+ neighbors of a pixel are considered. Using FloodFillFlags.MaskOnly will
+ fill in the mask using the grey value 255 (white).
+
+
+
+
+ Fills a connected component with the given color.
+
+ Input/output 1- or 3-channel, 8-bit, or floating-point image.
+ It is modified by the function unless the FLOODFILL_MASK_ONLY flag is set in the
+ second variant of the function. See the details below.
+ (For the second function only) Operation mask that should be a single-channel 8-bit image,
+ 2 pixels wider and 2 pixels taller. The function uses and updates the mask, so you take responsibility of
+ initializing the mask content. Flood-filling cannot go across non-zero pixels in the mask. For example,
+ an edge detector output can be used as a mask to stop filling at edges. It is possible to use the same mask
+ in multiple calls to the function to make sure the filled area does not overlap.
+ Starting point.
+ New value of the repainted domain pixels.
+
+
+
+
+ Fills a connected component with the given color.
+
+ Input/output 1- or 3-channel, 8-bit, or floating-point image.
+ It is modified by the function unless the FLOODFILL_MASK_ONLY flag is set in the
+ second variant of the function. See the details below.
+ (For the second function only) Operation mask that should be a single-channel 8-bit image,
+ 2 pixels wider and 2 pixels taller. The function uses and updates the mask, so you take responsibility of
+ initializing the mask content. Flood-filling cannot go across non-zero pixels in the mask. For example,
+ an edge detector output can be used as a mask to stop filling at edges. It is possible to use the same mask
+ in multiple calls to the function to make sure the filled area does not overlap.
+ Starting point.
+ New value of the repainted domain pixels.
+ Optional output parameter set by the function to the
+ minimum bounding rectangle of the repainted domain.
+ Maximal lower brightness/color difference between the currently
+ observed pixel and one of its neighbors belonging to the component, or a seed pixel
+ being added to the component.
+ Maximal upper brightness/color difference between the currently
+ observed pixel and one of its neighbors belonging to the component, or a seed pixel
+ being added to the component.
+ Operation flags. Lower bits contain a connectivity value,
+ 4 (default) or 8, used within the function. Connectivity determines which
+ neighbors of a pixel are considered. Using FloodFillFlags.MaskOnly will
+ fill in the mask using the grey value 255 (white).
+
+
+
+
+ Performs linear blending of two images:
+ dst(i,j) = weights1(i,j)*src1(i,j) + weights2(i,j)*src2(i,j)
+
+ It has a type of CV_8UC(n) or CV_32FC(n), where n is a positive integer.
+ It has the same type and size as src1.
+ It has a type of CV_32FC1 and the same size with src1.
+ It has a type of CV_32FC1 and the same size with src1.
+ It is created if it does not have the same size and type with src1.
+
+
+
+ Converts image from one color space to another
+
+ The source image, 8-bit unsigned, 16-bit unsigned or single-precision floating-point
+ The destination image; will have the same size and the same depth as src
+ The color space conversion code
+ The number of channels in the destination image; if the parameter is 0, the number of the channels will be derived automatically from src and the code
+
+
+
+ Converts an image from one color space to another where the source image is stored in two planes.
+ This function only supports YUV420 to RGB conversion as of now.
+
+ 8-bit image (#CV_8U) of the Y plane.
+ image containing interleaved U/V plane.
+ output image.
+ Specifies the type of conversion. It can take any of the following values:
+ - #COLOR_YUV2BGR_NV12
+ - #COLOR_YUV2RGB_NV12
+ - #COLOR_YUV2BGRA_NV12
+ - #COLOR_YUV2RGBA_NV12
+ - #COLOR_YUV2BGR_NV21
+ - #COLOR_YUV2RGB_NV21
+ - #COLOR_YUV2BGRA_NV21
+ - #COLOR_YUV2RGBA_NV21
+
+
+
+ main function for all demosaicing processes
+
+ input image: 8-bit unsigned or 16-bit unsigned.
+ output image of the same size and depth as src.
+ Color space conversion code (see the description below).
+ number of channels in the destination image; if the parameter is 0,
+ the number of the channels is derived automatically from src and code.
+
+ The function can do the following transformations:
+
+ - Demosaicing using bilinear interpolation
+
+ #COLOR_BayerBG2BGR , #COLOR_BayerGB2BGR , #COLOR_BayerRG2BGR , #COLOR_BayerGR2BGR
+ #COLOR_BayerBG2GRAY , #COLOR_BayerGB2GRAY , #COLOR_BayerRG2GRAY , #COLOR_BayerGR2GRAY
+
+ - Demosaicing using Variable Number of Gradients.
+
+ #COLOR_BayerBG2BGR_VNG , #COLOR_BayerGB2BGR_VNG , #COLOR_BayerRG2BGR_VNG , #COLOR_BayerGR2BGR_VNG
+
+ - Edge-Aware Demosaicing.
+
+ #COLOR_BayerBG2BGR_EA , #COLOR_BayerGB2BGR_EA , #COLOR_BayerRG2BGR_EA , #COLOR_BayerGR2BGR_EA
+
+ - Demosaicing with alpha channel
+
+ # COLOR_BayerBG2BGRA , #COLOR_BayerGB2BGRA , #COLOR_BayerRG2BGRA , #COLOR_BayerGR2BGRA
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ A raster image (single-channel, 8-bit or floating-point
+ 2D array) or an array ( 1xN or Nx1 ) of 2D points ( Point or Point2f )
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ A raster image (8-bit) 2D array
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ A raster image (floating-point) 2D array
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ Array of 2D points
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ Array of 2D points
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Computes the proximity map for the raster template and the image where the template is searched for
+
+ Image where the search is running; should be 8-bit or 32-bit floating-point
+ Searched template; must be not greater than the source image and have the same data type
+ A map of comparison results; will be single-channel 32-bit floating-point.
+ If image is WxH and templ is wxh then result will be (W-w+1) x (H-h+1).
+ Specifies the comparison method
+ Mask of searched template. It must have the same datatype and size with templ. It is not set by default.
+
+
+
+ Computes the connected components labeled image of boolean image.
+
+ image with 4 or 8 way connectivity - returns N, the total number of labels[0, N - 1] where 0
+ represents the background label.ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of pixels in
+ the source image.ccltype specifies the connected components labeling algorithm to use, currently
+ Grana (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes
+ for details.Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.
+ This function uses parallel version of both Grana and Wu's algorithms if at least one allowed
+ parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.
+
+ the 8-bit single-channel image to be labeled
+ destination labeled image
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ output image label type. Currently CV_32S and CV_16U are supported.
+ connected components algorithm type.
+
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ the image to be labeled
+ destination labeled image
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ The number of labels
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ the image to be labeled
+ destination labeled image
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ output image label type. Currently CV_32S and CV_16U are supported.
+ The number of labels
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ the image to be labeled
+ destination labeled rectangular array
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ The number of labels
+
+
+
+ computes the connected components labeled image of boolean image and also produces a statistics output for each label.
+
+ image with 4 or 8 way connectivity - returns N, the total number of labels[0, N - 1] where 0
+ represents the background label.ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of pixels in
+ the source image.ccltype specifies the connected components labeling algorithm to use, currently
+ Grana's (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes
+ for details.Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.
+ This function uses parallel version of both Grana and Wu's algorithms (statistics included) if at least one allowed
+ parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.
+
+ the 8-bit single-channel image to be labeled
+ destination labeled image
+ statistics output for each label, including the background label, see below for
+ available statistics.Statistics are accessed via stats(label, COLUMN) where COLUMN is one of #ConnectedComponentsTypes. The data type is CV_32S.
+ centroid output for each label, including the background label. Centroids are
+ accessed via centroids(label, 0) for x and centroids(label, 1) for y.The data type CV_64F.
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ output image label type. Currently CV_32S and CV_16U are supported.
+ connected components algorithm type.
+
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ the image to be labeled
+ destination labeled image
+ statistics output for each label, including the background label,
+ see below for available statistics. Statistics are accessed via stats(label, COLUMN)
+ where COLUMN is one of cv::ConnectedComponentsTypes
+ floating point centroid (x,y) output for each label,
+ including the background label
+ 8 or 4 for 8-way or 4-way connectivity respectively
+
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ the image to be labeled
+ destination labeled image
+ statistics output for each label, including the background label,
+ see below for available statistics. Statistics are accessed via stats(label, COLUMN)
+ where COLUMN is one of cv::ConnectedComponentsTypes
+ floating point centroid (x,y) output for each label,
+ including the background label
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ output image label type. Currently CV_32S and CV_16U are supported.
+
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ the image to be labeled
+ 8 or 4 for 8-way or 4-way connectivity respectively
+
+
+
+
+
+ Finds contours in a binary image.
+
+ Source, an 8-bit single-channel image. Non-zero pixels are treated as 1’s.
+ Zero pixels remain 0’s, so the image is treated as binary.
+ The function modifies the image while extracting the contours.
+ Detected contours. Each contour is stored as a vector of points.
+ Optional output vector, containing information about the image topology.
+ It has as many elements as the number of contours. For each i-th contour contours[i],
+ the members of the elements hierarchy[i] are set to 0-based indices in contours of the next
+ and previous contours at the same hierarchical level, the first child contour and the parent contour, respectively.
+ If for the contour i there are no next, previous, parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.
+ Contour retrieval mode
+ Contour approximation method
+ Optional offset by which every contour point is shifted.
+ This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context.
+
+
+
+ Finds contours in a binary image.
+
+ Source, an 8-bit single-channel image. Non-zero pixels are treated as 1’s.
+ Zero pixels remain 0’s, so the image is treated as binary.
+ The function modifies the image while extracting the contours.
+ Detected contours. Each contour is stored as a vector of points.
+ Optional output vector, containing information about the image topology.
+ It has as many elements as the number of contours. For each i-th contour contours[i],
+ the members of the elements hierarchy[i] are set to 0-based indices in contours of the next
+ and previous contours at the same hierarchical level, the first child contour and the parent contour, respectively.
+ If for the contour i there are no next, previous, parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.
+ Contour retrieval mode
+ Contour approximation method
+ Optional offset by which every contour point is shifted.
+ This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context.
+
+
+
+ Finds contours in a binary image.
+
+ Source, an 8-bit single-channel image. Non-zero pixels are treated as 1’s.
+ Zero pixels remain 0’s, so the image is treated as binary.
+ The function modifies the image while extracting the contours.
+ Contour retrieval mode
+ Contour approximation method
+ Optional offset by which every contour point is shifted.
+ This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context.
+ Detected contours. Each contour is stored as a vector of points.
+
+
+
+ Finds contours in a binary image.
+
+ Source, an 8-bit single-channel image. Non-zero pixels are treated as 1’s.
+ Zero pixels remain 0’s, so the image is treated as binary.
+ The function modifies the image while extracting the contours.
+ Contour retrieval mode
+ Contour approximation method
+ Optional offset by which every contour point is shifted.
+ This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context.
+ Detected contours. Each contour is stored as a vector of points.
+
+
+
+ Approximates contour or a curve using Douglas-Peucker algorithm
+
+ The polygon or curve to approximate.
+ Must be 1 x N or N x 1 matrix of type CV_32SC2 or CV_32FC2.
+ The result of the approximation;
+ The type should match the type of the input curve
+ Specifies the approximation accuracy.
+ This is the maximum distance between the original curve and its approximation.
+ The result of the approximation;
+ The type should match the type of the input curve
+
+
+
+ Approximates contour or a curve using Douglas-Peucker algorithm
+
+ The polygon or curve to approximate.
+ Specifies the approximation accuracy.
+ This is the maximum distance between the original curve and its approximation.
+ The result of the approximation;
+ The type should match the type of the input curve
+ The result of the approximation;
+ The type should match the type of the input curve
+
+
+
+ Approximates contour or a curve using Douglas-Peucker algorithm
+
+ The polygon or curve to approximate.
+ Specifies the approximation accuracy.
+ This is the maximum distance between the original curve and its approximation.
+ If true, the approximated curve is closed
+ (i.e. its first and last vertices are connected), otherwise it’s not
+ The result of the approximation;
+ The type should match the type of the input curve
+
+
+
+ Calculates a contour perimeter or a curve length.
+
+ The input vector of 2D points, represented by CV_32SC2 or CV_32FC2 matrix.
+ Indicates, whether the curve is closed or not.
+
+
+
+
+ Calculates a contour perimeter or a curve length.
+
+ The input vector of 2D points.
+ Indicates, whether the curve is closed or not.
+
+
+
+
+ Calculates a contour perimeter or a curve length.
+
+ The input vector of 2D points.
+ Indicates, whether the curve is closed or not.
+
+
+
+
+ Calculates the up-right bounding rectangle of a point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+ Minimal up-right bounding rectangle for the specified point set.
+
+
+
+ Calculates the up-right bounding rectangle of a point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+ Minimal up-right bounding rectangle for the specified point set.
+
+
+
+ Calculates the up-right bounding rectangle of a point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+ Minimal up-right bounding rectangle for the specified point set.
+
+
+
+ Calculates the contour area
+
+ The contour vertices, represented by CV_32SC2 or CV_32FC2 matrix
+
+
+
+
+
+ Calculates the contour area
+
+ The contour vertices, represented by CV_32SC2 or CV_32FC2 matrix
+
+
+
+
+
+ Calculates the contour area
+
+ The contour vertices, represented by CV_32SC2 or CV_32FC2 matrix
+
+
+
+
+
+ Finds the minimum area rotated rectangle enclosing a 2D point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+
+
+
+
+ Finds the minimum area rotated rectangle enclosing a 2D point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+
+
+
+
+ Finds the minimum area rotated rectangle enclosing a 2D point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+
+
+
+
+ Finds the four vertices of a rotated rect. Useful to draw the rotated rectangle.
+
+ The function finds the four vertices of a rotated rectangle.This function is useful to draw the
+ rectangle.In C++, instead of using this function, you can directly use RotatedRect::points method. Please
+ visit the @ref tutorial_bounding_rotated_ellipses "tutorial on Creating Bounding rotated boxes and ellipses for contours" for more information.
+
+ The input rotated rectangle. It may be the output of
+ The output array of four vertices of rectangles.
+
+
+
+
+ Finds the four vertices of a rotated rect. Useful to draw the rotated rectangle.
+
+ The function finds the four vertices of a rotated rectangle.This function is useful to draw the
+ rectangle.In C++, instead of using this function, you can directly use RotatedRect::points method. Please
+ visit the @ref tutorial_bounding_rotated_ellipses "tutorial on Creating Bounding rotated boxes and ellipses for contours" for more information.
+
+ The input rotated rectangle. It may be the output of
+ The output array of four vertices of rectangles.
+
+
+
+ Finds the minimum area circle enclosing a 2D point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+ The output center of the circle
+ The output radius of the circle
+
+
+
+ Finds the minimum area circle enclosing a 2D point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+ The output center of the circle
+ The output radius of the circle
+
+
+
+ Finds the minimum area circle enclosing a 2D point set.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+ The output center of the circle
+ The output radius of the circle
+
+
+
+ Finds a triangle of minimum area enclosing a 2D point set and returns its area.
+
+ Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector or Mat
+ Output vector of three 2D points defining the vertices of the triangle. The depth
+ Triangle area
+
+
+
+ Finds a triangle of minimum area enclosing a 2D point set and returns its area.
+
+ Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector or Mat
+ Output vector of three 2D points defining the vertices of the triangle. The depth
+ Triangle area
+
+
+
+ Finds a triangle of minimum area enclosing a 2D point set and returns its area.
+
+ Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector or Mat
+ Output vector of three 2D points defining the vertices of the triangle. The depth
+ Triangle area
+
+
+
+ Compares two shapes.
+
+ First contour or grayscale image.
+ Second contour or grayscale image.
+ Comparison method
+ Method-specific parameter (not supported now)
+
+
+
+
+ Compares two shapes.
+
+ First contour or grayscale image.
+ Second contour or grayscale image.
+ Comparison method
+ Method-specific parameter (not supported now)
+
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix
+ The output convex hull. It is either a vector of points that form the
+ hull (must have the same type as the input points), or a vector of 0-based point
+ indices of the hull points in the original array (since the set of convex hull
+ points is a subset of the original point set).
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+ The output convex hull. It is a vector of points that form
+ the hull (must have the same type as the input points).
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+ The output convex hull. It is a vector of points that form
+ the hull (must have the same type as the input points).
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+ The output convex hull. It is a vector of 0-based point indices of the
+ hull points in the original array (since the set of convex hull points is a subset of the original point set).
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ The input 2D point set, represented by CV_32SC2 or CV_32FC2 matrix
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+ The output convex hull. It is a vector of 0-based point indices of the
+ hull points in the original array (since the set of convex hull points is a subset of the original point set).
+
+
+
+ Computes the contour convexity defects
+
+ Input contour.
+ Convex hull obtained using convexHull() that
+ should contain indices of the contour points that make the hull.
+
+ The output vector of convexity defects.
+ Each convexity defect is represented as 4-element integer vector
+ (a.k.a. cv::Vec4i): (start_index, end_index, farthest_pt_index, fixpt_depth),
+ where indices are 0-based indices in the original contour of the convexity defect beginning,
+ end and the farthest point, and fixpt_depth is fixed-point approximation
+ (with 8 fractional bits) of the distance between the farthest contour point and the hull.
+ That is, to get the floating-point value of the depth will be fixpt_depth/256.0.
+
+
+
+
+ Computes the contour convexity defects
+
+ Input contour.
+ Convex hull obtained using convexHull() that
+ should contain indices of the contour points that make the hull.
+ The output vector of convexity defects.
+ Each convexity defect is represented as 4-element integer vector
+ (a.k.a. cv::Vec4i): (start_index, end_index, farthest_pt_index, fixpt_depth),
+ where indices are 0-based indices in the original contour of the convexity defect beginning,
+ end and the farthest point, and fixpt_depth is fixed-point approximation
+ (with 8 fractional bits) of the distance between the farthest contour point and the hull.
+ That is, to get the floating-point value of the depth will be fixpt_depth/256.0.
+
+
+
+ Computes the contour convexity defects
+
+ Input contour.
+ Convex hull obtained using convexHull() that
+ should contain indices of the contour points that make the hull.
+ The output vector of convexity defects.
+ Each convexity defect is represented as 4-element integer vector
+ (a.k.a. cv::Vec4i): (start_index, end_index, farthest_pt_index, fixpt_depth),
+ where indices are 0-based indices in the original contour of the convexity defect beginning,
+ end and the farthest point, and fixpt_depth is fixed-point approximation
+ (with 8 fractional bits) of the distance between the farthest contour point and the hull.
+ That is, to get the floating-point value of the depth will be fixpt_depth/256.0.
+
+
+
+ returns true if the contour is convex.
+ Does not support contours with self-intersection
+
+ Input vector of 2D points
+
+
+
+
+ returns true if the contour is convex.
+ Does not support contours with self-intersection
+
+ Input vector of 2D points
+
+
+
+
+ returns true if the contour is convex. D
+ oes not support contours with self-intersection
+
+ Input vector of 2D points
+
+
+
+
+ finds intersection of two convex polygons
+
+
+
+
+
+
+
+
+
+ finds intersection of two convex polygons
+
+
+
+
+
+
+
+
+
+ finds intersection of two convex polygons
+
+
+
+
+
+
+
+
+
+ Fits ellipse to the set of 2D points.
+
+ Input 2D point set
+
+
+
+
+ Fits ellipse to the set of 2D points.
+
+ Input 2D point set
+
+
+
+
+ Fits ellipse to the set of 2D points.
+
+ Input 2D point set
+
+
+
+
+ Fits an ellipse around a set of 2D points.
+
+ The function calculates the ellipse that fits a set of 2D points.
+ It returns the rotated rectangle in which the ellipse is inscribed.
+ The Approximate Mean Square(AMS) proposed by @cite Taubin1991 is used.
+
+ Input 2D point set
+
+
+
+
+ Fits an ellipse around a set of 2D points.
+
+ The function calculates the ellipse that fits a set of 2D points.
+ It returns the rotated rectangle in which the ellipse is inscribed.
+ The Approximate Mean Square(AMS) proposed by @cite Taubin1991 is used.
+
+ Input 2D point set
+
+
+
+
+ Fits an ellipse around a set of 2D points.
+
+ The function calculates the ellipse that fits a set of 2D points.
+ It returns the rotated rectangle in which the ellipse is inscribed.
+ The Approximate Mean Square(AMS) proposed by @cite Taubin1991 is used.
+
+ Input 2D point set
+
+
+
+
+ Fits an ellipse around a set of 2D points.
+
+ The function calculates the ellipse that fits a set of 2D points.
+ It returns the rotated rectangle in which the ellipse is inscribed.
+ The Direct least square(Direct) method by @cite Fitzgibbon1999 is used.
+
+ Input 2D point set
+
+
+
+
+ Fits an ellipse around a set of 2D points.
+
+ The function calculates the ellipse that fits a set of 2D points.
+ It returns the rotated rectangle in which the ellipse is inscribed.
+ The Direct least square(Direct) method by @cite Fitzgibbon1999 is used.
+
+ Input 2D point set
+
+
+
+
+ Fits an ellipse around a set of 2D points.
+
+ The function calculates the ellipse that fits a set of 2D points.
+ It returns the rotated rectangle in which the ellipse is inscribed.
+ The Direct least square(Direct) method by @cite Fitzgibbon1999 is used.
+
+ Input 2D point set
+
+
+
+
+ Fits line to the set of 2D points using M-estimator algorithm
+
+ Input vector of 2D or 3D points
+ Output line parameters.
+ In case of 2D fitting, it should be a vector of 4 elements
+ (like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector
+ collinear to the line and (x0, y0) is a point on the line.
+ In case of 3D fitting, it should be a vector of 6 elements
+ (like Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a
+ normalized vector collinear to the line and (x0, y0, z0) is a point on the line.
+ Distance used by the M-estimator
+ Numerical parameter ( C ) for some types of distances.
+ If it is 0, an optimal value is chosen.
+ Sufficient accuracy for the radius
+ (distance between the coordinate origin and the line).
+ Sufficient accuracy for the angle.
+ 0.01 would be a good default value for reps and aeps.
+
+
+
+ Fits line to the set of 2D points using M-estimator algorithm
+
+ Input vector of 2D or 3D points
+ Distance used by the M-estimator
+ Numerical parameter ( C ) for some types of distances.
+ If it is 0, an optimal value is chosen.
+ Sufficient accuracy for the radius
+ (distance between the coordinate origin and the line).
+ Sufficient accuracy for the angle.
+ 0.01 would be a good default value for reps and aeps.
+ Output line parameters.
+
+
+
+ Fits line to the set of 2D points using M-estimator algorithm
+
+ Input vector of 2D or 3D points
+ Distance used by the M-estimator
+ Numerical parameter ( C ) for some types of distances.
+ If it is 0, an optimal value is chosen.
+ Sufficient accuracy for the radius
+ (distance between the coordinate origin and the line).
+ Sufficient accuracy for the angle.
+ 0.01 would be a good default value for reps and aeps.
+ Output line parameters.
+
+
+
+ Fits line to the set of 3D points using M-estimator algorithm
+
+ Input vector of 2D or 3D points
+ Distance used by the M-estimator
+ Numerical parameter ( C ) for some types of distances.
+ If it is 0, an optimal value is chosen.
+ Sufficient accuracy for the radius
+ (distance between the coordinate origin and the line).
+ Sufficient accuracy for the angle.
+ 0.01 would be a good default value for reps and aeps.
+ Output line parameters.
+
+
+
+ Fits line to the set of 3D points using M-estimator algorithm
+
+ Input vector of 2D or 3D points
+ Distance used by the M-estimator
+ Numerical parameter ( C ) for some types of distances.
+ If it is 0, an optimal value is chosen.
+ Sufficient accuracy for the radius
+ (distance between the coordinate origin and the line).
+ Sufficient accuracy for the angle.
+ 0.01 would be a good default value for reps and aeps.
+ Output line parameters.
+
+
+
+ Checks if the point is inside the contour. Optionally computes the signed distance from the point to the contour boundary
+
+
+
+
+
+
+
+
+ Checks if the point is inside the contour. Optionally computes the signed distance from the point to the contour boundary
+
+
+
+
+
+
+
+
+ Checks if the point is inside the contour.
+ Optionally computes the signed distance from the point to the contour boundary.
+
+ Input contour.
+ Point tested against the contour.
+ If true, the function estimates the signed distance
+ from the point to the nearest contour edge. Otherwise, the function only checks
+ if the point is inside a contour or not.
+ Positive (inside), negative (outside), or zero (on an edge) value.
+
+
+
+ Finds out if there is any intersection between two rotated rectangles.
+ If there is then the vertices of the interesecting region are returned as well.
+ Below are some examples of intersection configurations.
+ The hatched pattern indicates the intersecting region and the red
+ vertices are returned by the function.
+
+ First rectangle
+ Second rectangle
+
+ The output array of the verticies of the intersecting region.
+ It returns at most 8 vertices.
+ Stored as std::vector<cv::Point2f> or cv::Mat as Mx1 of type CV_32FC2.
+
+
+
+
+ Finds out if there is any intersection between two rotated rectangles.
+ If there is then the vertices of the interesecting region are returned as well.
+ Below are some examples of intersection configurations.
+ The hatched pattern indicates the intersecting region and the red
+ vertices are returned by the function.
+
+ First rectangle
+ Second rectangle
+
+ The output array of the verticies of the intersecting region.
+ It returns at most 8 vertices.
+
+
+
+
+ Applies a GNU Octave/MATLAB equivalent colormap on a given image.
+
+ The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.
+ The result is the colormapped source image. Note: Mat::create is called on dst.
+ colormap The colormap to apply
+
+
+
+ Applies a user colormap on a given image.
+
+ The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.
+ The result is the colormapped source image. Note: Mat::create is called on dst.
+ The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256
+
+
+
+ Draws a line segment connecting two points
+
+ The image.
+ First point's x-coordinate of the line segment.
+ First point's y-coordinate of the line segment.
+ Second point's x-coordinate of the line segment.
+ Second point's y-coordinate of the line segment.
+ Line color.
+ Line thickness. [By default this is 1]
+ Type of the line. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws a line segment connecting two points
+
+ The image.
+ First point of the line segment.
+ Second point of the line segment.
+ Line color.
+ Line thickness. [By default this is 1]
+ Type of the line. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws a arrow segment pointing from the first point to the second one.
+ The function arrowedLine draws an arrow between pt1 and pt2 points in the image.
+ See also cv::line.
+
+ Image.
+ The point the arrow starts from.
+ The point the arrow points to.
+ Line color.
+ Line thickness.
+ Type of the line, see cv::LineTypes
+ Number of fractional bits in the point coordinates.
+ The length of the arrow tip in relation to the arrow length
+
+
+
+ Draws simple, thick or filled rectangle
+
+ Image.
+ One of the rectangle vertices.
+ Opposite rectangle vertex.
+ Line color (RGB) or brightness (grayscale image).
+ Thickness of lines that make up the rectangle. Negative values make the function to draw a filled rectangle. [By default this is 1]
+ Type of the line, see cvLine description. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws simple, thick or filled rectangle
+
+ Image.
+ Rectangle.
+ Line color (RGB) or brightness (grayscale image).
+ Thickness of lines that make up the rectangle.
+ Negative values make the function to draw a filled rectangle. [By default this is 1]
+ Type of the line, see cvLine description. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws simple, thick or filled rectangle
+
+ Image.
+ Rectangle.
+ Line color (RGB) or brightness (grayscale image).
+ Thickness of lines that make up the rectangle.
+ Negative values make the function to draw a filled rectangle. [By default this is 1]
+ Type of the line, see cvLine description. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws simple, thick or filled rectangle
+
+ Image.
+ One of the rectangle vertices.
+ Opposite rectangle vertex.
+ Line color (RGB) or brightness (grayscale image).
+ Thickness of lines that make up the rectangle.
+ Negative values make the function to draw a filled rectangle. [By default this is 1]
+ Type of the line, see cvLine description. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws a circle
+
+ Image where the circle is drawn.
+ X-coordinate of the center of the circle.
+ Y-coordinate of the center of the circle.
+ Radius of the circle.
+ Circle color.
+ Thickness of the circle outline if positive, otherwise indicates that a filled circle has to be drawn. [By default this is 1]
+ Type of the circle boundary. [By default this is LineType.Link8]
+ Number of fractional bits in the center coordinates and radius value. [By default this is 0]
+
+
+
+ Draws a circle
+
+ Image where the circle is drawn.
+ Center of the circle.
+ Radius of the circle.
+ Circle color.
+ Thickness of the circle outline if positive, otherwise indicates that a filled circle has to be drawn. [By default this is 1]
+ Type of the circle boundary. [By default this is LineType.Link8]
+ Number of fractional bits in the center coordinates and radius value. [By default this is 0]
+
+
+
+ Draws simple or thick elliptic arc or fills ellipse sector
+
+ Image.
+ Center of the ellipse.
+ Length of the ellipse axes.
+ Rotation angle.
+ Starting angle of the elliptic arc.
+ Ending angle of the elliptic arc.
+ Ellipse color.
+ Thickness of the ellipse arc. [By default this is 1]
+ Type of the ellipse boundary. [By default this is LineType.Link8]
+ Number of fractional bits in the center coordinates and axes' values. [By default this is 0]
+
+
+
+ Draws simple or thick elliptic arc or fills ellipse sector
+
+ Image.
+ The enclosing box of the ellipse drawn
+ Ellipse color.
+ Thickness of the ellipse boundary. [By default this is 1]
+ Type of the ellipse boundary. [By default this is LineType.Link8]
+
+
+
+ Draws a marker on a predefined position in an image.
+
+ The function cv::drawMarker draws a marker on a given position in the image.For the moment several
+ marker types are supported, see #MarkerTypes for more information.
+
+ Image.
+ The point where the crosshair is positioned.
+ Line color.
+ The specific type of marker you want to use.
+ The length of the marker axis [default = 20 pixels]
+ Line thickness.
+ Type of the line.
+
+
+
+ Fills a convex polygon.
+
+ Image
+ The polygon vertices
+ Polygon color
+ Type of the polygon boundaries
+ The number of fractional bits in the vertex coordinates
+
+
+
+ Fills a convex polygon.
+
+ Image
+ The polygon vertices
+ Polygon color
+ Type of the polygon boundaries
+ The number of fractional bits in the vertex coordinates
+
+
+
+ Fills the area bounded by one or more polygons
+
+ Image
+ Array of polygons, each represented as an array of points
+ Polygon color
+ Type of the polygon boundaries
+ The number of fractional bits in the vertex coordinates
+
+
+
+
+ Fills the area bounded by one or more polygons
+
+ Image
+ Array of polygons, each represented as an array of points
+ Polygon color
+ Type of the polygon boundaries
+ The number of fractional bits in the vertex coordinates
+
+
+
+
+ draws one or more polygonal curves
+
+
+
+
+
+
+
+
+
+
+
+ draws one or more polygonal curves
+
+
+
+
+
+
+
+
+
+
+
+ draws contours in the image
+
+ Destination image.
+ All the input contours. Each contour is stored as a point vector.
+ Parameter indicating a contour to draw. If it is negative, all the contours are drawn.
+ Color of the contours.
+ Thickness of lines the contours are drawn with. If it is negative (for example, thickness=CV_FILLED ),
+ the contour interiors are drawn.
+ Line connectivity.
+ Optional information about hierarchy. It is only needed if you want to draw only some of the contours
+ Maximal level for drawn contours. If it is 0, only the specified contour is drawn.
+ If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function draws the contours,
+ all the nested contours, all the nested-to-nested contours, and so on. This parameter is only taken into account
+ when there is hierarchy available.
+ Optional contour shift parameter. Shift all the drawn contours by the specified offset = (dx, dy)
+
+
+
+ draws contours in the image
+
+ Destination image.
+ All the input contours. Each contour is stored as a point vector.
+ Parameter indicating a contour to draw. If it is negative, all the contours are drawn.
+ Color of the contours.
+ Thickness of lines the contours are drawn with. If it is negative (for example, thickness=CV_FILLED ),
+ the contour interiors are drawn.
+ Line connectivity.
+ Optional information about hierarchy. It is only needed if you want to draw only some of the contours
+ Maximal level for drawn contours. If it is 0, only the specified contour is drawn.
+ If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function draws the contours,
+ all the nested contours, all the nested-to-nested contours, and so on. This parameter is only taken into account
+ when there is hierarchy available.
+ Optional contour shift parameter. Shift all the drawn contours by the specified offset = (dx, dy)
+
+
+
+ Clips the line against the image rectangle
+
+ The image size
+ The first line point
+ The second line point
+
+
+
+
+ Clips the line against the image rectangle
+
+ sThe image rectangle
+ The first line point
+ The second line point
+
+
+
+
+ Approximates an elliptic arc with a polyline.
+ The function ellipse2Poly computes the vertices of a polyline that
+ approximates the specified elliptic arc. It is used by cv::ellipse.
+
+ Center of the arc.
+ Half of the size of the ellipse main axes. See the ellipse for details.
+ Rotation angle of the ellipse in degrees. See the ellipse for details.
+ Starting angle of the elliptic arc in degrees.
+ Ending angle of the elliptic arc in degrees.
+ Angle between the subsequent polyline vertices. It defines the approximation
+ Output vector of polyline vertices.
+
+
+
+ Approximates an elliptic arc with a polyline.
+ The function ellipse2Poly computes the vertices of a polyline that
+ approximates the specified elliptic arc. It is used by cv::ellipse.
+
+ Center of the arc.
+ Half of the size of the ellipse main axes. See the ellipse for details.
+ Rotation angle of the ellipse in degrees. See the ellipse for details.
+ Starting angle of the elliptic arc in degrees.
+ Ending angle of the elliptic arc in degrees.
+ Angle between the subsequent polyline vertices. It defines the approximation
+ Output vector of polyline vertices.
+
+
+
+ renders text string in the image
+
+ Image.
+ Text string to be drawn.
+ Bottom-left corner of the text string in the image.
+ Font type, see #HersheyFonts.
+ Font scale factor that is multiplied by the font-specific base size.
+ Text color.
+ Thickness of the lines used to draw a text.
+ Line type. See #LineTypes
+ When true, the image data origin is at the bottom-left corner.
+ Otherwise, it is at the top-left corner.
+
+
+
+ returns bounding box of the text string
+
+ Input text string.
+ Font to use, see #HersheyFonts.
+ Font scale factor that is multiplied by the font-specific base size.
+ Thickness of lines used to render the text. See #putText for details.
+ baseLine y-coordinate of the baseline relative to the bottom-most text
+ The size of a box that contains the specified text.
+
+
+
+ Calculates the font-specific size to use to achieve a given height in pixels.
+
+ Font to use, see cv::HersheyFonts.
+ Pixel height to compute the fontScale for
+ Thickness of lines used to render the text.See putText for details.
+ The fontSize to use for cv::putText
+
+
+
+ Groups the object candidate rectangles.
+
+ Input/output vector of rectangles. Output vector includes retained and grouped rectangles.
+ Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it.
+
+
+
+
+ Groups the object candidate rectangles.
+
+ Input/output vector of rectangles. Output vector includes retained and grouped rectangles.
+
+ Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it.
+ Relative difference between sides of the rectangles to merge them into a group.
+
+
+
+ Groups the object candidate rectangles.
+
+
+
+
+
+
+
+
+
+ Groups the object candidate rectangles.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Restores the selected region in an image using the region neighborhood.
+
+ Input 8-bit, 16-bit unsigned or 32-bit float 1-channel or 8-bit 3-channel image.
+ Inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that needs to be inpainted.
+ Output image with the same size and type as src.
+ Radius of a circular neighborhood of each point inpainted that is considered by the algorithm.
+ Inpainting method that could be cv::INPAINT_NS or cv::INPAINT_TELEA
+
+
+
+ Perform image denoising using Non-local Means Denoising algorithm
+ with several computational optimizations. Noise expected to be a gaussian white noise
+
+ Input 8-bit 1-channel, 2-channel or 3-channel image.
+ Output image with the same size and type as src .
+
+ Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details,
+ smaller h value preserves details but also preserves some noise
+
+ Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels
+
+ Size in pixels of the window that is used to compute weighted average for given pixel.
+ Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time. Recommended value 21 pixels
+
+
+
+ Modification of fastNlMeansDenoising function for colored images
+
+ Input 8-bit 3-channel image.
+ Output image with the same size and type as src.
+ Parameter regulating filter strength for luminance component.
+ Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise
+ The same as h but for color components. For most images value equals 10 will be enought
+ to remove colored noise and do not distort colors
+
+ Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels
+
+ Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd.
+ Affect performance linearly: greater searchWindowsSize - greater denoising time. Recommended value 21 pixels
+
+
+
+ Modification of fastNlMeansDenoising function for images sequence where consequtive images have been captured
+ in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces.
+
+ Input 8-bit 1-channel, 2-channel or 3-channel images sequence. All images should have the same type and size.
+ Output image with the same size and type as srcImgs images.
+ Target image to denoise index in srcImgs sequence
+ Number of surrounding images to use for target image denoising.
+ Should be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to imgToDenoiseIndex - temporalWindowSize / 2
+ from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.
+ Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details,
+ smaller h value preserves details but also preserves some noise
+ Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels
+ Size in pixels of the window that is used to compute weighted average for given pixel.
+ Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time. Recommended value 21 pixels
+
+
+
+ Modification of fastNlMeansDenoisingMulti function for colored images sequences
+
+ Input 8-bit 3-channel images sequence. All images should have the same type and size.
+ Output image with the same size and type as srcImgs images.
+ Target image to denoise index in srcImgs sequence
+ Number of surrounding images to use for target image denoising. Should be odd.
+ Images from imgToDenoiseIndex - temporalWindowSize / 2 to imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs
+ will be used to denoise srcImgs[imgToDenoiseIndex] image.
+ Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise
+ but also removes image details, smaller h value preserves details but also preserves some noise.
+ The same as h but for color components.
+ Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels
+ Size in pixels of the window that is used to compute weighted average for given pixel.
+ Should be odd. Affect performance linearly: greater searchWindowsSize - greater denoising time. Recommended value 21 pixels
+
+
+
+ Primal-dual algorithm is an algorithm for solving special types of variational problems
+ (that is, finding a function to minimize some functional). As the image denoising,
+ in particular, may be seen as the variational problem, primal-dual algorithm then
+ can be used to perform denoising and this is exactly what is implemented.
+
+ This array should contain one or more noised versions
+ of the image that is to be restored.
+ Here the denoised image will be stored. There is no need to
+ do pre-allocation of storage space, as it will be automatically allocated, if necessary.
+ Corresponds to \f$\lambda\f$ in the formulas above.
+ As it is enlarged, the smooth (blurred) images are treated more favorably than
+ detailed (but maybe more noised) ones. Roughly speaking, as it becomes smaller,
+ the result will be more blur but more sever outliers will be removed.
+ Number of iterations that the algorithm will run.
+ Of course, as more iterations as better, but it is hard to quantitatively
+ refine this statement, so just use the default and increase it if the results are poor.
+
+
+
+ Transforms a color image to a grayscale image. It is a basic tool in digital
+ printing, stylized black-and-white photograph rendering, and in many single
+ channel image processing applications @cite CL12 .
+
+ Input 8-bit 3-channel image.
+ Output 8-bit 1-channel image.
+ Output 8-bit 3-channel image.
+
+
+
+ Image editing tasks concern either global changes (color/intensity corrections,
+ filters, deformations) or local changes concerned to a selection. Here we are
+ interested in achieving local changes, ones that are restricted to a region
+ manually selected (ROI), in a seamless and effortless manner. The extent of
+ the changes ranges from slight distortions to complete replacement by novel
+ content @cite PM03 .
+
+ Input 8-bit 3-channel image.
+ Input 8-bit 3-channel image.
+ Input 8-bit 1 or 3-channel image.
+ Point in dst image where object is placed.
+ Output image with the same size and type as dst.
+ Cloning method
+
+
+
+ Given an original color image, two differently colored versions of this
+ image can be mixed seamlessly. Multiplication factor is between 0.5 to 2.5.
+
+ Input 8-bit 3-channel image.
+ Input 8-bit 1 or 3-channel image.
+ Output image with the same size and type as src.
+ R-channel multiply factor.
+ G-channel multiply factor.
+ B-channel multiply factor.
+
+
+
+ Applying an appropriate non-linear transformation to the gradient field inside
+ the selection and then integrating back with a Poisson solver, modifies locally
+ the apparent illumination of an image.
+
+ Input 8-bit 3-channel image.
+ Input 8-bit 1 or 3-channel image.
+ Output image with the same size and type as src.
+ Value ranges between 0-2.
+ Value ranges between 0-2.
+
+ This is useful to highlight under-exposed foreground objects or to reduce specular reflections.
+
+
+
+
+ By retaining only the gradients at edge locations, before integrating with the
+ Poisson solver, one washes out the texture of the selected region, giving its
+ contents a flat aspect. Here Canny Edge Detector is used.
+
+ Input 8-bit 3-channel image.
+ Input 8-bit 1 or 3-channel image.
+ Output image with the same size and type as src.
+ Range from 0 to 100.
+ Value > 100.
+ The size of the Sobel kernel to be used.
+
+
+
+ Filtering is the fundamental operation in image and video processing.
+ Edge-preserving smoothing filters are used in many different applications @cite EM11 .
+
+ Input 8-bit 3-channel image.
+ Output 8-bit 3-channel image.
+ Edge preserving filters
+ Range between 0 to 200.
+ Range between 0 to 1.
+
+
+
+ This filter enhances the details of a particular image.
+
+ Input 8-bit 3-channel image.
+ Output image with the same size and type as src.
+ Range between 0 to 200.
+ Range between 0 to 1.
+
+
+
+ Pencil-like non-photorealistic line drawing
+
+ Input 8-bit 3-channel image.
+ Output 8-bit 1-channel image.
+ Output image with the same size and type as src.
+ Range between 0 to 200.
+ Range between 0 to 1.
+ Range between 0 to 0.1.
+
+
+
+ Stylization aims to produce digital imagery with a wide variety of effects
+ not focused on photorealism. Edge-aware filters are ideal for stylization,
+ as they can abstract regions of low contrast while preserving, or enhancing,
+ high-contrast features.
+
+ Input 8-bit 3-channel image.
+ Output image with the same size and type as src.
+ Range between 0 to 200.
+ Range between 0 to 1.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create Bilateral TV-L1 Super Resolution.
+
+
+
+
+
+ Create Bilateral TV-L1 Super Resolution.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Finds an object center, size, and orientation.
+
+ Back projection of the object histogram.
+ Initial search window.
+ Stop criteria for the underlying MeanShift() .
+
+
+
+
+ Finds an object on a back projection image.
+
+ Back projection of the object histogram.
+ Initial search window.
+ Stop criteria for the iterative search algorithm.
+ Number of iterations CAMSHIFT took to converge.
+
+
+
+ Constructs a pyramid which can be used as input for calcOpticalFlowPyrLK
+
+ 8-bit input image.
+ output pyramid.
+ window size of optical flow algorithm.
+ Must be not less than winSize argument of calcOpticalFlowPyrLK().
+ It is needed to calculate required padding for pyramid levels.
+ 0-based maximal pyramid level number.
+ set to precompute gradients for the every pyramid level.
+ If pyramid is constructed without the gradients then calcOpticalFlowPyrLK() will
+ calculate them internally.
+ the border mode for pyramid layers.
+ the border mode for gradients.
+ put ROI of input image into the pyramid if possible.
+ You can pass false to force data copying.
+ number of levels in constructed pyramid. Can be less than maxLevel.
+
+
+
+ Constructs a pyramid which can be used as input for calcOpticalFlowPyrLK
+
+ 8-bit input image.
+ output pyramid.
+ window size of optical flow algorithm.
+ Must be not less than winSize argument of calcOpticalFlowPyrLK().
+ It is needed to calculate required padding for pyramid levels.
+ 0-based maximal pyramid level number.
+ set to precompute gradients for the every pyramid level.
+ If pyramid is constructed without the gradients then calcOpticalFlowPyrLK() will
+ calculate them internally.
+ the border mode for pyramid layers.
+ the border mode for gradients.
+ put ROI of input image into the pyramid if possible.
+ You can pass false to force data copying.
+ number of levels in constructed pyramid. Can be less than maxLevel.
+
+
+
+ computes sparse optical flow using multi-scale Lucas-Kanade algorithm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ computes sparse optical flow using multi-scale Lucas-Kanade algorithm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Computes a dense optical flow using the Gunnar Farneback's algorithm.
+
+ first 8-bit single-channel input image.
+ second input image of the same size and the same type as prev.
+ computed flow image that has the same size as prev and type CV_32FC2.
+ parameter, specifying the image scale (<1) to build pyramids for each image;
+ pyrScale=0.5 means a classical pyramid, where each next layer is twice smaller than the previous one.
+ number of pyramid layers including the initial image;
+ levels=1 means that no extra layers are created and only the original images are used.
+ averaging window size; larger values increase the algorithm robustness to
+ image noise and give more chances for fast motion detection, but yield more blurred motion field.
+ number of iterations the algorithm does at each pyramid level.
+ size of the pixel neighborhood used to find polynomial expansion in each pixel;
+ larger values mean that the image will be approximated with smoother surfaces,
+ yielding more robust algorithm and more blurred motion field, typically poly_n =5 or 7.
+ standard deviation of the Gaussian that is used to smooth derivatives used as
+ a basis for the polynomial expansion; for polyN=5, you can set polySigma=1.1,
+ for polyN=7, a good value would be polySigma=1.5.
+ operation flags that can be a combination of OPTFLOW_USE_INITIAL_FLOW and/or OPTFLOW_FARNEBACK_GAUSSIAN
+
+
+
+ Computes the Enhanced Correlation Coefficient value between two images @cite EP08 .
+
+ single-channel template image; CV_8U or CV_32F array.
+ single-channel input image to be warped to provide an image similar to templateImage, same type as templateImage.
+ An optional mask to indicate valid values of inputImage.
+
+
+
+
+ Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 .
+
+ single-channel template image; CV_8U or CV_32F array.
+ single-channel input image which should be warped with the final warpMatrix in
+ order to provide an image similar to templateImage, same type as templateImage.
+ floating-point \f$2\times 3\f$ or \f$3\times 3\f$ mapping matrix (warp).
+ parameter, specifying the type of motion
+ parameter, specifying the termination criteria of the ECC algorithm;
+ criteria.epsilon defines the threshold of the increment in the correlation coefficient between two
+ iterations(a negative criteria.epsilon makes criteria.maxcount the only termination criterion).
+ Default values are shown in the declaration above.
+ An optional mask to indicate valid values of inputImage.
+ An optional value indicating size of gaussian blur filter; (DEFAULT: 5)
+
+
+
+
+ Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 .
+
+ single-channel template image; CV_8U or CV_32F array.
+ single-channel input image which should be warped with the final warpMatrix in
+ order to provide an image similar to templateImage, same type as templateImage.
+ floating-point \f$2\times 3\f$ or \f$3\times 3\f$ mapping matrix (warp).
+ parameter, specifying the type of motion
+ parameter, specifying the termination criteria of the ECC algorithm;
+ criteria.epsilon defines the threshold of the increment in the correlation coefficient between two
+ iterations(a negative criteria.epsilon makes criteria.maxcount the only termination criterion).
+ Default values are shown in the declaration above.
+ An optional mask to indicate valid values of inputImage.
+
+
+
+
+ A class which has a pointer of OpenCV structure
+
+
+
+
+ Data pointer
+
+
+
+
+ Default constructor
+
+
+
+
+
+
+
+
+
+
+ Native pointer of OpenCV structure
+
+
+
+
+ DisposableObject + ICvPtrHolder
+
+
+
+
+ Data pointer
+
+
+
+
+ Default constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ releases unmanaged resources
+
+
+
+
+ Native pointer of OpenCV structure
+
+
+
+
+ Represents a class which manages its own memory.
+
+
+
+
+ Gets or sets a handle which allocates using cvSetData.
+
+
+
+
+ Gets a value indicating whether this instance has been disposed.
+
+
+
+
+ Gets or sets a value indicating whether you permit disposing this instance.
+
+
+
+
+ Gets or sets a memory address allocated by AllocMemory.
+
+
+
+
+ Gets or sets the byte length of the allocated memory
+
+
+
+
+ Default constructor
+
+
+
+
+ Constructor
+
+ true if you permit disposing this class by GC
+
+
+
+ Releases the resources
+
+
+
+
+ Releases the resources
+
+
+ If disposing equals true, the method has been called directly or indirectly by a user's code. Managed and unmanaged resources can be disposed.
+ If false, the method has been called by the runtime from inside the finalizer and you should not reference other objects. Only unmanaged resources can be disposed.
+
+
+
+
+ Destructor
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Pins the object to be allocated by cvSetData.
+
+
+
+
+
+
+ Allocates the specified size of memory.
+
+
+
+
+
+
+ Notifies the allocated size of memory.
+
+
+
+
+
+ If this object is disposed, then ObjectDisposedException is thrown.
+
+
+
+
+ Represents a OpenCV-based class which has a native pointer.
+
+
+
+
+ Unmanaged OpenCV data pointer
+
+
+
+
+ A MemoryManager over an OpenCvSharpMat
+
+ The pointer is assumed to be fully unmanaged, or externally pinned - no attempt will be made to pin this data
+
+
+
+ Create a new UnmanagedMemoryManager instance at the given pointer and size
+
+ It is assumed that the span provided is already unmanaged or externally pinned
+
+
+
+
+
+
+ Provides access to a pointer that represents the data (note: no actual pin occurs)
+
+
+
+
+ Has no effect
+
+
+
+
+ Releases all resources associated with this object
+
+
+
+
+ The default exception to be thrown by OpenCV
+
+
+
+
+ The numeric code for error status
+
+
+
+
+ The source file name where error is encountered
+
+
+
+
+ A description of the error
+
+
+
+
+ The source file name where error is encountered
+
+
+
+
+ The line number in the source where error is encountered
+
+
+
+
+ Constructor
+
+ The numeric code for error status
+ The source file name where error is encountered
+ A description of the error
+ The source file name where error is encountered
+ The line number in the source where error is encountered
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The exception that is thrown by OpenCvSharp.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Template class for smart reference-counting pointers
+
+
+
+
+ Constructor
+
+
+
+
+
+ Returns Ptr<T>.get() pointer
+
+
+
+
+ Used for managing the resources of OpenCVSharp, like Mat, MatExpr, etc.
+
+
+
+
+ Trace the object obj, and return it
+
+
+
+
+
+
+
+ Trace an array of objects , and return them
+
+
+
+
+
+
+
+ Create a new Mat instance, and trace it
+
+
+
+
+
+ Create a new Mat instance, and trace it
+
+ size
+ matType
+ scalar
+
+
+
+
+ Create a new UMat instance, and trace it
+
+
+
+
+
+ Create a new UMat instance, and trace it
+
+ size
+ matType
+ scalar
+
+
+
+
+ Dispose all traced objects
+
+
+
+
+ Whether native methods for P/Invoke raises an exception
+
+
+
+
+ P/Invoke methods of OpenCV 2.x C++ interface
+
+
+
+
+ Is tried P/Invoke once
+
+
+
+
+ Static constructor
+
+
+
+
+ Load DLL files dynamically using Win32 LoadLibrary
+
+
+
+
+
+ Checks whether PInvoke functions can be called
+
+
+
+
+ Returns whether the OS is Windows or not
+
+
+
+
+
+ Returns whether the OS is *nix or not
+
+
+
+
+
+ Returns whether the runtime is Mono or not
+
+
+
+
+
+ Returns whether the architecture is Wasm or not
+
+
+
+
+
+ Custom error handler to be thrown by OpenCV
+
+
+
+
+ Custom error handler to ignore all OpenCV errors
+
+
+
+
+ Default error handler
+
+
+
+
+
+ C++ std::string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ string.size()
+
+
+
+
+ Converts std::string to managed string
+
+
+
+
+
+ Win32API Wrapper
+
+
+
+
+ Handles loading embedded dlls into memory, based on http://stackoverflow.com/questions/666799/embedding-unmanaged-dll-into-a-managed-c-sharp-dll.
+
+ This code is based on https://github.com/charlesw/tesseract
+
+
+
+ The default base directory name to copy the assemblies too.
+
+
+
+
+ Map processor
+
+
+
+
+ Used as a sanity check for the returned processor architecture to double check the returned value.
+
+
+
+
+ Additional user-defined DLL paths
+
+
+
+
+ constructor
+
+
+
+
+
+
+
+
+
+
+
+ Determine if the OS is Windows
+
+
+
+
+
+ Determine if the runtime is .NET Core
+
+
+
+
+
+
+
+
+
+
+
+
+ Get's the current process architecture while keeping track of any assumptions or possible errors.
+
+
+
+
+
+ Determines if the dynamic link library file name requires a suffix
+ and adds it if necessary.
+
+
+
+
+ Given the processor architecture, returns the name of the platform.
+
+
+
+
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Class to get address of specified jagged array
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ enumerable as T[] ?? enumerable.ToArray()
+
+
+
+
+
+
+
+
+
+
+
+
+ Checks whether PInvoke functions can be called
+
+
+
+
+ DllImportの際にDllNotFoundExceptionかBadImageFormatExceptionが発生した際に呼び出されるメソッド。
+ エラーメッセージを表示して解決策をユーザに示す。
+
+
+
+
+
+
+
+
+
+
+
+ Provides information for the platform which the user is using
+
+
+
+
+ OS type
+
+
+
+
+ Runtime type
+
+
+
+
+ Readonly rectangular array (T[,])
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+ Gets the total number of elements in all the dimensions of the System.Array.
+
+
+
+
+ Gets a 32-bit integer that represents the number of elements in the specified dimension of the System.Array.
+
+
+
+
+
+
+ Returns internal buffer
+
+
+
+
+
+ Original GCHandle that implement IDisposable
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Represents std::vector
+
+
+
+
+ vector.size()
+
+
+
+
+ Convert std::vector<T> to managed array T[]
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+ Converts std::vector to managed array
+
+ structure that has two float members (ex. CvLineSegmentPolar, CvPoint2D32f, PointF)
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+ Converts std::vector to managed array
+
+ structure that has two float members (ex. CvLineSegmentPolar, CvPoint2D32f, PointF)
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+ Converts std::vector to managed array
+
+ structure that has four int members (ex. CvLineSegmentPoint, CvRect)
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+ Converts std::vector to managed array
+
+ structure that has four int members (ex. CvLineSegmentPoint, CvRect)
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ &vector[0]
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+ Converts std::vector to managed array
+
+ structure that has four int members (ex. CvLineSegmentPoint, CvRect)
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ vector.size()
+
+
+
+
+ vector[i].size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ vector.size()
+
+
+
+
+ vector[i].size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ vector.size()
+
+
+
+
+ vector[i].size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ vector.size()
+
+
+
+
+ vector[i].size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+ vector.size()
+
+
+
+
+ vector[i].size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+
+
+
+
+
+ vector.size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ vector.size()
+
+
+
+
+
+
+
+
+
+ vector[i].size()
+
+
+
+
+ Converts std::vector to managed array
+
+
+
+
+
+ aruco module
+
+
+
+
+ Basic marker detection
+
+ input image
+ indicates the type of markers that will be searched
+ vector of detected marker corners.
+ For each marker, its four corners are provided. For N detected markers,
+ the dimensions of this array is Nx4.The order of the corners is clockwise.
+ vector of identifiers of the detected markers. The identifier is of type int.
+ For N detected markers, the size of ids is also N. The identifiers have the same order than the markers in the imgPoints array.
+ marker detection parameters
+ contains the imgPoints of those squares whose inner code has not a
+ correct codification.Useful for debugging purposes.
+
+
+
+ Pose estimation for single markers
+
+ corners vector of already detected markers corners.
+ For each marker, its four corners are provided, (e.g std::vector<std::vector<cv::Point2f>> ).
+ For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise.
+ the length of the markers' side. The returning translation vectors will
+ be in the same unit.Normally, unit is meters.
+ input 3x3 floating-point camera matrix
+ \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$
+ vector of distortion coefficients
+ \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements
+ array of output rotation vectors (@sa Rodrigues) (e.g. std::vector<cv::Vec3d>).
+ Each element in rvecs corresponds to the specific marker in imgPoints.
+ array of output translation vectors (e.g. std::vector<cv::Vec3d>).
+ Each element in tvecs corresponds to the specific marker in imgPoints.
+ array of object points of all the marker corners
+
+
+
+ Draw detected markers in image
+
+ input/output image. It must have 1 or 3 channels. The number of channels is not altered.
+ positions of marker corners on input image.
+ For N detected markers, the dimensions of this array should be Nx4.The order of the corners should be clockwise.
+ vector of identifiers for markers in markersCorners. Optional, if not provided, ids are not painted.
+
+
+
+ Draw detected markers in image
+
+ input/output image. It must have 1 or 3 channels. The number of channels is not altered.
+ positions of marker corners on input image.
+ For N detected markers, the dimensions of this array should be Nx4.The order of the corners should be clockwise.
+ vector of identifiers for markers in markersCorners. Optional, if not provided, ids are not painted.
+ color of marker borders. Rest of colors (text color and first corner color)
+ are calculated based on this one to improve visualization.
+
+
+
+ Returns one of the predefined dictionaries defined in PREDEFINED_DICTIONARY_NAME
+
+
+
+
+
+
+ Reads a new dictionary from FileNode.
+
+
+ Dictionary format is YAML see sample below
+
+ nmarkers: 35
+ markersize: 6
+ maxCorrectionBits: 5
+ marker_0: "101011111011111001001001101100000000"
+ ...
+ marker_34: "011111010000111011111110110101100101"
+
+
+ The path of the dictionary file
+ Instance of a Dictionary
+
+
+
+ Detect ChArUco Diamond markers.
+
+ input image necessary for corner subpixel.
+ list of detected marker corners from detectMarkers function.
+ list of marker ids in markerCorners.
+ rate between square and marker length: squareMarkerLengthRate = squareLength/markerLength. The real units are not necessary.
+ output list of detected diamond corners (4 corners per diamond). The order is the same than in marker corners: top left, top right, bottom right and bottom left. Similar format than the corners returned by detectMarkers (e.g std::vector<std::vector<cv::Point2f>>).
+ ids of the diamonds in diamondCorners. The id of each diamond is in fact of type Vec4i, so each diamond has 4 ids, which are the ids of the aruco markers composing the diamond.
+ Optional camera calibration matrix.
+ Optional camera distortion coefficients.
+
+
+
+ Draw a set of detected ChArUco Diamond markers.
+
+ input/output image. It must have 1 or 3 channels. The number of channels is not altered.
+ positions of diamond corners in the same format returned by detectCharucoDiamond(). (e.g std::vector<std::vector<cv::Point2f>>). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise.
+ vector of identifiers for diamonds in diamondCorners, in the same format returned by detectCharucoDiamond() (e.g. std::vector<Vec4i>). Optional, if not provided, ids are not painted.
+
+
+
+ Draw a set of detected ChArUco Diamond markers.
+
+ input/output image. It must have 1 or 3 channels. The number of channels is not altered.
+ positions of diamond corners in the same format returned by detectCharucoDiamond(). (e.g std::vector<std::vector<cv::Point2f>>). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise.
+ vector of identifiers for diamonds in diamondCorners, in the same format returned by detectCharucoDiamond() (e.g. std::vector<Vec4i>). Optional, if not provided, ids are not painted.
+ color of marker borders. Rest of colors (text color and first corner color) are calculated based on this one.
+
+
+
+ Parameters for the detectMarker process
+
+
+
+
+ minimum window size for adaptive thresholding before finding contours (default 3).
+
+
+
+
+ adaptiveThreshWinSizeMax: maximum window size for adaptive thresholding before finding contours(default 23).
+
+
+
+
+ increments from adaptiveThreshWinSizeMin to adaptiveThreshWinSizeMax during the thresholding(default 10).
+
+
+
+
+ constant for adaptive thresholding before finding contours (default 7)
+
+
+
+
+ determine minimum perimeter for marker contour to be detected.
+ This is defined as a rate respect to the maximum dimension of the input image(default 0.03).
+
+
+
+
+ determine maximum perimeter for marker contour to be detected.
+ This is defined as a rate respect to the maximum dimension of the input image(default 4.0).
+
+
+
+
+ minimum accuracy during the polygonal approximation process to determine which contours are squares.
+
+
+
+
+ minimum distance between corners for detected markers relative to its perimeter(default 0.05)
+
+
+
+
+ minimum distance of any corner to the image border for detected markers (in pixels) (default 3)
+
+
+
+
+ minimum mean distance between two marker corners to be considered similar,
+ so that the smaller one is removed.The rate is relative to the smaller perimeter of the two markers(default 0.05).
+
+
+
+
+ corner refinement method.
+ (CORNER_REFINE_NONE, no refinement. CORNER_REFINE_SUBPIX, do subpixel refinement. CORNER_REFINE_CONTOUR use contour-Points)
+
+
+
+
+ window size for the corner refinement process (in pixels) (default 5).
+
+
+
+
+ maximum number of iterations for stop criteria of the corner refinement process(default 30).
+
+
+
+
+ minimum error for the stop criteria of the corner refinement process(default: 0.1)
+
+
+
+
+ number of bits of the marker border, i.e. marker border width (default 1).
+
+
+
+
+ number of bits (per dimension) for each cell of the marker when removing the perspective(default 8).
+
+
+
+
+ width of the margin of pixels on each cell not considered for the determination
+ of the cell bit.Represents the rate respect to the total size of the cell,
+ i.e. perspectiveRemovePixelPerCell (default 0.13)
+
+
+
+
+ maximum number of accepted erroneous bits in the border
+ (i.e. number of allowed white bits in the border). Represented as a rate respect to the total
+ number of bits per marker(default 0.35).
+
+
+
+
+ minimun standard deviation in pixels values during the decodification step to
+ apply Otsu thresholding(otherwise, all the bits are set to 0 or 1 depending on mean higher than 128 or not) (default 5.0)
+
+
+
+
+ errorCorrectionRate error correction rate respect to the maximun error correction capability for each dictionary. (default 0.6).
+
+
+
+
+ Detection of quads can be done on a lower-resolution image, improving speed at a cost of pose accuracy and a slight decrease in detection rate.
+ Decoding the binary payload is still done at full resolution.
+
+
+
+
+ What Gaussian blur should be applied to the segmented image (used for quad detection?) Parameter is the standard deviation in pixels.
+ Very noisy images benefit from non-zero values (e.g. 0.8).
+
+
+
+
+ reject quads containing too few pixels.
+
+
+
+
+ how many corner candidates to consider when segmenting a group of pixels into a quad.
+
+
+
+
+ Reject quads where pairs of edges have angles that are close to straight or close to 180 degrees. Zero means that no quads are rejected. (In radians).
+
+
+
+
+ When fitting lines to the contours, what is the maximum mean squared error allowed?
+ This is useful in rejecting contours that are far from being quad shaped; rejecting these quads "early" saves expensive decoding processing.
+
+
+
+
+ When we build our model of black & white pixels, we add an extra check that the white model must be (overall) brighter than the black model.
+ How much brighter? (in pixel values, [0,255]).
+
+
+
+
+ should the thresholded image be deglitched? Only useful for very noisy images
+
+
+
+
+ to check if there is a white marker. In order to generate a "white" marker just invert a normal marker by using a tilde, ~markerImage. (default false)
+
+
+
+
+ enable the new and faster Aruco detection strategy.
+ Proposed in the paper:
+ * Romero-Ramirez et al: Speeded up detection of squared fiducial markers (2018)
+ * https://www.researchgate.net/publication/325787310_Speeded_Up_Detection_of_Squared_Fiducial_Markers
+
+
+
+
+ minimum side length of a marker in the canonical image. Latter is the binarized image in which contours are searched.
+
+
+
+
+ range [0,1], eq (2) from paper. The parameter tau_i has a direct influence on the processing speed.
+
+
+
+
+ Constructor
+
+
+
+
+ Dictionary/Set of markers. It contains the inner codification
+
+
+
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Marker code information
+
+
+
+
+ Number of bits per dimension.
+
+
+
+
+ Maximum number of bits that can be corrected.
+
+
+
+
+ Given a matrix of bits. Returns whether if marker is identified or not.
+ It returns by reference the correct id (if any) and the correct rotation
+
+
+
+
+
+
+
+
+
+ Returns the distance of the input bits to the specific id.
+ If allRotations is true, the four possible bits rotation are considered
+
+
+
+
+
+
+
+
+ Generate a canonical marker image
+
+
+
+
+
+
+
+
+ Transform matrix of bits to list of bytes in the 4 rotations
+
+
+
+
+
+
+ Transform list of bytes to matrix of bits
+
+
+
+
+
+
+
+ corner refinement method
+
+
+
+
+ Tag and corners detection based on the ArUco approach.
+
+
+
+
+ ArUco approach and refine the corners locations using corner subpixel accuracy.
+
+
+
+
+ ArUco approach and refine the corners locations using the contour-points line fitting.
+
+
+
+
+ Tag and corners detection based on the AprilTag 2 approach
+
+
+
+
+ PredefinedDictionaryName
+
+
+
+
+ Background Subtractor module. Takes a series of images and returns a sequence of mask (8UC1)
+ images of the same size, where 255 indicates Foreground and 0 represents Background.
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+ Creates a GMG Background Subtractor
+
+ number of frames used to initialize the background models.
+ Threshold value, above which it is marked foreground, else background.
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gaussian Mixture-based Backbround/Foreground Segmentation Algorithm
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+ Creates mixture-of-gaussian background subtractor
+
+ Length of the history.
+ Number of Gaussian mixtures.
+ Background ratio.
+ Noise strength (standard deviation of the brightness or each color channel). 0 means some automatic value.
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Different flags for cvCalibrateCamera2 and cvStereoCalibrate
+
+
+
+
+
+
+
+
+
+ The flag allows the function to optimize some or all of the intrinsic parameters, depending on the other flags, but the initial values are provided by the user
+
+
+
+
+ fyk is optimized, but the ratio fxk/fyk is fixed.
+
+
+
+
+ The principal points are fixed during the optimization.
+
+
+
+
+ Tangential distortion coefficients are set to zeros and do not change during the optimization.
+
+
+
+
+ fxk and fyk are fixed.
+
+
+
+
+ The 0-th distortion coefficients (k1) are fixed
+
+
+
+
+ The 1-th distortion coefficients (k2) are fixed
+
+
+
+
+ The 4-th distortion coefficients (k3) are fixed
+
+
+
+
+ Do not change the corresponding radial distortion coefficient during the optimization.
+ If CV_CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the supplied distCoeffs matrix is used, otherwise it is set to 0.
+
+
+
+
+ Do not change the corresponding radial distortion coefficient during the optimization.
+ If CV_CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the supplied distCoeffs matrix is used, otherwise it is set to 0.
+
+
+
+
+ Do not change the corresponding radial distortion coefficient during the optimization.
+ If CV_CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the supplied distCoeffs matrix is used, otherwise it is set to 0.
+
+
+
+
+ Enable coefficients k4, k5 and k6.
+ To provide the backward compatibility, this extra flag should be explicitly specified to make the calibration function
+ use the rational model and return 8 coefficients. If the flag is not set, the function will compute only 5 distortion coefficients.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If it is set, camera_matrix1,2, as well as dist_coeffs1,2 are fixed, so that only extrinsic parameters are optimized.
+
+
+
+
+ Enforces fx0=fx1 and fy0=fy1. CV_CALIB_ZERO_TANGENT_DIST - Tangential distortion coefficients for each camera are set to zeros and fixed there.
+
+
+
+
+ for stereo rectification
+
+
+
+
+ Various operation flags for cvFindChessboardCorners
+
+
+
+
+
+
+
+
+
+ Use adaptive thresholding to convert the image to black-n-white, rather than a fixed threshold level (computed from the average image brightness).
+
+
+
+
+ Normalize the image using cvNormalizeHist before applying fixed or adaptive thresholding.
+
+
+
+
+ Use additional criteria (like contour area, perimeter, square-like shape) to filter out false quads
+ that are extracted at the contour retrieval stage.
+
+
+
+
+ Run a fast check on the image that looks for chessboard corners, and shortcut the call if none is found.
+ This can drastically speed up the call in the degenerate condition when no chessboard is observed.
+
+
+
+
+ Run an exhaustive search to improve detection rate.
+
+
+
+
+ Up sample input image to improve sub-pixel accuracy due to aliasing effects.
+ This should be used if an accurate camera calibration is required.
+
+
+
+
+ Method for computing the essential matrix
+
+
+
+
+ for LMedS algorithm.
+
+
+
+
+ for RANSAC algorithm.
+
+
+
+
+ Method for solving a PnP problem:
+
+
+
+
+ uses symmetric pattern of circles.
+
+
+
+
+ uses asymmetric pattern of circles.
+
+
+
+
+ uses a special algorithm for grid detection. It is more robust to perspective distortions but much more sensitive to background clutter.
+
+
+
+
+ Method for computing the fundamental matrix
+
+
+
+
+ for 7-point algorithm. N == 7
+
+
+
+
+ for 8-point algorithm. N >= 8
+ [CV_FM_8POINT]
+
+
+
+
+ for LMedS algorithm. N > 8
+
+
+
+
+ for RANSAC algorithm. N > 8
+
+
+
+
+ method One of the implemented Hand-Eye calibration method
+
+
+
+
+ A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/Eye Calibration @cite Tsai89
+
+
+
+
+ Robot Sensor Calibration: Solving AX = XB on the Euclidean Group @cite Park94
+
+
+
+
+ Hand-eye Calibration @cite Horaud95
+
+
+
+
+ On-line Hand-Eye Calibration @cite Andreff99
+
+
+
+
+ Hand-Eye Calibration Using Dual Quaternions @cite Daniilidis98
+
+
+
+
+ The method used to computed homography matrix
+
+
+
+
+ Regular method using all the point pairs
+
+
+
+
+ Least-Median robust method
+
+
+
+
+ RANSAC-based robust method
+
+
+
+
+ RHO algorithm
+
+
+
+
+ USAC algorithm, default settings
+
+
+
+
+ USAC, parallel version
+
+
+
+
+ USAC, fundamental matrix 8 points
+
+
+
+
+ USAC, fast settings
+
+
+
+
+ USAC, accurate settings
+
+
+
+
+ USAC, sorted points, runs PROSAC
+
+
+
+
+ USAC, runs MAGSAC++
+
+
+
+
+ cv::initWideAngleProjMap flags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ One of the implemented Robot-World/Hand-Eye calibration method
+
+
+
+
+ Solving the robot-world/hand-eye calibration problem using the kronecker product @cite Shah2013SolvingTR
+
+
+
+
+ Simultaneous robot-world and hand-eye calibration using dual-quaternions and kronecker product @cite Li2010SimultaneousRA
+
+
+
+
+ type of the robust estimation algorithm
+
+
+
+
+ least-median of squares algorithm
+
+
+
+
+ RANSAC algorithm
+
+
+
+
+ RHO algorithm
+
+
+
+
+ USAC algorithm, default settings
+
+
+
+
+ USAC, parallel version
+
+
+
+
+ USAC, fundamental matrix 8 points
+
+
+
+
+ USAC, fast settings
+
+
+
+
+ USAC, accurate settings
+
+
+
+
+ USAC, sorted points, runs PROSAC
+
+
+
+
+ USAC, runs MAGSAC++
+
+
+
+
+ Method for solving a PnP problem:
+
+
+
+
+ Iterative method is based on Levenberg-Marquardt optimization.
+ In this case the function finds such a pose that minimizes reprojection error,
+ that is the sum of squared distances between the observed projections imagePoints and the projected (using projectPoints() ) objectPoints .
+
+
+
+
+ Method has been introduced by F.Moreno-Noguer, V.Lepetit and P.Fua in the paper “EPnP: Efficient Perspective-n-Point Camera Pose Estimation”.
+
+
+
+
+ Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang“Complete Solution Classification for
+ the Perspective-Three-Point Problem”. In this case the function requires exactly four object and image points.
+
+
+
+
+ Joel A. Hesch and Stergios I. Roumeliotis. "A Direct Least-Squares (DLS) Method for PnP"
+
+
+
+
+ A.Penate-Sanchez, J.Andrade-Cetto, F.Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length Estimation"
+
+
+
+
+ The operation flags for cvStereoRectify
+
+
+
+
+ Default value (=0).
+ the function can shift one of the image in horizontal or vertical direction (depending on the orientation of epipolar lines) in order to maximise the useful image area.
+
+
+
+
+ the function makes the principal points of each camera have the same pixel coordinates in the rectified views.
+
+
+
+
+ Semi-Global Stereo Matching
+
+
+
+
+ constructor
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The base class for stereo correspondence algorithms.
+
+
+
+
+ constructor
+
+
+
+
+ Computes disparity map for the specified stereo pair
+
+ Left 8-bit single-channel image.
+ Right image of the same size and the same type as the left one.
+ Output disparity map. It has the same size as the input images. Some algorithms,
+ like StereoBM or StereoSGBM compute 16-bit fixed-point disparity map(where each disparity value has 4 fractional bits),
+ whereas other algorithms output 32 - bit floating - point disparity map.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Semi-Global Stereo Matching
+
+
+
+
+ constructor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Truncation value for the prefiltered image pixels. The algorithm first
+ computes x-derivative at each pixel and clips its value by [-preFilterCap, preFilterCap] interval.
+ The result values are passed to the Birchfield-Tomasi pixel cost function.
+
+
+
+
+ Margin in percentage by which the best (minimum) computed cost function
+ value should "win" the second best value to consider the found match correct. Normally, a value
+ within the 5-15 range is good enough.
+
+
+
+
+ The first parameter controlling the disparity smoothness. See P2 description.
+
+
+
+
+ The second parameter controlling the disparity smoothness. The larger the values are,
+ the smoother the disparity is. P1 is the penalty on the disparity change by plus or minus 1
+ between neighbor pixels. P2 is the penalty on the disparity change by more than 1 between neighbor
+ pixels. The algorithm requires P2 \> P1 . See stereo_match.cpp sample where some reasonably good
+ P1 and P2 values are shown (like 8\*number_of_image_channels\*SADWindowSize\*SADWindowSize and
+ 32\*number_of_image_channels\*SADWindowSize\*SADWindowSize , respectively).
+
+
+
+
+ Set it to StereoSGBM::MODE_HH to run the full-scale two-pass dynamic programming
+ algorithm. It will consume O(W\*H\*numDisparities) bytes, which is large for 640x480 stereo and
+ huge for HD-size pictures. By default, it is set to false .
+
+
+
+
+ Base class for high-level OpenCV algorithms
+
+
+
+
+ Stores algorithm parameters in a file storage
+
+
+
+
+
+ Reads algorithm parameters from a file storage
+
+
+
+
+
+ Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read
+
+
+
+
+
+ Saves the algorithm to a file.
+ In order to make this method work, the derived class must
+ implement Algorithm::write(FileStorage fs).
+
+
+
+
+
+ Returns the algorithm string identifier.
+ This string is used as top level xml/yml node tag when the object
+ is saved to a file or string.
+
+
+
+
+
+ Error Handler
+
+ The numeric code for error status
+ The source file name where error is encountered
+ A description of the error
+ The source file name where error is encountered
+ The line number in the source where error is encountered
+ Pointer to the user data. Ignored by the standard handlers
+
+
+
+ cv::AccessFlag
+
+
+
+
+ cv::Algorithm parameter type
+
+
+
+
+ Type of the border to create around the copied source image rectangle
+
+
+ https://github.com/opencv/opencv/blob/fc1a15626226609babd128e043cf7c4e32f567ca/modules/core/include/opencv2/core/base.hpp#L268
+
+
+
+
+ Border is filled with the fixed value, passed as last parameter of the function.
+ `iiiiii|abcdefgh|iiiiiii` with some specified `i`
+
+
+
+
+ The pixels from the top and bottom rows, the left-most and right-most columns are replicated to fill the border.
+ `aaaaaa|abcdefgh|hhhhhhh`
+
+
+
+
+ `fedcba|abcdefgh|hgfedcb`
+
+
+
+
+ `cdefgh|abcdefgh|abcdefg`
+
+
+
+
+ `gfedcb|abcdefgh|gfedcba`
+
+
+
+
+ `uvwxyz|absdefgh|ijklmno`
+
+
+
+
+ same as BORDER_REFLECT_101
+
+
+
+
+ do not look outside of ROI
+
+
+
+
+ The flag specifying the relation between the elements to be checked
+
+
+
+
+ src1(I) "equal to" src2(I)
+
+
+
+
+ src1(I) "greater than" src2(I)
+
+
+
+
+ src1(I) "greater or equal" src2(I)
+
+
+
+
+ src1(I) "less than" src2(I)
+
+
+
+
+ src1(I) "less or equal" src2(I)
+
+
+
+
+ src1(I) "not equal to" src2(I)
+
+
+
+
+ Operation flags for Covariation
+
+
+
+
+ scale * [vects[0]-avg,vects[1]-avg,...]^T * [vects[0]-avg,vects[1]-avg,...]
+ that is, the covariation matrix is count×count. Such an unusual covariation matrix is used for fast PCA of a set of very large vectors
+ (see, for example, Eigen Faces technique for face recognition). Eigenvalues of this "scrambled" matrix will match to the eigenvalues of
+ the true covariation matrix and the "true" eigenvectors can be easily calculated from the eigenvectors of the "scrambled" covariation matrix.
+
+
+
+
+ scale * [vects[0]-avg,vects[1]-avg,...]*[vects[0]-avg,vects[1]-avg,...]^T
+ that is, cov_mat will be a usual covariation matrix with the same linear size as the total number of elements in every input vector.
+ One and only one of CV_COVAR_SCRAMBLED and CV_COVAR_NORMAL must be specified
+
+
+
+
+ If the flag is specified, the function does not calculate avg from the input vectors,
+ but, instead, uses the passed avg vector. This is useful if avg has been already calculated somehow,
+ or if the covariation matrix is calculated by parts - in this case, avg is not a mean vector of the input sub-set of vectors,
+ but rather the mean vector of the whole set.
+
+
+
+
+ If the flag is specified, the covariation matrix is scaled by the number of input vectors.
+
+
+
+
+ Means that all the input vectors are stored as rows of a single matrix, vects[0].count is ignored in this case,
+ and avg should be a single-row vector of an appropriate size.
+
+
+
+
+ Means that all the input vectors are stored as columns of a single matrix, vects[0].count is ignored in this case,
+ and avg should be a single-column vector of an appropriate size.
+
+
+
+
+
+
+
+
+
+ Type of termination criteria
+
+
+
+
+ the maximum number of iterations or elements to compute
+
+
+
+
+ the maximum number of iterations or elements to compute
+
+
+
+
+ the desired accuracy or change in parameters at which the iterative algorithm stops
+
+
+
+
+ Transformation flags for cv::dct
+
+
+
+
+
+
+
+
+
+ Do inverse 1D or 2D transform.
+ (Forward and Inverse are mutually exclusive, of course.)
+
+
+
+
+ Do forward or inverse transform of every individual row of the input matrix.
+ This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead
+ (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms etc.
+ [CV_DXT_ROWS]
+
+
+
+
+ Inversion methods
+
+
+
+
+ Gaussian elimination with the optimal pivot element chosen.
+
+
+
+
+ singular value decomposition (SVD) method;
+ the system can be over-defined and/or the matrix src1 can be singular
+
+
+
+
+ eigenvalue decomposition; the matrix src1 must be symmetrical
+
+
+
+
+ Cholesky \f$LL^T\f$ factorization; the matrix src1 must be symmetrical
+ and positively defined
+
+
+
+
+ QR factorization; the system can be over-defined and/or the matrix
+ src1 can be singular
+
+
+
+
+ while all the previous flags are mutually exclusive,
+ this flag can be used together with any of the previous
+
+
+
+
+ Transformation flags for cvDFT
+
+
+
+
+
+
+
+
+
+ Do inverse 1D or 2D transform. The result is not scaled.
+ (Forward and Inverse are mutually exclusive, of course.)
+
+
+
+
+ Scale the result: divide it by the number of array elements. Usually, it is combined with Inverse.
+
+
+
+
+ Do forward or inverse transform of every individual row of the input matrix.
+ This flag allows user to transform multiple vectors simultaneously and can be used to decrease the overhead
+ (which is sometimes several times larger than the processing itself), to do 3D and higher-dimensional transforms etc.
+
+
+
+
+ performs a forward transformation of 1D or 2D real array; the result,
+ though being a complex array, has complex-conjugate symmetry (*CCS*,
+ see the function description below for details), and such an array can
+ be packed into a real array of the same size as input, which is the fastest
+ option and which is what the function does by default; however, you may
+ wish to get a full complex array (for simpler spectrum analysis, and so on) -
+ pass the flag to enable the function to produce a full-size complex output array.
+
+
+
+
+ performs an inverse transformation of a 1D or 2D complex array;
+ the result is normally a complex array of the same size, however,
+ if the input array has conjugate-complex symmetry (for example,
+ it is a result of forward transformation with DFT_COMPLEX_OUTPUT flag),
+ the output is a real array; while the function itself does not
+ check whether the input is symmetrical or not, you can pass the flag
+ and then the function will assume the symmetry and produce the real
+ output array (note that when the input is packed into a real array
+ and inverse transformation is executed, the function treats the input
+ as a packed complex-conjugate symmetrical array, and the output
+ will also be a real array).
+
+
+
+
+ Distribution type for cvRandArr, etc.
+
+
+
+
+ Uniform distribution
+
+
+
+
+ Normal or Gaussian distribution
+
+
+
+
+ Error status codes
+
+
+
+
+ everithing is ok [CV_StsOk]
+
+
+
+
+ pseudo error for back trace [CV_StsBackTrace]
+
+
+
+
+ unknown /unspecified error [CV_StsError]
+
+
+
+
+ internal error (bad state) [CV_StsInternal]
+
+
+
+
+ insufficient memory [CV_StsNoMem]
+
+
+
+
+ function arg/param is bad [CV_StsBadArg]
+
+
+
+
+ unsupported function [CV_StsBadFunc]
+
+
+
+
+ iter. didn't converge [CV_StsNoConv]
+
+
+
+
+ tracing [CV_StsAutoTrace]
+
+
+
+
+ image header is NULL [CV_HeaderIsNull]
+
+
+
+
+ image size is invalid [CV_BadImageSize]
+
+
+
+
+ offset is invalid [CV_BadOffset]
+
+
+
+
+ [CV_BadOffset]
+
+
+
+
+ [CV_BadStep]
+
+
+
+
+ [CV_BadModelOrChSeq]
+
+
+
+
+ [CV_BadNumChannels]
+
+
+
+
+ [CV_BadNumChannel1U]
+
+
+
+
+ [CV_BadDepth]
+
+
+
+
+ [CV_BadAlphaChannel]
+
+
+
+
+ [CV_BadOrder]
+
+
+
+
+ [CV_BadOrigin]
+
+
+
+
+ [CV_BadAlign]
+
+
+
+
+ [CV_BadCallBack]
+
+
+
+
+ [CV_BadTileSize]
+
+
+
+
+ [CV_BadCOI]
+
+
+
+
+ [CV_BadROISize]
+
+
+
+
+ [CV_MaskIsTiled]
+
+
+
+
+ null pointer [CV_StsNullPtr]
+
+
+
+
+ incorrect vector length [CV_StsVecLengthErr]
+
+
+
+
+ incorr. filter structure content [CV_StsFilterStructContentErr]
+
+
+
+
+ incorr. transform kernel content [CV_StsKernelStructContentErr]
+
+
+
+
+ incorrect filter ofset value [CV_StsFilterOffsetErr]
+
+
+
+
+ the input/output structure size is incorrect [CV_StsBadSize]
+
+
+
+
+ division by zero [CV_StsDivByZero]
+
+
+
+
+ in-place operation is not supported [CV_StsInplaceNotSupported]
+
+
+
+
+ request can't be completed [CV_StsObjectNotFound]
+
+
+
+
+ formats of input/output arrays differ [CV_StsUnmatchedFormats]
+
+
+
+
+ flag is wrong or not supported [CV_StsBadFlag]
+
+
+
+
+ bad CvPoint [CV_StsBadPoint]
+
+
+
+
+ bad format of mask (neither 8uC1 nor 8sC1) [CV_StsBadMask]
+
+
+
+
+ sizes of input/output structures do not match [CV_StsUnmatchedSizes]
+
+
+
+
+ the data format/type is not supported by the function [CV_StsUnsupportedFormat]
+
+
+
+
+ some of parameters are out of range [CV_StsOutOfRange]
+
+
+
+
+ invalid syntax/structure of the parsed file [CV_StsParseError]
+
+
+
+
+ the requested function/feature is not implemented [CV_StsNotImplemented]
+
+
+
+
+ an allocated block has been corrupted [CV_StsBadMemBlock]
+
+
+
+
+ assertion failed
+
+
+
+
+ Output string format of Mat.Dump()
+
+
+
+
+ Default format.
+ [1, 2, 3, 4, 5, 6; \n
+ 7, 8, 9, ... ]
+
+
+
+
+
+
+
+
+
+ CSV format.
+ 1, 2, 3, 4, 5, 6\n
+ 7, 8, 9, ...
+
+
+
+
+ Python format.
+ [[[1, 2, 3], [4, 5, 6]], \n
+ [[7, 8, 9], ... ]
+
+
+
+
+ NumPy format.
+ array([[[1, 2, 3], [4, 5, 6]], \n
+ [[7, 8, 9], .... ]]], type='uint8');
+
+
+
+
+ C language format.
+ {1, 2, 3, 4, 5, 6, \n
+ 7, 8, 9, ...};
+
+
+
+
+ The operation flags for cv::GEMM
+
+
+
+
+
+
+
+
+
+ Transpose src1
+
+
+
+
+ Transpose src2
+
+
+
+
+ Transpose src3
+
+
+
+
+ Font name identifier.
+ Only a subset of Hershey fonts (http://sources.isc.org/utils/misc/hershey-font.txt) are supported now.
+
+
+
+
+ normal size sans-serif font
+
+
+
+
+ small size sans-serif font
+
+
+
+
+ normal size sans-serif font (more complex than HERSHEY_SIMPLEX)
+
+
+
+
+ normal size serif font
+
+
+
+
+ normal size serif font (more complex than HERSHEY_COMPLEX)
+
+
+
+
+ smaller version of HERSHEY_COMPLEX
+
+
+
+
+ hand-writing style font
+
+
+
+
+ more complex variant of HERSHEY_SCRIPT_SIMPLEX
+
+
+
+
+ flag for italic font
+
+
+
+
+
+
+
+
+
+ Miscellaneous flags for cv::kmeans
+
+
+
+
+ Select random initial centers in each attempt.
+
+
+
+
+ Use kmeans++ center initialization by Arthur and Vassilvitskii [Arthur2007].
+
+
+
+
+ During the first (and possibly the only) attempt, use the
+ user-supplied labels instead of computing them from the initial centers.
+ For the second and further attempts, use the random or semi-random centers.
+ Use one of KMEANS_\*_CENTERS flag to specify the exact method.
+
+
+
+
+ cv::utils::logging::LogLevel
+
+
+
+
+ for using in setLogVevel() call
+
+
+
+
+ Fatal (critical) error (unrecoverable internal error)
+
+
+
+
+ Error message.
+
+
+
+
+ Warning message.
+
+
+
+
+ Info message.
+
+
+
+
+ Debug message. Disabled in the "Release" build.
+
+
+
+
+ Verbose (trace) messages. Requires verbosity level. Disabled in the "Release" build.
+
+
+
+
+ diagonal type
+
+
+
+
+ a diagonal from the upper half
+ [< 0]
+
+
+
+
+ Main diagonal
+ [= 0]
+
+
+
+
+ a diagonal from the lower half
+ [> 0]
+
+
+
+
+ Type of norm
+
+
+
+
+
+
+
+
+
+ The L1-norm (sum of absolute values) of the array is normalized.
+
+
+
+
+ The (Euclidean) L2-norm of the array is normalized.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The array values are scaled and shifted to the specified range.
+
+
+
+
+ The dimension index along which the matrix is reduce.
+
+
+
+
+ The matrix is reduced to a single row.
+ [= 0]
+
+
+
+
+ The matrix is reduced to a single column.
+ [= 1]
+
+
+
+
+ The dimension is chosen automatically by analysing the dst size.
+ [= -1]
+
+
+
+
+ The reduction operations for cvReduce
+
+
+ https://github.com/opencv/opencv/blob/37c12db3668a1fbbfdb286be59f662c67cfbfea1/modules/core/include/opencv2/core.hpp#L231
+
+
+
+
+ The output is the sum of all the matrix rows/columns.
+
+
+
+
+ The output is the mean vector of all the matrix rows/columns.
+
+
+
+
+ The output is the maximum (column/row-wise) of all the matrix rows/columns.
+
+
+
+
+ The output is the minimum (column/row-wise) of all the matrix rows/columns.
+
+
+
+
+ an enum to specify how to rotate the array.
+
+
+
+
+ Rotate 90 degrees clockwise
+
+
+
+
+ Rotate 180 degrees clockwise
+
+
+
+
+ Rotate 270 degrees clockwise
+
+
+
+
+ return codes for cv::solveLP() function
+
+
+
+
+ problem is unbounded (target function can achieve arbitrary high values)
+
+
+
+
+ problem is unfeasible (there are no points that satisfy all the constraints imposed)
+
+
+
+
+ there is only one maximum for target function
+
+
+
+
+ there are multiple maxima for target function - the arbitrary one is returned
+
+
+
+
+ Signals an error and raises the exception.
+
+
+
+
+ each matrix row is sorted independently
+
+
+
+
+ each matrix column is sorted independently;
+ this flag and the previous one are mutually exclusive.
+
+
+
+
+ each matrix row is sorted in the ascending order.
+
+
+
+
+ each matrix row is sorted in the descending order;
+ this flag and the previous one are also mutually exclusive.
+
+
+
+
+ cv::UMatUsageFlags
+
+
+
+
+ File Storage Node class
+
+
+
+
+ The default constructor
+
+
+
+
+ Initializes from cv::FileNode*
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Returns the node content as an integer. If the node stores floating-point number, it is rounded.
+
+
+
+
+
+
+ Returns the node content as an integer. If the node stores floating-point number, it is rounded.
+
+
+
+
+
+ Returns the node content as float
+
+
+
+
+
+
+ Returns the node content as System.Single
+
+
+
+
+
+ Returns the node content as double
+
+
+
+
+
+
+ Returns the node content as double
+
+
+
+
+
+ Returns the node content as text string
+
+
+
+
+
+
+ Returns the node content as text string
+
+
+
+
+
+ Returns the node content as OpenCV Mat
+
+
+
+
+
+
+ Returns the node content as OpenCV Mat
+
+
+
+
+
+ returns element of a mapping node
+
+
+
+
+ returns element of a sequence node
+
+
+
+
+ Returns true if the node is empty
+
+
+
+
+
+ Returns true if the node is a "none" object
+
+
+
+
+
+ Returns true if the node is a sequence
+
+
+
+
+
+ Returns true if the node is a mapping
+
+
+
+
+
+ Returns true if the node is an integer
+
+
+
+
+
+ Returns true if the node is a floating-point number
+
+
+
+
+
+ Returns true if the node is a text string
+
+
+
+
+
+ Returns true if the node has a name
+
+
+
+
+
+ Returns the node name or an empty string if the node is nameless
+
+
+
+
+
+ Returns the number of elements in the node, if it is a sequence or mapping, or 1 otherwise.
+
+
+
+
+
+ Returns type of the node.
+
+ Type of the node.
+
+
+
+ returns iterator pointing to the first node element
+
+
+
+
+
+ returns iterator pointing to the element following the last node element
+
+
+
+
+
+ Get FileNode iterator
+
+
+
+
+
+ Reads node elements to the buffer with the specified format
+
+
+
+
+
+
+
+ Reads the node element as Int32 (int)
+
+
+
+
+
+
+ Reads the node element as Single (float)
+
+
+
+
+
+
+ Reads the node element as Double
+
+
+
+
+
+
+ Reads the node element as String
+
+
+
+
+
+
+ Reads the node element as Mat
+
+
+
+
+
+
+ Reads the node element as SparseMat
+
+
+
+
+
+
+ Reads the node element as KeyPoint[]
+
+
+
+
+
+ Reads the node element as DMatch[]
+
+
+
+
+
+ Reads the node element as Range
+
+
+
+
+
+ Reads the node element as KeyPoint
+
+
+
+
+
+ Reads the node element as DMatch
+
+
+
+
+
+ Reads the node element as Point
+
+
+
+
+
+ Reads the node element as Point2f
+
+
+
+
+
+ Reads the node element as Point2d
+
+
+
+
+
+ Reads the node element as Point3i
+
+
+
+
+
+ Reads the node element as Point3f
+
+
+
+
+
+ Reads the node element as Point3d
+
+
+
+
+
+ Reads the node element as Size
+
+
+
+
+
+ Reads the node element as Size2f
+
+
+
+
+
+ Reads the node element as Size2d
+
+
+
+
+
+ Reads the node element as Rect
+
+
+
+
+
+ Reads the node element as Rect2f
+
+
+
+
+
+ Reads the node element as Rect2d
+
+
+
+
+
+ Reads the node element as Scalar
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ Reads the node element as Vector
+
+
+
+
+
+ type of the file storage node
+
+
+
+
+ empty node
+
+
+
+
+ an integer
+
+
+
+
+ floating-point number
+
+
+
+
+ synonym or REAL
+
+
+
+
+ text string in UTF-8 encoding
+
+
+
+
+ synonym for STR
+
+
+
+
+ sequence
+
+
+
+
+ mapping
+
+
+
+
+
+
+
+
+
+ compact representation of a sequence or mapping. Used only by YAML writer
+
+
+
+
+ if set, means that all the collection elements are numbers of the same type (real's or int's).
+ UNIFORM is used only when reading FileStorage; FLOW is used only when writing. So they share the same bit
+
+
+
+
+ empty structure (sequence or mapping)
+
+
+
+
+ the node has a name (i.e. it is element of a mapping)
+
+
+
+
+
+ File Storage Node class
+
+
+
+
+ The default constructor
+
+
+
+
+ Initializes from cv::FileNode*
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Reads node elements to the buffer with the specified format.
+ Usually it is more convenient to use operator `>>` instead of this method.
+
+ Specification of each array element.See @ref format_spec "format specification"
+ Pointer to the destination array.
+ Number of elements to read. If it is greater than number of remaining elements then all of them will be read.
+
+
+
+
+ *iterator
+
+
+
+
+ IEnumerable<T>.Reset
+
+
+
+
+ iterator++
+
+
+
+
+
+ iterator += ofs
+
+
+
+
+
+
+ Reads node elements to the buffer with the specified format.
+ Usually it is more convenient to use operator `>>` instead of this method.
+
+ Specification of each array element.See @ref format_spec "format specification"
+ Pointer to the destination array.
+ Number of elements to read. If it is greater than number of remaining elements then all of them will be read.
+
+
+
+
+ XML/YAML File Storage Class.
+
+
+
+
+ Default constructor.
+ You should call FileStorage::open() after initialization.
+
+
+
+
+ The full constructor
+
+ Name of the file to open or the text string to read the data from.
+ Extension of the file (.xml or .yml/.yaml) determines its format
+ (XML or YAML respectively). Also you can append .gz to work with
+ compressed files, for example myHugeMatrix.xml.gz.
+ If both FileStorage::WRITE and FileStorage::MEMORY flags are specified,
+ source is used just to specify the output file format
+ (e.g. mydata.xml, .yml etc.).
+
+ Encoding of the file. Note that UTF-16 XML encoding is not supported
+ currently and you should use 8-bit encoding instead of it.
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Returns the specified element of the top-level mapping
+
+
+
+
+
+
+ the currently written element
+
+
+
+
+ the writer state
+
+
+
+
+ operator that performs PCA. The previously stored data, if any, is released
+
+ Name of the file to open or the text string to read the data from.
+ Extension of the file (.xml, .yml/.yaml or .json) determines its format (XML, YAML or JSON respectively).
+ Also you can append .gz to work with compressed files, for example myHugeMatrix.xml.gz.
+ If both FileStorage::WRITE and FileStorage::MEMORY flags are specified, source is used just to specify the output file format (e.g. mydata.xml, .yml etc.).
+ A file name can also contain parameters. You can use this format, "*?base64" (e.g. "file.json?base64" (case sensitive)),
+ as an alternative to FileStorage::BASE64 flag.
+ Mode of operation.
+ Encoding of the file. Note that UTF-16 XML encoding is not supported
+ currently and you should use 8-bit encoding instead of it.
+
+
+
+
+ Returns true if the object is associated with currently opened file.
+
+
+
+
+
+ Closes the file and releases all the memory buffers
+
+
+
+
+ Closes the file, releases all the memory buffers and returns the text string
+
+
+
+
+
+ Returns the first element of the top-level mapping
+
+ The first element of the top-level mapping.
+
+
+
+ Returns the top-level mapping. YAML supports multiple streams
+
+ Zero-based index of the stream. In most cases there is only one stream in the file.
+ However, YAML supports multiple streams and so there can be several.
+ The top-level mapping.
+
+
+
+ Writes one or more numbers of the specified format to the currently written structure
+
+ Specification of each array element, see @ref format_spec "format specification"
+ Pointer to the written array.
+ Number of the uchar elements to write.
+
+
+
+ Writes a comment.
+ The function writes a comment into file storage. The comments are skipped when the storage is read.
+
+ The written comment, single-line or multi-line
+ If true, the function tries to put the comment at the end of current line.
+ Else if the comment is multi-line, or if it does not fit at the end of the current line, the comment starts a new line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the normalized object name for the specified file name
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ /Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+ Writes data to a file storage.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ File storage mode
+
+
+
+
+ The storage is open for reading
+
+
+
+
+ The storage is open for writing
+
+
+
+
+ The storage is open for appending
+
+
+
+
+ flag, read data from source or write data to the internal buffer
+ (which is returned by FileStorage::release)
+
+
+
+
+ flag, auto format
+
+
+
+
+ flag, XML format
+
+
+
+
+ flag, YAML format
+
+
+
+
+ flag, write rawdata in Base64 by default. (consider using WRITE_BASE64)
+
+
+
+
+ flag, enable both WRITE and BASE64
+
+
+
+
+ Proxy data type for passing Mat's and vector<>'s as input parameters
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Creates a proxy class of the specified Mat
+
+
+
+
+
+
+ Creates a proxy class of the specified Mat
+
+
+
+
+
+
+ Creates a proxy class of the specified MatExpr
+
+
+
+
+
+
+ Creates a proxy class of the specified Scalar
+
+
+
+
+
+
+ Creates a proxy class of the specified double
+
+
+
+
+
+
+ Creates a proxy class of the specified array of Mat
+
+
+
+
+
+
+ Creates a proxy class of the specified list
+
+ Array object
+
+
+
+
+ Creates a proxy class of the specified list
+
+ Array object
+ Matrix depth and channels for converting array to cv::Mat
+
+
+
+
+ Creates a proxy class of the specified list
+
+ Array object
+
+
+
+
+ Creates a proxy class of the specified list
+
+ Array object
+ Matrix depth and channels for converting array to cv::Mat
+
+
+
+
+ Creates a proxy class of the specified list
+
+ Array object
+
+
+
+
+ Creates a proxy class of the specified list
+
+ Array object
+ Matrix depth and channels for converting array to cv::Mat
+
+
+
+
+ Creates a proxy class of the specified Vec*b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Proxy data type for passing Mat's and vector<>'s as input parameters.
+ Synonym for OutputArray.
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Creates a proxy class of the specified Mat
+
+
+
+
+
+
+ Creates a proxy class of the specified UMat
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Linear Discriminant Analysis
+
+
+
+
+ constructor
+
+
+
+
+
+ Initializes and performs a Discriminant Analysis with Fisher's
+ Optimization Criterion on given data in src and corresponding labels
+ in labels.If 0 (or less) number of components are given, they are
+ automatically determined for given data in computation.
+
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Returns the eigenvectors of this LDA.
+
+
+
+
+ Returns the eigenvalues of this LDA.
+
+
+
+
+ Serializes this object to a given filename.
+
+
+
+
+
+ Deserializes this object from a given filename.
+
+
+
+
+
+ Serializes this object to a given cv::FileStorage.
+
+
+
+
+
+ Deserializes this object from a given cv::FileStorage.
+
+
+
+
+
+ Compute the discriminants for data in src (row aligned) and labels.
+
+
+
+
+
+
+ Projects samples into the LDA subspace.
+ src may be one or more row aligned samples.
+
+
+
+
+
+
+ Reconstructs projections from the LDA subspace.
+ src may be one or more row aligned projections.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Matrix expression
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Convert to cv::Mat
+
+
+
+
+
+
+ Convert to cv::Mat
+
+
+
+
+
+ Convert cv::Mat to cv::MatExpr
+
+
+
+
+
+
+ Convert cv::Mat to cv::MatExpr
+
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+
+
+
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+
+
+
+
+
+ Creates a matrix header for the specified matrix row.
+
+ A 0-based row index.
+
+
+
+
+ Creates a matrix header for the specified matrix column.
+
+ A 0-based column index.
+
+
+
+
+ Extracts a diagonal from a matrix
+
+ d index of the diagonal, with the following values:
+ - d=0 is the main diagonal.
+ - d<0 is a diagonal from the lower half. For example, d=-1 means the diagonal is set immediately below the main one.
+ - d>0 is a diagonal from the upper half. For example, d=1 means the diagonal is set immediately above the main one.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+
+
+
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+
+
+
+
+
+ Transposes a matrix.
+
+
+
+
+
+ Inverses a matrix.
+
+
+
+
+
+
+ Performs an element-wise multiplication or division of the two matrices.
+
+ Another array of the same type and the same size as this, or a matrix expression.
+ Optional scale factor.
+
+
+
+
+ Performs an element-wise multiplication or division of the two matrices.
+
+ Another array of the same type and the same size as this, or a matrix expression.
+ Optional scale factor.
+
+
+
+
+ Computes a cross-product of two 3-element vectors.
+
+ Another cross-product operand.
+
+
+
+
+ Computes a dot-product of two vectors.
+
+ another dot-product operand.
+
+
+
+
+ Returns the size of a matrix element.
+
+
+
+
+ Returns the type of a matrix element.
+
+
+
+
+ Computes absolute value of each matrix element
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OpenCV C++ n-dimensional dense array class (cv::Mat)
+
+
+
+
+ typeof(T) -> MatType
+
+
+
+
+ Creates from native cv::Mat* pointer
+
+
+
+
+
+ Creates empty Mat
+
+
+
+
+
+
+
+
+
+
+ Loads an image from a file. (cv::imread)
+
+ Name of file to be loaded.
+ Specifies color type of the loaded image
+
+
+
+ constructs 2D matrix of the specified size and type
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+
+
+
+ constructs 2D matrix of the specified size and type
+
+ 2D array size: Size(cols, rows) . In the Size() constructor,
+ the number of rows and the number of columns go in the reverse order.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType.CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+
+
+
+ constructs 2D matrix and fills it with the specified Scalar value.
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+
+
+
+ constructs 2D matrix and fills it with the specified Scalar value.
+
+ 2D array size: Size(cols, rows) . In the Size() constructor,
+ the number of rows and the number of columns go in the reverse order.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat::clone() .
+ Range of the m rows to take. As usual, the range start is inclusive and the range end is exclusive.
+ Use Range.All to take all the rows.
+ Range of the m columns to take. Use Range.All to take all the columns.
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat.Clone() .
+ Array of selected ranges of m along each dimensionality.
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat.Clone() .
+ Region of interest.
+
+
+
+ constructor for matrix headers pointing to user-allocated data
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data.
+ Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied.
+ This operation is very efficient and can be used to process external data using OpenCV functions.
+ The external data is not automatically de-allocated, so you should take care of it.
+ Number of bytes each matrix row occupies. The value should include the padding bytes at the end of each row, if any.
+ If the parameter is missing (set to AUTO_STEP ), no padding is assumed and the actual step is calculated as cols*elemSize() .
+
+
+
+ constructor for matrix headers pointing to user-allocated data
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data.
+ Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied.
+ This operation is very efficient and can be used to process external data using OpenCV functions.
+ The external data is not automatically de-allocated, so you should take care of it.
+ Number of bytes each matrix row occupies. The value should include the padding bytes at the end of each row, if any.
+ If the parameter is missing (set to AUTO_STEP ), no padding is assumed and the actual step is calculated as cols*elemSize() .
+
+
+
+ constructor for matrix headers pointing to user-allocated data
+
+ Array of integers specifying an n-dimensional array shape.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data.
+ Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied.
+ This operation is very efficient and can be used to process external data using OpenCV functions.
+ The external data is not automatically de-allocated, so you should take care of it.
+ Array of ndims-1 steps in case of a multi-dimensional array (the last step is always set to the element size).
+ If not specified, the matrix is assumed to be continuous.
+
+
+
+ constructor for matrix headers pointing to user-allocated data
+
+ Array of integers specifying an n-dimensional array shape.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data.
+ Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied.
+ This operation is very efficient and can be used to process external data using OpenCV functions.
+ The external data is not automatically de-allocated, so you should take care of it.
+ Array of ndims-1 steps in case of a multi-dimensional array (the last step is always set to the element size).
+ If not specified, the matrix is assumed to be continuous.
+
+
+
+ constructs n-dimensional matrix
+
+ Array of integers specifying an n-dimensional array shape.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+
+
+
+ constructs n-dimensional matrix
+
+ Array of integers specifying an n-dimensional array shape.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+
+
+
+ Releases the resources
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Creates the Mat instance from System.IO.Stream
+
+
+
+
+
+
+
+ Creates the Mat instance from image data (using cv::decode)
+
+
+
+
+
+
+
+ Reads image from the specified buffer in memory.
+
+ The input slice of bytes.
+ The same flags as in imread
+
+
+
+
+ Creates the Mat instance from image data (using cv::decode)
+
+
+
+
+
+
+
+ Reads image from the specified buffer in memory.
+
+ The input slice of bytes.
+ The same flags as in imread
+
+
+
+
+ Extracts a diagonal from a matrix, or creates a diagonal matrix.
+
+ One-dimensional matrix that represents the main diagonal.
+
+
+
+
+ Returns a zero array of the specified size and type.
+
+ Number of rows.
+ Number of columns.
+ Created matrix type.
+
+
+
+
+ Returns a zero array of the specified size and type.
+
+ Alternative to the matrix size specification Size(cols, rows) .
+ Created matrix type.
+
+
+
+
+ Returns a zero array of the specified size and type.
+
+ Created matrix type.
+
+
+
+
+
+ Returns an array of all 1’s of the specified size and type.
+
+ Number of rows.
+ Number of columns.
+ Created matrix type.
+
+
+
+
+ Returns an array of all 1’s of the specified size and type.
+
+ Alternative to the matrix size specification Size(cols, rows) .
+ Created matrix type.
+
+
+
+
+ Returns an array of all 1’s of the specified size and type.
+
+ Created matrix type.
+ Array of integers specifying the array shape.
+
+
+
+
+ Returns an identity matrix of the specified size and type.
+
+ Alternative to the matrix size specification Size(cols, rows) .
+ Created matrix type.
+
+
+
+
+ Returns an identity matrix of the specified size and type.
+
+ Number of rows.
+ Number of columns.
+ Created matrix type.
+
+
+
+
+ Initializes as N x 1 matrix and copies array data to this
+
+ Source array data to be copied to this
+
+
+
+ Initializes as M x N matrix and copies array data to this
+
+ Source array data to be copied to this
+
+
+
+ Initializes as N x 1 matrix and copies array data to this
+
+ Source array data to be copied to this
+
+
+
+ operator <
+
+
+
+
+
+
+ operator <
+
+
+
+
+
+
+ operator <=
+
+
+
+
+
+
+ operator <=
+
+
+
+
+
+
+ operator ==
+
+
+
+
+
+
+ operator ==
+
+
+
+
+
+
+ operator !=
+
+
+
+
+
+
+ operator !=
+
+
+
+
+
+
+ operator >
+
+
+
+
+
+
+ operator >
+
+
+
+
+
+
+ operator >=
+
+
+
+
+
+
+ operator >=
+
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start row of the extracted submatrix. The upper boundary is not included.
+ End row of the extracted submatrix. The upper boundary is not included.
+ Start column of the extracted submatrix. The upper boundary is not included.
+ End column of the extracted submatrix. The upper boundary is not included.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start and end row of the extracted submatrix. The upper boundary is not included.
+ To select all the rows, use Range.All().
+ Start and end column of the extracted submatrix.
+ The upper boundary is not included. To select all the columns, use Range.All().
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Extracted submatrix specified as a rectangle.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Array of selected ranges along each array dimension.
+
+
+
+
+ Retrieve UMat from Mat
+
+
+
+
+
+
+
+ Creates a matrix header for the specified matrix column.
+
+ A 0-based column index.
+
+
+
+
+ Creates a matrix header for the specified column span.
+
+ An inclusive 0-based start index of the column span.
+ An exclusive 0-based ending index of the column span.
+
+
+
+
+ Creates a matrix header for the specified column span.
+
+
+
+
+
+
+ Creates a matrix header for the specified matrix row.
+
+ A 0-based row index.
+
+
+
+
+ Creates a matrix header for the specified row span.
+
+
+
+
+
+
+
+ Creates a matrix header for the specified row span.
+
+
+
+
+
+
+ Single-column matrix that forms a diagonal matrix or index of the diagonal, with the following values:
+
+ Single-column matrix that forms a diagonal matrix or index of the diagonal, with the following values:
+
+
+
+
+ Creates a full copy of the matrix.
+
+
+
+
+
+ Returns the partial Mat of the specified Mat
+
+
+
+
+
+
+ Copies the matrix to another one.
+
+ Destination matrix. If it does not have a proper size or type before the operation, it is reallocated.
+ Operation mask. Its non-zero elements indicate which matrix elements need to be copied.
+
+
+
+ Copies the matrix to another one.
+
+ Destination matrix. If it does not have a proper size or type before the operation, it is reallocated.
+ Operation mask. Its non-zero elements indicate which matrix elements need to be copied.
+
+
+
+ Converts an array to another data type with optional scaling.
+
+ output matrix; if it does not have a proper size or type before the operation, it is reallocated.
+ desired output matrix type or, rather, the depth since the number of channels are the same as the input has;
+ if rtype is negative, the output matrix will have the same type as the input.
+ optional scale factor.
+ optional delta added to the scaled values.
+
+
+
+ Provides a functional form of convertTo.
+
+ Destination array.
+ Desired destination array depth (or -1 if it should be the same as the source type).
+
+
+
+ Sets all or some of the array elements to the specified value.
+
+
+
+
+
+
+
+ Sets all or some of the array elements to the specified value.
+
+
+
+
+
+
+
+ Changes the shape and/or the number of channels of a 2D matrix without copying the data.
+
+ New number of channels. If the parameter is 0, the number of channels remains the same.
+ New number of rows. If the parameter is 0, the number of rows remains the same.
+
+
+
+
+ Changes the shape and/or the number of channels of a 2D matrix without copying the data.
+
+ New number of channels. If the parameter is 0, the number of channels remains the same.
+ New number of rows. If the parameter is 0, the number of rows remains the same.
+
+
+
+
+ Transposes a matrix.
+
+
+
+
+
+ Inverses a matrix.
+
+ Matrix inversion method
+
+
+
+
+ Performs an element-wise multiplication or division of the two matrices.
+
+
+
+
+
+
+
+ Computes a cross-product of two 3-element vectors.
+
+ Another cross-product operand.
+
+
+
+
+ Computes a dot-product of two vectors.
+
+ another dot-product operand.
+
+
+
+
+ Allocates new array data if needed.
+
+ New number of rows.
+ New number of columns.
+ New matrix type.
+
+
+
+ Allocates new array data if needed.
+
+ Alternative new matrix size specification: Size(cols, rows)
+ New matrix type.
+
+
+
+ Allocates new array data if needed.
+
+ Array of integers specifying a new array shape.
+ New matrix type.
+
+
+
+ Reserves space for the certain number of rows.
+
+ The method reserves space for sz rows. If the matrix already has enough space to store sz rows,
+ nothing happens. If the matrix is reallocated, the first Mat::rows rows are preserved. The method
+ emulates the corresponding method of the STL vector class.
+
+ Number of rows.
+
+
+
+ Reserves space for the certain number of bytes.
+
+ The method reserves space for sz bytes. If the matrix already has enough space to store sz bytes,
+ nothing happens. If matrix has to be reallocated its previous content could be lost.
+
+ Number of bytes.
+
+
+
+ Changes the number of matrix rows.
+
+ New number of rows.
+
+
+
+ Changes the number of matrix rows.
+
+ New number of rows.
+ Value assigned to the newly added elements.
+
+
+
+ removes several hyper-planes from bottom of the matrix (Mat.pop_back)
+
+
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat::push_back)
+
+ Added element
+
+
+
+ Adds elements to the bottom of the matrix. (Mat.push_back)
+
+ Added line(s)
+
+
+
+ Locates the matrix header within a parent matrix.
+
+ Output parameter that contains the size of the whole matrix containing *this as a part.
+ Output parameter that contains an offset of *this inside the whole matrix.
+
+
+
+ Adjusts a submatrix size and position within the parent matrix.
+
+ Shift of the top submatrix boundary upwards.
+ Shift of the bottom submatrix boundary downwards.
+ Shift of the left submatrix boundary to the left.
+ Shift of the right submatrix boundary to the right.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+
+
+
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start and end row of the extracted submatrix. The upper boundary is not included.
+ To select all the rows, use Range::all().
+ Start and end column of the extracted submatrix. The upper boundary is not included.
+ To select all the columns, use Range::all().
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Extracted submatrix specified as a rectangle.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Array of selected ranges along each array dimension.
+
+
+
+
+ Reports whether the matrix is continuous or not.
+
+
+
+
+
+ Returns whether this matrix is a part of other matrix or not.
+
+
+
+
+
+ Returns the matrix element size in bytes.
+
+
+
+
+
+ Returns the size of each matrix element channel in bytes.
+
+
+
+
+
+ Returns the type of a matrix element.
+
+
+
+
+
+ Returns the depth of a matrix element.
+
+
+
+
+
+ Returns the number of matrix channels.
+
+
+
+
+
+ Returns a normalized step.
+
+
+
+
+
+
+ Returns true if the array has no elements.
+
+
+
+
+
+ Returns the total number of array elements.
+
+
+
+
+
+ Returns the total number of array elements.
+ The method returns the number of elements within a certain sub-array slice with startDim <= dim < endDim
+
+
+
+
+
+
+
+
+
+ Number of channels or number of columns the matrix should have.
+ For a 2-D matrix, when the matrix has only 1 column, then it should have
+ elemChannels channels; When the matrix has only 1 channel,
+ then it should have elemChannels columns. For a 3-D matrix, it should have only one channel.
+ Furthermore, if the number of planes is not one, then the number of rows within every
+ plane has to be 1; if the number of rows within every plane is not 1,
+ then the number of planes has to be 1.
+ The depth the matrix should have. Set it to -1 when any depth is fine.
+ Set it to true to require the matrix to be continuous
+ -1 if the requirement is not satisfied.
+ Otherwise, it returns the number of elements in the matrix. Note that an element may have multiple channels.
+
+
+
+ Returns a pointer to the specified matrix row.
+
+ Index along the dimension 0
+
+
+
+
+ Returns a pointer to the specified matrix element.
+
+ Index along the dimension 0
+ Index along the dimension 1
+
+
+
+
+ Returns a pointer to the specified matrix element.
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+
+
+
+
+ Returns a pointer to the specified matrix element.
+
+ Array of Mat::dims indices.
+
+
+
+
+ includes several bit-fields:
+ - the magic signature
+ - continuity flag
+ - depth
+ - number of channels
+
+
+
+
+ the array dimensionality, >= 2
+
+
+
+
+ the number of rows or -1 when the array has more than 2 dimensions
+
+
+
+
+ the number of rows or -1 when the array has more than 2 dimensions
+
+
+
+
+
+ the number of columns or -1 when the array has more than 2 dimensions
+
+
+
+
+
+ the number of columns or -1 when the array has more than 2 dimensions
+
+
+
+
+
+ pointer to the data
+
+
+
+
+ unsafe pointer to the data
+
+
+
+
+ The pointer that is possible to compute a relative sub-array position in the main container array using locateROI()
+
+
+
+
+ The pointer that is possible to compute a relative sub-array position in the main container array using locateROI()
+
+
+
+
+ The pointer that is possible to compute a relative sub-array position in the main container array using locateROI()
+
+
+
+
+ Returns a matrix size.
+
+
+
+
+
+ Returns a matrix size.
+
+
+
+
+
+
+ Returns number of bytes each matrix row occupies.
+
+
+
+
+
+ Returns number of bytes each matrix row occupies.
+
+
+
+
+
+
+ Returns a string that represents this Mat.
+
+
+
+
+
+ Returns a string that represents each element value of Mat.
+ This method corresponds to std::ostream << Mat
+
+
+
+
+
+
+ Makes a Mat that have the same size, depth and channels as this image
+
+
+
+
+
+ Gets a type-specific indexer. The indexer has getters/setters to access each matrix element.
+
+
+
+
+
+
+ Gets a type-specific unsafe indexer. The indexer has getters/setters to access each matrix element.
+
+
+
+
+
+
+ Mat Indexer
+
+
+
+
+
+ 1-dimensional indexer
+
+ Index along the dimension 0
+ A value to the specified array element.
+
+
+
+ 2-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ A value to the specified array element.
+
+
+
+ 3-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ A value to the specified array element.
+
+
+
+ n-dimensional indexer
+
+ Array of Mat::dims indices.
+ A value to the specified array element.
+
+
+
+ Mat Indexer
+
+
+
+
+
+ 1-dimensional indexer
+
+ Index along the dimension 0
+ A value to the specified array element.
+
+
+
+ 2-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ A value to the specified array element.
+
+
+
+ 3-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ A value to the specified array element.
+
+
+
+ n-dimensional indexer
+
+ Array of Mat::dims indices.
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Array of Mat::dims indices.
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Array of Mat::dims indices.
+ A value to the specified array element.
+
+
+
+ Set a value to the specified array element.
+
+
+ Index along the dimension 0
+
+
+
+
+ Set a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+
+
+
+
+ Set a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+
+
+
+
+ Set a value to the specified array element.
+
+
+ Array of Mat::dims indices.
+
+
+
+
+ Get the data of this matrix as array
+
+ Primitive or Vec array to be copied
+ Length of copied bytes
+
+ using var m1 = new Mat(1, 1, MatType.CV_8UC1);
+ m1.GetArray(out byte[] array);
+
+ using var m2 = new Mat(1, 1, MatType.CV_32SC1);
+ m2.GetArray(out int[] array);
+
+ using var m3 = new Mat(1, 1, MatType.CV_8UC(6));
+ m3.GetArray(out Vec6b[] array);
+
+ using var m4 = new Mat(1, 1, MatType.CV_64FC4);
+ m4.GetArray(out Vec4d[] array);
+
+
+
+
+ Get the data of this matrix as array
+
+ Primitive or Vec array to be copied
+ Length of copied bytes
+
+ using var m1 = new Mat(1, 1, MatType.CV_8UC1);
+ m1.GetRectangularArray(out byte[,] array);
+
+ using var m2 = new Mat(1, 1, MatType.CV_32SC1);
+ m2.GetRectangularArray(out int[,] array);
+
+ using var m3 = new Mat(1, 1, MatType.CV_8UC(6));
+ m3.GetRectangularArray(out Vec6b[,] array);
+
+ using var m4 = new Mat(1, 1, MatType.CV_64FC4);
+ m4.GetRectangularArray(out Vec4d[,] array);
+
+
+
+
+ Set the specified array data to this matrix
+
+ Primitive or Vec array to be copied
+ Length of copied bytes
+
+
+
+ Set the specified array data to this matrix
+
+ Primitive or Vec array to be copied
+ Length of copied bytes
+
+
+
+ Encodes an image into a memory buffer.
+
+ Encodes an image into a memory buffer.
+ Format-specific parameters.
+
+
+
+
+ Encodes an image into a memory buffer.
+
+ Encodes an image into a memory buffer.
+ Format-specific parameters.
+
+
+
+
+ Converts Mat to System.IO.MemoryStream
+
+
+
+
+
+
+
+ Writes image data encoded from this Mat to System.IO.Stream
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates type-specific Mat instance from this.
+
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Runs the given functor over all matrix elements in parallel.
+
+
+
+
+
+ Creates a new span over the Mat.
+
+
+
+
+
+
+ Computes absolute value of each matrix element
+
+
+
+
+
+ Scales, computes absolute values and converts the result to 8-bit.
+
+ The optional scale factor. [By default this is 1]
+ The optional delta added to the scaled values. [By default this is 0]
+
+
+
+
+ transforms array of numbers using a lookup table: dst(i)=lut(src(i))
+
+ Look-up table of 256 elements.
+ In the case of multi-channel source array, the table should either have
+ a single channel (in this case the same table is used for all channels)
+ or the same number of channels as in the source array
+
+
+
+
+ transforms array of numbers using a lookup table: dst(i)=lut(src(i))
+
+ Look-up table of 256 elements.
+ In the case of multi-channel source array, the table should either have
+ a single channel (in this case the same table is used for all channels)
+ or the same number of channels as in the source array
+
+
+
+
+ computes sum of array elements
+
+
+
+
+
+ computes the number of nonzero array elements
+
+ number of non-zero elements in mtx
+
+
+
+ returns the list of locations of non-zero pixels
+
+
+
+
+
+ computes mean value of selected array elements
+
+ The optional operation mask
+
+
+
+
+ computes mean value and standard deviation of all or selected array elements
+
+ The output parameter: computed mean value
+ The output parameter: computed standard deviation
+ The optional operation mask
+
+
+
+ computes norm of the selected array part
+
+ Type of the norm
+ The optional operation mask
+
+
+
+
+ scales and shifts array elements so that either the specified norm (alpha)
+ or the minimum (alpha) and maximum (beta) array values get the specified values
+
+ The norm value to normalize to or the lower range boundary
+ in the case of range normalization
+ The upper range boundary in the case of range normalization;
+ not used for norm normalization
+ The normalization type
+ When the parameter is negative,
+ the destination array will have the same type as src,
+ otherwise it will have the same number of channels as src and the depth =CV_MAT_DEPTH(rtype)
+ The optional operation mask
+
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ Pointer to returned minimum value
+ Pointer to returned maximum value
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ Pointer to returned minimum location
+ Pointer to returned maximum location
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ Pointer to returned minimum value
+ Pointer to returned maximum value
+ Pointer to returned minimum location
+ Pointer to returned maximum location
+ The optional mask used to select a sub-array
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ Pointer to returned minimum value
+ Pointer to returned maximum value
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+
+
+
+
+
+ finds global minimum and maximum array elements and returns their values and their locations
+
+ Pointer to returned minimum value
+ Pointer to returned maximum value
+
+
+
+
+
+
+ transforms 2D matrix to 1D row or column vector by taking sum, minimum, maximum or mean value over all the rows
+
+ The dimension index along which the matrix is reduced.
+ 0 means that the matrix is reduced to a single row and 1 means that the matrix is reduced to a single column
+
+ When it is negative, the destination vector will have
+ the same type as the source matrix, otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), mtx.channels())
+
+
+
+
+ Copies each plane of a multi-channel array to a dedicated array
+
+ The number of arrays must match mtx.channels() .
+ The arrays themselves will be reallocated if needed
+
+
+
+ extracts a single channel from src (coi is 0-based index)
+
+
+
+
+
+
+ inserts a single channel to dst (coi is 0-based index)
+
+
+
+
+
+
+ reverses the order of the rows, columns or both in a matrix
+
+ Specifies how to flip the array:
+ 0 means flipping around the x-axis, positive (e.g., 1) means flipping around y-axis,
+ and negative (e.g., -1) means flipping around both axes. See also the discussion below for the formulas.
+ The destination array; will have the same size and same type as src
+
+
+
+ replicates the input matrix the specified number of times in the horizontal and/or vertical direction
+
+ How many times the src is repeated along the vertical axis
+ How many times the src is repeated along the horizontal axis
+
+
+
+
+ Checks if array elements lie between the elements of two other arrays.
+
+ inclusive lower boundary array or a scalar.
+ inclusive upper boundary array or a scalar.
+ The destination array, will have the same size as src and CV_8U type
+
+
+
+ Checks if array elements lie between the elements of two other arrays.
+
+ inclusive lower boundary array or a scalar.
+ inclusive upper boundary array or a scalar.
+ The destination array, will have the same size as src and CV_8U type
+
+
+
+ computes square root of each matrix element (dst = src**0.5)
+
+ The destination array; will have the same size and the same type as src
+
+
+
+ raises the input matrix elements to the specified power (b = a**power)
+
+ The exponent of power
+ The destination array; will have the same size and the same type as src
+
+
+
+ computes exponent of each matrix element (dst = e**src)
+
+ The destination array; will have the same size and same type as src
+
+
+
+ computes natural logarithm of absolute value of each matrix element: dst = log(abs(src))
+
+ The destination array; will have the same size and same type as src
+
+
+
+ checks that each matrix element is within the specified range.
+
+ The flag indicating whether the functions quietly
+ return false when the array elements are out of range,
+ or they throw an exception.
+
+
+
+
+ checks that each matrix element is within the specified range.
+
+ The flag indicating whether the functions quietly
+ return false when the array elements are out of range,
+ or they throw an exception.
+ The optional output parameter, where the position of
+ the first outlier is stored.
+ The inclusive lower boundary of valid values range
+ The exclusive upper boundary of valid values range
+
+
+
+
+ converts NaN's to the given number
+
+
+
+
+
+ multiplies matrix by its transposition from the left or from the right
+
+ Specifies the multiplication ordering; see the description below
+ The optional delta matrix, subtracted from src before the
+ multiplication. When the matrix is empty ( delta=Mat() ), it’s assumed to be
+ zero, i.e. nothing is subtracted, otherwise if it has the same size as src,
+ then it’s simply subtracted, otherwise it is "repeated" to cover the full src
+ and then subtracted. Type of the delta matrix, when it's not empty, must be the
+ same as the type of created destination matrix, see the rtype description
+ The optional scale factor for the matrix product
+ When it’s negative, the destination matrix will have the
+ same type as src . Otherwise, it will have type=CV_MAT_DEPTH(rtype),
+ which should be either CV_32F or CV_64F
+
+
+
+ transposes the matrix
+
+ The destination array of the same type as src
+
+
+
+ performs affine transformation of each element of multi-channel input matrix
+
+ The transformation matrix
+ The destination array; will have the same size and depth as src and as many channels as mtx.rows
+
+
+
+ performs perspective transformation of each element of multi-channel input matrix
+
+ 3x3 or 4x4 transformation matrix
+ The destination array; it will have the same size and same type as src
+
+
+
+ extends the symmetrical matrix from the lower half or from the upper half
+
+ If true, the lower half is copied to the upper half,
+ otherwise the upper half is copied to the lower half
+
+
+
+ initializes scaled identity matrix (not necessarily square).
+
+ The value to assign to the diagonal elements
+
+
+
+ computes determinant of a square matrix.
+ The input matrix must have CV_32FC1 or CV_64FC1 type and square size.
+
+ determinant of the specified matrix.
+
+
+
+ computes trace of a matrix
+
+
+
+
+
+ sorts independently each matrix row or each matrix column
+
+ The operation flags, a combination of the SortFlag values
+ The destination array of the same size and the same type as src
+
+
+
+ sorts independently each matrix row or each matrix column
+
+ The operation flags, a combination of SortFlag values
+ The destination integer array of the same size as src
+
+
+
+ Performs a forward Discrete Fourier transform of 1D or 2D floating-point array.
+
+ Transformation flags, a combination of the DftFlag2 values
+ When the parameter != 0, the function assumes that
+ only the first nonzeroRows rows of the input array ( DFT_INVERSE is not set)
+ or only the first nonzeroRows of the output array ( DFT_INVERSE is set) contain non-zeros,
+ thus the function can handle the rest of the rows more efficiently and
+ thus save some time. This technique is very useful for computing array cross-correlation
+ or convolution using DFT
+ The destination array, which size and type depends on the flags
+
+
+
+ Performs an inverse Discrete Fourier transform of 1D or 2D floating-point array.
+
+ Transformation flags, a combination of the DftFlag2 values
+ When the parameter != 0, the function assumes that
+ only the first nonzeroRows rows of the input array ( DFT_INVERSE is not set)
+ or only the first nonzeroRows of the output array ( DFT_INVERSE is set) contain non-zeros,
+ thus the function can handle the rest of the rows more efficiently and
+ thus save some time. This technique is very useful for computing array cross-correlation
+ or convolution using DFT
+ The destination array, which size and type depends on the flags
+
+
+
+ performs forward or inverse 1D or 2D Discrete Cosine Transformation
+
+ Transformation flags, a combination of DctFlag2 values
+ The destination array; will have the same size and same type as src
+
+
+
+ performs inverse 1D or 2D Discrete Cosine Transformation
+
+ Transformation flags, a combination of DctFlag2 values
+ The destination array; will have the same size and same type as src
+
+
+
+ fills array with uniformly-distributed random numbers from the range [low, high)
+
+ The inclusive lower boundary of the generated random numbers
+ The exclusive upper boundary of the generated random numbers
+
+
+
+ fills array with uniformly-distributed random numbers from the range [low, high)
+
+ The inclusive lower boundary of the generated random numbers
+ The exclusive upper boundary of the generated random numbers
+
+
+
+ fills array with normally-distributed random numbers with the specified mean and the standard deviation
+
+ The mean value (expectation) of the generated random numbers
+ The standard deviation of the generated random numbers
+
+
+
+ fills array with normally-distributed random numbers with the specified mean and the standard deviation
+
+ The mean value (expectation) of the generated random numbers
+ The standard deviation of the generated random numbers
+
+
+
+ shuffles the input array elements
+
+ The scale factor that determines the number of random swap operations.
+ The input/output numerical 1D array
+
+
+
+ shuffles the input array elements
+
+ The scale factor that determines the number of random swap operations.
+ The optional random number generator used for shuffling.
+ If it is null, theRng() is used instead.
+ The input/output numerical 1D array
+
+
+
+ Draws a line segment connecting two points
+
+ First point's x-coordinate of the line segment.
+ First point's y-coordinate of the line segment.
+ Second point's x-coordinate of the line segment.
+ Second point's y-coordinate of the line segment.
+ Line color.
+ Line thickness. [By default this is 1]
+ Type of the line. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws a line segment connecting two points
+
+ First point of the line segment.
+ Second point of the line segment.
+ Line color.
+ Line thickness. [By default this is 1]
+ Type of the line. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws simple, thick or filled rectangle
+
+ One of the rectangle vertices.
+ Opposite rectangle vertex.
+ Line color (RGB) or brightness (grayscale image).
+ Thickness of lines that make up the rectangle. Negative values make the function to draw a filled rectangle. [By default this is 1]
+ Type of the line, see cvLine description. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws simple, thick or filled rectangle
+
+ Rectangle.
+ Line color (RGB) or brightness (grayscale image).
+ Thickness of lines that make up the rectangle. Negative values make the function to draw a filled rectangle. [By default this is 1]
+ Type of the line, see cvLine description. [By default this is LineType.Link8]
+ Number of fractional bits in the point coordinates. [By default this is 0]
+
+
+
+ Draws a circle
+
+ X-coordinate of the center of the circle.
+ Y-coordinate of the center of the circle.
+ Radius of the circle.
+ Circle color.
+ Thickness of the circle outline if positive, otherwise indicates that a filled circle has to be drawn. [By default this is 1]
+ Type of the circle boundary. [By default this is LineType.Link8]
+ Number of fractional bits in the center coordinates and radius value. [By default this is 0]
+
+
+
+ Draws a circle
+
+ Center of the circle.
+ Radius of the circle.
+ Circle color.
+ Thickness of the circle outline if positive, otherwise indicates that a filled circle has to be drawn. [By default this is 1]
+ Type of the circle boundary. [By default this is LineType.Link8]
+ Number of fractional bits in the center coordinates and radius value. [By default this is 0]
+
+
+
+ Draws simple or thick elliptic arc or fills ellipse sector
+
+ Center of the ellipse.
+ Length of the ellipse axes.
+ Rotation angle.
+ Starting angle of the elliptic arc.
+ Ending angle of the elliptic arc.
+ Ellipse color.
+ Thickness of the ellipse arc. [By default this is 1]
+ Type of the ellipse boundary. [By default this is LineType.Link8]
+ Number of fractional bits in the center coordinates and axes' values. [By default this is 0]
+
+
+
+ Draws simple or thick elliptic arc or fills ellipse sector
+
+ The enclosing box of the ellipse drawn
+ Ellipse color.
+ Thickness of the ellipse boundary. [By default this is 1]
+ Type of the ellipse boundary. [By default this is LineType.Link8]
+
+
+
+ Draws a marker on a predefined position in an image.
+
+ The function cv::drawMarker draws a marker on a given position in the image.For the moment several
+ marker types are supported, see #MarkerTypes for more information.
+
+ The point where the crosshair is positioned.
+ Line color.
+ The specific type of marker you want to use.
+ The length of the marker axis [default = 20 pixels]
+ Line thickness.
+ Type of the line.
+
+
+
+ Fills a convex polygon.
+
+ The polygon vertices
+ Polygon color
+ Type of the polygon boundaries
+ The number of fractional bits in the vertex coordinates
+
+
+
+ Fills the area bounded by one or more polygons
+
+ Array of polygons, each represented as an array of points
+ Polygon color
+ Type of the polygon boundaries
+ The number of fractional bits in the vertex coordinates
+
+
+
+
+ draws one or more polygonal curves
+
+
+
+
+
+
+
+
+
+
+ renders text string in the image
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes an image into a memory buffer.
+
+ Encodes an image into a memory buffer.
+ Format-specific parameters.
+
+
+
+
+ Encodes an image into a memory buffer.
+
+ Encodes an image into a memory buffer.
+ Format-specific parameters.
+
+
+
+
+ Saves an image to a specified file.
+
+
+
+
+
+
+
+ Saves an image to a specified file.
+
+
+
+
+
+
+
+ Saves an image to a specified file.
+
+
+
+
+
+
+
+ Saves an image to a specified file.
+
+
+
+
+
+
+
+ Forms a border around the image
+
+ Specify how much pixels in each direction from the source image rectangle one needs to extrapolate
+ Specify how much pixels in each direction from the source image rectangle one needs to extrapolate
+ Specify how much pixels in each direction from the source image rectangle one needs to extrapolate
+ Specify how much pixels in each direction from the source image rectangle one needs to extrapolate
+ The border type
+ The border value if borderType == Constant
+
+
+
+ Smoothes image using median filter.
+ The source image must have 1-, 3- or 4-channel and
+ its depth should be CV_8U , CV_16U or CV_32F.
+
+ The aperture linear size. It must be odd and more than 1, i.e. 3, 5, 7 ...
+ The destination array; will have the same size and the same type as src.
+
+
+
+ Blurs an image using a Gaussian filter.
+ The input image can have any number of channels, which are processed independently,
+ but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.
+
+ Gaussian kernel size. ksize.width and ksize.height can differ but they both must be positive and odd.
+ Or, they can be zero’s and then they are computed from sigma* .
+ Gaussian kernel standard deviation in X direction.
+ Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be equal to sigmaX,
+ if both sigmas are zeros, they are computed from ksize.width and ksize.height,
+ respectively (see getGaussianKernel() for details); to fully control the result
+ regardless of possible future modifications of all this semantics, it is recommended to specify all of ksize, sigmaX, and sigmaY.
+ pixel extrapolation method
+
+
+
+ Applies bilateral filter to the image
+ The source image must be a 8-bit or floating-point, 1-channel or 3-channel image.
+
+ The diameter of each pixel neighborhood, that is used during filtering.
+ If it is non-positive, it's computed from sigmaSpace
+ Filter sigma in the color space.
+ Larger value of the parameter means that farther colors within the pixel neighborhood
+ will be mixed together, resulting in larger areas of semi-equal color
+ Filter sigma in the coordinate space.
+ Larger value of the parameter means that farther pixels will influence each other
+ (as long as their colors are close enough; see sigmaColor). Then d>0 , it specifies
+ the neighborhood size regardless of sigmaSpace, otherwise d is proportional to sigmaSpace
+
+ The destination image; will have the same size and the same type as src
+
+
+
+ Smoothes image using box filter
+
+
+ The smoothing kernel size
+ The anchor point. The default value Point(-1,-1) means that the anchor is at the kernel center
+ Indicates, whether the kernel is normalized by its area or not
+ The border mode used to extrapolate pixels outside of the image
+ The destination image; will have the same size and the same type as src
+
+
+
+ Smoothes image using normalized box filter
+
+ The smoothing kernel size
+ The anchor point. The default value Point(-1,-1) means that the anchor is at the kernel center
+ The border mode used to extrapolate pixels outside of the image
+ The destination image; will have the same size and the same type as src
+
+
+
+ Convolves an image with the kernel
+
+ The desired depth of the destination image. If it is negative, it will be the same as src.depth()
+ Convolution kernel (or rather a correlation kernel),
+ a single-channel floating point matrix. If you want to apply different kernels to
+ different channels, split the image into separate color planes using split() and process them individually
+ The anchor of the kernel that indicates the relative position of
+ a filtered point within the kernel. The anchor should lie within the kernel.
+ The special default value (-1,-1) means that the anchor is at the kernel center
+ The optional value added to the filtered pixels before storing them in dst
+ The pixel extrapolation method
+ The destination image. It will have the same size and the same number of channels as src
+
+
+
+ Applies separable linear filter to an image
+
+ The destination image depth
+ The coefficients for filtering each row
+ The coefficients for filtering each column
+ The anchor position within the kernel; The default value (-1, 1) means that the anchor is at the kernel center
+ The value added to the filtered results before storing them
+ The pixel extrapolation method
+ The destination image; will have the same size and the same number of channels as src
+
+
+
+ Calculates the first, second, third or mixed image derivatives using an extended Sobel operator
+
+ The destination image depth
+ Order of the derivative x
+ Order of the derivative y
+ Size of the extended Sobel kernel, must be 1, 3, 5 or 7
+ The optional scale factor for the computed derivative values (by default, no scaling is applied
+ The optional delta value, added to the results prior to storing them in dst
+ The pixel extrapolation method
+ The destination image; will have the same size and the same number of channels as src
+
+
+
+ Calculates the first x- or y- image derivative using Scharr operator
+
+ The destination image depth
+ Order of the derivative x
+ Order of the derivative y
+ The optional scale factor for the computed derivative values (by default, no scaling is applie
+ The optional delta value, added to the results prior to storing them in dst
+ The pixel extrapolation method
+ The destination image; will have the same size and the same number of channels as src
+
+
+
+ Calculates the Laplacian of an image
+
+ The desired depth of the destination image
+ The aperture size used to compute the second-derivative filters
+ The optional scale factor for the computed Laplacian values (by default, no scaling is applied
+ The optional delta value, added to the results prior to storing them in dst
+ The pixel extrapolation method
+ Destination image; will have the same size and the same number of channels as src
+
+
+
+ Finds edges in an image using Canny algorithm.
+
+ The first threshold for the hysteresis procedure
+ The second threshold for the hysteresis procedure
+ Aperture size for the Sobel operator [By default this is ApertureSize.Size3]
+ Indicates, whether the more accurate L2 norm should be used to compute the image gradient magnitude (true), or a faster default L1 norm is enough (false). [By default this is false]
+ The output edge map. It will have the same size and the same type as image
+
+
+
+ computes both eigenvalues and the eigenvectors of 2x2 derivative covariation matrix at each pixel. The output is stored as 6-channel matrix.
+
+
+
+
+
+
+
+ computes another complex cornerness criteria at each pixel
+
+
+
+
+
+
+ adjusts the corner locations with sub-pixel accuracy to maximize the certain cornerness criteria
+
+ Initial coordinates of the input corners and refined coordinates provided for output.
+ Half of the side length of the search window.
+ Half of the size of the dead region in the middle of the search zone
+ over which the summation in the formula below is not done. It is used sometimes to avoid possible singularities
+ of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such a size.
+ Criteria for termination of the iterative process of corner refinement.
+ That is, the process of corner position refinement stops either after criteria.maxCount iterations
+ or when the corner position moves by less than criteria.epsilon on some iteration.
+
+
+
+
+ Finds the strong enough corners where the cornerMinEigenVal() or cornerHarris() report the local maxima.
+ Input matrix must be 8-bit or floating-point 32-bit, single-channel image.
+
+ Maximum number of corners to return. If there are more corners than are found,
+ the strongest of them is returned.
+ Parameter characterizing the minimal accepted quality of image corners.
+ The parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue
+ or the Harris function response (see cornerHarris() ). The corners with the quality measure less than
+ the product are rejected. For example, if the best corner has the quality measure = 1500, and the qualityLevel=0.01,
+ then all the corners with the quality measure less than 15 are rejected.
+ Minimum possible Euclidean distance between the returned corners.
+ Optional region of interest. If the image is not empty
+ (it needs to have the type CV_8UC1 and the same size as image ), it specifies the region
+ in which the corners are detected.
+ Size of an average block for computing a derivative covariation matrix over each pixel neighborhood.
+ Parameter indicating whether to use a Harris detector
+ Free parameter of the Harris detector.
+ Output vector of detected corners.
+
+
+
+ Finds lines in a binary image using standard Hough transform.
+ The input matrix must be 8-bit, single-channel, binary source image.
+ This image may be modified by the function.
+
+ Distance resolution of the accumulator in pixels
+ Angle resolution of the accumulator in radians
+ The accumulator threshold parameter. Only those lines are returned that get enough votes ( > threshold )
+ For the multi-scale Hough transform it is the divisor for the distance resolution rho. [By default this is 0]
+ For the multi-scale Hough transform it is the divisor for the distance resolution theta. [By default this is 0]
+ The output vector of lines. Each line is represented by a two-element vector (rho, theta) .
+ rho is the distance from the coordinate origin (0,0) (top-left corner of the image) and theta is the line rotation angle in radians
+
+
+
+ Finds lines segments in a binary image using probabilistic Hough transform.
+
+ Distance resolution of the accumulator in pixels
+ Angle resolution of the accumulator in radians
+ The accumulator threshold parameter. Only those lines are returned that get enough votes ( > threshold )
+ The minimum line length. Line segments shorter than that will be rejected. [By default this is 0]
+ The maximum allowed gap between points on the same line to link them. [By default this is 0]
+ The output lines. Each line is represented by a 4-element vector (x1, y1, x2, y2)
+
+
+
+ Finds circles in a grayscale image using a Hough transform.
+ The input matrix must be 8-bit, single-channel and grayscale.
+
+ The available methods are HoughMethods.Gradient and HoughMethods.GradientAlt
+ The inverse ratio of the accumulator resolution to the image resolution.
+ Minimum distance between the centers of the detected circles.
+ The first method-specific parameter. [By default this is 100]
+ The second method-specific parameter. [By default this is 100]
+ Minimum circle radius. [By default this is 0]
+ Maximum circle radius. [By default this is 0]
+ The output vector found circles. Each vector is encoded as 3-element floating-point vector (x, y, radius)
+
+
+
+ Dilates an image by using a specific structuring element.
+
+ The structuring element used for dilation. If element=new Mat() , a 3x3 rectangular structuring element is used
+ Position of the anchor within the element. The default value (-1, -1) means that the anchor is at the element center
+ The number of times dilation is applied. [By default this is 1]
+ The pixel extrapolation method. [By default this is BorderTypes.Constant]
+ The border value in case of a constant border. The default value has a special meaning. [By default this is CvCpp.MorphologyDefaultBorderValue()]
+ The destination image. It will have the same size and the same type as src
+
+
+
+ Erodes an image by using a specific structuring element.
+
+ The structuring element used for dilation. If element=new Mat(), a 3x3 rectangular structuring element is used
+ Position of the anchor within the element. The default value (-1, -1) means that the anchor is at the element center
+ The number of times erosion is applied
+ The pixel extrapolation method
+ The border value in case of a constant border. The default value has a special meaning. [By default this is CvCpp.MorphologyDefaultBorderValue()]
+ The destination image. It will have the same size and the same type as src
+
+
+
+ Performs advanced morphological transformations
+
+ Type of morphological operation
+ Structuring element
+ Position of the anchor within the element. The default value (-1, -1) means that the anchor is at the element center
+ Number of times erosion and dilation are applied. [By default this is 1]
+ The pixel extrapolation method. [By default this is BorderTypes.Constant]
+ The border value in case of a constant border. The default value has a special meaning. [By default this is CvCpp.MorphologyDefaultBorderValue()]
+ Destination image. It will have the same size and the same type as src
+
+
+
+ Resizes an image.
+
+ output image size; if it equals zero, it is computed as:
+ dsize = Size(round(fx*src.cols), round(fy*src.rows))
+ Either dsize or both fx and fy must be non-zero.
+ scale factor along the horizontal axis; when it equals 0,
+ it is computed as: (double)dsize.width/src.cols
+ scale factor along the vertical axis; when it equals 0,
+ it is computed as: (double)dsize.height/src.rows
+ interpolation method
+ output image; it has the size dsize (when it is non-zero) or the size computed
+ from src.size(), fx, and fy; the type of dst is the same as of src.
+
+
+
+ Applies an affine transformation to an image.
+
+ output image that has the size dsize and the same type as src.
+ 2x3 transformation matrix.
+ size of the output image.
+ combination of interpolation methods and the optional flag
+ WARP_INVERSE_MAP that means that M is the inverse transformation (dst -> src) .
+ pixel extrapolation method; when borderMode=BORDER_TRANSPARENT,
+ it means that the pixels in the destination image corresponding to the "outliers"
+ in the source image are not modified by the function.
+ value used in case of a constant border; by default, it is 0.
+
+
+
+ Applies a perspective transformation to an image.
+
+ 3x3 transformation matrix.
+ size of the output image.
+ combination of interpolation methods (INTER_LINEAR or INTER_NEAREST)
+ and the optional flag WARP_INVERSE_MAP, that sets M as the inverse transformation (dst -> src).
+ pixel extrapolation method (BORDER_CONSTANT or BORDER_REPLICATE).
+ value used in case of a constant border; by default, it equals 0.
+ output image that has the size dsize and the same type as src.
+
+
+
+ Applies a generic geometrical transformation to an image.
+
+ The first map of either (x,y) points or just x values having the type CV_16SC2, CV_32FC1, or CV_32FC2.
+ The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map if map1 is (x,y) points), respectively.
+ Interpolation method. The method INTER_AREA is not supported by this function.
+ Pixel extrapolation method. When borderMode=BORDER_TRANSPARENT,
+ it means that the pixels in the destination image that corresponds to the "outliers" in
+ the source image are not modified by the function.
+ Value used in case of a constant border. By default, it is 0.
+ Destination image. It has the same size as map1 and the same type as src
+
+
+
+ Inverts an affine transformation.
+
+ Output reverse affine transformation.
+
+
+
+ Retrieves a pixel rectangle from an image with sub-pixel accuracy.
+
+ Size of the extracted patch.
+ Floating point coordinates of the center of the extracted rectangle
+ within the source image. The center must be inside the image.
+ Depth of the extracted pixels. By default, they have the same depth as src.
+ Extracted patch that has the size patchSize and the same number of channels as src .
+
+
+
+ Adds an image to the accumulator.
+
+ Optional operation mask.
+ Accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point.
+
+
+
+ Adds the square of a source image to the accumulator.
+
+ Optional operation mask.
+ Accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point.
+
+
+
+ Computes a Hanning window coefficients in two dimensions.
+
+ The window size specifications
+ Created array type
+
+
+
+ Applies a fixed-level threshold to each array element.
+ The input matrix must be single-channel, 8-bit or 32-bit floating point.
+
+ threshold value.
+ maximum value to use with the THRESH_BINARY and THRESH_BINARY_INV thresholding types.
+ thresholding type (see the details below).
+ output array of the same size and type as src.
+
+
+
+ Applies an adaptive threshold to an array.
+ Source matrix must be 8-bit single-channel image.
+
+ Non-zero value assigned to the pixels for which the condition is satisfied. See the details below.
+ Adaptive thresholding algorithm to use, ADAPTIVE_THRESH_MEAN_C or ADAPTIVE_THRESH_GAUSSIAN_C .
+ Thresholding type that must be either THRESH_BINARY or THRESH_BINARY_INV .
+ Size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, and so on.
+ Constant subtracted from the mean or weighted mean (see the details below).
+ Normally, it is positive but may be zero or negative as well.
+ Destination image of the same size and the same type as src.
+
+
+
+ Blurs an image and downsamples it.
+
+ size of the output image; by default, it is computed as Size((src.cols+1)/2
+
+
+
+
+
+ Upsamples an image and then blurs it.
+
+ size of the output image; by default, it is computed as Size(src.cols*2, (src.rows*2)
+
+
+
+
+
+ Upsamples an image and then blurs it.
+
+
+
+
+
+
+
+ corrects lens distortion for the given camera matrix and distortion coefficients
+
+ Input camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5,
+ or 8 elements. If the vector is null, the zero distortion coefficients are assumed.
+ Camera matrix of the distorted image.
+ By default, it is the same as cameraMatrix but you may additionally scale
+ and shift the result by using a different matrix.
+ Output (corrected) image that has the same size and type as src .
+
+
+
+ returns the default new camera matrix (by default it is the same as cameraMatrix unless centerPricipalPoint=true)
+
+ Camera view image size in pixels.
+ Location of the principal point in the new camera matrix.
+ The parameter indicates whether this location should be at the image center or not.
+ the camera matrix that is either an exact copy of the input cameraMatrix
+ (when centerPrinicipalPoint=false), or the modified one (when centerPrincipalPoint=true).
+
+
+
+ Computes the ideal point coordinates from the observed point coordinates.
+ Input matrix is an observed point coordinates, 1xN or Nx1 2-channel (CV_32FC2 or CV_64FC2).
+
+ Camera matrix
+ Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements.
+ If the vector is null, the zero distortion coefficients are assumed.
+ Rectification transformation in the object space (3x3 matrix).
+ R1 or R2 computed by stereoRectify() can be passed here.
+ If the matrix is empty, the identity transformation is used.
+ New camera matrix (3x3) or new projection matrix (3x4).
+ P1 or P2 computed by stereoRectify() can be passed here. If the matrix is empty,
+ the identity new camera matrix is used.
+ Output ideal point coordinates after undistortion and reverse perspective transformation.
+ If matrix P is identity or omitted, dst will contain normalized point coordinates.
+
+
+
+ Normalizes the grayscale image brightness and contrast by normalizing its histogram.
+ The source matrix is 8-bit single channel image.
+
+ The destination image; will have the same size and the same type as src
+
+
+
+ Performs a marker-based image segmentation using the watershed algorithm.
+ Input matrix is 8-bit 3-channel image.
+
+ Input/output 32-bit single-channel image (map) of markers.
+ It should have the same size as image.
+
+
+
+ Performs initial step of meanshift segmentation of an image.
+ The source matrix is 8-bit, 3-channel image.
+
+ The spatial window radius.
+ The color window radius.
+ Maximum level of the pyramid for the segmentation.
+ Termination criteria: when to stop meanshift iterations.
+ The destination image of the same format and the same size as the source.
+
+
+
+ Segments the image using GrabCut algorithm.
+ The input is 8-bit 3-channel image.
+
+ Input/output 8-bit single-channel mask.
+ The mask is initialized by the function when mode is set to GC_INIT_WITH_RECT.
+ Its elements may have Cv2.GC_BGD / Cv2.GC_FGD / Cv2.GC_PR_BGD / Cv2.GC_PR_FGD
+ ROI containing a segmented object. The pixels outside of the ROI are
+ marked as "obvious background". The parameter is only used when mode==GC_INIT_WITH_RECT.
+ Temporary array for the background model. Do not modify it while you are processing the same image.
+ Temporary arrays for the foreground model. Do not modify it while you are processing the same image.
+ Number of iterations the algorithm should make before returning the result.
+ Note that the result can be refined with further calls with mode==GC_INIT_WITH_MASK or mode==GC_EVAL .
+ Operation mode that could be one of GrabCutFlag value.
+
+
+
+ Fills a connected component with the given color.
+ Input/output 1- or 3-channel, 8-bit, or floating-point image.
+ It is modified by the function unless the FLOODFILL_MASK_ONLY flag is set in the
+ second variant of the function. See the details below.
+
+ Starting point.
+ New value of the repainted domain pixels.
+
+
+
+
+ Fills a connected component with the given color.
+ Input/output 1- or 3-channel, 8-bit, or floating-point image.
+ It is modified by the function unless the FLOODFILL_MASK_ONLY flag is set in the
+ second variant of the function. See the details below.
+
+ Starting point.
+ New value of the repainted domain pixels.
+ Optional output parameter set by the function to the
+ minimum bounding rectangle of the repainted domain.
+ Maximal lower brightness/color difference between the currently
+ observed pixel and one of its neighbors belonging to the component, or a seed pixel
+ being added to the component.
+ Maximal upper brightness/color difference between the currently
+ observed pixel and one of its neighbors belonging to the component, or a seed pixel
+ being added to the component.
+ Operation flags. Lower bits contain a connectivity value,
+ 4 (default) or 8, used within the function. Connectivity determines which
+ neighbors of a pixel are considered.
+
+
+
+
+ Fills a connected component with the given color.
+ Input/output 1- or 3-channel, 8-bit, or floating-point image.
+ It is modified by the function unless the FLOODFILL_MASK_ONLY flag is set in the
+ second variant of the function. See the details below.
+
+ (For the second function only) Operation mask that should be a single-channel 8-bit image,
+ 2 pixels wider and 2 pixels taller. The function uses and updates the mask, so you take responsibility of
+ initializing the mask content. Flood-filling cannot go across non-zero pixels in the mask. For example,
+ an edge detector output can be used as a mask to stop filling at edges. It is possible to use the same mask
+ in multiple calls to the function to make sure the filled area does not overlap.
+ Starting point.
+ New value of the repainted domain pixels.
+
+
+
+
+ Fills a connected component with the given color.
+ Input/output 1- or 3-channel, 8-bit, or floating-point image.
+ It is modified by the function unless the FLOODFILL_MASK_ONLY flag is set in the
+ second variant of the function. See the details below.
+
+ (For the second function only) Operation mask that should be a single-channel 8-bit image,
+ 2 pixels wider and 2 pixels taller. The function uses and updates the mask, so you take responsibility of
+ initializing the mask content. Flood-filling cannot go across non-zero pixels in the mask. For example,
+ an edge detector output can be used as a mask to stop filling at edges. It is possible to use the same mask
+ in multiple calls to the function to make sure the filled area does not overlap.
+ Starting point.
+ New value of the repainted domain pixels.
+ Optional output parameter set by the function to the
+ minimum bounding rectangle of the repainted domain.
+ Maximal lower brightness/color difference between the currently
+ observed pixel and one of its neighbors belonging to the component, or a seed pixel
+ being added to the component.
+ Maximal upper brightness/color difference between the currently
+ observed pixel and one of its neighbors belonging to the component, or a seed pixel
+ being added to the component.
+ Operation flags. Lower bits contain a connectivity value,
+ 4 (default) or 8, used within the function. Connectivity determines which
+ neighbors of a pixel are considered.
+
+
+
+
+ Converts image from one color space to another
+
+ The color space conversion code
+ The number of channels in the destination image; if the parameter is 0, the number of the channels will be derived automatically from src and the code
+ The destination image; will have the same size and the same depth as src
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+ The input is a raster image (single-channel, 8-bit or floating-point 2D array).
+
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Computes the proximity map for the raster template and the image where the template is searched for
+ The input is Image where the search is running; should be 8-bit or 32-bit floating-point.
+
+ Searched template; must be not greater than the source image and have the same data type
+ Specifies the comparison method
+ Mask of searched template. It must have the same datatype and size with templ. It is not set by default.
+ A map of comparison results; will be single-channel 32-bit floating-point.
+ If image is WxH and templ is wxh then result will be (W-w+1) x (H-h+1).
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ destination labeled image
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ The number of labels
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ destination labeled image
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ output image label type. Currently CV_32S and CV_16U are supported.
+ The number of labels
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ destination labeled rectangular array
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ The number of labels
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ destination labeled image
+ statistics output for each label, including the background label,
+ see below for available statistics. Statistics are accessed via stats(label, COLUMN)
+ where COLUMN is one of cv::ConnectedComponentsTypes
+ floating point centroid (x,y) output for each label,
+ including the background label
+ 8 or 4 for 8-way or 4-way connectivity respectively
+
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ destination labeled image
+ statistics output for each label, including the background label,
+ see below for available statistics. Statistics are accessed via stats(label, COLUMN)
+ where COLUMN is one of cv::ConnectedComponentsTypes
+ floating point centroid (x,y) output for each label,
+ including the background label
+ 8 or 4 for 8-way or 4-way connectivity respectively
+ output image label type. Currently CV_32S and CV_16U are supported.
+
+
+
+
+ computes the connected components labeled image of boolean image.
+ image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0
+ represents the background label. ltype specifies the output label image type, an important
+ consideration based on the total number of labels or alternatively the total number of
+ pixels in the source image.
+
+ 8 or 4 for 8-way or 4-way connectivity respectively
+
+
+
+
+ Finds contours in a binary image.
+ The source is an 8-bit single-channel image. Non-zero pixels are treated as 1’s.
+ Zero pixels remain 0’s, so the image is treated as binary. The function modifies this image while extracting the contours.
+
+ Detected contours. Each contour is stored as a vector of points.
+ Optional output vector, containing information about the image topology.
+ It has as many elements as the number of contours. For each i-th contour contours[i],
+ the members of the elements hierarchy[i] are set to 0-based indices in contours of the next
+ and previous contours at the same hierarchical level, the first child contour and the parent contour, respectively.
+ If for the contour i there are no next, previous, parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.
+ Contour retrieval mode
+ Contour approximation method
+ Optional offset by which every contour point is shifted.
+ This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context.
+
+
+
+ Finds contours in a binary image.
+ The source is an 8-bit single-channel image. Non-zero pixels are treated as 1’s.
+ Zero pixels remain 0’s, so the image is treated as binary. The function modifies this image while extracting the contours.
+
+ Detected contours. Each contour is stored as a vector of points.
+ Optional output vector, containing information about the image topology.
+ It has as many elements as the number of contours. For each i-th contour contours[i],
+ the members of the elements hierarchy[i] are set to 0-based indices in contours of the next
+ and previous contours at the same hierarchical level, the first child contour and the parent contour, respectively.
+ If for the contour i there are no next, previous, parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.
+ Contour retrieval mode
+ Contour approximation method
+ Optional offset by which every contour point is shifted.
+ This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context.
+
+
+
+ Finds contours in a binary image.
+ The source is an 8-bit single-channel image. Non-zero pixels are treated as 1’s.
+ Zero pixels remain 0’s, so the image is treated as binary. The function modifies this image while extracting the contours.
+
+ Contour retrieval mode
+ Contour approximation method
+ Optional offset by which every contour point is shifted.
+ This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context.
+ Detected contours. Each contour is stored as a vector of points.
+
+
+
+ Finds contours in a binary image.
+ The source is an 8-bit single-channel image. Non-zero pixels are treated as 1’s.
+ Zero pixels remain 0’s, so the image is treated as binary. The function modifies this image while extracting the contours.
+
+ Contour retrieval mode
+ Contour approximation method
+ Optional offset by which every contour point is shifted.
+ This is useful if the contours are extracted from the image ROI and then they should be analyzed in the whole image context.
+ Detected contours. Each contour is stored as a vector of points.
+
+
+
+ Draws contours in the image
+
+ All the input contours. Each contour is stored as a point vector.
+ Parameter indicating a contour to draw. If it is negative, all the contours are drawn.
+ Color of the contours.
+ Thickness of lines the contours are drawn with. If it is negative (for example, thickness=CV_FILLED ),
+ the contour interiors are drawn.
+ Line connectivity.
+ Optional information about hierarchy. It is only needed if you want to draw only some of the contours
+ Maximal level for drawn contours. If it is 0, only the specified contour is drawn.
+ If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function draws the contours,
+ all the nested contours, all the nested-to-nested contours, and so on. This parameter is only taken into account
+ when there is hierarchy available.
+ Optional contour shift parameter. Shift all the drawn contours by the specified offset = (dx, dy)
+
+
+
+ Draws contours in the image
+
+ All the input contours. Each contour is stored as a point vector.
+ Parameter indicating a contour to draw. If it is negative, all the contours are drawn.
+ Color of the contours.
+ Thickness of lines the contours are drawn with. If it is negative (for example, thickness=CV_FILLED ),
+ the contour interiors are drawn.
+ Line connectivity.
+ Optional information about hierarchy. It is only needed if you want to draw only some of the contours
+ Maximal level for drawn contours. If it is 0, only the specified contour is drawn.
+ If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function draws the contours,
+ all the nested contours, all the nested-to-nested contours, and so on. This parameter is only taken into account
+ when there is hierarchy available.
+ Optional contour shift parameter. Shift all the drawn contours by the specified offset = (dx, dy)
+
+
+
+ Approximates contour or a curve using Douglas-Peucker algorithm.
+ The input is the polygon or curve to approximate and
+ it must be 1 x N or N x 1 matrix of type CV_32SC2 or CV_32FC2.
+
+ Specifies the approximation accuracy.
+ This is the maximum distance between the original curve and its approximation.
+ The result of the approximation;
+ The type should match the type of the input curve
+ The result of the approximation;
+ The type should match the type of the input curve
+
+
+
+ Calculates a contour perimeter or a curve length.
+ The input is 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+
+ Indicates, whether the curve is closed or not
+
+
+
+
+ Calculates the up-right bounding rectangle of a point set.
+ The input is 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+
+ Minimal up-right bounding rectangle for the specified point set.
+
+
+
+ Calculates the contour area.
+ The input is 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+
+
+
+
+
+
+ Finds the minimum area rotated rectangle enclosing a 2D point set.
+ The input is 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+
+
+
+
+
+ Finds the minimum area circle enclosing a 2D point set.
+ The input is 2D point set, represented by CV_32SC2 or CV_32FC2 matrix.
+
+ The output center of the circle
+ The output radius of the circle
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+
+ The output convex hull. It is either a vector of points that form the
+ hull (must have the same type as the input points), or a vector of 0-based point
+ indices of the hull points in the original array (since the set of convex hull
+ points is a subset of the original point set).
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+ The output convex hull. It is a vector of points that form the
+ hull (must have the same type as the input points).
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+ The output convex hull. It is a vector of points that form the
+ hull (must have the same type as the input points).
+
+
+
+ Computes convex hull for a set of 2D points.
+
+ If true, the output convex hull will be oriented clockwise,
+ otherwise it will be oriented counter-clockwise. Here, the usual screen coordinate
+ system is assumed - the origin is at the top-left corner, x axis is oriented to the right,
+ and y axis is oriented downwards.
+ The output convex hull. It is a vector of 0-based point
+ indices of the hull points in the original array (since the set of convex hull
+ points is a subset of the original point set).
+
+
+
+ Computes the contour convexity defects
+
+ Convex hull obtained using convexHull() that
+ should contain indices of the contour points that make the hull.
+ The output vector of convexity defects.
+ Each convexity defect is represented as 4-element integer vector
+ (a.k.a. cv::Vec4i): (start_index, end_index, farthest_pt_index, fixpt_depth),
+ where indices are 0-based indices in the original contour of the convexity defect beginning,
+ end and the farthest point, and fixpt_depth is fixed-point approximation
+ (with 8 fractional bits) of the distance between the farthest contour point and the hull.
+ That is, to get the floating-point value of the depth will be fixpt_depth/256.0.
+
+
+
+ Computes the contour convexity defects
+
+ Convex hull obtained using convexHull() that
+ should contain indices of the contour points that make the hull.
+ The output vector of convexity defects.
+ Each convexity defect is represented as 4-element integer vector
+ (a.k.a. cv::Vec4i): (start_index, end_index, farthest_pt_index, fixpt_depth),
+ where indices are 0-based indices in the original contour of the convexity defect beginning,
+ end and the farthest point, and fixpt_depth is fixed-point approximation
+ (with 8 fractional bits) of the distance between the farthest contour point and the hull.
+ That is, to get the floating-point value of the depth will be fixpt_depth/256.0.
+
+
+
+ Returns true if the contour is convex.
+ Does not support contours with self-intersection
+
+
+
+
+
+ Fits ellipse to the set of 2D points.
+
+
+
+
+
+ Fits line to the set of 2D points using M-estimator algorithm.
+ The input is vector of 2D points.
+
+ Distance used by the M-estimator
+ Numerical parameter ( C ) for some types of distances.
+ If it is 0, an optimal value is chosen.
+ Sufficient accuracy for the radius
+ (distance between the coordinate origin and the line).
+ Sufficient accuracy for the angle.
+ 0.01 would be a good default value for reps and aeps.
+ Output line parameters.
+
+
+
+ Fits line to the set of 3D points using M-estimator algorithm.
+ The input is vector of 3D points.
+
+ Distance used by the M-estimator
+ Numerical parameter ( C ) for some types of distances.
+ If it is 0, an optimal value is chosen.
+ Sufficient accuracy for the radius
+ (distance between the coordinate origin and the line).
+ Sufficient accuracy for the angle.
+ 0.01 would be a good default value for reps and aeps.
+ Output line parameters.
+
+
+
+ Checks if the point is inside the contour.
+ Optionally computes the signed distance from the point to the contour boundary.
+
+ Point tested against the contour.
+ If true, the function estimates the signed distance
+ from the point to the nearest contour edge. Otherwise, the function only checks
+ if the point is inside a contour or not.
+ Positive (inside), negative (outside), or zero (on an edge) value.
+
+
+
+ Computes the distance transform map
+
+
+
+
+
+
+ Abstract definition of Mat indexer
+
+
+
+
+
+ 1-dimensional indexer
+
+ Index along the dimension 0
+ A value to the specified array element.
+
+
+
+ 2-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ A value to the specified array element.
+
+
+
+ 3-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ A value to the specified array element.
+
+
+
+ n-dimensional indexer
+
+ Array of Mat::dims indices.
+ A value to the specified array element.
+
+
+
+ Parent matrix object
+
+
+
+
+ Step byte length for each dimension
+
+
+
+
+ Constructor
+
+
+
+
+
+ Type-specific abstract matrix
+
+ Element Type
+
+
+
+ Creates empty Mat
+
+
+
+
+ Creates from native cv::Mat* pointer
+
+
+
+
+
+ Initializes by Mat object
+
+ Managed Mat object
+
+
+
+ constructs 2D matrix of the specified size and type
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+
+
+
+ constructs 2D matrix of the specified size and type
+
+ 2D array size: Size(cols, rows) . In the Size() constructor,
+ the number of rows and the number of columns go in the reverse order.
+
+
+
+ constructs 2D matrix and fills it with the specified Scalar value.
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+
+
+
+ constructs 2D matrix and fills it with the specified Scalar value.
+
+ 2D array size: Size(cols, rows) . In the Size() constructor,
+ the number of rows and the number of columns go in the reverse order.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat::clone() .
+ Range of the m rows to take. As usual, the range start is inclusive and the range end is exclusive.
+ Use Range.All to take all the rows.
+ Range of the m columns to take. Use Range.All to take all the columns.
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat.Clone() .
+ Array of selected ranges of m along each dimensionality.
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat.Clone() .
+ Region of interest.
+
+
+
+ constructor for matrix headers pointing to user-allocated data
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data.
+ Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied.
+ This operation is very efficient and can be used to process external data using OpenCV functions.
+ The external data is not automatically de-allocated, so you should take care of it.
+ Number of bytes each matrix row occupies. The value should include the padding bytes at the end of each row, if any.
+ If the parameter is missing (set to AUTO_STEP ), no padding is assumed and the actual step is calculated as cols*elemSize() .
+
+
+
+ constructor for matrix headers pointing to user-allocated data
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data.
+ Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied.
+ This operation is very efficient and can be used to process external data using OpenCV functions.
+ The external data is not automatically de-allocated, so you should take care of it.
+ Number of bytes each matrix row occupies. The value should include the padding bytes at the end of each row, if any.
+ If the parameter is missing (set to AUTO_STEP ), no padding is assumed and the actual step is calculated as cols*elemSize() .
+
+
+
+ constructor for matrix headers pointing to user-allocated data
+
+ Array of integers specifying an n-dimensional array shape.
+ Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data.
+ Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied.
+ This operation is very efficient and can be used to process external data using OpenCV functions.
+ The external data is not automatically de-allocated, so you should take care of it.
+ Array of ndims-1 steps in case of a multi-dimensional array (the last step is always set to the element size).
+ If not specified, the matrix is assumed to be continuous.
+
+
+
+ constructor for matrix headers pointing to user-allocated data
+
+ Array of integers specifying an n-dimensional array shape.
+ Pointer to the user data. Matrix constructors that take data and step parameters do not allocate matrix data.
+ Instead, they just initialize the matrix header that points to the specified data, which means that no data is copied.
+ This operation is very efficient and can be used to process external data using OpenCV functions.
+ The external data is not automatically de-allocated, so you should take care of it.
+ Array of ndims-1 steps in case of a multi-dimensional array (the last step is always set to the element size).
+ If not specified, the matrix is assumed to be continuous.
+
+
+
+ constructs n-dimensional matrix
+
+ Array of integers specifying an n-dimensional array shape.
+
+
+
+ constructs n-dimensional matrix
+
+ Array of integers specifying an n-dimensional array shape.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+
+
+
+ Matrix indexer
+
+
+
+
+ 1-dimensional indexer
+
+ Index along the dimension 0
+ A value to the specified array element.
+
+
+
+ 2-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ A value to the specified array element.
+
+
+
+ 3-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ A value to the specified array element.
+
+
+
+ n-dimensional indexer
+
+ Array of Mat::dims indices.
+ A value to the specified array element.
+
+
+
+ Gets a type-specific indexer. The indexer has getters/setters to access each matrix element.
+
+
+
+
+
+ Gets read-only enumerator
+
+
+
+
+
+ Convert this mat to managed array
+
+
+
+
+
+ Convert this mat to managed rectangular array
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a full copy of the matrix.
+
+
+
+
+
+ Changes the shape of channels of a 2D matrix without copying the data.
+
+ New number of rows. If the parameter is 0, the number of rows remains the same.
+
+
+
+
+ Changes the shape of a 2D matrix without copying the data.
+
+ New number of rows. If the parameter is 0, the number of rows remains the same.
+
+
+
+
+ Transposes a matrix.
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start row of the extracted submatrix. The upper boundary is not included.
+ End row of the extracted submatrix. The upper boundary is not included.
+ Start column of the extracted submatrix. The upper boundary is not included.
+ End column of the extracted submatrix. The upper boundary is not included.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start and end row of the extracted submatrix. The upper boundary is not included.
+ To select all the rows, use Range.All().
+ Start and end column of the extracted submatrix.
+ The upper boundary is not included. To select all the columns, use Range.All().
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Extracted submatrix specified as a rectangle.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Array of selected ranges along each array dimension.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start row of the extracted submatrix. The upper boundary is not included.
+ End row of the extracted submatrix. The upper boundary is not included.
+ Start column of the extracted submatrix. The upper boundary is not included.
+ End column of the extracted submatrix. The upper boundary is not included.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start and end row of the extracted submatrix. The upper boundary is not included.
+ To select all the rows, use Range.All().
+ Start and end column of the extracted submatrix.
+ The upper boundary is not included. To select all the columns, use Range.All().
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Extracted submatrix specified as a rectangle.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Array of selected ranges along each array dimension.
+
+
+
+
+ OpenCV C++ n-dimensional dense array class (cv::Mat)
+
+
+
+
+ typeof(T) -> MatType
+
+
+
+
+ Creates from native cv::Mat* pointer
+
+
+
+
+
+ Creates empty Mat
+
+
+
+
+
+
+
+
+
+
+ constructs 2D matrix of the specified size and type
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ usage flags for allocator
+
+
+
+ constructs 2D matrix of the specified size and type
+
+ 2D array size: Size(cols, rows) . In the Size() constructor,
+ the number of rows and the number of columns go in the reverse order.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType.CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ usage flags for allocator
+
+
+
+ constructs 2D matrix and fills it with the specified Scalar value.
+
+ Number of rows in a 2D array.
+ Number of columns in a 2D array.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+ usage flags for allocator
+
+
+
+ constructs 2D matrix and fills it with the specified Scalar value.
+
+ 2D array size: Size(cols, rows) . In the Size() constructor,
+ the number of rows and the number of columns go in the reverse order.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+ usage flags for allocator
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat::clone() .
+ Range of the m rows to take. As usual, the range start is inclusive and the range end is exclusive.
+ Use Range.All to take all the rows.
+ Range of the m columns to take. Use Range.All to take all the columns.
+ usage flags for allocator
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat.Clone() .
+ Array of selected ranges of m along each dimensionality.
+
+
+
+ creates a matrix header for a part of the bigger matrix
+
+ Array that (as a whole or partly) is assigned to the constructed matrix.
+ No data is copied by these constructors. Instead, the header pointing to m data or its sub-array
+ is constructed and associated with it. The reference counter, if any, is incremented.
+ So, when you modify the matrix formed using such a constructor, you also modify the corresponding elements of m .
+ If you want to have an independent copy of the sub-array, use Mat.Clone() .
+ Region of interest.
+
+
+
+ constructs n-dimensional matrix
+
+ Array of integers specifying an n-dimensional array shape.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+
+
+
+ constructs n-dimensional matrix
+
+ Array of integers specifying an n-dimensional array shape.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+ An optional value to initialize each matrix element with.
+ To set all the matrix elements to the particular value after the construction, use SetTo(Scalar s) method .
+
+
+
+ Releases the resources
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Extracts a diagonal from a matrix, or creates a diagonal matrix.
+
+ One-dimensional matrix that represents the main diagonal.
+
+
+
+
+ Returns a zero array of the specified size and type.
+
+ Number of rows.
+ Number of columns.
+ Created matrix type.
+
+
+
+
+ Returns a zero array of the specified size and type.
+
+ Alternative to the matrix size specification Size(cols, rows) .
+ Created matrix type.
+
+
+
+
+ Returns a zero array of the specified size and type.
+
+ Created matrix type.
+
+
+
+
+
+ Returns an array of all 1’s of the specified size and type.
+
+ Number of rows.
+ Number of columns.
+ Created matrix type.
+
+
+
+
+ Returns an array of all 1’s of the specified size and type.
+
+ Alternative to the matrix size specification Size(cols, rows) .
+ Created matrix type.
+
+
+
+
+ Returns an array of all 1’s of the specified size and type.
+
+ Created matrix type.
+ Array of integers specifying the array shape.
+
+
+
+
+ Returns an identity matrix of the specified size and type.
+
+ Alternative to the matrix size specification Size(cols, rows) .
+ Created matrix type.
+
+
+
+
+ Returns an identity matrix of the specified size and type.
+
+ Number of rows.
+ Number of columns.
+ Created matrix type.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start row of the extracted submatrix. The upper boundary is not included.
+ End row of the extracted submatrix. The upper boundary is not included.
+ Start column of the extracted submatrix. The upper boundary is not included.
+ End column of the extracted submatrix. The upper boundary is not included.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start and end row of the extracted submatrix. The upper boundary is not included.
+ To select all the rows, use Range.All().
+ Start and end column of the extracted submatrix.
+ The upper boundary is not included. To select all the columns, use Range.All().
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Extracted submatrix specified as a rectangle.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Array of selected ranges along each array dimension.
+
+
+
+
+ Returns the UMat data as a Mat.
+
+ AccessFlag determining the mode in which the data is to be acquired
+
+
+
+
+ Creates a matrix header for the specified matrix column.
+
+ A 0-based column index.
+
+
+
+
+ Creates a matrix header for the specified column span.
+
+ An inclusive 0-based start index of the column span.
+ An exclusive 0-based ending index of the column span.
+
+
+
+
+ Creates a matrix header for the specified column span.
+
+
+
+
+
+
+ Creates a matrix header for the specified matrix row.
+
+ A 0-based row index.
+
+
+
+
+ Creates a matrix header for the specified row span.
+
+
+
+
+
+
+
+ Creates a matrix header for the specified row span.
+
+
+
+
+
+
+ Single-column matrix that forms a diagonal matrix or index of the diagonal, with the following values:
+
+ Single-column matrix that forms a diagonal matrix or index of the diagonal, with the following values:
+
+
+
+
+ Creates a full copy of the matrix.
+
+
+
+
+
+ Returns the partial Mat of the specified Mat
+
+
+
+
+
+
+ Copies the matrix to another one.
+
+ Destination matrix. If it does not have a proper size or type before the operation, it is reallocated.
+ Operation mask. Its non-zero elements indicate which matrix elements need to be copied.
+
+
+
+ Copies the matrix to another one.
+
+ Destination matrix. If it does not have a proper size or type before the operation, it is reallocated.
+ Operation mask. Its non-zero elements indicate which matrix elements need to be copied.
+
+
+
+ Converts an array to another data type with optional scaling.
+
+ output matrix; if it does not have a proper size or type before the operation, it is reallocated.
+ desired output matrix type or, rather, the depth since the number of channels are the same as the input has;
+ if rtype is negative, the output matrix will have the same type as the input.
+ optional scale factor.
+ optional delta added to the scaled values.
+
+
+
+ Provides a functional form of convertTo.
+
+ Destination array.
+ Desired destination array depth (or -1 if it should be the same as the source type).
+
+
+
+ Sets all or some of the array elements to the specified value.
+
+
+
+
+
+
+
+ Sets all or some of the array elements to the specified value.
+
+
+
+
+
+
+
+ Changes the shape and/or the number of channels of a 2D matrix without copying the data.
+
+ New number of channels. If the parameter is 0, the number of channels remains the same.
+ New number of rows. If the parameter is 0, the number of rows remains the same.
+
+
+
+
+ Changes the shape and/or the number of channels of a 2D matrix without copying the data.
+
+ New number of channels. If the parameter is 0, the number of channels remains the same.
+ New number of rows. If the parameter is 0, the number of rows remains the same.
+
+
+
+
+ Transposes a matrix.
+
+
+
+
+
+ Inverses a matrix.
+
+ Matrix inversion method
+
+
+
+
+ Performs an element-wise multiplication or division of the two matrices.
+
+
+
+
+
+
+
+ Computes a dot-product of two vectors.
+
+ another dot-product operand.
+
+
+
+
+ Allocates new array data if needed.
+
+ New number of rows.
+ New number of columns.
+ New matrix type.
+
+
+
+ Allocates new array data if needed.
+
+ Alternative new matrix size specification: Size(cols, rows)
+ New matrix type.
+
+
+
+ Allocates new array data if needed.
+
+ Array of integers specifying a new array shape.
+ New matrix type.
+
+
+
+ Locates the matrix header within a parent matrix.
+
+ Output parameter that contains the size of the whole matrix containing *this as a part.
+ Output parameter that contains an offset of *this inside the whole matrix.
+
+
+
+ Adjusts a submatrix size and position within the parent matrix.
+
+ Shift of the top submatrix boundary upwards.
+ Shift of the bottom submatrix boundary downwards.
+ Shift of the left submatrix boundary to the left.
+ Shift of the right submatrix boundary to the right.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+
+
+
+
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Start and end row of the extracted submatrix. The upper boundary is not included.
+ To select all the rows, use Range::all().
+ Start and end column of the extracted submatrix. The upper boundary is not included.
+ To select all the columns, use Range::all().
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Extracted submatrix specified as a rectangle.
+
+
+
+
+ Extracts a rectangular submatrix.
+
+ Array of selected ranges along each array dimension.
+
+
+
+
+ Reports whether the matrix is continuous or not.
+
+
+
+
+
+ Returns whether this matrix is a part of other matrix or not.
+
+
+
+
+
+ Returns the matrix element size in bytes.
+
+
+
+
+
+ Returns the size of each matrix element channel in bytes.
+
+
+
+
+
+ Returns the type of a matrix element.
+
+
+
+
+
+ Returns the depth of a matrix element.
+
+
+
+
+
+ Returns the number of matrix channels.
+
+
+
+
+
+ Returns a normalized step.
+
+
+
+
+
+
+ Returns true if the array has no elements.
+
+
+
+
+
+ Returns the total number of array elements.
+
+
+
+
+
+
+
+ Number of channels or number of columns the matrix should have.
+ For a 2-D matrix, when the matrix has only 1 column, then it should have
+ elemChannels channels; When the matrix has only 1 channel,
+ then it should have elemChannels columns. For a 3-D matrix, it should have only one channel.
+ Furthermore, if the number of planes is not one, then the number of rows within every
+ plane has to be 1; if the number of rows within every plane is not 1,
+ then the number of planes has to be 1.
+ The depth the matrix should have. Set it to -1 when any depth is fine.
+ Set it to true to require the matrix to be continuous
+ -1 if the requirement is not satisfied.
+ Otherwise, it returns the number of elements in the matrix. Note that an element may have multiple channels.
+
+
+
+ includes several bit-fields:
+ - the magic signature
+ - continuity flag
+ - depth
+ - number of channels
+
+
+
+
+ the array dimensionality, >= 2
+
+
+
+
+ the number of rows or -1 when the array has more than 2 dimensions
+
+
+
+
+ the number of rows or -1 when the array has more than 2 dimensions
+
+
+
+
+
+ the number of columns or -1 when the array has more than 2 dimensions
+
+
+
+
+
+ the number of columns or -1 when the array has more than 2 dimensions
+
+
+
+
+
+ Returns a matrix size.
+
+
+
+
+
+ Returns a matrix size.
+
+
+
+
+
+
+ Returns number of bytes each matrix row occupies.
+
+
+
+
+
+ Returns number of bytes each matrix row occupies.
+
+
+
+
+
+
+ Returns a string that represents this Mat.
+
+
+
+
+
+ Makes a Mat that have the same size, depth and channels as this image
+
+
+
+
+
+
+
+
+ usage flags for allocator
+
+
+
+
+ Proxy datatype for passing Mat's and List<>'s as output parameters
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a proxy class of the specified matrix
+
+
+
+
+
+
+ Creates a proxy class of the specified matrix
+
+
+
+
+
+
+ Creates a proxy class of the specified list
+
+
+
+
+
+
+
+ Creates a proxy class of the specified list
+
+
+
+
+
+
+ Proxy datatype for passing Mat's and List<>'s as output parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Proxy datatype for passing Mat's and List<>'s as output parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Principal Component Analysis
+
+
+
+
+ default constructor.
+
+ The default constructor initializes an empty PCA structure.
+ The other constructors initialize the structure and call PCA::operator()().
+
+
+
+
+ Constructor
+
+ input samples stored as matrix rows or matrix columns.
+ optional mean value; if the matrix is empty (@c noArray()), the mean is computed from the data.
+ operation flags; currently the parameter is only used to specify the data layout (PCA::Flags)
+ maximum number of components that PCA should retain; by default, all the components are retained.
+
+
+
+ Constructor
+
+ input samples stored as matrix rows or matrix columns.
+ optional mean value; if the matrix is empty (noArray()), the mean is computed from the data.
+ operation flags; currently the parameter is only used to specify the data layout (PCA::Flags)
+ Percentage of variance that PCA should retain.
+ Using this parameter will let the PCA decided how many components to retain but it will always keep at least 2.
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ eigenvalues of the covariation matrix
+
+
+
+
+ eigenvalues of the covariation matrix
+
+
+
+
+ mean value subtracted before the projection and added after the back projection
+
+
+
+
+ Performs PCA.
+
+ The operator performs %PCA of the supplied dataset. It is safe to reuse
+ the same PCA structure for multiple datasets. That is, if the structure
+ has been previously used with another dataset, the existing internal
+ data is reclaimed and the new @ref eigenvalues, @ref eigenvectors and @ref
+ mean are allocated and computed.
+
+ The computed @ref eigenvalues are sorted from the largest to the smallest and
+ the corresponding @ref eigenvectors are stored as eigenvectors rows.
+
+ input samples stored as the matrix rows or as the matrix columns.
+ optional mean value; if the matrix is empty (noArray()), the mean is computed from the data.
+ operation flags; currently the parameter is only used to specify the data layout. (Flags)
+ maximum number of components that PCA should retain;
+ by default, all the components are retained.
+
+
+
+
+ Performs PCA.
+
+ The operator performs %PCA of the supplied dataset. It is safe to reuse
+ the same PCA structure for multiple datasets. That is, if the structure
+ has been previously used with another dataset, the existing internal
+ data is reclaimed and the new @ref eigenvalues, @ref eigenvectors and @ref
+ mean are allocated and computed.
+
+ The computed @ref eigenvalues are sorted from the largest to the smallest and
+ the corresponding @ref eigenvectors are stored as eigenvectors rows.
+
+ input samples stored as the matrix rows or as the matrix columns.
+ optional mean value; if the matrix is empty (noArray()),
+ the mean is computed from the data.
+ operation flags; currently the parameter is only used to
+ specify the data layout. (PCA::Flags)
+ Percentage of variance that %PCA should retain.
+ Using this parameter will let the %PCA decided how many components to
+ retain but it will always keep at least 2.
+
+
+
+
+ Projects vector(s) to the principal component subspace.
+
+ The methods project one or more vectors to the principal component
+ subspace, where each vector projection is represented by coefficients in
+ the principal component basis. The first form of the method returns the
+ matrix that the second form writes to the result. So the first form can
+ be used as a part of expression while the second form can be more
+ efficient in a processing loop.
+
+ input vector(s); must have the same dimensionality and the
+ same layout as the input data used at %PCA phase, that is, if
+ DATA_AS_ROW are specified, then `vec.cols==data.cols`
+ (vector dimensionality) and `vec.rows` is the number of vectors to
+ project, and the same is true for the PCA::DATA_AS_COL case.
+
+
+
+
+ Projects vector(s) to the principal component subspace.
+
+ input vector(s); must have the same dimensionality and the
+ same layout as the input data used at PCA phase, that is, if DATA_AS_ROW are
+ specified, then `vec.cols==data.cols` (vector dimensionality) and `vec.rows`
+ is the number of vectors to project, and the same is true for the PCA::DATA_AS_COL case.
+ output vectors; in case of PCA::DATA_AS_COL, the
+ output matrix has as many columns as the number of input vectors, this
+ means that `result.cols==vec.cols` and the number of rows match the
+ number of principal components (for example, `maxComponents` parameter
+ passed to the constructor).
+
+
+
+ Reconstructs vectors from their PC projections.
+
+ The methods are inverse operations to PCA::project. They take PC
+ coordinates of projected vectors and reconstruct the original vectors.
+ Unless all the principal components have been retained, the
+ reconstructed vectors are different from the originals. But typically,
+ the difference is small if the number of components is large enough (but
+ still much smaller than the original vector dimensionality). As a result, PCA is used.
+
+ coordinates of the vectors in the principal component subspace,
+ the layout and size are the same as of PCA::project output vectors.
+
+
+
+
+ Reconstructs vectors from their PC projections.
+
+ The methods are inverse operations to PCA::project. They take PC
+ coordinates of projected vectors and reconstruct the original vectors.
+ Unless all the principal components have been retained, the
+ reconstructed vectors are different from the originals. But typically,
+ the difference is small if the number of components is large enough (but
+ still much smaller than the original vector dimensionality). As a result, PCA is used.
+
+ coordinates of the vectors in the principal component subspace,
+ the layout and size are the same as of PCA::project output vectors.
+ reconstructed vectors; the layout and size are the same as
+ of PCA::project input vectors.
+
+
+
+ Write PCA objects.
+ Writes @ref eigenvalues @ref eigenvectors and @ref mean to specified FileStorage
+
+
+
+
+
+ Load PCA objects.
+ Loads @ref eigenvalues @ref eigenvectors and @ref mean from specified FileNode
+
+
+
+
+
+ Flags for PCA operations
+
+
+
+
+ The vectors are stored as rows (i.e. all the components of a certain vector are stored continously)
+
+
+
+
+ The vectors are stored as columns (i.e. values of a certain vector component are stored continuously)
+
+
+
+
+ Use pre-computed average vector
+
+
+
+
+ Random Number Generator.
+ The class implements RNG using Multiply-with-Carry algorithm.
+
+ operations.hpp
+
+
+
+
+
+
+
+ Constructor
+
+ 64-bit value used to initialize the RNG.
+
+
+
+ (byte)RNG.next()
+
+
+
+
+
+
+ (byte)RNG.next()
+
+
+
+
+
+ (sbyte)RNG.next()
+
+
+
+
+
+
+ (sbyte)RNG.next()
+
+
+
+
+
+ (ushort)RNG.next()
+
+
+
+
+
+
+ (ushort)RNG.next()
+
+
+
+
+
+ (short)RNG.next()
+
+
+
+
+
+
+ (short)RNG.next()
+
+
+
+
+
+ (uint)RNG.next()
+
+
+
+
+
+
+ (uint)RNG.next()
+
+
+
+
+
+ (int)RNG.next()
+
+
+
+
+
+
+ (int)RNG.next()
+
+
+
+
+
+ returns a next random value as float (System.Single)
+
+
+
+
+
+
+ returns a next random value as float (System.Single)
+
+
+
+
+
+ returns a next random value as double (System.Double)
+
+
+
+
+
+
+ returns a next random value as double (System.Double)
+
+
+
+
+
+ updates the state and returns the next 32-bit unsigned integer random number
+
+
+
+
+
+ returns a random integer sampled uniformly from [0, N).
+
+
+
+
+
+
+
+
+
+
+
+
+ returns uniformly distributed integer random number from [a,b) range
+
+
+
+
+
+
+
+ returns uniformly distributed floating-point random number from [a,b) range
+
+
+
+
+
+
+
+ returns uniformly distributed double-precision floating-point random number from [a,b) range
+
+
+
+
+
+
+
+ Fills arrays with random numbers.
+
+ 2D or N-dimensional matrix; currently matrices with more than
+ 4 channels are not supported by the methods, use Mat::reshape as a possible workaround.
+ distribution type, RNG::UNIFORM or RNG::NORMAL.
+ first distribution parameter; in case of the uniform distribution,
+ this is an inclusive lower boundary, in case of the normal distribution, this is a mean value.
+ second distribution parameter; in case of the uniform distribution, this is
+ a non-inclusive upper boundary, in case of the normal distribution, this is a standard deviation
+ (diagonal of the standard deviation matrix or the full standard deviation matrix).
+ pre-saturation flag; for uniform distribution only;
+ if true, the method will first convert a and b to the acceptable value range (according to the
+ mat datatype) and then will generate uniformly distributed random numbers within the range
+ [saturate(a), saturate(b)), if saturateRange=false, the method will generate uniformly distributed
+ random numbers in the original range [a, b) and then will saturate them, it means, for example, that
+ theRNG().fill(mat_8u, RNG::UNIFORM, -DBL_MAX, DBL_MAX) will likely produce array mostly filled
+ with 0's and 255's, since the range (0, 255) is significantly smaller than [-DBL_MAX, DBL_MAX).
+
+
+
+ Returns the next random number sampled from the Gaussian distribution.
+
+ The method transforms the state using the MWC algorithm and returns the next random number
+ from the Gaussian distribution N(0,sigma) . That is, the mean value of the returned random
+ numbers is zero and the standard deviation is the specified sigma.
+
+ standard deviation of the distribution.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mersenne Twister random number generator
+
+ operations.hpp
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ updates the state and returns the next 32-bit unsigned integer random number
+
+
+
+
+
+ returns a random integer sampled uniformly from [0, N).
+
+
+
+
+
+
+
+
+
+
+
+
+ returns uniformly distributed integer random number from [a,b) range
+
+
+
+
+
+
+
+ returns uniformly distributed floating-point random number from [a,b) range
+
+
+
+
+
+
+
+ returns uniformly distributed double-precision floating-point random number from [a,b) range
+
+
+
+
+
+
+
+ Sparse matrix class.
+
+
+
+
+ Creates from native cv::SparseMat* pointer
+
+
+
+
+
+ Creates empty SparseMat
+
+
+
+
+ constructs n-dimensional sparse matrix
+
+ Array of integers specifying an n-dimensional array shape.
+ Array type. Use MatType.CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices,
+ or MatType. CV_8UC(n), ..., CV_64FC(n) to create multi-channel matrices.
+
+
+
+ converts old-style CvMat to the new matrix; the data is not copied by default
+
+ cv::Mat object
+
+
+
+ Releases the resources
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Create SparseMat from Mat
+
+
+
+
+
+
+ Assignment operator. This is O(1) operation, i.e. no data is copied
+
+
+
+
+
+
+ Assignment operator. equivalent to the corresponding constructor.
+
+
+
+
+
+
+ creates full copy of the matrix
+
+
+
+
+
+ copies all the data to the destination matrix. All the previous content of m is erased.
+
+
+
+
+
+ converts sparse matrix to dense matrix.
+
+
+
+
+
+ multiplies all the matrix elements by the specified scale factor alpha and converts the results to the specified data type
+
+
+
+
+
+
+
+ converts sparse matrix to dense n-dim matrix with optional type conversion and scaling.
+
+
+ The output matrix data type. When it is =-1, the output array will have the same data type as (*this)
+ The scale factor
+ The optional delta added to the scaled values before the conversion
+
+
+
+ not used now
+
+
+
+
+
+
+ Reallocates sparse matrix.
+ If the matrix already had the proper size and type,
+ it is simply cleared with clear(), otherwise,
+ the old matrix is released (using release()) and the new one is allocated.
+
+
+
+
+
+
+ sets all the sparse matrix elements to 0, which means clearing the hash table.
+
+
+
+
+ manually increments the reference counter to the header.
+
+
+
+
+ returns the size of each element in bytes (not including the overhead - the space occupied by SparseMat::Node elements)
+
+
+
+
+
+ returns elemSize()/channels()
+
+
+
+
+
+ Returns the type of sparse matrix element.
+
+
+
+
+
+ Returns the depth of sparse matrix element.
+
+
+
+
+
+ Returns the matrix dimensionality
+
+
+
+
+ Returns the number of sparse matrix channels.
+
+
+
+
+
+ Returns the array of sizes, or null if the matrix is not allocated
+
+
+
+
+
+ Returns the size of i-th matrix dimension (or 0)
+
+
+
+
+
+
+ returns the number of non-zero elements (=the number of hash table nodes)
+
+
+
+
+
+ Computes the element hash value (1D case)
+
+ Index along the dimension 0
+
+
+
+
+ Computes the element hash value (2D case)
+
+ Index along the dimension 0
+ Index along the dimension 1
+
+
+
+
+ Computes the element hash value (3D case)
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+
+
+
+
+ Computes the element hash value (nD case)
+
+ Array of Mat::dims indices.
+
+
+
+
+ Low-level element-access function.
+
+ Index along the dimension 0
+ Create new element with 0 value if it does not exist in SparseMat.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Low-level element-access function.
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Create new element with 0 value if it does not exist in SparseMat.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Low-level element-access function.
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ Create new element with 0 value if it does not exist in SparseMat.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Low-level element-access function.
+
+ Array of Mat::dims indices.
+ Create new element with 0 value if it does not exist in SparseMat.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Return pthe specified sparse matrix element if it exists; otherwise, null.
+
+ Index along the dimension 0
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Return pthe specified sparse matrix element if it exists; otherwise, null.
+
+ Index along the dimension 0
+ Index along the dimension 1
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Return pthe specified sparse matrix element if it exists; otherwise, null.
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Return pthe specified sparse matrix element if it exists; otherwise, null.
+
+ Array of Mat::dims indices.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Return pthe specified sparse matrix element if it exists; otherwise, default(T).
+
+ Index along the dimension 0
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Return pthe specified sparse matrix element if it exists; otherwise, default(T).
+
+ Index along the dimension 0
+ Index along the dimension 1
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Return pthe specified sparse matrix element if it exists; otherwise, default(T).
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Return pthe specified sparse matrix element if it exists; otherwise, default(T).
+
+ Array of Mat::dims indices.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+
+ Mat Indexer
+
+
+
+
+
+ 1-dimensional indexer
+
+ Index along the dimension 0
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ 2-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ 3-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ n-dimensional indexer
+
+ Array of Mat::dims indices.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ Gets a type-specific indexer.
+ The indexer has getters/setters to access each matrix element.
+
+
+
+
+
+
+ Gets a type-specific indexer.
+ The indexer has getters/setters to access each matrix element.
+
+
+
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ Returns a value to the specified array element.
+
+
+ Array of Mat::dims indices.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ Set a value to the specified array element.
+
+
+ Index along the dimension 0
+
+
+
+
+
+ Set a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+ Set a value to the specified array element.
+
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+ Set a value to the specified array element.
+
+
+ Array of Mat::dims indices.
+
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+
+
+
+ Returns a string that represents this Mat.
+
+
+
+
+
+ Abstract definition of Mat indexer
+
+
+
+
+
+ 1-dimensional indexer
+
+ Index along the dimension 0
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ 2-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ 3-dimensional indexer
+
+ Index along the dimension 0
+ Index along the dimension 1
+ Index along the dimension 2
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ n-dimensional indexer
+
+ Array of Mat::dims indices.
+ If hashVal is not null, the element hash value is not computed but hashval is taken instead.
+ A value to the specified array element.
+
+
+
+ Parent matrix object
+
+
+
+
+ Constructor
+
+
+
+
+
+ Struct for matching: query descriptor index, train descriptor index, train image index and distance between descriptors.
+
+
+
+
+ query descriptor index
+
+
+
+
+ train descriptor index
+
+
+
+
+ train image index
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+ Compares by distance (less is better)
+
+
+
+
+
+
+
+ Compares by distance (less is better)
+
+
+
+
+
+
+
+ Compares by distance (less is better)
+
+
+
+
+
+
+
+
+
+ Data structure for salient point detectors
+
+
+
+
+ Coordinate of the point
+
+
+
+
+ Feature size
+
+
+
+
+ Feature orientation in degrees (has negative value if the orientation is not defined/not computed)
+
+
+
+
+ Feature strength (can be used to select only the most prominent key points)
+
+
+
+
+ Scale-space octave in which the feature has been found; may correlate with the size
+
+
+
+
+ Point class (can be used by feature classifiers or object detectors)
+
+
+
+
+ Complete constructor
+
+ Coordinate of the point
+ Feature size
+ Feature orientation in degrees (has negative value if the orientation is not defined/not computed)
+ Feature strength (can be used to select only the most prominent key points)
+ Scale-space octave in which the feature has been found; may correlate with the size
+ Point class (can be used by feature classifiers or object detectors)
+
+
+
+ Complete constructor
+
+ X-coordinate of the point
+ Y-coordinate of the point
+ Feature size
+ Feature orientation in degrees (has negative value if the orientation is not defined/not computed)
+ Feature strength (can be used to select only the most prominent key points)
+ Scale-space octave in which the feature has been found; may correlate with the size
+ Point class (can be used by feature classifiers or object detectors)
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Matrix data type (depth and number of channels)
+
+
+
+
+ Entity value
+
+
+
+
+ Entity value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ type depth constants
+
+
+
+
+ type depth constants
+
+
+
+
+ type depth constants
+
+
+
+
+ type depth constants
+
+
+
+
+ type depth constants
+
+
+
+
+ type depth constants
+
+
+
+
+ type depth constants
+
+
+
+
+ type depth constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+ predefined type constants
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compares two Point objects. The result specifies whether the values of the X and Y properties of the two Point objects are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the X and Y values of left and right are equal; otherwise, false.
+
+
+
+ Compares two Point objects. The result specifies whether the values of the X or Y properties of the two Point objects are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the values of either the X properties or the Y properties of left and right differ; otherwise, false.
+
+
+
+ Unary plus operator
+
+
+
+
+
+ Unary plus operator
+
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the distance between the specified two points
+
+
+
+
+
+
+
+ Returns the distance between the specified two points
+
+
+
+
+
+
+ Calculates the dot product of two 2D vectors.
+
+
+
+
+
+
+
+ Calculates the dot product of two 2D vectors.
+
+
+
+
+
+
+ Calculates the cross product of two 2D vectors.
+
+
+
+
+
+
+
+ Calculates the cross product of two 2D vectors.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compares two CvPoint objects. The result specifies whether the values of the X and Y properties of the two CvPoint objects are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the X and Y values of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint2D32f objects. The result specifies whether the values of the X or Y properties of the two CvPoint2D32f objects are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the values of either the X properties or the Y properties of left and right differ; otherwise, false.
+
+
+
+ Unary plus operator
+
+
+
+
+
+ Unary plus operator
+
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the distance between the specified two points
+
+
+
+
+
+
+
+ Returns the distance between the specified two points
+
+
+
+
+
+
+ Calculates the dot product of two 2D vectors.
+
+
+
+
+
+
+
+ Calculates the dot product of two 2D vectors.
+
+
+
+
+
+
+ Calculates the cross product of two 2D vectors.
+
+
+
+
+
+
+
+ Calculates the cross product of two 2D vectors.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compares two CvPoint objects. The result specifies whether the values of the X and Y properties of the two CvPoint objects are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the X and Y values of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint2D32f objects. The result specifies whether the values of the X or Y properties of the two CvPoint2D32f objects are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the values of either the X properties or the Y properties of left and right differ; otherwise, false.
+
+
+
+ Unary plus operator
+
+
+
+
+
+ Unary plus operator
+
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the distance between the specified two points
+
+
+
+
+
+
+
+ Returns the distance between the specified two points
+
+
+
+
+
+
+ Calculates the dot product of two 2D vectors.
+
+
+
+
+
+
+
+ Calculates the dot product of two 2D vectors.
+
+
+
+
+
+
+ Calculates the cross product of two 2D vectors.
+
+
+
+
+
+
+
+ Calculates the cross product of two 2D vectors.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compares two CvPoint objects. The result specifies whether the values of the X and Y properties of the two CvPoint objects are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the X and Y values of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint2D32f objects. The result specifies whether the values of the X or Y properties of the two CvPoint2D32f objects are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the values of either the X properties or the Y properties of left and right differ; otherwise, false.
+
+
+
+ Unary plus operator
+
+
+
+
+
+
+ Unary plus operator
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+ Compares two CvPoint objects. The result specifies whether the values of the X and Y properties of the two CvPoint objects are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the X and Y values of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint2D32f objects. The result specifies whether the values of the X or Y properties of the two CvPoint2D32f objects are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the values of either the X properties or the Y properties of left and right differ; otherwise, false.
+
+
+
+ Unary plus operator
+
+
+
+
+
+ Unary plus operator
+
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compares two CvPoint objects. The result specifies whether the values of the X and Y properties of the two CvPoint objects are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the X and Y values of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint2D32f objects. The result specifies whether the values of the X or Y properties of the two CvPoint2D32f objects are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the values of either the X properties or the Y properties of left and right differ; otherwise, false.
+
+
+
+ Unary plus operator
+
+
+
+
+
+
+ Unary plus operator
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+
+ Unary minus operator
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+ Shifts point by a certain offset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Template class specifying a continuous subsequence (slice) of a sequence.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ float Range class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Convert to Range
+
+
+
+
+
+ Implicit operator (Range)this
+
+
+
+
+
+
+ Range(int.MinValue, int.MaxValue)
+
+
+
+
+ Stores a set of four integers that represent the location and size of a rectangle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a Rect structure with its properties left uninitialized.
+
+
+
+
+ Initializes a new instance of the Rectangle class with the specified location and size.
+
+ The x-coordinate of the upper-left corner of the rectangle.
+ The y-coordinate of the upper-left corner of the rectangle.
+ The width of the rectangle.
+ The height of the rectangle.
+
+
+
+ Initializes a new instance of the Rectangle class with the specified location and size.
+
+ A Point that represents the upper-left corner of the rectangular region.
+ A Size that represents the width and height of the rectangular region.
+
+
+
+ Creates a Rectangle structure with the specified edge locations.
+
+ The x-coordinate of the upper-left corner of this Rectangle structure.
+ The y-coordinate of the upper-left corner of this Rectangle structure.
+ The x-coordinate of the lower-right corner of this Rectangle structure.
+ The y-coordinate of the lower-right corner of this Rectangle structure.
+
+
+
+ Compares two Rect objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two Rect objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+ Determines the Rect structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+ A rectangle to intersect.
+
+
+
+
+ Gets a Rect structure that contains the union of two Rect structures.
+
+ A rectangle to union.
+ A rectangle to union.
+
+
+
+
+ Gets the y-coordinate of the top edge of this Rect structure.
+
+
+
+
+ Gets the y-coordinate that is the sum of the Y and Height property values of this Rect structure.
+
+
+
+
+ Gets the x-coordinate of the left edge of this Rect structure.
+
+
+
+
+ Gets the x-coordinate that is the sum of X and Width property values of this Rect structure.
+
+
+
+
+ Coordinate of the left-most rectangle corner [Point(X, Y)]
+
+
+
+
+ Size of the rectangle [CvSize(Width, Height)]
+
+
+
+
+ Coordinate of the left-most rectangle corner [Point(X, Y)]
+
+
+
+
+ Coordinate of the right-most rectangle corner [Point(X+Width, Y+Height)]
+
+
+
+
+ Determines if the specified point is contained within the rectangular region defined by this Rectangle.
+
+ x-coordinate of the point
+ y-coordinate of the point
+
+
+
+
+ Determines if the specified point is contained within the rectangular region defined by this Rectangle.
+
+ point
+
+
+
+
+ Determines if the specified rectangle is contained within the rectangular region defined by this Rectangle.
+
+ rectangle
+
+
+
+
+ Inflates this Rect by the specified amount.
+
+ The amount to inflate this Rectangle horizontally.
+ The amount to inflate this Rectangle vertically.
+
+
+
+ Inflates this Rect by the specified amount.
+
+ The amount to inflate this rectangle.
+
+
+
+ Creates and returns an inflated copy of the specified Rect structure.
+
+ The Rectangle with which to start. This rectangle is not modified.
+ The amount to inflate this Rectangle horizontally.
+ The amount to inflate this Rectangle vertically.
+
+
+
+
+ Determines the Rect structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+ A rectangle to intersect.
+
+
+
+
+ Determines the Rect structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+
+
+
+
+ Determines if this rectangle intersects with rect.
+
+ Rectangle
+
+
+
+
+ Gets a Rect structure that contains the union of two Rect structures.
+
+ A rectangle to union.
+
+
+
+
+ Gets a Rect structure that contains the union of two Rect structures.
+
+ A rectangle to union.
+ A rectangle to union.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a Rect2d structure with its properties left uninitialized.
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compares two Rect2d objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two Rect2d objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+ Determines the Rect2d structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+ A rectangle to intersect.
+
+
+
+
+ Gets a Rect2d structure that contains the union of two Rect2d structures.
+
+ A rectangle to union.
+ A rectangle to union.
+
+
+
+
+ Gets the y-coordinate of the top edge of this Rect2d structure.
+
+
+
+
+ Gets the y-coordinate that is the sum of the Y and Height property values of this Rect2d structure.
+
+
+
+
+ Gets the x-coordinate of the left edge of this Rect2d structure.
+
+
+
+
+ Gets the x-coordinate that is the sum of X and Width property values of this Rect2d structure.
+
+
+
+
+ Coordinate of the left-most rectangle corner [Point2d(X, Y)]
+
+
+
+
+ Size of the rectangle [CvSize(Width, Height)]
+
+
+
+
+ Coordinate of the left-most rectangle corner [Point2d(X, Y)]
+
+
+
+
+ Coordinate of the right-most rectangle corner [Point2d(X+Width, Y+Height)]
+
+
+
+
+
+
+
+
+
+
+ Determines if the specified point is contained within the rectangular region defined by this Rectangle.
+
+ x-coordinate of the point
+ y-coordinate of the point
+
+
+
+
+ Determines if the specified point is contained within the rectangular region defined by this Rectangle.
+
+ point
+
+
+
+
+ Determines if the specified rectangle is contained within the rectangular region defined by this Rectangle.
+
+ rectangle
+
+
+
+
+ Inflates this Rect by the specified amount.
+
+ The amount to inflate this Rectangle horizontally.
+ The amount to inflate this Rectangle vertically.
+
+
+
+ Inflates this Rect by the specified amount.
+
+ The amount to inflate this rectangle.
+
+
+
+ Creates and returns an inflated copy of the specified Rect2d structure.
+
+ The Rectangle with which to start. This rectangle is not modified.
+ The amount to inflate this Rectangle horizontally.
+ The amount to inflate this Rectangle vertically.
+
+
+
+
+ Determines the Rect2d structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+ A rectangle to intersect.
+
+
+
+
+ Determines the Rect2d structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+
+
+
+
+ Determines if this rectangle intersects with rect.
+
+ Rectangle
+
+
+
+
+ Gets a Rect2d structure that contains the union of two Rect2d structures.
+
+ A rectangle to union.
+
+
+
+
+ Gets a Rect2d structure that contains the union of two Rect2d structures.
+
+ A rectangle to union.
+ A rectangle to union.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A rectangle with float type coordinates in 2D space
+
+
+
+
+ Represents a Rect2f structure with its properties left uninitialized.
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compares two Rect2f objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two Rect2f objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+ Shifts rectangle by a certain offset
+
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+ Expands or shrinks rectangle by a certain amount
+
+
+
+
+
+
+
+ Determines the Rect2f structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+ A rectangle to intersect.
+
+
+
+
+ Gets a Rect2f structure that contains the union of two Rect2f structures.
+
+ A rectangle to union.
+ A rectangle to union.
+
+
+
+
+ Gets the y-coordinate of the top edge of this Rect2f structure.
+
+
+
+
+ Gets the y-coordinate that is the sum of the Y and Height property values of this Rect2f structure.
+
+
+
+
+ Gets the x-coordinate of the left edge of this Rect2f structure.
+
+
+
+
+ Gets the x-coordinate that is the sum of X and Width property values of this Rect2f structure.
+
+
+
+
+ Coordinate of the left-most rectangle corner [Point2f(X, Y)]
+
+
+
+
+ Size of the rectangle [CvSize(Width, Height)]
+
+
+
+
+ Coordinate of the left-most rectangle corner [Point2f(X, Y)]
+
+
+
+
+ Coordinate of the right-most rectangle corner [Point2f(X+Width, Y+Height)]
+
+
+
+
+ Determines if the specified point is contained within the rectangular region defined by this Rectangle.
+
+ x-coordinate of the point
+ y-coordinate of the point
+
+
+
+
+ Determines if the specified point is contained within the rectangular region defined by this Rectangle.
+
+ point
+
+
+
+
+ Determines if the specified rectangle is contained within the rectangular region defined by this Rectangle.
+
+ rectangle
+
+
+
+
+ Inflates this Rect by the specified amount.
+
+ The amount to inflate this Rectangle horizontally.
+ The amount to inflate this Rectangle vertically.
+
+
+
+ Inflates this Rect by the specified amount.
+
+ The amount to inflate this rectangle.
+
+
+
+ Creates and returns an inflated copy of the specified Rect2f structure.
+
+ The Rectangle with which to start. This rectangle is not modified.
+ The amount to inflate this Rectangle horizontally.
+ The amount to inflate this Rectangle vertically.
+
+
+
+
+ Determines the Rect2f structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+ A rectangle to intersect.
+
+
+
+
+ Determines the Rect2f structure that represents the intersection of two rectangles.
+
+ A rectangle to intersect.
+
+
+
+
+ Determines if this rectangle intersects with rect.
+
+ Rectangle
+
+
+
+
+ Gets a Rect2f structure that contains the union of two Rect2f structures.
+
+ A rectangle to union.
+
+
+
+
+ Gets a Rect2f structure that contains the union of two Rect2f structures.
+
+ A rectangle to union.
+ A rectangle to union.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The class represents rotated (i.e. not up-right) rectangles on a plane.
+
+
+
+
+ the rectangle mass center
+
+
+
+
+ width and height of the rectangle
+
+
+
+
+ the rotation angle. When the angle is 0, 90, 180, 270 etc., the rectangle becomes an up-right rectangle.
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+ Any 3 end points of the RotatedRect. They must be given in order (either clockwise or anticlockwise).
+
+
+
+
+ Any 3 end points of the RotatedRect. They must be given in order (either clockwise or anticlockwise).
+
+
+
+
+ returns 4 vertices of the rectangle
+
+
+
+
+
+ returns the minimal up-right rectangle containing the rotated rectangle
+
+
+
+
+
+ Template class for a 4-element vector derived from Vec.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets random color
+
+
+
+
+ Gets random color
+
+ .NET random number generator. This method uses Random.NextBytes()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #F0F8FF
+
+
+
+
+ #FAEBD7
+
+
+
+
+ #00FFFF
+
+
+
+
+ #7FFFD4
+
+
+
+
+ #F0FFFF
+
+
+
+
+ #F5F5DC
+
+
+
+
+ #FFE4C4
+
+
+
+
+ #000000
+
+
+
+
+ #FFEBCD
+
+
+
+
+ #0000FF
+
+
+
+
+ #8A2BE2
+
+
+
+
+ #A52A2A
+
+
+
+
+ #DEB887
+
+
+
+
+ #5F9EA0
+
+
+
+
+ #7FFF00
+
+
+
+
+ #D2691E
+
+
+
+
+ #FF7F50
+
+
+
+
+ #6495ED
+
+
+
+
+ #FFF8DC
+
+
+
+
+ #DC143C
+
+
+
+
+ #00FFFF
+
+
+
+
+ #00008B
+
+
+
+
+ #008B8B
+
+
+
+
+ #B8860B
+
+
+
+
+ #A9A9A9
+
+
+
+
+ #006400
+
+
+
+
+ #BDB76B
+
+
+
+
+ #8B008B
+
+
+
+
+ #556B2F
+
+
+
+
+ #FF8C00
+
+
+
+
+ #9932CC
+
+
+
+
+ #8B0000
+
+
+
+
+ #E9967A
+
+
+
+
+ #8FBC8F
+
+
+
+
+ #483D8B
+
+
+
+
+ #2F4F4F
+
+
+
+
+ #00CED1
+
+
+
+
+ #9400D3
+
+
+
+
+ #FF1493
+
+
+
+
+ #00BFFF
+
+
+
+
+ #696969
+
+
+
+
+ #1E90FF
+
+
+
+
+ #B22222
+
+
+
+
+ #FFFAF0
+
+
+
+
+ #228B22
+
+
+
+
+ #FF00FF
+
+
+
+
+ #DCDCDC
+
+
+
+
+ #F8F8FF
+
+
+
+
+ #FFD700
+
+
+
+
+ #DAA520
+
+
+
+
+ #808080
+
+
+
+
+ #008000
+
+
+
+
+ #ADFF2F
+
+
+
+
+ #F0FFF0
+
+
+
+
+ #FF69B4
+
+
+
+
+ #CD5C5C
+
+
+
+
+ #4B0082
+
+
+
+
+ #FFFFF0
+
+
+
+
+ #F0E68C
+
+
+
+
+ #E6E6FA
+
+
+
+
+ #FFF0F5
+
+
+
+
+ #7CFC00
+
+
+
+
+ #FFFACD
+
+
+
+
+ #ADD8E6
+
+
+
+
+ #F08080
+
+
+
+
+ #E0FFFF
+
+
+
+
+ #FAFAD2
+
+
+
+
+ #D3D3D3
+
+
+
+
+ #90EE90
+
+
+
+
+ #FFB6C1
+
+
+
+
+ #FFA07A
+
+
+
+
+ #20B2AA
+
+
+
+
+ #87CEFA
+
+
+
+
+ #778899
+
+
+
+
+ #B0C4DE
+
+
+
+
+ #FFFFE0
+
+
+
+
+ #00FF00
+
+
+
+
+ #32CD32
+
+
+
+
+ #FAF0E6
+
+
+
+
+ #FF00FF
+
+
+
+
+ #800000
+
+
+
+
+ #66CDAA
+
+
+
+
+ #0000CD
+
+
+
+
+ #BA55D3
+
+
+
+
+ #9370DB
+
+
+
+
+ #3CB371
+
+
+
+
+ #7B68EE
+
+
+
+
+ #00FA9A
+
+
+
+
+ #48D1CC
+
+
+
+
+ #C71585
+
+
+
+
+ #191970
+
+
+
+
+ #F5FFFA
+
+
+
+
+ #FFE4E1
+
+
+
+
+ #FFE4B5
+
+
+
+
+ #FFDEAD
+
+
+
+
+ #000080
+
+
+
+
+ #FDF5E6
+
+
+
+
+ #808000
+
+
+
+
+ #6B8E23
+
+
+
+
+ #FFA500
+
+
+
+
+ #FF4500
+
+
+
+
+ #DA70D6
+
+
+
+
+ #EEE8AA
+
+
+
+
+ #98FB98
+
+
+
+
+ #AFEEEE
+
+
+
+
+ #DB7093
+
+
+
+
+ #FFEFD5
+
+
+
+
+ #FFDAB9
+
+
+
+
+ #CD853F
+
+
+
+
+ #FFC0CB
+
+
+
+
+ #DDA0DD
+
+
+
+
+ #B0E0E6
+
+
+
+
+ #800080
+
+
+
+
+ #FF0000
+
+
+
+
+ #BC8F8F
+
+
+
+
+ #4169E1
+
+
+
+
+ #8B4513
+
+
+
+
+ #FA8072
+
+
+
+
+ #F4A460
+
+
+
+
+ #2E8B57
+
+
+
+
+ #FFF5EE
+
+
+
+
+ #A0522D
+
+
+
+
+ #C0C0C0
+
+
+
+
+ #87CEEB
+
+
+
+
+ #6A5ACD
+
+
+
+
+ #708090
+
+
+
+
+ #FFFAFA
+
+
+
+
+ #00FF7F
+
+
+
+
+ #4682B4
+
+
+
+
+ #D2B48C
+
+
+
+
+ #008080
+
+
+
+
+ #D8BFD8
+
+
+
+
+ #FF6347
+
+
+
+
+ #40E0D0
+
+
+
+
+ #EE82EE
+
+
+
+
+ #F5DEB3
+
+
+
+
+ #FFFFFF
+
+
+
+
+ #F5F5F5
+
+
+
+
+ #FFFF00
+
+
+
+
+ #9ACD32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Zero size
+
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The class defining termination criteria for iterative algorithms.
+
+
+
+
+ the type of termination criteria: COUNT, EPS or COUNT + EPS
+
+
+
+
+ the maximum number of iterations/elements
+
+
+
+
+ the desired accuracy
+
+
+
+
+ full constructor
+
+
+
+
+
+
+
+ full constructor with both type (count | epsilon)
+
+
+
+
+
+
+ Vec empty interface
+
+
+
+
+ Vec** interface
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ indexer
+
+
+
+
+
+
+ 2-Tuple of byte (System.Byte)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+ returns a Vec with all elements set to v0
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2-Tuple of double (System.Double)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2-Tuple of float (System.Single)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2-Tuple of int (System.Int32)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2-Tuple of short (System.Int16)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2-Tuple of ushort (System.UInt16)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3-Tuple of byte (System.Byte)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3-Tuple of double (System.Double)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3-Tuple of float (System.Single)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3-Tuple of int (System.Int32)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3-Tuple of short (System.Int16)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3-Tuple of ushort (System.UInt16)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4-Tuple of byte (System.Byte)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4-Tuple of double (System.Double)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4-Tuple of float (System.Single)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4-Tuple of int (System.Int32)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4-Tuple of short (System.Int16)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4-Tuple of ushort (System.UInt16)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6-Tuple of byte (System.Byte)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ The value of the fifth component of this object.
+
+
+
+
+ The value of the sixth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6-Tuple of double (System.Double)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ The value of the fifth component of this object.
+
+
+
+
+ The value of the sixth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6-Tuple of float (System.Single)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ The value of the fifth component of this object.
+
+
+
+
+ The value of the sixth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6-Tuple of int (System.Int32)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ The value of the sixth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6-Tuple of short (System.Int16)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ The value of the fifth component of this object.
+
+
+
+
+ The value of the sixth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4-Tuple of ushort (System.UInt16)
+
+
+
+
+ The value of the first component of this object.
+
+
+
+
+ The value of the second component of this object.
+
+
+
+
+ The value of the third component of this object.
+
+
+
+
+ The value of the fourth component of this object.
+
+
+
+
+ The value of the fifth component of this object.
+
+
+
+
+ The value of the sixth component of this object.
+
+
+
+
+ Deconstructing a Vector
+
+
+
+
+
+
+
+
+
+
+ Initializer
+
+
+
+
+
+
+
+
+
+
+ this + other
+
+
+
+
+
+
+ this - other
+
+
+
+
+
+
+ this * alpha
+
+
+
+
+
+
+ this / alpha
+
+
+
+
+
+
+ Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Singular Value Decomposition class
+
+
+
+
+ the default constructor
+
+
+
+
+ the constructor that performs SVD
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ eigenvalues of the covariation matrix
+
+
+
+
+ eigenvalues of the covariation matrix
+
+
+
+
+ mean value subtracted before the projection and added after the back projection
+
+
+
+
+ the operator that performs SVD. The previously allocated SVD::u, SVD::w are SVD::vt are released.
+
+
+
+
+
+
+
+ performs back substitution, so that dst is the solution or pseudo-solution of m*dst = rhs, where m is the decomposed matrix
+
+
+
+
+
+
+
+ decomposes matrix and stores the results to user-provided matrices
+
+
+
+
+
+
+
+
+
+ computes singular values of a matrix
+
+
+
+
+
+
+
+ performs back substitution
+
+
+
+
+
+
+
+
+
+ finds dst = arg min_{|dst|=1} |m*dst|
+
+
+
+
+
+
+ Operation flags for SVD
+
+
+
+
+
+
+
+
+
+ enables modification of matrix src1 during the operation. It speeds up the processing.
+
+
+
+
+ indicates that only a vector of singular values `w` is to be processed,
+ while u and vt will be set to empty matrices
+
+
+
+
+ when the matrix is not square, by default the algorithm produces u and
+ vt matrices of sufficiently large size for the further A reconstruction;
+ if, however, FULL_UV flag is specified, u and vt will be full-size square
+ orthogonal matrices.
+
+
+
+
+ Enum of computation backends supported by layers.
+
+
+ DNN_BACKEND_DEFAULT equals to DNN_BACKEND_INFERENCE_ENGINE if
+ OpenCV is built with Intel's Inference Engine library or
+ DNN_BACKEND_OPENCV otherwise.
+
+
+
+
+ cv::dnn functions
+
+
+
+
+ Reads a network model stored in Darknet (https://pjreddie.com/darknet/) model files.
+
+ path to the .cfg file with text description of the network architecture.
+ path to the .weights file with learned network.
+ Network object that ready to do forward, throw an exception in failure cases.
+ This is shortcut consisting from DarknetImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Darknet (https://pjreddie.com/darknet/) model files from memory.
+
+ A buffer contains a content of .cfg file with text description of the network architecture.
+ A buffer contains a content of .weights file with learned network.
+
+ This is shortcut consisting from DarknetImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Darknet (https://pjreddie.com/darknet/) model files from stream.
+
+ A buffer contains a content of .cfg file with text description of the network architecture.
+ A buffer contains a content of .weights file with learned network.
+
+ This is shortcut consisting from DarknetImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model files.
+
+ path to the .prototxt file with text description of the network architecture.
+ path to the .caffemodel file with learned network.
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model files from memory.
+
+ buffer containing the content of the .prototxt file
+ buffer containing the content of the .caffemodel file
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model files from memory.
+
+ buffer containing the content of the .prototxt file
+ buffer containing the content of the .caffemodel file
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model files from Stream.
+
+ buffer containing the content of the .prototxt file
+ buffer containing the content of the .caffemodel file
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Tensorflow model file.
+
+ path to the .pb file with binary protobuf description of the network architecture
+ path to the .pbtxt file that contains text graph definition in protobuf format.
+ Resulting Net object is built by text graph using weights from a binary one that
+ let us make it more flexible.
+ This is shortcut consisting from createTensorflowImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Tensorflow model file from memory.
+
+ buffer containing the content of the pb file
+ buffer containing the content of the pbtxt file (optional)
+
+ This is shortcut consisting from createTensorflowImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Tensorflow model file from stream.
+
+ buffer containing the content of the pb file
+ buffer containing the content of the pbtxt file (optional)
+
+ This is shortcut consisting from createTensorflowImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Torch model file.
+
+
+
+
+ This is shortcut consisting from createTorchImporter and Net::populateNet calls.
+
+
+
+ Read deep learning network represented in one of the supported formats.
+
+ This function automatically detects an origin framework of trained model
+ and calls an appropriate function such @ref readNetFromCaffe, @ref readNetFromTensorflow,
+
+ Binary file contains trained weights. The following file
+ * extensions are expected for models from different frameworks:
+ * * `*.caffemodel` (Caffe, http://caffe.berkeleyvision.org/)
+ * * `*.pb` (TensorFlow, https://www.tensorflow.org/)
+ * * `*.t7` | `*.net` (Torch, http://torch.ch/)
+ * * `*.weights` (Darknet, https://pjreddie.com/darknet/)
+ * * `*.bin` (DLDT, https://software.intel.com/openvino-toolkit)
+ Text file contains network configuration. It could be a
+ * file with the following extensions:
+ * * `*.prototxt` (Caffe, http://caffe.berkeleyvision.org/)
+ * * `*.pbtxt` (TensorFlow, https://www.tensorflow.org/)
+ * * `*.cfg` (Darknet, https://pjreddie.com/darknet/)
+ * * `*.xml` (DLDT, https://software.intel.com/openvino-toolkit)
+ Explicit framework name tag to determine a format.
+
+
+
+
+ Loads blob which was serialized as torch.Tensor object of Torch7 framework.
+
+
+
+
+
+ This function has the same limitations as createTorchImporter().
+
+
+
+
+ Reads a network model ONNX https://onnx.ai/ from memory
+
+
+
+
+
+
+ Reads a network model ONNX https://onnx.ai/ from memory
+
+ memory of the first byte of the buffer.
+
+
+
+
+ Reads a network model ONNX https://onnx.ai/ from memory
+
+ memory of the first byte of the buffer.
+
+
+
+
+ Reads a network model ONNX https://onnx.ai/ from stream.
+
+ memory of the first byte of the buffer.
+
+
+
+
+ Creates blob from .pb file.
+
+ path to the .pb file with input tensor.
+
+
+
+
+ Creates 4-dimensional blob from image. Optionally resizes and crops @p image from center,
+ subtract @p mean values, scales values by @p scalefactor, swap Blue and Red channels.
+
+ input image (with 1- or 3-channels).
+ multiplier for @p image values.
+ spatial size for output image
+ scalar with mean values which are subtracted from channels. Values are intended
+ to be in (mean-R, mean-G, mean-B) order if @p image has BGR ordering and @p swapRB is true.
+ flag which indicates that swap first and last channels in 3-channel image is necessary.
+ flag which indicates whether image will be cropped after resize or not
+ 4-dimansional Mat with NCHW dimensions order.
+ if @p crop is true, input image is resized so one side after resize is equal to corresponing
+ dimension in @p size and another one is equal or larger.Then, crop from the center is performed.
+ If @p crop is false, direct resize without cropping and preserving aspect ratio is performed.
+
+
+
+ Creates 4-dimensional blob from series of images. Optionally resizes and
+ crops @p images from center, subtract @p mean values, scales values by @p scalefactor, swap Blue and Red channels.
+
+ input images (all with 1- or 3-channels).
+ multiplier for @p image values.
+ spatial size for output image
+ scalar with mean values which are subtracted from channels. Values are intended
+ to be in (mean-R, mean-G, mean-B) order if @p image has BGR ordering and @p swapRB is true.
+ flag which indicates that swap first and last channels in 3-channel image is necessary.
+ flag which indicates whether image will be cropped after resize or not
+ 4-dimansional Mat with NCHW dimensions order.
+ if @p crop is true, input image is resized so one side after resize is equal to corresponing
+ dimension in @p size and another one is equal or larger.Then, crop from the center is performed.
+ If @p crop is false, direct resize without cropping and preserving aspect ratio is performed.
+
+
+
+ Convert all weights of Caffe network to half precision floating point.
+
+ Path to origin model from Caffe framework contains single
+ precision floating point weights(usually has `.caffemodel` extension).
+ Path to destination model with updated weights.
+ Set of layers types which parameters will be converted.
+ By default, converts only Convolutional and Fully-Connected layers' weights.
+
+ Shrinked model has no origin float32 weights so it can't be used
+ in origin Caffe framework anymore.However the structure of data
+ is taken from NVidia's Caffe fork: https://github.com/NVIDIA/caffe.
+ So the resulting model may be used there.
+
+
+
+
+ Create a text representation for a binary network stored in protocol buffer format.
+
+ A path to binary network.
+ A path to output text file to be created.
+
+
+
+ Performs non maximum suppression given boxes and corresponding scores.
+
+ a set of bounding boxes to apply NMS.
+ a set of corresponding confidences.
+ a threshold used to filter boxes by score.
+ a threshold used in non maximum suppression.
+ the kept indices of bboxes after NMS.
+ a coefficient in adaptive threshold formula
+ if `>0`, keep at most @p top_k picked indices.
+
+
+
+ Performs non maximum suppression given boxes and corresponding scores.
+
+ a set of bounding boxes to apply NMS.
+ a set of corresponding confidences.
+ a threshold used to filter boxes by score.
+ a threshold used in non maximum suppression.
+ the kept indices of bboxes after NMS.
+ a coefficient in adaptive threshold formula
+ if `>0`, keep at most @p top_k picked indices.
+
+
+
+ Performs non maximum suppression given boxes and corresponding scores.
+
+ a set of bounding boxes to apply NMS.
+ a set of corresponding confidences.
+ a threshold used to filter boxes by score.
+ a threshold used in non maximum suppression.
+ the kept indices of bboxes after NMS.
+ a coefficient in adaptive threshold formula
+ if `>0`, keep at most @p top_k picked indices.
+
+
+
+ Release a Myriad device is binded by OpenCV.
+
+ Single Myriad device cannot be shared across multiple processes which uses Inference Engine's Myriad plugin.
+
+
+
+
+
+ This class allows to create and manipulate comprehensive artificial neural networks.
+
+
+ Neural network is presented as directed acyclic graph(DAG), where vertices are Layer instances,
+ and edges specify relationships between layers inputs and outputs.
+
+ Each network layer has unique integer id and unique string name inside its network.
+ LayerId can store either layer name or layer id.
+ This class supports reference counting of its instances, i.e.copies point to the same instance.
+
+
+
+
+
+ Default constructor.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create a network from Intel's Model Optimizer intermediate representation (IR).
+ Networks imported from Intel's Model Optimizer are launched in Intel's Inference Engine backend.
+
+ XML configuration file with network's topology.
+ Binary file with trained weights.
+
+
+
+
+ Reads a network model stored in Darknet (https://pjreddie.com/darknet/) model files.
+
+ path to the .cfg file with text description of the network architecture.
+ path to the .weights file with learned network.
+ Network object that ready to do forward, throw an exception in failure cases.
+ This is shortcut consisting from DarknetImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model files from memory.
+
+ A buffer contains a content of .cfg file with text description of the network architecture.
+ A buffer contains a content of .weights file with learned network.
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model files from memory.
+
+ A buffer contains a content of .cfg file with text description of the network architecture.
+ A buffer contains a content of .weights file with learned network.
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model files.
+
+ path to the .prototxt file with text description of the network architecture.
+ path to the .caffemodel file with learned network.
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model in memory.
+
+ buffer containing the content of the .prototxt file
+ buffer containing the content of the .caffemodel file
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Caffe model files from memory.
+
+ buffer containing the content of the .prototxt file
+ buffer containing the content of the .caffemodel file
+
+ This is shortcut consisting from createCaffeImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Tensorflow model file.
+
+ path to the .pb file with binary protobuf description of the network architecture
+ path to the .pbtxt file that contains text graph definition in protobuf format.
+ Resulting Net object is built by text graph using weights from a binary one that
+ let us make it more flexible.
+ This is shortcut consisting from createTensorflowImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Tensorflow model from memory.
+
+ buffer containing the content of the pb file
+ buffer containing the content of the pbtxt file (optional)
+
+ This is shortcut consisting from createTensorflowImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Tensorflow model from memory.
+
+ buffer containing the content of the pb file
+ buffer containing the content of the pbtxt file (optional)
+
+ This is shortcut consisting from createTensorflowImporter and Net::populateNet calls.
+
+
+
+ Reads a network model stored in Torch model file.
+
+
+
+
+ This is shortcut consisting from createTorchImporter and Net::populateNet calls.
+
+
+
+ Read deep learning network represented in one of the supported formats.
+
+ This function automatically detects an origin framework of trained model
+ and calls an appropriate function such @ref readNetFromCaffe, @ref readNetFromTensorflow,
+
+ Binary file contains trained weights. The following file
+ * extensions are expected for models from different frameworks:
+ * * `*.caffemodel` (Caffe, http://caffe.berkeleyvision.org/)
+ * * `*.pb` (TensorFlow, https://www.tensorflow.org/)
+ * * `*.t7` | `*.net` (Torch, http://torch.ch/)
+ * * `*.weights` (Darknet, https://pjreddie.com/darknet/)
+ * * `*.bin` (DLDT, https://software.intel.com/openvino-toolkit)
+ Text file contains network configuration. It could be a
+ * file with the following extensions:
+ * * `*.prototxt` (Caffe, http://caffe.berkeleyvision.org/)
+ * * `*.pbtxt` (TensorFlow, https://www.tensorflow.org/)
+ * * `*.cfg` (Darknet, https://pjreddie.com/darknet/)
+ * * `*.xml` (DLDT, https://software.intel.com/openvino-toolkit)
+ Explicit framework name tag to determine a format.
+
+
+
+
+ Load a network from Intel's Model Optimizer intermediate representation.
+ Networks imported from Intel's Model Optimizer are launched in Intel's Inference Engine backend.
+
+ XML configuration file with network's topology.
+ Binary file with trained weights.
+
+
+
+
+ Reads a network model ONNX https://onnx.ai/
+
+ path to the .onnx file with text description of the network architecture.
+ Network object that ready to do forward, throw an exception in failure cases.
+
+
+
+ Reads a network model ONNX https://onnx.ai/ from memory
+
+ memory of the first byte of the buffer.
+ Network object that ready to do forward, throw an exception in failure cases.
+
+
+
+ Reads a network model ONNX https://onnx.ai/ from memory
+
+ memory of the first byte of the buffer.
+ Network object that ready to do forward, throw an exception in failure cases.
+
+
+
+ Returns true if there are no layers in the network.
+
+
+
+
+
+ Dump net to String.
+ Call method after setInput(). To see correct backend, target and fusion run after forward().
+
+ String with structure, hyperparameters, backend, target and fusion
+
+
+
+ Dump net structure, hyperparameters, backend, target and fusion to dot file
+
+ path to output file with .dot extension
+
+
+
+ Converts string name of the layer to the integer identifier.
+
+
+ id of the layer, or -1 if the layer wasn't found.
+
+
+
+
+
+
+
+
+
+ Connects output of the first layer to input of the second layer.
+
+ descriptor of the first layer output.
+ descriptor of the second layer input.
+
+
+
+ Connects #@p outNum output of the first layer to #@p inNum input of the second layer.
+
+ identifier of the first layer
+ identifier of the second layer
+ number of the first layer output
+ number of the second layer input
+
+
+
+ Sets outputs names of the network input pseudo layer.
+
+
+
+ * Each net always has special own the network input pseudo layer with id=0.
+ * This layer stores the user blobs only and don't make any computations.
+ * In fact, this layer provides the only way to pass user data into the network.
+ * As any other layer, this layer can label its outputs and this function provides an easy way to do this.
+
+
+
+
+ Runs forward pass to compute output of layer with name @p outputName.
+ By default runs forward pass for the whole network.
+
+ name for layer which output is needed to get
+ blob for first output of specified layer.
+
+
+
+ Runs forward pass to compute output of layer with name @p outputName.
+
+ contains all output blobs for specified layer.
+ name for layer which output is needed to get.
+ If outputName is empty, runs forward pass for the whole network.
+
+
+
+ Runs forward pass to compute outputs of layers listed in @p outBlobNames.
+
+ contains blobs for first outputs of specified layers.
+ names for layers which outputs are needed to get
+
+
+
+ Compile Halide layers.
+ Schedule layers that support Halide backend. Then compile them for
+ specific target.For layers that not represented in scheduling file
+ or if no manual scheduling used at all, automatic scheduling will be applied.
+
+ Path to YAML file with scheduling directives.
+
+
+
+ Ask network to use specific computation backend where it supported.
+
+ backend identifier.
+
+
+
+ Ask network to make computations on specific target device.
+
+ target identifier.
+
+
+
+ Sets the new value for the layer output blob
+
+ new blob.
+ descriptor of the updating layer output blob.
+
+ connect(String, String) to know format of the descriptor.
+ If updating blob is not empty then @p blob must have the same shape,
+ because network reshaping is not implemented yet.
+
+
+
+
+ Returns indexes of layers with unconnected outputs.
+
+
+
+
+
+ Returns names of layers with unconnected outputs.
+
+
+
+
+
+ Enables or disables layer fusion in the network.
+
+ true to enable the fusion, false to disable. The fusion is enabled by default.
+
+
+
+ Returns overall time for inference and timings (in ticks) for layers.
+ Indexes in returned vector correspond to layers ids.Some layers can be fused with others,
+ in this case zero ticks count will be return for that skipped layers.
+
+ vector for tick timings for all layers.
+ overall ticks for model inference.
+
+
+
+ Enum of target devices for computations.
+
+
+
+
+ FPGA device with CPU fallbacks using Inference Engine's Heterogeneous plugin.
+
+
+
+
+ A class to upscale images via convolutional neural networks.
+ The following four models are implemented:
+ - edsr
+ - espcn
+ - fsrcnn
+ - lapsrn
+
+
+
+
+
+ Empty constructor
+
+
+
+
+
+ Constructor which immediately sets the desired model
+
+ String containing one of the desired models:
+ - edsr
+ - espcn
+ - fsrcnn
+ - lapsrn
+ Integer specifying the upscale factor
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Read the model from the given path
+
+ Path to the model file.
+
+
+
+
+ Read the model from the given path
+
+ Path to the model weights file.
+ Path to the model definition file.
+
+
+
+
+ Set desired model
+
+ String containing one of the desired models:
+ - edsr
+ - espcn
+ - fsrcnn
+ - lapsrn
+ Integer specifying the upscale factor
+
+
+
+
+ Ask network to use specific computation backend where it supported.
+
+ backend identifier.
+
+
+
+ Ask network to make computations on specific target device.
+
+ target identifier.
+
+
+
+ Upsample via neural network
+
+ Image to upscale
+ Destination upscaled image
+
+
+
+ Upsample via neural network of multiple outputs
+
+ Image to upscale
+ Destination upscaled images
+ Scaling factors of the output nodes
+ Names of the output nodes in the neural network
+
+
+
+ Returns the scale factor of the model
+
+ Current scale factor.
+
+
+
+ Returns the scale factor of the model
+
+ Current algorithm.
+
+
+
+ Abstract base class for all facemark models.
+
+ All facemark models in OpenCV are derived from the abstract base class Facemark, which
+ provides a unified access to all facemark algorithms in OpenCV.
+ To utilize this API in your program, please take a look at the @ref tutorial_table_of_content_facemark
+
+
+
+
+ A function to load the trained model before the fitting process.
+
+ A string represent the filename of a trained model.
+
+
+
+ Trains a Facemark algorithm using the given dataset.
+
+ Input image.
+ Output of the function which represent region of interest of the detected faces. Each face is stored in cv::Rect container.
+ The detected landmark points for each faces.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases managed resources
+
+
+
+
+ filename of the model
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ show the training print-out
+
+
+
+
+ flag to save the trained model or not
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Releases managed resources
+
+
+
+
+ offset for the loaded face landmark points
+
+
+
+
+ filename of the face detector model
+
+
+
+
+ show the training print-out
+
+
+
+
+ number of landmark points
+
+
+
+
+ multiplier for augment the training data
+
+
+
+
+ number of refinement stages
+
+
+
+
+ number of tree in the model for each landmark point refinement
+
+
+
+
+ the depth of decision tree, defines the size of feature
+
+
+
+
+ overlap ratio for training the LBF feature
+
+
+
+
+ filename where the trained model will be saved
+
+
+
+
+ flag to save the trained model or not
+
+
+
+
+ seed for shuffling the training data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ index of facemark points on pupils of left and right eye
+
+
+
+
+ index of facemark points on pupils of left and right eye
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ base for two FaceRecognizer classes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Training and prediction must be done on grayscale images, use cvtColor to convert between the
+ color spaces.
+ - **THE EIGENFACES METHOD MAKES THE ASSUMPTION, THAT THE TRAINING AND TEST IMAGES ARE OF EQUAL SIZE.
+ ** (caps-lock, because I got so many mails asking for this). You have to make sure your
+ input data has the correct shape, else a meaningful exception is thrown.Use resize to resize the images.
+ - This model does not support updating.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Training and prediction must be done on grayscale images, use cvtColor to convert between the
+ color spaces.
+ - **THE EIGENFACES METHOD MAKES THE ASSUMPTION, THAT THE TRAINING AND TEST IMAGES ARE OF EQUAL SIZE.
+ ** (caps-lock, because I got so many mails asking for this). You have to make sure your
+ input data has the correct shape, else a meaningful exception is thrown.Use resize to resize the images.
+ - This model does not support updating.
+
+ The number of components (read: Eigenfaces) kept for this Principal Component Analysis.
+ As a hint: There's no rule how many components (read: Eigenfaces) should be kept for good reconstruction capabilities.
+ It is based on your input data, so experiment with the number. Keeping 80 components should almost always be sufficient.
+ The threshold applied in the prediction.
+
+
+
+
+ Abstract base class for all face recognition models.
+ All face recognition models in OpenCV are derived from the abstract base class FaceRecognizer, which
+ provides a unified access to all face recongition algorithms in OpenCV.
+
+
+
+
+ Trains a FaceRecognizer with given data and associated labels.
+
+
+
+
+
+
+ Updates a FaceRecognizer with given data and associated labels.
+
+
+
+
+
+
+ Gets a prediction from a FaceRecognizer.
+
+
+
+
+
+
+ Predicts the label and confidence for a given sample.
+
+
+
+
+
+
+
+ Serializes this object to a given filename.
+
+
+
+
+
+ Deserializes this object from a given filename.
+
+
+
+
+
+
+ Serializes this object to a given cv::FileStorage.
+
+
+
+
+
+
+ Deserializes this object from a given cv::FileNode.
+
+
+
+
+
+ Sets string info for the specified model's label.
+ The string info is replaced by the provided value if it was set before for the specified label.
+
+
+
+
+
+
+ Gets string information by label.
+ If an unknown label id is provided or there is no label information associated with the specified
+ label id the method returns an empty string.
+
+
+
+
+
+
+ Gets vector of labels by string.
+ The function searches for the labels containing the specified sub-string in the associated string info.
+
+
+
+
+
+
+ threshold parameter accessor - required for default BestMinDist collector
+
+
+
+
+
+ Sets threshold of model
+
+
+
+
+
+
+ Training and prediction must be done on grayscale images, use cvtColor to convert between the color spaces.
+ - **THE FISHERFACES METHOD MAKES THE ASSUMPTION, THAT THE TRAINING AND TEST IMAGES ARE OF EQUAL SIZE.
+ ** (caps-lock, because I got so many mails asking for this). You have to make sure your input data
+ has the correct shape, else a meaningful exception is thrown.Use resize to resize the images.
+ - This model does not support updating.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Training and prediction must be done on grayscale images, use cvtColor to convert between the color spaces.
+ - **THE FISHERFACES METHOD MAKES THE ASSUMPTION, THAT THE TRAINING AND TEST IMAGES ARE OF EQUAL SIZE.
+ ** (caps-lock, because I got so many mails asking for this). You have to make sure your input data
+ has the correct shape, else a meaningful exception is thrown.Use resize to resize the images.
+ - This model does not support updating.
+
+ The number of components (read: Fisherfaces) kept for this Linear Discriminant Analysis
+ with the Fisherfaces criterion. It's useful to keep all components, that means the number of your classes c
+ (read: subjects, persons you want to recognize). If you leave this at the default (0) or set it
+ to a value less-equal 0 or greater (c-1), it will be set to the correct number (c-1) automatically.
+ The threshold applied in the prediction. If the distance to the nearest neighbor
+ is larger than the threshold, this method returns -1.
+
+
+
+
+
+ The Circular Local Binary Patterns (used in training and prediction) expect the data given as
+ grayscale images, use cvtColor to convert between the color spaces.
+ This model supports updating.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ The Circular Local Binary Patterns (used in training and prediction) expect the data given as
+ grayscale images, use cvtColor to convert between the color spaces.
+ This model supports updating.
+
+ The radius used for building the Circular Local Binary Pattern. The greater the radius, the
+ The number of sample points to build a Circular Local Binary Pattern from.
+ An appropriate value is to use `8` sample points.Keep in mind: the more sample points you include, the higher the computational cost.
+ The number of cells in the horizontal direction, 8 is a common value used in publications.
+ The more cells, the finer the grid, the higher the dimensionality of the resulting feature vector.
+ The number of cells in the vertical direction, 8 is a common value used in publications.
+ The more cells, the finer the grid, the higher the dimensionality of the resulting feature vector.
+ The threshold applied in the prediction. If the distance to the nearest neighbor
+ is larger than the threshold, this method returns -1.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Detects corners using the AGAST algorithm
+
+
+
+
+ Constructor
+
+
+
+
+ The AgastFeatureDetector constructor
+
+ threshold on difference between intensity of the central pixel
+ and pixels of a circle around this pixel.
+ if true, non-maximum suppression is applied to detected corners (keypoints).
+
+
+
+
+ Releases managed resources
+
+
+
+
+ threshold on difference between intensity of the central pixel and pixels of a circle around this pixel.
+
+
+
+
+ if true, non-maximum suppression is applied to detected corners (keypoints).
+
+
+
+
+ type one of the four neighborhoods as defined in the paper
+
+
+
+
+ AGAST type one of the four neighborhoods as defined in the paper
+
+
+
+
+ Class implementing the AKAZE keypoint detector and descriptor extractor,
+ described in @cite ANB13
+
+
+ AKAZE descriptors can only be used with KAZE or AKAZE keypoints.
+ Try to avoid using *extract* and *detect* instead of *operator()* due to performance reasons.
+ .. [ANB13] Fast Explicit Diffusion for Accelerated Features in Nonlinear Scale
+ Spaces. Pablo F. Alcantarilla, Jesús Nuevo and Adrien Bartoli.
+ In British Machine Vision Conference (BMVC), Bristol, UK, September 2013.
+
+
+
+
+ Constructor
+
+
+
+
+ The AKAZE constructor
+
+ Type of the extracted descriptor: DESCRIPTOR_KAZE,
+ DESCRIPTOR_KAZE_UPRIGHT, DESCRIPTOR_MLDB or DESCRIPTOR_MLDB_UPRIGHT.
+ Size of the descriptor in bits. 0 -> Full size
+ Number of channels in the descriptor (1, 2, 3)
+ Detector response threshold to accept point
+ Maximum octave evolution of the image
+ Default number of sublevels per scale level
+ Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or DIFF_CHARBONNIER
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Brute-force descriptor matcher.
+ For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one.
+
+
+
+
+
+
+
+
+
+
+
+ Creates instance by cv::Ptr<T>
+
+
+
+
+ Creates instance by raw pointer T*
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Return true if the matcher supports mask in match methods.
+
+
+
+
+
+ Brute-force descriptor matcher.
+ For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one.
+
+
+
+
+ The constructor.
+
+ Descriptor extractor that is used to compute descriptors for an input image and its keypoints.
+ Descriptor matcher that is used to find the nearest word of the trained vocabulary for each keypoint descriptor of the image.
+
+
+
+ The constructor.
+
+ Descriptor matcher that is used to find the nearest word of the trained vocabulary for each keypoint descriptor of the image.
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Sets a visual vocabulary.
+
+ Vocabulary (can be trained using the inheritor of BOWTrainer ).
+ Each row of the vocabulary is a visual word(cluster center).
+
+
+
+ Returns the set vocabulary.
+
+
+
+
+
+ Computes an image descriptor using the set visual vocabulary.
+
+ Image, for which the descriptor is computed.
+ Keypoints detected in the input image.
+ Computed output image descriptor.
+ pointIdxsOfClusters Indices of keypoints that belong to the cluster.
+ This means that pointIdxsOfClusters[i] are keypoint indices that belong to the i -th cluster(word of vocabulary) returned if it is non-zero.
+ Descriptors of the image keypoints that are returned if they are non-zero.
+
+
+
+ Computes an image descriptor using the set visual vocabulary.
+
+ Computed descriptors to match with vocabulary.
+ Computed output image descriptor.
+ Indices of keypoints that belong to the cluster.
+ This means that pointIdxsOfClusters[i] are keypoint indices that belong to the i -th cluster(word of vocabulary) returned if it is non-zero.
+
+
+
+ Computes an image descriptor using the set visual vocabulary.
+
+ Image, for which the descriptor is computed.
+ Keypoints detected in the input image.
+ Computed output image descriptor.
+
+
+
+ Returns an image descriptor size if the vocabulary is set. Otherwise, it returns 0.
+
+
+
+
+
+ Returns an image descriptor type.
+
+
+
+
+
+ Brute-force descriptor matcher.
+ For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one.
+
+
+
+
+ The constructor.
+
+
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Clusters train descriptors.
+
+
+
+
+
+ Clusters train descriptors.
+
+ Descriptors to cluster. Each row of the descriptors matrix is a descriptor. Descriptors are not added to the inner train descriptor set.
+ The vocabulary consists of cluster centers. So, this method returns the vocabulary. In the first variant of the method, train descriptors stored in the object
+ are clustered.In the second variant, input descriptors are clustered.
+
+
+
+
+ Brute-force descriptor matcher.
+ For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one.
+
+
+
+
+ Adds descriptors to a training set.
+
+ descriptors Descriptors to add to a training set. Each row of the descriptors matrix is a descriptor.
+ The training set is clustered using clustermethod to construct the vocabulary.
+
+
+
+ Returns a training set of descriptors.
+
+
+
+
+
+ Returns the count of all descriptors stored in the training set.
+
+
+
+
+
+
+
+
+
+
+ Clusters train descriptors.
+
+
+
+
+
+ Clusters train descriptors.
+
+ Descriptors to cluster. Each row of the descriptors matrix is a descriptor. Descriptors are not added to the inner train descriptor set.
+ The vocabulary consists of cluster centers. So, this method returns the vocabulary. In the first variant of the method, train descriptors stored in the object
+ are clustered.In the second variant, input descriptors are clustered.
+
+
+
+
+ BRISK implementation
+
+
+
+
+
+
+
+
+ Construct from native cv::Ptr<T>*
+
+
+
+
+
+ The BRISK constructor
+
+ AGAST detection threshold score.
+ detection octaves. Use 0 to do single scale.
+ apply this scale to the pattern used for sampling the neighbourhood of a keypoint.
+
+
+
+ The BRISK constructor for a custom pattern
+
+ defines the radii (in pixels) where the samples around a keypoint are taken (for keypoint scale 1).
+ defines the number of sampling points on the sampling circle. Must be the same size as radiusList..
+ threshold for the short pairings used for descriptor formation (in pixels for keypoint scale 1).
+ threshold for the long pairings used for orientation determination (in pixels for keypoint scale 1).
+ index remapping of the bits.
+
+
+
+
+ The BRISK constructor for a custom pattern, detection threshold and octaves
+
+ AGAST detection threshold score.
+ detection octaves. Use 0 to do single scale.
+ defines the radii (in pixels) where the samples around a keypoint are taken (for keypoint scale 1).
+ defines the number of sampling points on the sampling circle. Must be the same size as radiusList..
+ threshold for the short pairings used for descriptor formation (in pixels for keypoint scale 1).
+ threshold for the long pairings used for orientation determination (in pixels for keypoint scale 1).
+ index remapping of the bits.
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create descriptor matcher by type name.
+
+
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+ Creates instance from raw pointer T*
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Add descriptors to train descriptor collection.
+
+ Descriptors to add. Each descriptors[i] is a descriptors set from one image.
+
+
+
+ Get train descriptors collection.
+
+
+
+
+
+ Clear train descriptors collection.
+
+
+
+
+ Return true if there are not train descriptors in collection.
+
+
+
+
+
+ Return true if the matcher supports mask in match methods.
+
+
+
+
+
+ Train matcher (e.g. train flann index).
+ In all methods to match the method train() is run every time before matching.
+ Some descriptor matchers (e.g. BruteForceMatcher) have empty implementation
+ of this method, other matchers really train their inner structures
+ (e.g. FlannBasedMatcher trains flann::Index). So nonempty implementation
+ of train() should check the class object state and do traing/retraining
+ only if the state requires that (e.g. FlannBasedMatcher trains flann::Index
+ if it has not trained yet or if new descriptors have been added to the train collection).
+
+
+
+
+ Find one best match for each query descriptor (if mask is empty).
+
+
+
+
+
+
+
+
+ Find k best matches for each query descriptor (in increasing order of distances).
+ compactResult is used when mask is not empty. If compactResult is false matches
+ vector will have the same size as queryDescriptors rows. If compactResult is true
+ matches vector will not contain matches for fully masked out query descriptors.
+
+
+
+
+
+
+
+
+
+
+ Find best matches for each query descriptor which have distance less than
+ maxDistance (in increasing order of distances).
+
+
+
+
+
+
+
+
+
+
+ Find one best match for each query descriptor (if mask is empty).
+
+
+
+
+
+
+
+ Find k best matches for each query descriptor (in increasing order of distances).
+ compactResult is used when mask is not empty. If compactResult is false matches
+ vector will have the same size as queryDescriptors rows. If compactResult is true
+ matches vector will not contain matches for fully masked out query descriptors.
+
+
+
+
+
+
+
+
+
+ Find best matches for each query descriptor which have distance less than
+ maxDistance (in increasing order of distances).
+
+
+
+
+
+
+
+
+
+ cv::AKAZE descriptor type
+
+
+
+
+ Upright descriptors, not invariant to rotation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Upright descriptors, not invariant to rotation
+
+
+
+
+
+
+
+
+
+ Output image matrix will be created (Mat::create),
+ i.e. existing memory of output image may be reused.
+ Two source image, matches and single keypoints will be drawn.
+ For each keypoint only the center point will be drawn (without
+ the circle around keypoint with keypoint size and orientation).
+
+
+
+
+ Output image matrix will not be created (Mat::create).
+ Matches will be drawn on existing content of output image.
+
+
+
+
+ Single keypoints will not be drawn.
+
+
+
+
+ For each keypoint the circle around keypoint with keypoint size and
+ orientation will be drawn.
+
+
+
+
+ AGAST type one of the four neighborhoods as defined in the paper
+
+
+
+
+ cv::KAZE diffusivity type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cv::ORB score flags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Detects corners using FAST algorithm by E. Rosten
+
+
+
+
+ Constructor
+
+
+
+
+ Constructs FastFeatureDetector
+
+ threshold on difference between intensity of the central pixel and pixels of a circle around this pixel.
+ if true, non-maximum suppression is applied to detected corners (keypoints).
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abstract base class for 2D image feature detectors and descriptor extractors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return true if detector object is empty
+
+
+
+
+
+ Detect keypoints in an image.
+
+ The image.
+ Mask specifying where to look for keypoints (optional).
+ Must be a char matrix with non-zero values in the region of interest.
+ The detected keypoints.
+
+
+
+ Detect keypoints in an image.
+
+ The image.
+ Mask specifying where to look for keypoints (optional).
+ Must be a char matrix with non-zero values in the region of interest.
+ The detected keypoints.
+
+
+
+ Detect keypoints in an image set.
+
+ Image collection.
+ Masks for image set. masks[i] is a mask for images[i].
+ Collection of keypoints detected in an input images. keypoints[i] is a set of keypoints detected in an images[i].
+
+
+
+ Compute the descriptors for a set of keypoints in an image.
+
+ The image.
+ The input keypoints. Keypoints for which a descriptor cannot be computed are removed.
+ Computed descriptors. Row i is the descriptor for KeyPoint i.param>
+
+
+
+ Compute the descriptors for a keypoints collection detected in image collection.
+
+ Image collection.
+ Input keypoints collection. keypoints[i] is keypoints detected in images[i].
+ Keypoints for which a descriptor cannot be computed are removed.
+ Descriptor collection. descriptors[i] are descriptors computed for set keypoints[i].
+
+
+
+ Detects keypoints and computes the descriptors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Brute-force descriptor matcher.
+ For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one.
+
+
+
+
+
+
+
+
+
+
+
+ Creates instance by cv::Ptr<T>
+
+
+
+
+ Creates instance by raw pointer T*
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Return true if the matcher supports mask in match methods.
+
+
+
+
+
+ Add descriptors to train descriptor collection.
+
+ Descriptors to add. Each descriptors[i] is a descriptors set from one image.
+
+
+
+ Clear train descriptors collection.
+
+
+
+
+ Train matcher (e.g. train flann index).
+ In all methods to match the method train() is run every time before matching.
+ Some descriptor matchers (e.g. BruteForceMatcher) have empty implementation
+ of this method, other matchers really train their inner structures
+ (e.g. FlannBasedMatcher trains flann::Index). So nonempty implementation
+ of train() should check the class object state and do traing/retraining
+ only if the state requires that (e.g. FlannBasedMatcher trains flann::Index
+ if it has not trained yet or if new descriptors have been added to the train collection).
+
+
+
+
+ Good Features To Track Detector
+
+
+
+
+ Construct GFTT processor
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class implementing the KAZE keypoint detector and descriptor extractor
+
+
+
+
+ Constructor
+
+
+
+
+ The KAZE constructor
+
+ Set to enable extraction of extended (128-byte) descriptor.
+ Set to enable use of upright descriptors (non rotation-invariant).
+ Detector response threshold to accept point
+ Maximum octave evolution of the image
+ Default number of sublevels per scale level
+ Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or DIFF_CHARBONNIER
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A class filters a vector of keypoints.
+
+
+
+
+ Remove keypoints within borderPixels of an image edge.
+
+
+
+
+
+
+
+
+ Remove keypoints of sizes out of range.
+
+
+
+
+
+
+
+
+ Remove keypoints from some image by mask for pixels of this image.
+
+
+
+
+
+
+
+ Remove duplicated keypoints.
+
+
+
+
+
+
+ Remove duplicated keypoints and sort the remaining keypoints
+
+
+
+
+
+
+ Retain the specified number of the best keypoints (according to the response)
+
+
+
+
+
+
+
+ Maximal Stable Extremal Regions class
+
+
+
+
+ Creates instance by raw pointer cv::MSER*
+
+
+
+
+ Creates MSER parameters
+
+ delta, in the code, it compares (size_{i}-size_{i-delta})/size_{i-delta}
+ prune the area which smaller than min_area
+ prune the area which bigger than max_area
+ prune the area have simliar size to its children
+ trace back to cut off mser with diversity < min_diversity
+ for color image, the evolution steps
+ the area threshold to cause re-initialize
+ ignore too small margin
+ the aperture size for edge blur
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Detect MSER regions
+
+ input image (8UC1, 8UC3 or 8UC4, must be greater or equal than 3x3)
+ resulting list of point sets
+ resulting bounding boxes
+
+
+
+ Class implementing the ORB (*oriented BRIEF*) keypoint detector and descriptor extractor.
+
+ described in @cite RRKB11 . The algorithm uses FAST in pyramids to detect stable keypoints, selects
+ the strongest features using FAST or Harris response, finds their orientation using first-order
+ moments and computes the descriptors using BRIEF (where the coordinates of random point pairs (or
+ k-tuples) are rotated according to the measured orientation).
+
+
+
+
+
+
+
+
+
+ The ORB constructor
+
+ The maximum number of features to retain.
+ Pyramid decimation ratio, greater than 1. scaleFactor==2 means the classical
+ pyramid, where each next level has 4x less pixels than the previous, but such a big scale factor
+ will degrade feature matching scores dramatically. On the other hand, too close to 1 scale factor
+ will mean that to cover certain scale range you will need more pyramid levels and so the speed will suffer.
+ The number of pyramid levels. The smallest level will have linear size equal to
+ input_image_linear_size/pow(scaleFactor, nlevels - firstLevel).
+ This is size of the border where the features are not detected. It should
+ roughly match the patchSize parameter.
+ The level of pyramid to put source image to. Previous layers are filled
+ with upscaled source image.
+ The number of points that produce each element of the oriented BRIEF descriptor. The
+ default value 2 means the BRIEF where we take a random point pair and compare their brightnesses,
+ so we get 0/1 response. Other possible values are 3 and 4. For example, 3 means that we take 3
+ random points (of course, those point coordinates are random, but they are generated from the
+ pre-defined seed, so each element of BRIEF descriptor is computed deterministically from the pixel
+ rectangle), find point of maximum brightness and output index of the winner (0, 1 or 2). Such
+ output will occupy 2 bits, and therefore it will need a special variant of Hamming distance,
+ denoted as NORM_HAMMING2 (2 bits per bin). When WTA_K=4, we take 4 random points to compute each
+ bin (that will also occupy 2 bits with possible values 0, 1, 2 or 3).
+ The default HARRIS_SCORE means that Harris algorithm is used to rank features
+ (the score is written to KeyPoint::score and is used to retain best nfeatures features);
+ FAST_SCORE is alternative value of the parameter that produces slightly less stable keypoints,
+ but it is a little faster to compute.
+ size of the patch used by the oriented BRIEF descriptor. Of course, on smaller
+ pyramid layers the perceived image area covered by a feature will be larger.
+ the fast threshold
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SIFT implementation.
+
+
+
+
+ Creates instance by raw pointer cv::SIFT*
+
+
+
+
+ The SIFT constructor.
+
+ The number of best features to retain.
+ The features are ranked by their scores (measured in SIFT algorithm as the local contrast)
+ The number of layers in each octave. 3 is the value used in D. Lowe paper.
+ The number of octaves is computed automatically from the image resolution.
+ The contrast threshold used to filter out weak features in semi-uniform
+ (low-contrast) regions. The larger the threshold, the less features are produced by the detector.
+ The threshold used to filter out edge-like features. Note that the its meaning is
+ different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are filtered out (more features are retained).
+ The sigma of the Gaussian applied to the input image at the octave #0.
+ If your image is captured with a weak camera with soft lenses, you might want to reduce the number.
+
+
+
+ Releases managed resources
+
+
+
+
+ Class for extracting blobs from an image.
+
+
+
+
+ SimpleBlobDetector parameters
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+ Construct a SimpleBlobDetector instance
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ The algorithm to use for selecting the initial centers when performing a k-means clustering step.
+
+
+
+
+ picks the initial cluster centers randomly
+ [flann_centers_init_t::CENTERS_RANDOM]
+
+
+
+
+ picks the initial centers using Gonzales’ algorithm
+ [flann_centers_init_t::CENTERS_GONZALES]
+
+
+
+
+ picks the initial centers using the algorithm suggested in [arthur_kmeanspp_2007]
+ [flann_centers_init_t::CENTERS_KMEANSPP]
+
+
+
+
+ The FLANN nearest neighbor index class.
+
+
+
+
+ Constructs a nearest neighbor search index for a given dataset.
+
+ features – Matrix of type CV _ 32F containing the features(points) to index. The size of the matrix is num _ features x feature _ dimensionality.
+ Structure containing the index parameters. The type of index that will be constructed depends on the type of this parameter.
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Performs a K-nearest neighbor search for multiple query points.
+
+ The query points, one per row
+ Indices of the nearest neighbors found
+ Distances to the nearest neighbors found
+ Number of nearest neighbors to search for
+ Search parameters
+
+
+
+ Performs a K-nearest neighbor search for multiple query points.
+
+ The query points, one per row
+ Indices of the nearest neighbors found
+ Distances to the nearest neighbors found
+ Number of nearest neighbors to search for
+ Search parameters
+
+
+
+ Performs a K-nearest neighbor search for multiple query points.
+
+ The query points, one per row
+ Indices of the nearest neighbors found
+ Distances to the nearest neighbors found
+ Number of nearest neighbors to search for
+ Search parameters
+
+
+
+ Performs a radius nearest neighbor search for a given query point.
+
+ The query point
+ Indices of the nearest neighbors found
+ Distances to the nearest neighbors found
+ Number of nearest neighbors to search for
+
+ Search parameters
+
+
+
+ Performs a radius nearest neighbor search for a given query point.
+
+ The query point
+ Indices of the nearest neighbors found
+ Distances to the nearest neighbors found
+ Number of nearest neighbors to search for
+
+ Search parameters
+
+
+
+ Performs a radius nearest neighbor search for a given query point.
+
+ The query point
+ Indices of the nearest neighbors found
+ Distances to the nearest neighbors found
+ Number of nearest neighbors to search for
+
+ Search parameters
+
+
+
+ Saves the index to a file.
+
+ The file to save the index to
+
+
+
+ hierarchical k-means tree.
+
+
+
+
+
+
+ Is a number between 0 and 1 specifying the percentage of the approximate nearest-neighbor searches that return the exact nearest-neighbor.
+ Using a higher value for this parameter gives more accurate results, but the search takes longer. The optimum value usually depends on the application.
+ Specifies the importance of the index build time raported to the nearest-neighbor search time.
+ In some applications it’s acceptable for the index build step to take a long time if the subsequent searches in the index can be performed very fast.
+ In other applications it’s required that the index be build as fast as possible even if that leads to slightly longer search times.
+ Is used to specify the tradeoff between time (index build time and search time) and memory used by the index.
+ A value less than 1 gives more importance to the time spent and a value greater than 1 gives more importance to the memory usage.
+ Is a number between 0 and 1 indicating what fraction of the dataset to use in the automatic parameter configuration algorithm.
+ Running the algorithm on the full dataset gives the most accurate results, but for very large datasets can take longer than desired.
+ In such case using just a fraction of the data helps speeding up this algorithm while still giving good approximations of the optimum parameters.
+
+
+
+
+
+
+
+
+ When using a parameters object of this type the index created combines the randomized kd-trees and the hierarchical k-means tree.
+
+
+
+
+
+
+ The number of parallel kd-trees to use. Good values are in the range [1..16]
+ The branching factor to use for the hierarchical k-means tree
+ The maximum number of iterations to use in the k-means clustering stage when building the k-means tree. A value of -1 used here means that the k-means clustering should be iterated until convergence
+ The algorithm to use for selecting the initial centers when performing a k-means clustering step.
+ This parameter (cluster boundary index) influences the way exploration is performed in the hierarchical kmeans tree. When cb_index is zero the next kmeans domain to be explored is choosen to be the one with the closest center. A value greater then zero also takes into account the size of the domain.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When passing an object of this type the index constructed will consist of a set
+ of randomized kd-trees which will be searched in parallel.
+
+
+
+
+ Constructor
+
+ The number of parallel kd-trees to use. Good values are in the range [1..16]
+
+
+
+
+
+
+
+
+ When passing an object of this type the index constructed will be a hierarchical k-means tree.
+
+
+
+
+ Constructor
+
+ The branching factor to use for the hierarchical k-means tree
+ The maximum number of iterations to use in the k-means clustering stage when building the k-means tree. A value of -1 used here means that the k-means clustering should be iterated until convergence
+ The algorithm to use for selecting the initial centers when performing a k-means clustering step.
+ This parameter (cluster boundary index) influences the way exploration is performed in the hierarchical kmeans tree. When cb_index is zero the next kmeans domain to be explored is choosen to be the one with the closest center. A value greater then zero also takes into account the size of the domain.
+
+
+
+
+
+
+
+
+ the index will perform a linear, brute-force search.
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+ When using a parameters object of this type the index created uses multi-probe LSH (by Multi-Probe LSH: Efficient Indexing for High-Dimensional Similarity Search by Qin Lv, William Josephson, Zhe Wang, Moses Charikar, Kai Li., Proceedings of the 33rd International Conference on Very Large Data Bases (VLDB). Vienna, Austria. September 2007)
+
+
+
+
+ Constructor
+
+ The number of hash tables to use (between 10 and 30 usually).
+ The size of the hash key in bits (between 10 and 20 usually).
+ The number of bits to shift to check for neighboring buckets (0 is regular LSH, 2 is recommended).
+
+
+
+
+
+
+
+
+ This object type is used for loading a previously saved index from the disk.
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Trackbar that is shown on OpenCV Window
+
+
+
+
+ Name of this trackbar
+
+
+
+
+ Name of parent window
+
+
+
+
+
+
+
+
+
+ Gets or sets a numeric value that represents the current position of the scroll box on the track bar.
+
+
+
+
+ Result value of cv::createTrackbar
+
+
+
+
+ Constructor (value=0, max=100)
+
+ Trackbar name
+ Window name
+ Callback handler
+
+
+
+ Constructor
+
+ Trackbar name
+ Window name
+ Initial slider position
+ The upper limit of the range this trackbar is working with.
+ Callback handler
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Sets the trackbar maximum position.
+ The function sets the maximum position of the specified trackbar in the specified window.
+
+ New maximum position.
+
+
+
+ Sets the trackbar minimum position.
+ The function sets the minimum position of the specified trackbar in the specified window.
+
+ New minimum position.
+
+
+
+ Button type flags (cv::createButton)
+
+
+
+
+ The button will be a push button.
+
+
+
+
+ The button will be a checkbox button.
+
+
+
+
+ The button will be a radiobox button. The radiobox on the same buttonbar (same line) are exclusive; one on can be select at the time.
+
+
+
+
+ Mouse Event Flags see cv::MouseCallback
+
+
+
+
+ indicates that the left mouse button is down.
+
+
+
+
+ indicates that the right mouse button is down.
+
+
+
+
+ indicates that the middle mouse button is down.
+
+
+
+
+ indicates that CTRL Key is pressed.
+
+
+
+
+ indicates that SHIFT Key is pressed.
+
+
+
+
+ indicates that ALT Key is pressed.
+
+
+
+
+ Mouse Events
+
+
+
+
+ indicates that the mouse pointer has moved over the window.
+
+
+
+
+ indicates that the left mouse button is pressed.
+
+
+
+
+ indicates that the right mouse button is pressed.
+
+
+
+
+ indicates that the middle mouse button is pressed.
+
+
+
+
+ indicates that left mouse button is released.
+
+
+
+
+ indicates that right mouse button is released.
+
+
+
+
+ indicates that middle mouse button is released.
+
+
+
+
+ indicates that left mouse button is double clicked.
+
+
+
+
+ indicates that right mouse button is double clicked.
+
+
+
+
+ indicates that middle mouse button is double clicked.
+
+
+
+
+ positive and negative values mean forward and backward scrolling, respectively.
+
+
+
+
+ positive and negative values mean right and left scrolling, respectively.
+
+
+
+
+ Flags for cv::namedWindow
+
+
+
+
+ the user can resize the window (no constraint) /
+ also use to switch a fullscreen window to a normal size
+
+
+
+
+ the user cannot resize the window, the size is constrainted by the image displayed.
+
+
+
+
+ window with opengl support
+
+
+
+
+ change the window to fullscreen
+
+
+
+
+ the image expends as much as it can (no ratio constraint)
+
+
+
+
+ the ratio of the image is respected
+
+
+
+
+ status bar and tool bar
+
+
+
+
+ old fashious way
+
+
+
+
+ Property identifiers for cvGetWindowProperty/cvSetWindowProperty
+
+
+
+
+ fullscreen property (can be WINDOW_NORMAL or WINDOW_FULLSCREEN)
+
+
+
+
+ autosize property (can be WINDOW_NORMAL or WINDOW_AUTOSIZE)
+
+
+
+
+ window's aspect ration (can be set to WINDOW_FREERATIO or WINDOW_KEEPRATIO)
+
+
+
+
+ opengl support
+
+
+
+
+ checks whether the window exists and is visible
+
+
+
+
+ property to toggle normal window being topmost or not
+
+
+
+
+ Delegate to be called every time mouse event occurs in the specified window.
+
+ one of MouseEventTypes
+ x-coordinates of mouse pointer in image coordinates
+ y-coordinates of mouse pointer in image coordinates
+ a combination of MouseEventFlags
+
+
+
+
+ Delegate to be called every time the slider changes the position.
+
+
+
+
+
+
+
+
+
+
+
+
+ Wrapper of HighGUI window
+
+
+
+
+ Creates a window with a random name
+
+
+
+
+ Creates a window
+
+ Name of the window which is used as window identifier and appears in the window caption.
+
+
+
+ Creates a window
+
+ Name of the window which is used as window identifier and appears in the window caption.
+ Flags of the window. Currently the only supported flag is WindowMode.AutoSize.
+ If it is set, window size is automatically adjusted to fit the displayed image (see cvShowImage), while user can not change the window size manually.
+
+
+
+ Creates a window
+
+ Name of the window which is used as window identifier and appears in the window caption.
+ Image to be shown.
+
+
+
+ Creates a window
+
+ Name of the window which is used as window identifier and appears in the window caption.
+ Image to be shown.
+ Flags of the window. Currently the only supported flag is WindowMode.AutoSize.
+ If it is set, window size is automatically adjusted to fit the displayed image (see cvShowImage), while user can not change the window size manually.
+
+
+
+ ウィンドウ名が指定されなかったときに、適当な名前を作成して返す.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Destroys this window.
+
+
+
+
+ Destroys all the opened HighGUI windows.
+
+
+
+
+ Gets or sets an image to be shown
+
+
+
+
+ Gets window name
+
+
+
+
+
+
+
+
+
+ Creates the trackbar and attaches it to this window
+
+ Name of created trackbar.
+ the function to be called every time the slider changes the position. This function should be prototyped as void Foo(int);
+
+
+
+
+ Creates the trackbar and attaches it to this window
+
+ Name of created trackbar.
+ The position of the slider
+ Maximal position of the slider. Minimal position is always 0.
+ the function to be called every time the slider changes the position. This function should be prototyped as void Foo(int);
+
+
+
+
+ Display text on the window's image as an overlay for delay milliseconds. This is not editing the image's data. The text is display on the top of the image.
+
+ Overlay text to write on the window’s image
+ Delay to display the overlay text. If this function is called before the previous overlay text time out, the timer is restarted and the text updated.
+ If this value is zero, the text never disappears.
+
+
+
+
+
+ Text to write on the window’s statusbar
+ Delay to display the text. If this function is called before the previous text time out, the timer is restarted and the text updated. If this value is zero, the text never disapers.
+
+
+
+ Get Property of the window
+
+ Property identifier
+ Value of the specified property
+
+
+
+ Sets window position
+
+ New x coordinate of top-left corner
+ New y coordinate of top-left corner
+
+
+
+ Sets window size
+
+ New width
+ New height
+
+
+
+ Set Property of the window
+
+ Property identifier
+ New value of the specified property
+
+
+
+ Shows the image in this window
+
+ Image to be shown.
+
+
+
+ Shows the image in this window
+
+ Image to be shown.
+
+
+
+ get native window handle (HWND in case of Win32 and Widget in case of X Window)
+
+
+
+
+ Waits for a pressed key
+
+ Delay in milliseconds.
+ Key code
+
+
+
+ Waits for a pressed key.
+ Similar to #waitKey, but returns full key code.
+ Key code is implementation specific and depends on used backend: QT/GTK/Win32/etc
+
+ Delay in milliseconds. 0 is the special value that means ”forever”
+ Returns the code of the pressed key or -1 if no key was pressed before the specified time had elapsed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retrieves a created window by name
+
+
+
+
+
+
+ Sets the callback function for mouse events occuting within the specified window.
+
+ Reference to the function to be called every time mouse event occurs in the specified window.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies colorness and Depth of the loaded image
+
+
+
+
+ If set, return the loaded image as is (with alpha channel, otherwise it gets cropped).
+
+
+
+
+ If set, always convert image to the single channel grayscale image.
+
+
+
+
+ If set, always convert image to the 3 channel BGR color image.
+
+
+
+
+ If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit.
+
+
+
+
+ If set, the image is read in any possible color format.
+
+
+
+
+ If set, use the gdal driver for loading the image.
+
+
+
+
+ If set, always convert image to the single channel grayscale image and the image size reduced 1/2.
+
+
+
+
+ If set, always convert image to the 3 channel BGR color image and the image size reduced 1/2.
+
+
+
+
+ If set, always convert image to the single channel grayscale image and the image size reduced 1/4.
+
+
+
+
+ If set, always convert image to the 3 channel BGR color image and the image size reduced 1/4.
+
+
+
+
+ If set, always convert image to the single channel grayscale image and the image size reduced 1/8.
+
+
+
+
+ If set, always convert image to the 3 channel BGR color image and the image size reduced 1/8.
+
+
+
+
+ If set, do not rotate the image according to EXIF's orientation flag.
+
+
+
+
+
+
+
+
+
+ store as HALF (FP16)
+
+
+
+
+ store as FP32 (default)
+
+
+
+
+ The format type IDs for cv::imwrite and cv::inencode
+
+
+
+
+ For JPEG, it can be a quality from 0 to 100 (the higher is the better). Default value is 95.
+
+
+
+
+ Enable JPEG features, 0 or 1, default is False.
+
+
+
+
+ Enable JPEG features, 0 or 1, default is False.
+
+
+
+
+ JPEG restart interval, 0 - 65535, default is 0 - no restart.
+
+
+
+
+ Separate luma quality level, 0 - 100, default is 0 - don't use.
+
+
+
+
+ Separate chroma quality level, 0 - 100, default is 0 - don't use.
+
+
+
+
+ For PNG, it can be the compression level from 0 to 9.
+ A higher value means a smaller size and longer compression time. Default value is 3.
+
+
+
+
+ One of cv::ImwritePNGFlags, default is IMWRITE_PNG_StrategyDEFAULT.
+
+
+
+
+ Binary level PNG, 0 or 1, default is 0.
+
+
+
+
+ For PPM, PGM, or PBM, it can be a binary format flag, 0 or 1. Default value is 1.
+
+
+
+
+ [48] override EXR storage type (FLOAT (FP32) is default)
+
+
+
+
+ For WEBP, it can be a quality from 1 to 100 (the higher is the better). By default (without any parameter) and for quality above 100 the lossless compression is used.
+
+
+
+
+ For PAM, sets the TUPLETYPE field to the corresponding string value that is defined for the format
+
+
+
+
+ For TIFF, use to specify which DPI resolution unit to set; see libtiff documentation for valid values
+
+
+
+
+ For TIFF, use to specify the X direction DPI
+
+
+
+
+ For TIFF, use to specify the Y direction DPI
+
+
+
+
+ For TIFF, use to specify the image compression scheme.
+ See libtiff for integer constants corresponding to compression formats.
+ Note, for images whose depth is CV_32F, only libtiff's SGILOG compression scheme is used.
+ For other supported depths, the compression scheme can be specified by this flag; LZW compression is the default.
+
+
+
+
+ For JPEG2000, use to specify the target compression rate (multiplied by 1000).
+ The value can be from 0 to 1000. Default is 1000.
+
+
+
+
+ Imwrite PAM specific tupletype flags used to define the 'TUPETYPE' field of a PAM file.
+
+
+
+
+ Imwrite PNG specific flags used to tune the compression algorithm.
+
+ These flags will be modify the way of PNG image compression and will be passed to the underlying zlib processing stage.
+ The effect of IMWRITE_PNG_StrategyFILTERED is to force more Huffman coding and less string matching; it is somewhat
+ intermediate between IMWRITE_PNG_StrategyDEFAULT and IMWRITE_PNG_StrategyHUFFMAN_ONLY.
+ IMWRITE_PNG_StrategyRLE is designed to be almost as fast as IMWRITE_PNG_StrategyHUFFMAN_ONLY, but give better compression for PNG
+ image data. The strategy parameter only affects the compression ratio but not the correctness of the compressed output even
+ if it is not set appropriately. IMWRITE_PNG_StrategyFIXED prevents the use of dynamic Huffman codes, allowing for a simpler
+ decoder for special applications.
+
+
+
+
+ Use this value for normal data.
+
+
+
+
+ Use this value for data produced by a filter (or predictor).Filtered data consists mostly of small values with a somewhat
+ random distribution. In this case, the compression algorithm is tuned to compress them better.
+
+
+
+
+ Use this value to force Huffman encoding only (no string match).
+
+
+
+
+ Use this value to limit match distances to one (run-length encoding).
+
+
+
+
+ Using this value prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications.
+
+
+
+
+ The format-specific save parameters for cv::imwrite and cv::imencode
+
+
+
+
+ format type ID
+
+
+
+
+ value of parameter
+
+
+
+
+ Constructor
+
+ format type ID
+ value of parameter
+
+
+
+ Contrast Limited Adaptive Histogram Equalization
+
+
+
+
+ cv::Ptr<CLAHE>
+
+
+
+
+
+
+
+
+
+ Creates a predefined CLAHE object
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Equalizes the histogram of a grayscale image using Contrast Limited Adaptive Histogram Equalization.
+
+ Source image of type CV_8UC1 or CV_16UC1.
+ Destination image.
+
+
+
+ Gets or sets threshold for contrast limiting.
+
+
+
+
+ Gets or sets size of grid for histogram equalization. Input image will be divided into equally sized rectangular tiles.
+
+
+
+
+
+
+
+
+
+ connected components that is returned from Cv2.ConnectedComponentsEx
+
+
+
+
+ All blobs
+
+
+
+
+ destination labeled value
+
+
+
+
+ The number of labels -1
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+ Filter a image with the specified label value.
+
+ Source image.
+ Destination image.
+ Label value.
+ Filtered image.
+
+
+
+ Filter a image with the specified label values.
+
+ Source image.
+ Destination image.
+ Label values.
+ Filtered image.
+
+
+
+ Filter a image with the specified blob object.
+
+ Source image.
+ Destination image.
+ Blob value.
+ Filtered image.
+
+
+
+ Filter a image with the specified blob objects.
+
+ Source image.
+ Destination image.
+ Blob values.
+ Filtered image.
+
+
+
+ Draws all blobs to the specified image.
+
+ The target image to be drawn.
+
+
+
+ Find the largest blob.
+
+ the largest blob
+
+
+
+ 指定したラベル値のところのみを非0で残したマスク画像を返す
+
+
+
+
+
+
+ One blob
+
+
+
+
+ Label value
+
+
+
+
+ Floating point centroid (x,y)
+
+
+
+
+ The leftmost (x) coordinate which is the inclusive start of the bounding box in the horizontal direction.
+
+
+
+
+ The topmost (y) coordinate which is the inclusive start of the bounding box in the vertical direction.
+
+
+
+
+ The horizontal size of the bounding box.
+
+
+
+
+ The vertical size of the bounding box.
+
+
+
+
+ The bounding box.
+
+
+
+
+ The total area (in pixels) of the connected component.
+
+
+
+
+ Adaptive thresholding algorithms
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L333
+
+
+
+
+ It is a mean of block_size × block_size pixel neighborhood, subtracted by param1.
+
+
+
+
+ it is a weighted sum (Gaussian) of block_size × block_size pixel neighborhood, subtracted by param1.
+
+
+
+
+ Color conversion operation for cv::cvtColor
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L528
+
+
+
+
+ GNU Octave/MATLAB equivalent colormaps
+
+
+
+
+ connected components algorithm
+
+
+
+
+ SAUF algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity
+
+
+
+
+ BBDT algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity
+
+
+
+
+ BBDT algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity
+
+
+
+
+ Spaghetti @cite Bolelli2019 algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity.
+
+
+
+
+ Same as CCL_WU. It is preferable to use the flag with the name of the algorithm (CCL_SAUF) rather than the one with the name of the first author (CCL_WU).
+
+
+
+
+ Same as CCL_GRANA. It is preferable to use the flag with the name of the algorithm (CCL_BBDT) rather than the one with the name of the first author (CCL_GRANA).
+
+
+
+
+ Same as CCL_BOLELLI. It is preferable to use the flag with the name of the algorithm (CCL_SPAGHETTI) rather than the one with the name of the first author (CCL_BOLELLI).
+
+
+
+
+ components algorithm output formats
+
+
+
+
+ The leftmost (x) coordinate which is the inclusive start of the bounding
+ box in the horizontal direction.
+
+
+
+
+ The topmost (y) coordinate which is the inclusive start of the bounding
+ box in the vertical direction.
+
+
+
+
+ The horizontal size of the bounding box
+
+
+
+
+ The vertical size of the bounding box
+
+
+
+
+ The total area (in pixels) of the connected component
+
+
+
+
+ Approximation method (for all the modes, except CV_RETR_RUNS, which uses built-in approximation).
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L431
+
+
+
+
+ CHAIN_APPROX_NONE - translate all the points from the chain code into points;
+
+
+
+
+ CHAIN_APPROX_SIMPLE - compress horizontal, vertical, and diagonal segments, that is, the function leaves only their ending points;
+
+
+
+
+ CHAIN_APPROX_TC89_L1 - apply one of the flavors of Teh-Chin chain approximation algorithm.
+
+
+
+
+ CHAIN_APPROX_TC89_KCOS - apply one of the flavors of Teh-Chin chain approximation algorithm.
+
+
+
+
+ distanceTransform algorithm flags
+
+
+
+
+ each connected component of zeros in src
+ (as well as all the non-zero pixels closest to the connected component)
+ will be assigned the same label
+
+
+
+
+ each zero pixel (and all the non-zero pixels closest to it) gets its own label.
+
+
+
+
+ Mask size for distance transform
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L312
+
+
+
+
+ 3
+
+
+
+
+ 5
+
+
+
+
+
+
+
+
+
+ Type of distance for cvDistTransform
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L300
+
+
+
+
+ User defined distance [CV_DIST_USER]
+
+
+
+
+ distance = |x1-x2| + |y1-y2| [CV_DIST_L1]
+
+
+
+
+ the simple euclidean distance [CV_DIST_L2]
+
+
+
+
+ distance = max(|x1-x2|,|y1-y2|) [CV_DIST_C]
+
+
+
+
+ L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) [CV_DIST_L12]
+
+
+
+
+ distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 [CV_DIST_FAIR]
+
+
+
+
+ distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 [CV_DIST_WELSCH]
+
+
+
+
+ distance = |x|<c ? x^2/2 : c(|x|-c/2), c=1.345 [CV_DIST_HUBER]
+
+
+
+
+ Specifies how to flip the array
+
+
+
+
+ means flipping around x-axis
+
+
+
+
+ means flipping around y-axis
+
+
+
+
+ means flipping around both axises
+
+
+
+
+ floodFill Operation flags. Lower bits contain a connectivity value, 4 (default) or 8, used within the function. Connectivity determines which neighbors of a pixel are considered. Upper bits can be 0 or a combination of the following flags:
+
+
+
+
+ 4-connected line.
+ [= 4]
+
+
+
+
+ 8-connected line.
+ [= 8]
+
+
+
+
+ If set, the difference between the current pixel and seed pixel is considered. Otherwise, the difference between neighbor pixels is considered (that is, the range is floating).
+ [CV_FLOODFILL_FIXED_RANGE]
+
+
+
+
+ If set, the function does not change the image ( newVal is ignored), but fills the mask. The flag can be used for the second variant only.
+ [CV_FLOODFILL_MASK_ONLY]
+
+
+
+
+ class of the pixel in GrabCut algorithm
+
+
+
+
+ an obvious background pixels
+
+
+
+
+ an obvious foreground (object) pixel
+
+
+
+
+ a possible background pixel
+
+
+
+
+ a possible foreground pixel
+
+
+
+
+ GrabCut algorithm flags
+
+
+
+
+ The function initializes the state and the mask using the provided rectangle.
+ After that it runs iterCount iterations of the algorithm.
+
+
+
+
+ The function initializes the state using the provided mask.
+ Note that GC_INIT_WITH_RECT and GC_INIT_WITH_MASK can be combined.
+ Then, all the pixels outside of the ROI are automatically initialized with GC_BGD .
+
+
+
+
+ The value means that the algorithm should just resume.
+
+
+
+
+ Comparison methods for cvCompareHist
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L497
+
+
+
+
+ Correlation [CV_COMP_CORREL]
+
+
+
+
+ Chi-Square [CV_COMP_CHISQR]
+
+
+
+
+ Intersection [CV_COMP_INTERSECT]
+
+
+
+
+ Bhattacharyya distance [CV_COMP_BHATTACHARYYA]
+
+
+
+
+ Synonym for HISTCMP_BHATTACHARYYA
+
+
+
+
+ Alternative Chi-Square
+ \f[d(H_1,H_2) = 2 * \sum _I \frac{\left(H_1(I)-H_2(I)\right)^2}{H_1(I)+H_2(I)}\f]
+ This alternative formula is regularly used for texture comparison. See e.g. @cite Puzicha1997
+
+
+
+
+ Kullback-Leibler divergence
+ \f[d(H_1,H_2) = \sum _I H_1(I) \log \left(\frac{H_1(I)}{H_2(I)}\right)\f]
+
+
+
+
+ Variants of a Hough transform
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L465
+
+
+
+
+ classical or standard Hough transform.
+ Every line is represented by two floating-point numbers \f$(\rho, \theta)\f$ ,
+ where \f$\rho\f$ is a distance between (0,0) point and the line,
+ and \f$\theta\f$ is the angle between x-axis and the normal to the line.
+ Thus, the matrix must be (the created sequence will be) of CV_32FC2 type
+
+
+
+
+ probabilistic Hough transform (more efficient in case if the picture contains
+ a few long linear segments). It returns line segments rather than the whole line.
+ Each segment is represented by starting and ending points, and the matrix must be
+ (the created sequence will be) of the CV_32SC4 type.
+
+
+
+
+ multi-scale variant of the classical Hough transform.
+ The lines are encoded the same way as HOUGH_STANDARD.
+
+
+
+
+ basically *21HT*, described in @cite Yuen90
+
+
+
+
+ variation of HOUGH_GRADIENT to get better accuracy
+
+
+
+
+ Interpolation algorithm
+
+
+
+
+ Nearest-neighbor interpolation,
+
+
+
+
+ Bilinear interpolation (used by default)
+
+
+
+
+ Bicubic interpolation.
+
+
+
+
+ Resampling using pixel area relation. It is the preferred method for image decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method.
+
+
+
+
+ Lanczos interpolation over 8x8 neighborhood
+
+
+
+
+ Bit exact bilinear interpolation
+
+
+
+
+ mask for interpolation codes
+
+
+
+
+ Fill all the destination image pixels. If some of them correspond to outliers in the source image, they are set to fillval.
+
+
+
+
+ Indicates that matrix is inverse transform from destination image to source and,
+ thus, can be used directly for pixel interpolation. Otherwise, the function finds the inverse transform from map_matrix.
+
+
+
+
+ Variants of Line Segment %Detector
+
+
+
+
+ No refinement applied
+
+
+
+
+ Standard refinement is applied. E.g. breaking arches into smaller straighter line approximations.
+
+
+
+
+ Advanced refinement. Number of false alarms is calculated, lines are
+ refined through increase of precision, decrement in size, etc.
+
+
+
+
+ Type of the line
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L808
+
+
+
+
+ 8-connected line.
+
+
+
+
+ 4-connected line.
+
+
+
+
+ Anti-aliased line.
+
+
+
+
+ Possible set of marker types used for the cv::drawMarker function
+
+
+
+
+ A crosshair marker shape
+
+
+
+
+ A 45 degree tilted crosshair marker shape
+
+
+
+
+ A star marker shape, combination of cross and tilted cross
+
+
+
+
+ A diamond marker shape
+
+
+
+
+ A square marker shape
+
+
+
+
+ An upwards pointing triangle marker shape
+
+
+
+
+ A downwards pointing triangle marker shape
+
+
+
+
+ Shape of the structuring element
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L231
+
+
+
+
+ A rectangular element
+
+
+
+
+ A cross-shaped element
+
+
+
+
+ An elliptic element
+
+
+
+
+ Type of morphological operation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an opening operation
+
+
+
+
+ a closing operation
+
+
+
+
+ Morphological gradient
+
+
+
+
+ "Top hat"
+
+
+
+
+ "Black hat"
+
+
+
+
+ "hit and miss"
+
+
+
+
+ PixelConnectivity for LineIterator
+
+
+
+
+ Connectivity 4 (N,S,E,W)
+
+
+
+
+ Connectivity 8 (N,S,E,W,NE,SE,SW,NW)
+
+
+
+
+ types of intersection between rectangles
+
+
+
+
+ No intersection
+
+
+
+
+ There is a partial intersection
+
+
+
+
+ One of the rectangle is fully enclosed in the other
+
+
+
+
+ mode of the contour retrieval algorithm
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L414
+
+
+
+
+ retrieves only the extreme outer contours.
+ It sets `hierarchy[i][2]=hierarchy[i][3]=-1` for all the contours.
+
+
+
+
+ retrieves all of the contours without establishing any hierarchical relationships.
+
+
+
+
+ retrieves all of the contours and organizes them into a two-level hierarchy.
+ At the top level, there are external boundaries of the components.
+ At the second level, there are boundaries of the holes. If there is another
+ contour inside a hole of a connected component, it is still put at the top level.
+
+
+
+
+ retrieves all of the contours and reconstructs a full hierarchy
+ of nested contours.
+
+
+
+
+
+
+
+
+
+ Comparison methods for cv::matchShapes
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L453
+
+
+
+
+ \f[I_1(A,B) = \sum _{i=1...7} \left | \frac{1}{m^A_i} - \frac{1}{m^B_i} \right |\f]
+
+
+
+
+ \f[I_2(A,B) = \sum _{i=1...7} \left | m^A_i - m^B_i \right |\f]
+
+
+
+
+ \f[I_3(A,B) = \max _{i=1...7} \frac{ \left| m^A_i - m^B_i \right| }{ \left| m^A_i \right| }\f]
+
+
+
+
+ Specifies the way the template must be compared with image regions
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/imgproc/include/opencv2/imgproc.hpp#L3672
+
+
+
+
+ \f[R(x,y)= \sum _{x',y'} (T(x',y')-I(x+x',y+y'))^2\f]
+
+
+
+
+ \f[R(x,y)= \frac{\sum_{x',y'} (T(x',y')-I(x+x',y+y'))^2}{\sqrt{\sum_{x',y'}T(x',y')^2 \cdot \sum_{x',y'} I(x+x',y+y')^2}}\f]
+
+
+
+
+ \f[R(x,y)= \sum _{x',y'} (T(x',y') \cdot I(x+x',y+y'))\f]
+
+
+
+
+ \f[R(x,y)= \frac{\sum_{x',y'} (T(x',y') \cdot I(x+x',y+y'))}{\sqrt{\sum_{x',y'}T(x',y')^2 \cdot \sum_{x',y'} I(x+x',y+y')^2}}\f]
+
+
+
+
+ \f[R(x,y)= \sum _{x',y'} (T'(x',y') \cdot I'(x+x',y+y'))\f]
+ where
+ \f[\begin{array}{l} T'(x',y')=T(x',y') - 1/(w \cdot h) \cdot \sum _{x'',y''} T(x'',y'') \\ I'(x+x',y+y')=I(x+x',y+y') - 1/(w \cdot h) \cdot \sum _{x'',y''} I(x+x'',y+y'') \end{array}\f]
+
+
+
+
+ \f[R(x,y)= \frac{ \sum_{x',y'} (T'(x',y') \cdot I'(x+x',y+y')) }{ \sqrt{\sum_{x',y'}T'(x',y')^2 \cdot \sum_{x',y'} I'(x+x',y+y')^2} }\f]
+
+
+
+
+ Thresholding type
+
+
+
+
+ \f[\texttt{dst} (x,y) = \fork{\texttt{maxval}}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{0}{otherwise}\f]
+
+
+
+
+ \f[\texttt{dst} (x,y) = \fork{0}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{maxval}}{otherwise}\f]
+
+
+
+
+ \f[\texttt{dst} (x,y) = \fork{\texttt{threshold}}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{src}(x,y)}{otherwise}\f]
+
+
+
+
+ \f[\texttt{dst} (x,y) = \fork{\texttt{src}(x,y)}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{0}{otherwise}\f]
+
+
+
+
+ \f[\texttt{dst} (x,y) = \fork{0}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{src}(x,y)}{otherwise}\f]
+
+
+
+
+
+
+
+
+
+ flag, use Otsu algorithm to choose the optimal threshold value
+
+
+
+
+ flag, use Triangle algorithm to choose the optimal threshold value
+
+
+
+
+ Specify the polar mapping mode
+
+
+
+
+ Remaps an image to/from polar space.
+
+
+
+
+ Remaps an image to/from semilog-polar space.
+
+
+
+
+ finds arbitrary template in the grayscale image using Generalized Hough Transform
+
+
+
+
+ Canny low threshold.
+
+
+
+
+
+ Canny high threshold.
+
+
+
+
+
+ Minimum distance between the centers of the detected objects.
+
+
+
+
+
+ Inverse ratio of the accumulator resolution to the image resolution.
+
+
+
+
+
+ Maximal size of inner buffers.
+
+
+
+
+
+ set template to search
+
+
+
+
+
+
+ set template to search
+
+
+
+
+
+
+
+
+ find template on image
+
+
+
+
+
+
+
+ find template on image
+
+
+
+
+
+
+
+
+
+ Ballard, D.H. (1981). Generalizing the Hough transform to detect arbitrary shapes.
+ Pattern Recognition 13 (2): 111-122.
+ Detects position only without traslation and rotation
+
+
+
+
+ cv::Ptr<T> object
+
+
+
+
+
+
+
+
+
+ Creates a predefined GeneralizedHoughBallard object
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ R-Table levels.
+
+
+
+
+
+ The accumulator threshold for the template centers at the detection stage.
+ The smaller it is, the more false positions may be detected.
+
+
+
+
+
+ Guil, N., González-Linares, J.M. and Zapata, E.L. (1999).
+ Bidimensional shape detection using an invariant approach.
+ Pattern Recognition 32 (6): 1025-1038.
+ Detects position, translation and rotation
+
+
+
+
+ cv::Ptr<T> object
+
+
+
+
+
+
+
+
+
+ Creates a predefined GeneralizedHoughBallard object
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Angle difference in degrees between two points in feature.
+
+
+
+
+
+ Feature table levels.
+
+
+
+
+
+ Maximal difference between angles that treated as equal.
+
+
+
+
+
+ Minimal rotation angle to detect in degrees.
+
+
+
+
+
+ Maximal rotation angle to detect in degrees.
+
+
+
+
+
+ Angle step in degrees.
+
+
+
+
+
+ Angle votes threshold.
+
+
+
+
+
+ Minimal scale to detect.
+
+
+
+
+
+ Maximal scale to detect.
+
+
+
+
+
+ Scale step.
+
+
+
+
+
+ Scale votes threshold.
+
+
+
+
+
+ Position votes threshold.
+
+
+
+
+
+ Intelligent Scissors image segmentation
+
+ This class is used to find the path (contour) between two points
+ which can be used for image segmentation.
+
+ Usage example:
+ @snippet snippets/imgproc_segmentation.cpp usage_example_intelligent_scissors
+
+ Reference: Intelligent Scissors for Image Composition http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.138.3811&rep=rep1&type=pdf
+ algorithm designed by Eric N. Mortensen and William A. Barrett, Brigham Young University
+ @cite Mortensen95intelligentscissors
+
+
+
+
+ Constructor
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Specify weights of feature functions
+
+ Consider keeping weights normalized (sum of weights equals to 1.0)
+ Discrete dynamic programming (DP) goal is minimization of costs between pixels.
+
+ Specify cost of non-edge pixels (default: 0.43f)
+ Specify cost of gradient direction function (default: 0.43f)
+ Specify cost of gradient magnitude function (default: 0.14f)
+
+
+
+
+ Specify gradient magnitude max value threshold
+
+ Zero limit value is used to disable gradient magnitude thresholding (default behavior, as described in original article).
+ Otherwize pixels with `gradient magnitude >= threshold` have zero cost.
+
+ @note Thresholding should be used for images with irregular regions (to avoid stuck on parameters from high-contract areas, like embedded logos).
+
+ Specify gradient magnitude max value threshold (default: 0, disabled)
+
+
+
+
+ Switch to "Laplacian Zero-Crossing" edge feature extractor and specify its parameters
+
+ This feature extractor is used by default according to article.
+
+ Implementation has additional filtering for regions with low-amplitude noise.
+ This filtering is enabled through parameter of minimal gradient amplitude (use some small value 4, 8, 16).
+
+ @note Current implementation of this feature extractor is based on processing of grayscale images (color image is converted to grayscale image first).
+
+ @note Canny edge detector is a bit slower, but provides better results (especially on color images): use setEdgeFeatureCannyParameters().
+
+ Minimal gradient magnitude value for edge pixels (default: 0, check is disabled)
+
+
+
+
+ Switch edge feature extractor to use Canny edge detector
+ Note: "Laplacian Zero-Crossing" feature extractor is used by default (following to original article)
+
+
+
+
+
+
+
+
+
+ Specify input image and extract image features
+
+ input image. Type is #CV_8UC1 / #CV_8UC3
+
+
+
+
+ Specify custom features of imput image
+ Customized advanced variant of applyImage() call.
+
+ Specify cost of non-edge pixels. Type is CV_8UC1. Expected values are `{0, 1}`.
+ Specify gradient direction feature. Type is CV_32FC2. Values are expected to be normalized: `x^2 + y^2 == 1`
+ Specify cost of gradient magnitude function: Type is CV_32FC1. Values should be in range `[0, 1]`.
+ Optional parameter. Must be specified if subset of features is specified (non-specified features are calculated internally)
+
+
+
+
+ Prepares a map of optimal paths for the given source point on the image
+ Note: applyImage() / applyImageFeatures() must be called before this call
+
+ The source point used to find the paths
+
+
+
+ Extracts optimal contour for the given target point on the image
+ Note: buildMap() must be called before this call
+
+ The target point
+ contour The list of pixels which contains optimal path between the source and the target points of the image.
+ Type is CV_32SC2 (compatible with `std::vector<Point>`)
+ Flag to indicate reverse order of retrived pixels (use "true" value to fetch points from the target to the source point)
+
+
+
+ Contrast Limited Adaptive Histogram Equalization
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+ Initializes the iterator
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LineIterator pixel data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Line segment detector class
+
+
+
+
+ cv::Ptr<LineSegmentDetector>
+
+
+
+
+
+
+
+
+
+ Creates a smart pointer to a LineSegmentDetector object and initializes it.
+
+ The way found lines will be refined, see cv::LineSegmentDetectorModes
+ The scale of the image that will be used to find the lines. Range (0..1].
+ Sigma for Gaussian filter. It is computed as sigma = _sigma_scale/_scale.
+ Bound to the quantization error on the gradient norm.
+ Gradient angle tolerance in degrees.
+ Detection threshold: -log10(NFA) \> log_eps.
+ Used only when advancent refinement is chosen.
+ Minimal density of aligned region points in the enclosing rectangle.
+ Number of bins in pseudo-ordering of gradient modulus.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Finds lines in the input image.
+ This is the output of the default parameters of the algorithm on the above shown image.
+
+ A grayscale (CV_8UC1) input image.
+ A vector of Vec4i or Vec4f elements specifying the beginning and ending point of a line.
+ Where Vec4i/Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.
+ Vector of widths of the regions, where the lines are found. E.g. Width of line.
+ Vector of precisions with which the lines are found.
+ Vector containing number of false alarms in the line region,
+ with precision of 10%. The bigger the value, logarithmically better the detection.
+
+
+
+ Finds lines in the input image.
+ This is the output of the default parameters of the algorithm on the above shown image.
+
+ A grayscale (CV_8UC1) input image.
+ A vector of Vec4i or Vec4f elements specifying the beginning and ending point of a line.
+ Where Vec4i/Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly oriented depending on the gradient.
+ Vector of widths of the regions, where the lines are found. E.g. Width of line.
+ Vector of precisions with which the lines are found.
+ Vector containing number of false alarms in the line region,
+ with precision of 10%. The bigger the value, logarithmically better the detection.
+
+
+
+ Draws the line segments on a given image.
+
+ The image, where the liens will be drawn.
+ Should be bigger or equal to the image, where the lines were found.
+ A vector of the lines that needed to be drawn.
+
+
+
+ Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels.
+
+ The size of the image, where lines1 and lines2 were found.
+ The first group of lines that needs to be drawn. It is visualized in blue color.
+ The second group of lines. They visualized in red color.
+ Optional image, where the lines will be drawn.
+ The image should be color(3-channel) in order for lines1 and lines2 to be drawn
+ in the above mentioned colors.
+
+
+
+
+ circle structure retrieved from cvHoughCircle
+
+
+
+
+ Center coordinate of the circle
+
+
+
+
+ Radius
+
+
+
+
+ Constructor
+
+ center
+ radius
+
+
+
+ Specifies whether this object contains the same members as the specified Object.
+
+ The Object to test.
+ This method returns true if obj is the same type as this object and has the same members as this object.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+ Specifies whether this object contains the same members as the specified Object.
+
+ The Object to test.
+ This method returns true if obj is the same type as this object and has the same members as this object.
+
+
+
+ Returns a hash code for this object.
+
+ An integer value that specifies a hash value for this object.
+
+
+
+ Converts this object to a human readable string.
+
+ A string that represents this object.
+
+
+
+ Information about the image topology for cv::findContours
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2-dimentional line vector
+
+
+
+
+ The X component of the normalized vector collinear to the line
+
+
+
+
+ The Y component of the normalized vector collinear to the line
+
+
+
+
+ X-coordinate of some point on the line
+
+
+
+
+ Y-coordinate of some point on the line
+
+
+
+
+ Initializes this object
+
+ The X component of the normalized vector collinear to the line
+ The Y component of the normalized vector collinear to the line
+ Z-coordinate of some point on the line
+ Z-coordinate of some point on the line
+
+
+
+ Initializes by cvFitLine output
+
+ The returned value from cvFitLineparam>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the distance between this line and the specified point
+
+
+
+
+
+ Returns the distance between this line and the specified point
+
+
+
+
+
+ Returns the distance between this line and the specified point
+
+
+
+
+
+ Returns the distance between this line and the specified point
+
+
+
+
+
+
+ Fits this line to the specified size (for drawing)
+
+ Width of fit size
+ Height of fit size
+ 1st edge point of fitted line
+ 2nd edge point of fitted line
+
+
+
+ A 3-dimensional line object
+
+
+
+
+ The X component of the normalized vector collinear to the line
+
+
+
+
+ The Y component of the normalized vector collinear to the line
+
+
+
+
+ The Z component of the normalized vector collinear to the line
+
+
+
+
+ X-coordinate of some point on the line
+
+
+
+
+ Y-coordinate of some point on the line
+
+
+
+
+ Z-coordinate of some point on the line
+
+
+
+
+ Initializes this object
+
+ The X component of the normalized vector collinear to the line
+ The Y component of the normalized vector collinear to the line
+ The Z component of the normalized vector collinear to the line
+ Z-coordinate of some point on the line
+ Z-coordinate of some point on the line
+ Z-coordinate of some point on the line
+
+
+
+ Initializes by cvFitLine output
+
+ The returned value from cvFitLineparam>
+
+
+
+ Perpendicular foot
+
+
+
+
+
+ Perpendicular foot
+
+
+
+
+
+ Perpendicular foot
+
+
+
+
+
+
+
+ Returns the distance between this line and the specified point
+
+
+
+
+
+ Returns the distance between this line and the specified point
+
+
+
+
+
+ Returns the distance between this line and the specified point
+
+
+
+
+
+
+
+ ベクトルの外積
+
+
+
+
+
+
+
+ ベクトルの長さ(原点からの距離)
+
+
+
+
+
+
+ 2点間(2ベクトル)の距離
+
+
+
+
+
+
+
+ Line segment structure retrieved from cvHoughLines2
+
+
+
+
+ 1st Point
+
+
+
+
+ 2nd Point
+
+
+
+
+ Constructor
+
+ 1st Point
+ 2nd Point
+
+
+
+ Specifies whether this object contains the same members as the specified Object.
+
+ The Object to test.
+ This method returns true if obj is the same type as this object and has the same members as this object.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+ Specifies whether this object contains the same members as the specified Object.
+
+ The Object to test.
+ This method returns true if obj is the same type as this object and has the same members as this object.
+
+
+
+ Returns a hash code for this object.
+
+ An integer value that specifies a hash value for this object.
+
+
+
+ Converts this object to a human readable string.
+
+ A string that represents this object.
+
+
+
+ Calculates a intersection of the specified two lines
+
+
+
+
+
+
+
+ Calculates a intersection of the specified two lines
+
+
+
+
+
+
+ Calculates a intersection of the specified two segments
+
+
+
+
+
+
+
+ Calculates a intersection of the specified two segments
+
+
+
+
+
+
+ Returns a boolean value indicating whether the specified two segments intersect.
+
+
+
+
+
+
+
+ Returns a boolean value indicating whether the specified two segments intersect.
+
+
+
+
+
+
+ Returns a boolean value indicating whether a line and a segment intersect.
+
+ Line
+ Segment
+
+
+
+
+ Calculates a intersection of a line and a segment
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Translates the Point by the specified amount.
+
+ The amount to offset the x-coordinate.
+ The amount to offset the y-coordinate.
+
+
+
+
+ Translates the Point by the specified amount.
+
+ The Point used offset this CvPoint.
+
+
+
+
+ Polar line segment retrieved from cvHoughLines2
+
+
+
+
+ Length of the line
+
+
+
+
+ Angle of the line (radian)
+
+
+
+
+ Constructor
+
+ Length of the line
+ Angle of the line (radian)
+
+
+
+ Specifies whether this object contains the same members as the specified Object.
+
+ The Object to test.
+ This method returns true if obj is the same type as this object and has the same members as this object.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are equal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are equal; otherwise, false.
+
+
+
+ Compares two CvPoint objects. The result specifies whether the members of each object are unequal.
+
+ A Point to compare.
+ A Point to compare.
+ This operator returns true if the members of left and right are unequal; otherwise, false.
+
+
+
+ Specifies whether this object contains the same members as the specified Object.
+
+ The Object to test.
+ This method returns true if obj is the same type as this object and has the same members as this object.
+
+
+
+ Returns a hash code for this object.
+
+ An integer value that specifies a hash value for this object.
+
+
+
+ Converts this object to a human readable string.
+
+ A string that represents this object.
+
+
+
+ Calculates a intersection of the specified two lines
+
+
+
+
+
+
+
+ Calculates a intersection of the specified two lines
+
+
+
+
+
+
+ Convert To LineSegmentPoint
+
+
+
+
+
+
+ Converts to a line segment with the specified x coordinates at both ends
+
+
+
+
+
+
+
+ Converts to a line segment with the specified y coordinates at both ends
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Raster image moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ spatial moments
+
+
+
+
+ central moments
+
+
+
+
+ central moments
+
+
+
+
+ central moments
+
+
+
+
+ central moments
+
+
+
+
+ central moments
+
+
+
+
+ central moments
+
+
+
+
+ central moments
+
+
+
+
+ central normalized moments
+
+
+
+
+ central normalized moments
+
+
+
+
+ central normalized moments
+
+
+
+
+ central normalized moments
+
+
+
+
+ central normalized moments
+
+
+
+
+ central normalized moments
+
+
+
+
+ central normalized moments
+
+
+
+
+ Default constructor.
+ All moment values are set to 0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ A raster image (single-channel, 8-bit or floating-point
+ 2D array) or an array ( 1xN or Nx1 ) of 2D points ( Point or Point2f )
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ A raster image (8-bit) 2D array
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ A raster image (floating-point) 2D array
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ Array of 2D points
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ Array of 2D points
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+ Calculates all of the moments
+ up to the third order of a polygon or rasterized shape.
+
+ A raster image (single-channel, 8-bit or floating-point
+ 2D array) or an array ( 1xN or Nx1 ) of 2D points ( Point or Point2f )
+ If it is true, then all the non-zero image pixels are treated as 1’s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ computes 7 Hu invariants from the moments
+
+
+
+
+
+ Planar Subdivision
+
+
+
+
+ Creates an empty Subdiv2D object.
+ To create a new empty Delaunay subdivision you need to use the #initDelaunay function.
+
+
+
+
+ Creates an empty Subdiv2D object.
+
+ Rectangle that includes all of the 2D points that are to be added to the subdivision.
+
+
+
+ Clean up any resources being used.
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Creates a new empty Delaunay subdivision
+
+ Rectangle that includes all of the 2D points that are to be added to the subdivision.
+
+
+
+ Insert a single point into a Delaunay triangulation.
+
+ Point to insert.
+
+
+
+
+ Insert multiple points into a Delaunay triangulation.
+
+ Points to insert.
+
+
+
+ Returns the location of a point within a Delaunay triangulation.
+
+ Point to locate.
+ Output edge that the point belongs to or is located to the right of it.
+ Optional output vertex the input point coincides with.
+ an integer which specify one of the following five cases for point location:
+ - The point falls into some facet. The function returns #PTLOC_INSIDE and edge will contain one of edges of the facet.
+ - The point falls onto the edge. The function returns #PTLOC_ON_EDGE and edge will contain this edge.
+ - The point coincides with one of the subdivision vertices. The function returns #PTLOC_VERTEX and vertex will contain a pointer to the vertex.
+ - The point is outside the subdivision reference rectangle. The function returns #PTLOC_OUTSIDE_RECT and no pointers are filled.
+ - One of input arguments is invalid. A runtime error is raised or, if silent or "parent" error processing mode is selected, #PTLOC_ERROR is returned.
+
+
+
+ Finds the subdivision vertex closest to the given point.
+
+ Input point.
+ Output subdivision vertex point.
+ vertex ID.
+
+
+
+ Returns a list of all edges.
+
+ Output vector.
+
+
+
+ Returns a list of the leading edge ID connected to each triangle.
+ The function gives one edge ID for each triangle.
+
+ Output vector.
+
+
+
+ Returns a list of all triangles.
+
+ Output vector.
+
+
+
+ Returns a list of all Voronoi facets.
+
+ Vector of vertices IDs to consider. For all vertices you can pass empty vector.
+ Output vector of the Voronoi facets.
+ Output vector of the Voronoi facets center points.
+
+
+
+ Returns vertex location from vertex ID.
+
+ vertex ID.
+ The first edge ID which is connected to the vertex.
+ vertex (x,y)
+
+
+
+ Returns one of the edges related to the given edge.
+
+ Subdivision edge ID.
+ Parameter specifying which of the related edges to return.
+ The following values are possible:
+ - NEXT_AROUND_ORG next around the edge origin ( eOnext on the picture below if e is the input edge)
+ - NEXT_AROUND_DST next around the edge vertex ( eDnext )
+ - PREV_AROUND_ORG previous around the edge origin (reversed eRnext )
+ - PREV_AROUND_DST previous around the edge destination (reversed eLnext )
+ - NEXT_AROUND_LEFT next around the left facet ( eLnext )
+ - NEXT_AROUND_RIGHT next around the right facet ( eRnext )
+ - PREV_AROUND_LEFT previous around the left facet (reversed eOnext )
+ - PREV_AROUND_RIGHT previous around the right facet (reversed eDnext )
+
+
+
+
+ Subdivision edge ID.
+
+ Subdivision edge ID.
+ an integer which is next edge ID around the edge origin: eOnext on the picture above if e is the input edge).
+
+
+
+ Returns another edge of the same quad-edge.
+
+ Subdivision edge ID.
+ Parameter specifying which of the edges of the same quad-edge as the input
+ one to return. The following values are possible:
+ - 0 - the input edge ( e on the picture below if e is the input edge)
+ - 1 - the rotated edge ( eRot )
+ - 2 - the reversed edge (reversed e (in green))
+ - 3 - the reversed rotated edge (reversed eRot (in green))
+ one of the edges ID of the same quad-edge as the input edge.
+
+
+
+
+
+
+
+
+
+
+ Returns the edge origin.
+
+ Subdivision edge ID.
+ Output vertex location.
+ vertex ID.
+
+
+
+ Returns the edge destination.
+
+ Subdivision edge ID.
+ Output vertex location.
+ vertex ID.
+
+
+
+ Parameter for Subdiv2D.GetEdge() specifying which of the related edges to return.
+
+
+
+
+ next around the edge origin ( eOnext on the picture below if e is the input edge)
+
+
+
+
+ next around the edge vertex ( eDnext )
+
+
+
+
+ previous around the edge origin (reversed eRnext )
+
+
+
+
+ previous around the edge destination (reversed eLnext )
+
+
+
+
+ next around the left facet ( eLnext )
+
+
+
+
+ next around the right facet ( eRnext )
+
+
+
+
+ previous around the left facet (reversed eOnext )
+
+
+
+
+ previous around the right facet (reversed eDnext )
+
+
+
+
+
+ Computes average hash value of the input image.
+ This is a fast image hashing algorithm, but only work on simple case. For more details,
+ please refer to @cite lookslikeit
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+ Image hash based on block mean.
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+
+
+
+
+
+ Create BlockMeanHash object
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Image hash based on color moments.
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+ Computes color moment hash of the input, the algorithm is come from the paper "Perceptual Hashing for Color Images Using Invariant Moments"
+
+ input image want to compute hash value, type should be CV_8UC4, CV_8UC3 or CV_8UC1.
+ 42 hash values with type CV_64F(double)
+
+
+
+
+
+
+
+
+
+ use fewer block and generate 16*16/8 uchar hash value
+
+
+
+
+ use block blocks(step sizes/2), generate 31*31/8 + 1 uchar hash value
+
+
+
+
+
+ The base class for image hash algorithms
+
+
+
+
+ Computes hash of the input image
+
+ input image want to compute hash value
+ hash of the image
+
+
+
+
+ Compare the hash value between inOne and inTwo
+
+ Hash value one
+ Hash value two
+ value indicate similarity between inOne and inTwo, the meaning of the value vary from algorithms to algorithms
+
+
+
+
+ Marr-Hildreth Operator Based Hash, slowest but more discriminative.
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+
+
+
+
+
+ Create BlockMeanHash object
+
+ int scale factor for marr wavelet (default=2).
+ int level of scale factor (default = 1)
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+ int scale factor for marr wavelet (default=2).
+ int level of scale factor (default = 1)
+
+
+
+ int scale factor for marr wavelet (default=2).
+
+
+
+
+ int level of scale factor (default = 1)
+
+
+
+
+
+ Computes average hash value of the input image
+
+ input image want to compute hash value, type should be CV_8UC4, CV_8UC3, CV_8UC1.
+ Hash value of input, it will contain 16 hex decimal number, return type is CV_8U
+
+
+
+
+
+ pHash: Slower than average_hash, but tolerant of minor modifications.
+ This algorithm can combat more variation than averageHash, for more details please refer to @cite lookslikeit
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+ Computes pHash value of the input image
+
+ input image want to compute hash value, type should be CV_8UC4, CV_8UC3, CV_8UC1.
+ Hash value of input, it will contain 8 uchar value
+
+
+
+
+
+ Image hash based on Radon transform.
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+
+
+
+
+
+ Create BlockMeanHash object
+
+ Gaussian kernel standard deviation
+ The number of angles to consider
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Gaussian kernel standard deviation
+
+
+
+
+ The number of angles to consider
+
+
+
+
+
+ Computes average hash value of the input image
+
+ input image want to compute hash value, type should be CV_8UC4, CV_8UC3, CV_8UC1.
+ Hash value of input
+
+
+
+
+ A class to represent a line
+
+ As aformentioned, it is been necessary to design a class that fully stores the information needed to
+ characterize completely a line and plot it on image it was extracted from, when required.
+
+ *KeyLine* class has been created for such goal; it is mainly inspired to Feature2d's KeyPoint class,
+ since KeyLine shares some of* KeyPoint*'s fields, even if a part of them assumes a different
+ meaning, when speaking about lines.In particular:
+
+ - the* class_id* field is used to gather lines extracted from different octaves which refer to
+ same line inside original image (such lines and the one they represent in original image share
+ the same* class_id* value)
+ - the* angle* field represents line's slope with respect to (positive) X axis
+ - the* pt* field represents line's midpoint
+ - the* response* field is computed as the ratio between the line's length and maximum between
+ image's width and height
+ - the* size* field is the area of the smallest rectangle containing line
+
+ Apart from fields inspired to KeyPoint class, KeyLines stores information about extremes of line in
+ original image and in octave it was extracted from, about line's length and number of pixels it
+ covers.
+
+
+
+
+ orientation of the line
+
+
+
+
+ object ID, that can be used to cluster keylines by the line they represent
+
+
+
+
+ octave (pyramid layer), from which the keyline has been extracted
+
+
+
+
+ coordinates of the middlepoint
+
+
+
+
+ the response, by which the strongest keylines have been selected.
+ It's represented by the ratio between line's length and maximum between
+ image's width and height
+
+
+
+
+ minimum area containing line
+
+
+
+
+ lines' extremes in original image
+
+
+
+
+ lines' extremes in original image
+
+
+
+
+ lines' extremes in original image
+
+
+
+
+ lines' extremes in original image
+
+
+
+
+ line's extremes in image it was extracted from
+
+
+
+
+ line's extremes in image it was extracted from
+
+
+
+
+ line's extremes in image it was extracted from
+
+
+
+
+ line's extremes in image it was extracted from
+
+
+
+
+ the length of line
+
+
+
+
+ number of pixels covered by the line
+
+
+
+
+ Returns the start point of the line in the original image
+
+
+
+
+ Returns the end point of the line in the original image
+
+
+
+
+ Returns the start point of the line in the octave it was extracted from
+
+
+
+
+ Returns the end point of the line in the octave it was extracted from
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Artificial Neural Networks - Multi-Layer Perceptrons.
+
+
+
+
+ Creates instance by raw pointer cv::ml::ANN_MLP*
+
+
+
+
+ Creates the empty model.
+
+
+
+
+
+ Loads and creates a serialized ANN from a file.
+ Use ANN::save to serialize and store an ANN to disk.
+ Load the ANN from this file again, by calling this function with the path to the file.
+
+ path to serialized ANN
+
+
+
+
+ Loads algorithm from a String.
+
+ he string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Termination criteria of the training algorithm.
+
+
+
+
+ Strength of the weight gradient term.
+ The recommended value is about 0.1. Default value is 0.1.
+
+
+
+
+ Strength of the momentum term (the difference between weights on the 2 previous iterations).
+ This parameter provides some inertia to smooth the random fluctuations of the weights.
+ It can vary from 0 (the feature is disabled) to 1 and beyond. The value 0.1 or
+ so is good enough. Default value is 0.1.
+
+
+
+
+ Initial value Delta_0 of update-values Delta_{ij}. Default value is 0.1.
+
+
+
+
+ Increase factor eta^+.
+ It must be >1. Default value is 1.2.
+
+
+
+
+ Decrease factor eta^-.
+ It must be \>1. Default value is 0.5.
+
+
+
+
+ Update-values lower limit Delta_{min}.
+ It must be positive. Default value is FLT_EPSILON.
+
+
+
+
+ Update-values upper limit Delta_{max}.
+ It must be >1. Default value is 50.
+
+
+
+
+ Sets training method and common parameters.
+
+ Default value is ANN_MLP::RPROP. See ANN_MLP::TrainingMethods.
+ passed to setRpropDW0 for ANN_MLP::RPROP and to setBackpropWeightScale for ANN_MLP::BACKPROP and to initialT for ANN_MLP::ANNEAL.
+ passed to setRpropDWMin for ANN_MLP::RPROP and to setBackpropMomentumScale for ANN_MLP::BACKPROP and to finalT for ANN_MLP::ANNEAL.
+
+
+
+ Returns current training method
+
+
+
+
+
+ Initialize the activation function for each neuron.
+ Currently the default and the only fully supported activation function is ANN_MLP::SIGMOID_SYM.
+
+ The type of activation function. See ANN_MLP::ActivationFunctions.
+ The first parameter of the activation function, \f$\alpha\f$. Default value is 0.
+ The second parameter of the activation function, \f$\beta\f$. Default value is 0.
+
+
+
+ Integer vector specifying the number of neurons in each layer including the input and output layers.
+ The very first element specifies the number of elements in the input layer.
+ The last element - number of elements in the output layer.Default value is empty Mat.
+
+
+
+
+
+ Integer vector specifying the number of neurons in each layer including the input and output layers.
+ The very first element specifies the number of elements in the input layer.
+ The last element - number of elements in the output layer.
+
+
+
+
+
+ possible activation functions
+
+
+
+
+ Identity function: $f(x)=x
+
+
+
+
+ Symmetrical sigmoid: f(x)=\beta*(1-e^{-\alpha x})/(1+e^{-\alpha x}
+
+
+
+
+ Gaussian function: f(x)=\beta e^{-\alpha x*x}
+
+
+
+
+ Train options
+
+
+
+
+ Update the network weights, rather than compute them from scratch.
+ In the latter case the weights are initialized using the Nguyen-Widrow algorithm.
+
+
+
+
+ Do not normalize the input vectors.
+ If this flag is not set, the training algorithm normalizes each input feature
+ independently, shifting its mean value to 0 and making the standard deviation
+ equal to 1. If the network is assumed to be updated frequently, the new
+ training data could be much different from original one. In this case,
+ you should take care of proper normalization.
+
+
+
+
+ Do not normalize the output vectors. If the flag is not set,
+ the training algorithm normalizes each output feature independently,
+ by transforming it to the certain range depending on the used activation function.
+
+
+
+
+ Available training methods
+
+
+
+
+ The back-propagation algorithm.
+
+
+
+
+ The RPROP algorithm. See @cite RPROP93 for details.
+
+
+
+
+ Boosted tree classifier derived from DTrees
+
+
+
+
+ Creates instance by raw pointer cv::ml::Boost*
+
+
+
+
+ Creates the empty model.
+
+
+
+
+
+ Loads and creates a serialized model from a file.
+
+
+
+
+
+
+ Loads algorithm from a String.
+
+ he string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Type of the boosting algorithm.
+ See Boost::Types. Default value is Boost::REAL.
+
+
+
+
+ The number of weak classifiers.
+ Default value is 100.
+
+
+
+
+ A threshold between 0 and 1 used to save computational time.
+ Samples with summary weight \f$\leq 1 - weight_trim_rate
+ do not participate in the *next* iteration of training.
+ Set this parameter to 0 to turn off this functionality. Default value is 0.95.
+
+
+
+
+ Boosting type.
+ Gentle AdaBoost and Real AdaBoost are often the preferable choices.
+
+
+
+
+ Discrete AdaBoost.
+
+
+
+
+ Real AdaBoost. It is a technique that utilizes confidence-rated predictions
+ and works well with categorical data.
+
+
+
+
+ LogitBoost. It can produce good regression fits.
+
+
+
+
+ Gentle AdaBoost. It puts less weight on outlier data points and for that
+ reason is often good with regression data.
+
+
+
+
+ Decision tree
+
+
+
+
+
+
+
+
+
+ Creates instance by raw pointer cv::ml::SVM*
+
+
+
+
+ Creates the empty model.
+
+
+
+
+
+ Loads and creates a serialized model from a file.
+
+
+
+
+
+
+ Loads algorithm from a String.
+
+ he string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Cluster possible values of a categorical variable into
+ K < =maxCategories clusters to find a suboptimal split.
+
+
+
+
+ The maximum possible depth of the tree.
+
+
+
+
+ If the number of samples in a node is less than this parameter then the
+ node will not be split. Default value is 10.
+
+
+
+
+ If CVFolds \> 1 then algorithms prunes the built decision tree using K-fold
+ cross-validation procedure where K is equal to CVFolds. Default value is 10.
+
+
+
+
+ If true then surrogate splits will be built.
+ These splits allow to work with missing data and compute variable
+ importance correctly. Default value is false.
+
+
+
+
+ If true then a pruning will be harsher.
+ This will make a tree more compact and more resistant to the training
+ data noise but a bit less accurate. Default value is true.
+
+
+
+
+ If true then pruned branches are physically removed from the tree.
+ Otherwise they are retained and it is possible to get results from the
+ original unpruned (or pruned less aggressively) tree. Default value is true.
+
+
+
+
+ Termination criteria for regression trees.
+ If all absolute differences between an estimated value in a node and
+ values of train samples in this node are less than this parameter
+ then the node will not be split further. Default value is 0.01f.
+
+
+
+
+ The array of a priori class probabilities, sorted by the class label value.
+
+
+
+
+ Returns indices of root nodes
+
+
+
+
+
+ Returns all the nodes.
+ all the node indices are indices in the returned vector
+
+
+
+
+ Returns all the splits.
+ all the split indices are indices in the returned vector
+
+
+
+
+
+ Returns all the bitsets for categorical splits.
+ Split::subsetOfs is an offset in the returned vector
+
+
+
+
+
+ The class represents a decision tree node.
+
+
+
+
+ Value at the node: a class label in case of classification or estimated
+ function value in case of regression.
+
+
+
+
+ Class index normalized to 0..class_count-1 range and assigned to the
+ node. It is used internally in classification trees and tree ensembles.
+
+
+
+
+ Index of the parent node
+
+
+
+
+ Index of the left child node
+
+
+
+
+ Index of right child node
+
+
+
+
+ Default direction where to go (-1: left or +1: right). It helps in the
+ case of missing values.
+
+
+
+
+ Index of the first split
+
+
+
+
+ The class represents split in a decision tree.
+
+
+
+
+ Index of variable on which the split is created.
+
+
+
+
+ If not 0, then the inverse split rule is used (i.e. left and right
+ branches are exchanged in the rule expressions below).
+
+
+
+
+ The split quality, a positive number. It is used to choose the best split.
+
+
+
+
+ Index of the next split in the list of splits for the node
+
+
+
+
+ The threshold value in case of split on an ordered variable.
+
+
+
+
+ Offset of the bitset used by the split on a categorical variable.
+
+
+
+
+ Sample types
+
+
+
+
+ each training sample is a row of samples
+
+
+
+
+ each training sample occupies a column of samples
+
+
+
+
+ K nearest neighbors classifier
+
+
+
+
+ Creates instance by raw pointer cv::ml::KNearest*
+
+
+
+
+ Creates the empty model
+
+
+
+
+
+ Loads and creates a serialized model from a file.
+
+
+
+
+
+
+ Loads algorithm from a String.
+
+ he string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Default number of neighbors to use in predict method.
+
+
+
+
+ Whether classification or regression model should be trained.
+
+
+
+
+ Parameter for KDTree implementation
+
+
+
+
+ Algorithm type, one of KNearest::Types.
+
+
+
+
+ Finds the neighbors and predicts responses for input vectors.
+
+ Input samples stored by rows.
+ It is a single-precision floating-point matrix of `[number_of_samples] * k` size.
+ Number of used nearest neighbors. Should be greater than 1.
+ Vector with results of prediction (regression or classification) for each
+ input sample. It is a single-precision floating-point vector with `[number_of_samples]` elements.
+ neighborResponses Optional output values for corresponding neighbors.
+ It is a single-precision floating-point matrix of `[number_of_samples] * k` size.
+ Optional output distances from the input vectors to the corresponding neighbors.
+ It is a single-precision floating-point matrix of `[number_of_samples] * k` size.
+
+
+
+
+ Implementations of KNearest algorithm
+
+
+
+
+ Implements Logistic Regression classifier.
+
+
+
+
+ Creates instance by raw pointer cv::ml::LogisticRegression*
+
+
+
+
+ Creates the empty model.
+
+
+
+
+
+ Loads and creates a serialized model from a file.
+
+
+
+
+
+
+ Loads algorithm from a String.
+
+ he string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Learning rate
+
+
+
+
+ Number of iterations.
+
+
+
+
+ Kind of regularization to be applied. See LogisticRegression::RegKinds.
+
+
+
+
+ Kind of training method used. See LogisticRegression::Methods.
+
+
+
+
+ Specifies the number of training samples taken in each step of Mini-Batch Gradient.
+ Descent. Will only be used if using LogisticRegression::MINI_BATCH training algorithm.
+ It has to take values less than the total number of training samples.
+
+
+
+
+ Termination criteria of the training algorithm.
+
+
+
+
+ Predicts responses for input samples and returns a float type.
+
+ The input data for the prediction algorithm. Matrix [m x n],
+ where each row contains variables (features) of one object being classified.
+ Should have data type CV_32F.
+ Predicted labels as a column matrix of type CV_32S.
+ Not used.
+
+
+
+
+ This function returns the trained parameters arranged across rows.
+ For a two class classification problem, it returns a row matrix.
+ It returns learnt parameters of the Logistic Regression as a matrix of type CV_32F.
+
+
+
+
+
+ Regularization kinds
+
+
+
+
+ Regularization disabled
+
+
+
+
+ L1 norm
+
+
+
+
+ L2 norm
+
+
+
+
+ Training methods
+
+
+
+
+
+
+
+
+
+ Set MiniBatchSize to a positive integer when using this method.
+
+
+
+
+ Bayes classifier for normally distributed data
+
+
+
+
+ Creates instance by raw pointer cv::ml::NormalBayesClassifier*
+
+
+
+
+ Creates empty model.
+ Use StatModel::train to train the model after creation.
+
+
+
+
+
+ Loads and creates a serialized model from a file.
+
+
+
+
+
+
+ Loads algorithm from a String.
+
+ he string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Predicts the response for sample(s).
+
+
+
+
+
+
+
+ The method estimates the most probable classes for input vectors. Input vectors (one or more)
+ are stored as rows of the matrix inputs. In case of multiple input vectors, there should be one
+ output vector outputs. The predicted class for a single input vector is returned by the method.
+ The vector outputProbs contains the output probabilities corresponding to each element of result.
+
+
+
+
+ The structure represents the logarithmic grid range of statmodel parameters.
+
+
+
+
+ Minimum value of the statmodel parameter. Default value is 0.
+
+
+
+
+ Maximum value of the statmodel parameter. Default value is 0.
+
+
+
+
+ Logarithmic step for iterating the statmodel parameter.
+
+
+ The grid determines the following iteration sequence of the statmodel parameter values:
+ \f[(minVal, minVal*step, minVal*{step}^2, \dots, minVal*{logStep}^n),\f]
+ where \f$n\f$ is the maximal index satisfying
+ \f[\texttt{minVal} * \texttt{logStep} ^n < \texttt{maxVal}\f]
+ The grid is logarithmic, so logStep must always be greater then 1. Default value is 1.
+
+
+
+
+ Constructor with parameters
+
+
+
+
+
+
+
+ The class implements the random forest predictor.
+
+
+
+
+ Creates instance by raw pointer cv::ml::RTrees*
+
+
+
+
+ Creates the empty model.
+
+
+
+
+
+ Loads and creates a serialized model from a file.
+
+
+
+
+
+
+ Loads algorithm from a String.
+
+ he string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ If true then variable importance will be calculated and then
+ it can be retrieved by RTrees::getVarImportance. Default value is false.
+
+
+
+
+ The size of the randomly selected subset of features at each tree node
+ and that are used to find the best split(s).
+
+
+
+
+ The termination criteria that specifies when the training algorithm stops.
+
+
+
+
+ Returns the variable importance array.
+ The method returns the variable importance vector, computed at the training
+ stage when CalculateVarImportance is set to true. If this flag was set to false,
+ the empty matrix is returned.
+
+
+
+
+
+ Base class for statistical models in ML
+
+
+
+
+ Returns the number of variables in training samples
+
+
+
+
+
+
+
+
+
+
+
+ Returns true if the model is trained
+
+
+
+
+
+ Returns true if the model is classifier
+
+
+
+
+
+ Trains the statistical model
+
+ training data that can be loaded from file using TrainData::loadFromCSV
+ or created with TrainData::create.
+ optional flags, depending on the model. Some of the models can be updated with the
+ new training samples, not completely overwritten (such as NormalBayesClassifier or ANN_MLP).
+
+
+
+
+ Trains the statistical model
+
+ training samples
+ SampleTypes value
+ vector of responses associated with the training samples.
+
+
+
+
+ Computes error on the training or test dataset
+
+ the training data
+ if true, the error is computed over the test subset of the data,
+ otherwise it's computed over the training subset of the data. Please note that if you
+ loaded a completely different dataset to evaluate already trained classifier, you will
+ probably want not to set the test subset at all with TrainData::setTrainTestSplitRatio
+ and specify test=false, so that the error is computed for the whole new set. Yes, this
+ sounds a bit confusing.
+ the optional output responses.
+
+
+
+
+ Predicts response(s) for the provided sample(s)
+
+ The input samples, floating-point matrix
+ The optional output matrix of results.
+ The optional flags, model-dependent.
+
+
+
+
+ Predict options
+
+
+
+
+ makes the method return the raw results (the sum), not the class label
+
+
+
+
+ Support Vector Machines
+
+
+
+
+ Creates instance by raw pointer cv::ml::SVM*
+
+
+
+
+ Creates empty model.
+ Use StatModel::Train to train the model.
+ Since %SVM has several parameters, you may want to find the best
+ parameters for your problem, it can be done with SVM::TrainAuto.
+
+
+
+
+
+ Loads and creates a serialized svm from a file.
+ Use SVM::save to serialize and store an SVM to disk.
+ Load the SVM from this file again, by calling this function with the path to the file.
+
+
+
+
+
+
+ Loads algorithm from a String.
+
+ The string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Type of a %SVM formulation.
+ Default value is SVM::C_SVC.
+
+
+
+
+ Parameter gamma of a kernel function.
+ For SVM::POLY, SVM::RBF, SVM::SIGMOID or SVM::CHI2. Default value is 1.
+
+
+
+
+ Parameter coef0 of a kernel function.
+ For SVM::POLY or SVM::SIGMOID. Default value is 0.
+
+
+
+
+ Parameter degree of a kernel function.
+ For SVM::POLY. Default value is 0.
+
+
+
+
+ Parameter C of a %SVM optimization problem.
+ For SVM::C_SVC, SVM::EPS_SVR or SVM::NU_SVR. Default value is 0.
+
+
+
+
+ Parameter nu of a %SVM optimization problem.
+ For SVM::NU_SVC, SVM::ONE_CLASS or SVM::NU_SVR. Default value is 0.
+
+
+
+
+ Parameter epsilon of a %SVM optimization problem.
+ For SVM::EPS_SVR. Default value is 0.
+
+
+
+
+ Optional weights in the SVM::C_SVC problem, assigned to particular classes.
+
+
+ They are multiplied by _C_ so the parameter _C_ of class _i_ becomes `classWeights(i) * C`.
+ Thus these weights affect the misclassification penalty for different classes.
+ The larger weight, the larger penalty on misclassification of data from the
+ corresponding class. Default value is empty Mat.
+
+
+
+
+ Termination criteria of the iterative SVM training procedure
+ which solves a partial case of constrained quadratic optimization problem.
+
+
+ You can specify tolerance and/or the maximum number of iterations.
+ Default value is `TermCriteria( TermCriteria::MAX_ITER + TermCriteria::EPS, 1000, FLT_EPSILON )`;
+
+
+
+
+ Type of a %SVM kernel. See SVM::KernelTypes. Default value is SVM::RBF.
+
+
+
+
+ Trains an %SVM with optimal parameters.
+
+ the training data that can be constructed using
+ TrainData::create or TrainData::loadFromCSV.
+ Cross-validation parameter. The training set is divided into kFold subsets.
+ One subset is used to test the model, the others form the train set. So, the %SVM algorithm is
+ executed kFold times.
+ grid for C
+ grid for gamma
+ grid for p
+ grid for nu
+ grid for coeff
+ grid for degree
+ If true and the problem is 2-class classification then the method creates
+ more balanced cross-validation subsets that is proportions between classes in subsets are close
+ to such proportion in the whole train dataset.
+
+
+
+
+ Retrieves all the support vectors
+
+
+
+
+
+ Retrieves the decision function
+
+ i the index of the decision function.
+ If the problem solved is regression, 1-class or 2-class classification, then
+ there will be just one decision function and the index should always be 0.
+ Otherwise, in the case of N-class classification, there will be N(N-1)/2 decision functions.
+ alpha the optional output vector for weights, corresponding to
+ different support vectors. In the case of linear %SVM all the alpha's will be 1's.
+ the optional output vector of indices of support vectors
+ within the matrix of support vectors (which can be retrieved by SVM::getSupportVectors).
+ In the case of linear %SVM each decision function consists of a single "compressed" support vector.
+
+
+
+
+ Generates a grid for SVM parameters.
+
+ SVM parameters IDs that must be one of the SVM::ParamTypes.
+ The grid is generated for the parameter with this ID.
+
+
+
+
+ SVM type
+
+
+
+
+ C-Support Vector Classification. n-class classification (n \f$\geq\f$ 2),
+ allows imperfect separation of classes with penalty multiplier C for outliers.
+
+
+
+
+ nu-Support Vector Classification. n-class classification with possible
+ imperfect separation. Parameter \f$\nu\f$ (in the range 0..1, the larger
+ the value, the smoother the decision boundary) is used instead of C.
+
+
+
+
+ Distribution Estimation (One-class %SVM). All the training data are from
+ the same class, %SVM builds a boundary that separates the class from the
+ rest of the feature space.
+
+
+
+
+ epsilon-Support Vector Regression.
+ The distance between feature vectors from the training set and the fitting
+ hyper-plane must be less than p. For outliers the penalty multiplier C is used.
+
+
+
+
+ nu-Support Vector Regression. \f$\nu\f$ is used instead of p.
+ See @cite LibSVM for details.
+
+
+
+
+ SVM kernel type
+
+
+
+
+ Returned by SVM::getKernelType in case when custom kernel has been set
+
+
+
+
+ Linear kernel. No mapping is done, linear discrimination (or regression) is
+ done in the original feature space. It is the fastest option. \f$K(x_i, x_j) = x_i^T x_j\f$.
+
+
+
+
+ Polynomial kernel:
+ \f$K(x_i, x_j) = (\gamma x_i^T x_j + coef0)^{degree}, \gamma > 0\f$.
+
+
+
+
+ Radial basis function (RBF), a good choice in most cases.
+ \f$K(x_i, x_j) = e^{-\gamma ||x_i - x_j||^2}, \gamma > 0\f$.
+
+
+
+
+ Sigmoid kernel:
+ \f$K(x_i, x_j) = \tanh(\gamma x_i^T x_j + coef0)\f$.
+
+
+
+
+ Exponential Chi2 kernel, similar to the RBF kernel:
+ \f$K(x_i, x_j) = e^{-\gamma \chi^2(x_i,x_j)}, \chi^2(x_i,x_j) = (x_i-x_j)^2/(x_i+x_j), \gamma > 0\f$.
+
+
+
+
+ Histogram intersection kernel.
+ A fast kernel. \f$K(x_i, x_j) = min(x_i,x_j)\f$.
+
+
+
+
+ SVM params type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The class implements the Expectation Maximization algorithm.
+
+
+
+
+ Creates instance by pointer cv::Ptr<EM>
+
+
+
+
+ Creates empty EM model.
+
+
+
+
+
+ Loads and creates a serialized model from a file.
+
+
+
+
+
+
+ Loads algorithm from a String.
+
+ he string variable containing the model you want to load.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ The number of mixture components in the Gaussian mixture model.
+ Default value of the parameter is EM::DEFAULT_NCLUSTERS=5.
+ Some of EM implementation could determine the optimal number of mixtures
+ within a specified value range, but that is not the case in ML yet.
+
+
+
+
+ Constraint on covariance matrices which defines type of matrices.
+
+
+
+
+ The termination criteria of the %EM algorithm.
+ The EM algorithm can be terminated by the number of iterations
+ termCrit.maxCount (number of M-steps) or when relative change of likelihood
+ logarithm is less than termCrit.epsilon.
+ Default maximum number of iterations is EM::DEFAULT_MAX_ITERS=100.
+
+
+
+
+ Returns weights of the mixtures.
+ Returns vector with the number of elements equal to the number of mixtures.
+
+
+
+
+
+ Returns the cluster centers (means of the Gaussian mixture).
+ Returns matrix with the number of rows equal to the number of mixtures and
+ number of columns equal to the space dimensionality.
+
+
+
+
+
+ Returns covariation matrices.
+ Returns vector of covariation matrices. Number of matrices is the number of
+ gaussian mixtures, each matrix is a square floating-point matrix NxN, where N is the space dimensionality.
+
+
+
+
+ Estimate the Gaussian mixture parameters from a samples set.
+
+ Samples from which the Gaussian mixture model will be estimated. It should be a
+ one-channel matrix, each row of which is a sample. If the matrix does not have CV_64F type
+ it will be converted to the inner matrix of such type for the further computing.
+ The optional output matrix that contains a likelihood logarithm value for
+ each sample. It has \f$nsamples \times 1\f$ size and CV_64FC1 type.
+ The optional output "class label" for each sample:
+ \f$\texttt{labels}_i=\texttt{arg max}_k(p_{i,k}), i=1..N\f$ (indices of the most probable
+ mixture component for each sample). It has \f$nsamples \times 1\f$ size and CV_32SC1 type.
+ The optional output matrix that contains posterior probabilities of each Gaussian
+ mixture component given the each sample. It has \f$nsamples \times nclusters\f$ size and CV_64FC1 type.
+
+
+
+
+ Estimate the Gaussian mixture parameters from a samples set.
+
+ Samples from which the Gaussian mixture model will be estimated. It should be a
+ one-channel matrix, each row of which is a sample. If the matrix does not have CV_64F type
+ it will be converted to the inner matrix of such type for the further computing.
+ Initial means \f$a_k\f$ of mixture components. It is a one-channel matrix of
+ \f$nclusters \times dims\f$ size. If the matrix does not have CV_64F type it will be
+ converted to the inner matrix of such type for the further computing.
+ The vector of initial covariance matrices \f$S_k\f$ of mixture components. Each of
+ covariance matrices is a one-channel matrix of \f$dims \times dims\f$ size. If the matrices
+ do not have CV_64F type they will be converted to the inner matrices of such type for the further computing.
+ Initial weights \f$\pi_k\f$ of mixture components. It should be a one-channel
+ floating-point matrix with \f$1 \times nclusters\f$ or \f$nclusters \times 1\f$ size.
+ The optional output matrix that contains a likelihood logarithm value for
+ each sample. It has \f$nsamples \times 1\f$ size and CV_64FC1 type.
+ The optional output "class label" for each sample:
+ \f$\texttt{labels}_i=\texttt{arg max}_k(p_{i,k}), i=1..N\f$ (indices of the most probable
+ mixture component for each sample). It has \f$nsamples \times 1\f$ size and CV_32SC1 type.
+ The optional output matrix that contains posterior probabilities of each Gaussian
+ mixture component given the each sample. It has \f$nsamples \times nclusters\f$ size and CV_64FC1 type.
+
+
+
+ Estimate the Gaussian mixture parameters from a samples set.
+
+ Samples from which the Gaussian mixture model will be estimated. It should be a
+ one-channel matrix, each row of which is a sample. If the matrix does not have CV_64F type
+ it will be converted to the inner matrix of such type for the further computing.
+ the probabilities
+ The optional output matrix that contains a likelihood logarithm value for
+ each sample. It has \f$nsamples \times 1\f$ size and CV_64FC1 type.
+ The optional output "class label" for each sample:
+ \f$\texttt{labels}_i=\texttt{arg max}_k(p_{i,k}), i=1..N\f$ (indices of the most probable
+ mixture component for each sample). It has \f$nsamples \times 1\f$ size and CV_32SC1 type.
+ The optional output matrix that contains posterior probabilities of each Gaussian
+ mixture component given the each sample. It has \f$nsamples \times nclusters\f$ size and CV_64FC1 type.
+
+
+
+ Predicts the response for sample
+
+ A sample for classification. It should be a one-channel matrix of
+ \f$1 \times dims\f$ or \f$dims \times 1\f$ size.
+ Optional output matrix that contains posterior probabilities of each component
+ given the sample. It has \f$1 \times nclusters\f$ size and CV_64FC1 type.
+
+
+
+ Type of covariation matrices
+
+
+
+
+ A scaled identity matrix \f$\mu_k * I\f$.
+ There is the only parameter \f$\mu_k\f$ to be estimated for each matrix.
+ The option may be used in special cases, when the constraint is relevant,
+ or as a first step in the optimization (for example in case when the data is
+ preprocessed with PCA). The results of such preliminary estimation may be
+ passed again to the optimization procedure, this time with covMatType=EM::COV_MAT_DIAGONAL.
+
+
+
+
+ A diagonal matrix with positive diagonal elements.
+ The number of free parameters is d for each matrix.
+ This is most commonly used option yielding good estimation results.
+
+
+
+
+ A symmetric positively defined matrix. The number of free parameters in each
+ matrix is about \f$d^2/2\f$. It is not recommended to use this option, unless
+ there is pretty accurate initial estimation of the parameters and/or a huge number
+ of training samples.
+
+
+
+
+
+
+
+
+
+ The initial step the algorithm starts from
+
+
+
+
+ The algorithm starts with E-step.
+ At least, the initial values of mean vectors, CvEMParams.Means must be passed.
+ Optionally, the user may also provide initial values for weights (CvEMParams.Weights)
+ and/or covariation matrices (CvEMParams.Covs).
+ [CvEM::START_E_STEP]
+
+
+
+
+ The algorithm starts with M-step. The initial probabilities p_i,k must be provided.
+ [CvEM::START_M_STEP]
+
+
+
+
+ No values are required from the user, k-means algorithm is used to estimate initial mixtures parameters.
+ [CvEM::START_AUTO_STEP]
+
+
+
+
+ Cascade classifier class for object detection.
+
+
+
+
+ Default constructor
+
+
+
+
+ Loads a classifier from a file.
+
+ Name of the file from which the classifier is loaded.
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Checks whether the classifier has been loaded.
+
+
+
+
+
+ Loads a classifier from a file.
+
+ Name of the file from which the classifier is loaded.
+ The file may contain an old HAAR classifier trained by the haartraining application
+ or a new cascade classifier trained by the traincascade application.
+
+
+
+
+ Reads a classifier parameters from a file storage
+
+
+
+
+
+ Detects objects of different sizes in the input image. The detected objects are returned as a list of rectangles.
+
+ Matrix of the type CV_8U containing an image where objects are detected.
+ Parameter specifying how much the image size is reduced at each image scale.
+ Parameter specifying how many neighbors each candidate rectangle should have to retain it.
+ Parameter with the same meaning for an old cascade as in the function cvHaarDetectObjects.
+ It is not used for a new cascade.
+ Minimum possible object size. Objects smaller than that are ignored.
+ Maximum possible object size. Objects larger than that are ignored.
+ Vector of rectangles where each rectangle contains the detected object.
+
+
+
+ Detects objects of different sizes in the input image. The detected objects are returned as a list of rectangles.
+
+ Matrix of the type CV_8U containing an image where objects are detected.
+
+
+ Parameter specifying how much the image size is reduced at each image scale.
+ Parameter specifying how many neighbors each candidate rectangle should have to retain it.
+ Parameter with the same meaning for an old cascade as in the function cvHaarDetectObjects.
+ It is not used for a new cascade.
+ Minimum possible object size. Objects smaller than that are ignored.
+ Maximum possible object size. Objects larger than that are ignored.
+
+ Vector of rectangles where each rectangle contains the detected object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Modes of operation for cvHaarDetectObjects
+
+
+
+
+ If it is set, the function uses Canny edge detector to reject some image regions that contain too few or too much edges and thus can not contain the searched object.
+ The particular threshold values are tuned for face detection and in this case the pruning speeds up the processing.
+ [CV_HAAR_DO_CANNY_PRUNING]
+
+
+
+
+ For each scale factor used the function will downscale the image rather than "zoom" the feature coordinates in the classifier cascade.
+ Currently, the option can only be used alone, i.e. the flag can not be set together with the others.
+ [CV_HAAR_SCALE_IMAGE]
+
+
+
+
+ If it is set, the function finds the largest object (if any) in the image. That is, the output sequence will contain one (or zero) element(s).
+ [CV_HAAR_FIND_BIGGEST_OBJECT]
+
+
+
+
+ It should be used only when FindBiggestObject is set and min_neighbors > 0.
+ If the flag is set, the function does not look for candidates of a smaller size
+ as soon as it has found the object (with enough neighbor candidates) at the current scale.
+ Typically, when min_neighbors is fixed, the mode yields less accurate (a bit larger) object rectangle
+ than the regular single-object mode (flags=FindBiggestObject),
+ but it is much faster, up to an order of magnitude. A greater value of min_neighbors may be specified to improve the accuracy.
+ [CV_HAAR_DO_ROUGH_SEARCH]
+
+
+
+
+ L2-Hys normalization method
+
+
+
+
+ [HOGDescriptor::L2Hys]
+
+
+
+
+ HOG (Histogram-of-Oriented-Gradients) Descriptor and Object Detector
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns coefficients of the classifier trained for people detection (for default window size).
+
+
+
+
+ This field returns 1981 SVM coeffs obtained from daimler's base.
+ To use these coeffs the detection window size should be (48,96)
+
+
+
+
+ Default constructor
+
+
+
+
+ Creates the HOG descriptor and detector.
+
+ Detection window size. Align to block size and block stride.
+ Block size in pixels. Align to cell size. Only (16,16) is supported for now.
+ Block stride. It must be a multiple of cell size.
+ Cell size. Only (8, 8) is supported for now.
+ Number of bins. Only 9 bins per cell are supported for now.
+
+ Gaussian smoothing window parameter.
+
+ L2-Hys normalization method shrinkage.
+ Flag to specify whether the gamma correction preprocessing is required or not.
+ Maximum number of detection window increases.
+
+
+
+ Construct from a file containing HOGDescriptor properties and coefficients for the linear SVM classifier.
+
+ The file name containing HOGDescriptor properties and coefficients for the linear SVM classifier.
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Detection window size. Align to block size and block stride. Default value is Size(64,128).
+
+
+
+
+ Block size in pixels. Align to cell size. Default value is Size(16,16).
+
+
+
+
+ Block stride. It must be a multiple of cell size. Default value is Size(8,8).
+
+
+
+
+ Cell size. Default value is Size(8,8).
+
+
+
+
+ Number of bins used in the calculation of histogram of gradients. Default value is 9.
+
+
+
+
+
+
+
+
+
+ Gaussian smoothing window parameter.
+
+
+
+
+ HistogramNormType
+
+
+
+
+ L2-Hys normalization method shrinkage.
+
+
+
+
+ Flag to specify whether the gamma correction preprocessing is required or not.
+
+
+
+
+ Maximum number of detection window increases. Default value is 64
+
+
+
+
+ Indicates signed gradient will be used or not
+
+
+
+
+ Returns coefficients of the classifier trained for people detection (for default window size).
+
+
+
+
+
+ This method returns 1981 SVM coeffs obtained from daimler's base.
+ To use these coeffs the detection window size should be (48,96)
+
+
+
+
+
+ Sets coefficients for the linear SVM classifier.
+
+ coefficients for the linear SVM classifier.
+
+
+
+ loads HOGDescriptor parameters and coefficients for the linear SVM classifier from a file.
+
+ Path of the file to read.
+ The optional name of the node to read (if empty, the first top-level node will be used).
+
+
+
+
+ saves HOGDescriptor parameters and coefficients for the linear SVM classifier to a file
+
+ File name
+ Object name
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Computes HOG descriptors of given image.
+
+ Matrix of the type CV_8U containing an image where HOG features will be calculated.
+ Window stride. It must be a multiple of block stride.
+ Padding
+ Vector of Point
+ Matrix of the type CV_32F
+
+
+
+ Performs object detection without a multi-scale window.
+
+ Source image. CV_8UC1 and CV_8UC4 types are supported for now.
+ Threshold for the distance between features and SVM classifying plane.
+ Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient).
+ But if the free coefficient is omitted (which is allowed), you can specify it manually here.
+ Window stride. It must be a multiple of block stride.
+ Mock parameter to keep the CPU interface compatibility. It must be (0,0).
+
+ Left-top corner points of detected objects boundaries.
+
+
+
+ Performs object detection without a multi-scale window.
+
+ Source image. CV_8UC1 and CV_8UC4 types are supported for now.
+
+ Threshold for the distance between features and SVM classifying plane.
+ Usually it is 0 and should be specfied in the detector coefficients (as the last free coefficient).
+ But if the free coefficient is omitted (which is allowed), you can specify it manually here.
+ Window stride. It must be a multiple of block stride.
+ Mock parameter to keep the CPU interface compatibility. It must be (0,0).
+
+ Left-top corner points of detected objects boundaries.
+
+
+
+ Performs object detection with a multi-scale window.
+
+ Source image. CV_8UC1 and CV_8UC4 types are supported for now.
+ Threshold for the distance between features and SVM classifying plane.
+ Window stride. It must be a multiple of block stride.
+ Mock parameter to keep the CPU interface compatibility. It must be (0,0).
+ Coefficient of the detection window increase.
+ Coefficient to regulate the similarity threshold.
+ When detected, some objects can be covered by many rectangles. 0 means not to perform grouping.
+ Detected objects boundaries.
+
+
+
+ Performs object detection with a multi-scale window.
+
+ Source image. CV_8UC1 and CV_8UC4 types are supported for now.
+
+ Threshold for the distance between features and SVM classifying plane.
+ Window stride. It must be a multiple of block stride.
+ Mock parameter to keep the CPU interface compatibility. It must be (0,0).
+ Coefficient of the detection window increase.
+ Coefficient to regulate the similarity threshold.
+ When detected, some objects can be covered by many rectangles. 0 means not to perform grouping.
+ Detected objects boundaries.
+
+
+
+ Computes gradients and quantized gradient orientations.
+
+ Matrix contains the image to be computed
+ Matrix of type CV_32FC2 contains computed gradients
+ Matrix of type CV_8UC2 contains quantized gradient orientations
+ Padding from top-left
+ Padding from bottom-right
+
+
+
+ evaluate specified ROI and return confidence value for each location
+
+ Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected.
+ Vector of Point
+ Vector of Point where each Point is detected object's top-left point.
+ confidences
+ Threshold for the distance between features and SVM classifying plane. Usually
+ it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if
+ the free coefficient is omitted (which is allowed), you can specify it manually here
+ winStride
+ padding
+
+
+
+ evaluate specified ROI and return confidence value for each location in multiple scales
+
+ Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected.
+ Vector of rectangles where each rectangle contains the detected object.
+ Vector of DetectionROI
+ Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified
+ in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here.
+ Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it.
+
+
+
+ Groups the object candidate rectangles.
+
+ Input/output vector of rectangles. Output vector includes retained and grouped rectangles. (The Python list is not modified in place.)
+ Input/output vector of weights of rectangles. Output vector includes weights of retained and grouped rectangles. (The Python list is not modified in place.)
+ Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it.
+ Relative difference between sides of the rectangles to merge them into a group.
+
+
+
+ struct for detection region of interest (ROI)
+
+
+
+
+ scale(size) of the bounding box
+
+
+
+
+ set of requested locations to be evaluated
+
+
+
+
+ vector that will contain confidence values for each location
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ sets the epsilon used during the horizontal scan of QR code stop marker detection.
+
+ Epsilon neighborhood, which allows you to determine the horizontal pattern
+ of the scheme 1:1:3:1:1 according to QR code standard.
+
+
+
+ sets the epsilon used during the vertical scan of QR code stop marker detection.
+
+ Epsilon neighborhood, which allows you to determine the vertical pattern
+ of the scheme 1:1:3:1:1 according to QR code standard.
+
+
+
+ Detects QR code in image and returns the quadrangle containing the code.
+
+ grayscale or color (BGR) image containing (or not) QR code.
+ Output vector of vertices of the minimum-area quadrangle containing the code.
+
+
+
+
+ Decodes QR code in image once it's found by the detect() method.
+ Returns UTF8-encoded output string or empty string if the code cannot be decoded.
+
+ grayscale or color (BGR) image containing QR code.
+ Quadrangle vertices found by detect() method (or some other algorithm).
+ The optional output image containing rectified and binarized QR code
+
+
+
+
+ Both detects and decodes QR code
+
+ grayscale or color (BGR) image containing QR code.
+ optional output array of vertices of the found QR code quadrangle. Will be empty if not found.
+ The optional output image containing rectified and binarized QR code
+
+
+
+
+ Detects QR codes in image and returns the quadrangles containing the codes.
+
+ grayscale or color (BGR) image containing (or not) QR code.
+ Output vector of vertices of the minimum-area quadrangle containing the codes.
+
+
+
+
+ Decodes QR codes in image once it's found by the detect() method.
+ Returns UTF8-encoded output string or empty string if the code cannot be decoded.
+
+ grayscale or color (BGR) image containing QR code.
+ Quadrangle vertices found by detect() method (or some other algorithm).
+ UTF8-encoded output vector of string or empty vector of string if the codes cannot be decoded.
+
+
+
+
+ Decodes QR codes in image once it's found by the detect() method.
+ Returns UTF8-encoded output string or empty string if the code cannot be decoded.
+
+ grayscale or color (BGR) image containing QR code.
+ Quadrangle vertices found by detect() method (or some other algorithm).
+ UTF8-encoded output vector of string or empty vector of string if the codes cannot be decoded.
+ The optional output image containing rectified and binarized QR code
+
+
+
+
+ Decodes QR codes in image once it's found by the detect() method.
+ Returns UTF8-encoded output string or empty string if the code cannot be decoded.
+
+ grayscale or color (BGR) image containing QR code.
+ Quadrangle vertices found by detect() method (or some other algorithm).
+ UTF8-encoded output vector of string or empty vector of string if the codes cannot be decoded.
+ The optional output image containing rectified and binarized QR code
+ to output
+
+
+
+
+ Class for grouping object candidates, detected by Cascade Classifier, HOG etc.
+ instance of the class is to be passed to cv::partition (see cxoperations.hpp)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cv::optflow functions
+
+
+
+
+ Updates motion history image using the current silhouette
+
+ Silhouette mask that has non-zero pixels where the motion occurs.
+ Motion history image that is updated by the function (single-channel, 32-bit floating-point).
+ Current time in milliseconds or other units.
+ Maximal duration of the motion track in the same units as timestamp .
+
+
+
+ Computes the motion gradient orientation image from the motion history image
+
+ Motion history single-channel floating-point image.
+ Output mask image that has the type CV_8UC1 and the same size as mhi.
+ Its non-zero elements mark pixels where the motion gradient data is correct.
+ Output motion gradient orientation image that has the same type and the same size as mhi.
+ Each pixel of the image is a motion orientation, from 0 to 360 degrees.
+ Minimal (or maximal) allowed difference between mhi values within a pixel neighborhood.
+ Maximal (or minimal) allowed difference between mhi values within a pixel neighborhood.
+ That is, the function finds the minimum ( m(x,y) ) and maximum ( M(x,y) ) mhi values over 3x3 neighborhood of each pixel
+ and marks the motion orientation at (x, y) as valid only if:
+ min(delta1, delta2) <= M(x,y)-m(x,y) <= max(delta1, delta2).
+
+
+
+
+ Computes the global orientation of the selected motion history image part
+
+ Motion gradient orientation image calculated by the function CalcMotionGradient() .
+ Mask image. It may be a conjunction of a valid gradient mask, also calculated by CalcMotionGradient() ,
+ and the mask of a region whose direction needs to be calculated.
+ Motion history image calculated by UpdateMotionHistory() .
+ Timestamp passed to UpdateMotionHistory() .
+ Maximum duration of a motion track in milliseconds, passed to UpdateMotionHistory() .
+
+
+
+
+ Splits a motion history image into a few parts corresponding to separate independent motions
+ (for example, left hand, right hand).
+
+ Motion history image.
+ Image where the found mask should be stored, single-channel, 32-bit floating-point.
+ Vector containing ROIs of motion connected components.
+ Current time in milliseconds or other units.
+ Segmentation threshold that is recommended to be equal to the interval between motion history “steps” or greater.
+
+
+
+ computes dense optical flow using Simple Flow algorithm
+
+ First 8-bit 3-channel image.
+ Second 8-bit 3-channel image
+ Estimated flow
+ Number of layers
+ Size of block through which we sum up when calculate cost function for pixel
+ maximal flow that we search at each level
+
+
+
+ computes dense optical flow using Simple Flow algorithm
+
+ First 8-bit 3-channel image.
+ Second 8-bit 3-channel image
+ Estimated flow
+ Number of layers
+ Size of block through which we sum up when calculate cost function for pixel
+ maximal flow that we search at each level
+ vector smooth spatial sigma parameter
+ vector smooth color sigma parameter
+ window size for postprocess cross bilateral filter
+ spatial sigma for postprocess cross bilateralf filter
+ color sigma for postprocess cross bilateral filter
+ threshold for detecting occlusions
+ window size for bilateral upscale operation
+ spatial sigma for bilateral upscale operation
+ color sigma for bilateral upscale operation
+ threshold to detect point with irregular flow - where flow should be recalculated after upscale
+
+
+
+ Fast dense optical flow based on PyrLK sparse matches interpolation.
+
+ first 8-bit 3-channel or 1-channel image.
+ second 8-bit 3-channel or 1-channel image of the same size as from
+ computed flow image that has the same size as from and CV_32FC2 type
+ stride used in sparse match computation. Lower values usually
+ result in higher quality but slow down the algorithm.
+ number of nearest-neighbor matches considered, when fitting a locally affine
+ model. Lower values can make the algorithm noticeably faster at the cost of some quality degradation.
+ parameter defining how fast the weights decrease in the locally-weighted affine
+ fitting. Higher values can help preserve fine details, lower values can help to get rid of the noise in the output flow.
+ defines whether the ximgproc::fastGlobalSmootherFilter() is used for post-processing after interpolation
+ see the respective parameter of the ximgproc::fastGlobalSmootherFilter()
+ see the respective parameter of the ximgproc::fastGlobalSmootherFilter()
+
+
+
+ The base class for camera response calibration algorithms.
+
+
+
+
+ Recovers inverse camera response.
+
+ vector of input images
+ 256x1 matrix with inverse camera response function
+ vector of exposure time values for each image
+
+
+
+ CalibrateDebevec object
+
+
+
+
+ Creates instance by raw pointer cv::CalibrateDebevec*
+
+
+
+
+ Creates the empty model.
+
+ number of pixel locations to use
+ smoothness term weight. Greater values produce smoother results,
+ but can alter the response.
+ if true sample pixel locations are chosen at random,
+ otherwise the form a rectangular grid.
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CalibrateRobertson object
+
+
+
+
+ Creates instance by raw pointer cv::CalibrateRobertson*
+
+
+
+
+ Creates CalibrateRobertson object
+
+ maximal number of Gauss-Seidel solver iterations.
+ target difference between results of two successive steps of the minimization.
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Edge preserving filters
+
+
+
+
+ Recursive Filtering
+
+
+
+
+ Normalized Convolution Filtering
+
+
+
+
+ The inpainting method
+
+
+
+
+ Navier-Stokes based method.
+
+
+
+
+ The method by Alexandru Telea
+
+
+
+
+ The resulting HDR image is calculated as weighted average of the exposures considering exposure
+ values and camera response.
+
+ For more information see @cite DM97 .
+
+
+
+
+ Creates instance by MergeDebevec*
+
+
+
+
+ Creates the empty model.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ The base class algorithms that can merge exposure sequence to a single image.
+
+
+
+
+ Merges images.
+
+ vector of input images
+ result image
+ vector of exposure time values for each image
+ 256x1 matrix with inverse camera response function for each pixel value, it should have the same number of channels as images.
+
+
+
+ Pixels are weighted using contrast, saturation and well-exposedness measures, than images are combined using laplacian pyramids.
+
+ The resulting image weight is constructed as weighted average of contrast, saturation and well-exposedness measures.
+
+ The resulting image doesn't require tonemapping and can be converted to 8-bit image by multiplying by 255,
+ but it's recommended to apply gamma correction and/or linear tonemapping.
+
+ For more information see @cite MK07 .
+
+
+
+
+ Creates instance by MergeMertens*
+
+
+
+
+ Creates the empty model.
+
+
+
+
+
+ Short version of process, that doesn't take extra arguments.
+
+ vector of input images
+ result image
+
+
+
+ Releases managed resources
+
+
+
+
+ SeamlessClone method
+
+
+
+
+ The power of the method is fully expressed when inserting objects with
+ complex outlines into a new background.
+
+
+
+
+ The classic method, color-based selection and alpha masking might be time
+ consuming and often leaves an undesirable halo. Seamless cloning, even averaged
+ with the original image, is not effective. Mixed seamless cloning based on a
+ loose selection proves effective.
+
+
+
+
+ Feature exchange allows the user to easily replace certain features of one
+ object by alternative features.
+
+
+
+
+ Base class for tonemapping algorithms - tools that are used to map HDR image to 8-bit range.
+
+
+
+
+ Constructor used by Tonemap.Create
+
+
+
+
+ Constructor used by subclasses
+
+
+
+
+ Creates simple linear mapper with gamma correction
+
+ positive value for gamma correction.
+ Gamma value of 1.0 implies no correction, gamma equal to 2.2f is suitable for most displays.
+ Generally gamma > 1 brightens the image and gamma < 1 darkens it.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Tonemaps image
+
+ source image - CV_32FC3 Mat (float 32 bits 3 channels)
+ destination image - CV_32FC3 Mat with values in [0, 1] range
+
+
+
+ Gets or sets positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma
+ equal to 2.2f is suitable for most displays.
+ Generally gamma > 1 brightens the image and gamma < 1 darkens it.
+
+
+
+
+ Adaptive logarithmic mapping is a fast global tonemapping algorithm that scales the image in logarithmic domain.
+
+ Since it's a global operator the same function is applied to all the pixels, it is controlled by the bias parameter.
+ Optional saturation enhancement is possible as described in @cite FL02. For more information see @cite DM03.
+
+
+
+
+ Constructor
+
+
+
+
+ Creates TonemapDrago object
+
+ positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma
+ equal to 2.2f is suitable for most displays.
+ Generally gamma > 1 brightens the image and gamma < 1 darkens it.
+ positive saturation enhancement value. 1.0 preserves saturation, values greater
+ than 1 increase saturation and values less than 1 decrease it.
+ value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best
+ results, default value is 0.85.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Gets or sets positive saturation enhancement value. 1.0 preserves saturation, values greater
+ than 1 increase saturation and values less than 1 decrease it.
+
+
+
+
+ Gets or sets value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best
+ results, default value is 0.85.
+
+
+
+
+ This algorithm transforms image to contrast using gradients on all levels of gaussian pyramid,
+ transforms contrast values to HVS response and scales the response. After this the image is
+ reconstructed from new contrast values.
+
+ For more information see @cite MM06.
+
+
+
+
+ Constructor
+
+
+
+
+ Creates TonemapMantiuk object
+
+ positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma
+ equal to 2.2f is suitable for most displays.
+ Generally gamma > 1 brightens the image and gamma < 1 darkens it.
+ contrast scale factor. HVS response is multiplied by this parameter, thus compressing
+ dynamic range. Values from 0.6 to 0.9 produce best results.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Gets or sets contrast scale factor. HVS response is multiplied by this parameter, thus compressing
+ dynamic range. Values from 0.6 to 0.9 produce best results.
+
+
+
+
+ Gets or sets positive saturation enhancement value. 1.0 preserves saturation, values greater
+ than 1 increase saturation and values less than 1 decrease it.
+
+
+
+
+ This is a global tonemapping operator that models human visual system.
+
+ Mapping function is controlled by adaptation parameter, that is computed using light adaptation and
+ color adaptation. For more information see @cite RD05.
+
+
+
+
+ Constructor
+
+
+
+
+ Creates TonemapReinhard object
+
+ positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma
+ equal to 2.2f is suitable for most displays.
+ Generally gamma > 1 brightens the image and gamma < 1 darkens it.
+ result intensity in [-8, 8] range. Greater intensity produces brighter results.
+ light adaptation in [0, 1] range. If 1 adaptation is based only on pixel
+ value, if 0 it's global, otherwise it's a weighted mean of this two cases.
+ chromatic adaptation in [0, 1] range. If 1 channels are treated independently,
+ if 0 adaptation level is the same for each channel.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Gets or sets result intensity in [-8, 8] range. Greater intensity produces brighter results.
+
+
+
+
+ Gets or sets light adaptation in [0, 1] range. If 1 adaptation is based only on pixel
+ value, if 0 it's global, otherwise it's a weighted mean of this two cases.
+
+
+
+
+ Gets or sets chromatic adaptation in [0, 1] range. If 1 channels are treated independently,
+ if 0 adaptation level is the same for each channel.
+
+
+
+
+ Quality Base Class
+
+
+
+
+ Implements Algorithm::empty()
+
+
+
+
+
+ Returns output quality map that was generated during computation, if supported by the algorithm
+
+
+
+
+
+ Compute quality score per channel with the per-channel score in each element of the resulting cv::Scalar.
+ See specific algorithm for interpreting result scores
+
+ comparison image, or image to evaluate for no-reference quality algorithms
+
+
+
+ Implements Algorithm::clear()
+
+
+
+
+ BRISQUE (Blind/Referenceless Image Spatial Quality Evaluator) is a No Reference Image Quality Assessment (NR-IQA) algorithm.
+ BRISQUE computes a score based on extracting Natural Scene Statistics(https://en.wikipedia.org/wiki/Scene_statistics)
+ and calculating feature vectors. See Mittal et al. @cite Mittal2 for original paper and original implementation @cite Mittal2_software.
+ A trained model is provided in the /samples/ directory and is trained on the LIVE-R2 database @cite Sheikh as in the original implementation.
+ When evaluated against the TID2008 database @cite Ponomarenko, the SROCC is -0.8424 versus the SROCC of -0.8354 in the original implementation.
+ C++ code for the BRISQUE LIVE-R2 trainer and TID2008 evaluator are also provided in the /samples/ directory.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Create an object which calculates quality
+
+ String which contains a path to the BRISQUE model data, eg. /path/to/brisque_model_live.yml
+ String which contains a path to the BRISQUE range data, eg. /path/to/brisque_range_live.yml
+
+
+
+
+ Create an object which calculates quality
+
+ cv::ml::SVM* which contains a loaded BRISQUE model
+ cv::Mat which contains BRISQUE range data
+
+
+
+
+ static method for computing quality
+
+ image for which to compute quality
+ String which contains a path to the BRISQUE model data, eg. /path/to/brisque_model_live.yml
+ cv::String which contains a path to the BRISQUE range data, eg. /path/to/brisque_range_live.yml
+ cv::Scalar with the score in the first element. The score ranges from 0 (best quality) to 100 (worst quality)
+
+
+
+ static method for computing image features used by the BRISQUE algorithm
+
+ image (BGR(A) or grayscale) for which to compute features
+ output row vector of features to cv::Mat or cv::UMat
+
+
+
+ Releases managed resources
+
+
+
+
+ Full reference GMSD algorithm
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Create an object which calculates quality
+
+ input image to use as the source for comparison
+
+
+
+
+ static method for computing quality
+
+
+
+ output quality map, or null
+ cv::Scalar with per-channel quality values. Values range from 0 (worst) to 1 (best)
+
+
+
+ Releases managed resources
+
+
+
+
+ Full reference mean square error algorithm https://en.wikipedia.org/wiki/Mean_squared_error
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Create an object which calculates quality
+
+ input image to use as the source for comparison
+
+
+
+
+ static method for computing quality
+
+
+
+ output quality map, or null
+ cv::Scalar with per-channel quality values. Values range from 0 (worst) to 1 (best)
+
+
+
+ Releases managed resources
+
+
+
+
+ Full reference peak signal to noise ratio (PSNR) algorithm https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ get or set the maximum pixel value used for PSNR computation
+
+
+
+
+
+ Create an object which calculates quality
+
+ input image to use as the source for comparison
+ maximum per-channel value for any individual pixel; eg 255 for uint8 image
+
+
+
+
+ static method for computing quality
+
+
+
+ output quality map, or null
+ maximum per-channel value for any individual pixel; eg 255 for uint8 image
+ PSNR value, or double.PositiveInfinity if the MSE between the two images == 0
+
+
+
+ Releases managed resources
+
+
+
+
+ Full reference structural similarity algorithm https://en.wikipedia.org/wiki/Structural_similarity
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Create an object which calculates quality
+
+ input image to use as the source for comparison
+
+
+
+
+ static method for computing quality
+
+
+
+ output quality map, or null
+ cv::Scalar with per-channel quality values. Values range from 0 (worst) to 1 (best)
+
+
+
+ Releases managed resources
+
+
+
+
+ A simple Hausdorff distance measure between shapes defined by contours
+
+
+ according to the paper "Comparing Images using the Hausdorff distance."
+ by D.P. Huttenlocher, G.A. Klanderman, and W.J. Rucklidge. (PAMI 1993). :
+
+
+
+
+
+
+
+
+
+ Complete constructor
+
+ Flag indicating which norm is used to compute the Hausdorff distance (NORM_L1, NORM_L2).
+ fractional value (between 0 and 1).
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Flag indicating which norm is used to compute the Hausdorff distance (NORM_L1, NORM_L2).
+
+
+
+
+ fractional value (between 0 and 1).
+
+
+
+
+ Implementation of the Shape Context descriptor and matching algorithm
+
+
+ proposed by Belongie et al. in "Shape Matching and Object Recognition Using Shape Contexts"
+ (PAMI2002). This implementation is packaged in a generic scheme, in order to allow
+ you the implementation of the common variations of the original pipeline.
+
+
+
+
+
+
+
+
+
+ Complete constructor
+
+ The number of angular bins in the shape context descriptor.
+ The number of radial bins in the shape context descriptor.
+ The value of the inner radius.
+ The value of the outer radius.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ The number of angular bins in the shape context descriptor.
+
+
+
+
+ The number of radial bins in the shape context descriptor.
+
+
+
+
+ The value of the inner radius.
+
+
+
+
+ The value of the outer radius.
+
+
+
+
+
+
+
+
+
+ The weight of the shape context distance in the final distance value.
+
+
+
+
+ The weight of the appearance cost in the final distance value.
+
+
+
+
+ The weight of the Bending Energy in the final distance value.
+
+
+
+
+
+
+
+
+
+ The value of the standard deviation for the Gaussian window for the image appearance cost.
+
+
+
+
+ Set the images that correspond to each shape.
+ This images are used in the calculation of the Image Appearance cost.
+
+ Image corresponding to the shape defined by contours1.
+ Image corresponding to the shape defined by contours2.
+
+
+
+ Get the images that correspond to each shape.
+ This images are used in the calculation of the Image Appearance cost.
+
+ Image corresponding to the shape defined by contours1.
+ Image corresponding to the shape defined by contours2.
+
+
+
+ Abstract base class for shape distance algorithms.
+
+
+
+
+ Compute the shape distance between two shapes defined by its contours.
+
+ Contour defining first shape.
+ Contour defining second shape.
+
+
+
+
+ Features matcher similar to cv::detail::BestOf2NearestMatcher which
+ finds two best matches for each feature and leaves the best one only if the
+ ratio between descriptor distances is greater than the threshold match_conf.
+
+ Unlike cv::detail::BestOf2NearestMatcher this matcher uses affine
+ transformation (affine transformation estimate will be placed in matches_info).
+
+
+
+
+ Constructs a "best of 2 nearest" matcher that expects affine transformation between images
+
+ whether to use full affine transformation with 6 degress of freedom
+ or reduced transformation with 4 degrees of freedom using only rotation, translation and
+ uniform scaling
+ Should try to use GPU or not
+ Match distances ration threshold
+ Minimum number of matches required for the 2D affine transform
+ estimation used in the inliers classification step
+
+
+
+ releases unmanaged resources
+
+
+
+
+ Features matcher which finds two best matches for each feature and leaves the best one only if the
+ ratio between descriptor distances is greater than the threshold match_conf
+
+
+
+
+ Constructs a "best of 2 nearest" matcher.
+
+ Should try to use GPU or not
+ Match distances ration threshold
+ Minimum number of matches required for the 2D projective transform
+ estimation used in the inliers classification step
+ Minimum number of matches required for the 2D projective transform
+ re-estimation on inliers
+
+
+
+ Constructor
+
+
+
+
+
+ releases unmanaged resources
+
+
+
+
+ Frees unused memory allocated before if there is any.
+
+
+
+
+ cv::detail functions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Feature matchers base class.
+
+
+
+
+ Constructor
+
+
+
+
+
+ Performs images matching.
+
+ First image features
+ Second image features
+ Found matches
+
+
+
+ Performs images matching.
+
+ Features of the source images
+ Mask indicating which image pairs must be matched
+ Found pairwise matches
+
+
+
+ True, if it's possible to use the same matcher instance in parallel, false otherwise
+
+
+
+
+
+ Frees unused memory allocated before if there is any.
+
+
+
+
+ Structure containing image keypoints and descriptors.
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+ Destructor
+
+
+
+
+
+
+
+
+
+
+
+
+ Structure containing information about matches between two images.
+
+ It's assumed that there is a transformation between those images. Transformation may be
+ homography or affine transformation based on selected matcher.
+
+
+
+
+ Images indices (optional)
+
+
+
+
+ Images indices (optional)
+
+
+
+
+
+
+
+
+
+ Geometrically consistent matches mask
+
+
+
+
+ Number of geometrically consistent matches
+
+
+
+
+ Estimated transformation
+
+
+
+
+ Confidence two images are from the same panorama
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+
+
+ Copy constructor
+
+
+
+
+
+ Dispose H
+
+
+
+
+ High level image stitcher.
+ It's possible to use this class without being aware of the entire stitching
+ pipeline. However, to be able to achieve higher stitching stability and
+ quality of the final images at least being familiar with the theory is recommended
+
+
+
+
+ Status code
+
+
+
+
+ Mode for creating photo panoramas. Expects images under perspective
+ transformation and projects resulting pano to sphere.
+
+
+
+
+ Mode for composing scans. Expects images under affine transformation does
+ not compensate exposure by default.
+
+
+
+
+ Constructor
+
+ cv::Stitcher*
+
+
+
+ Creates a Stitcher configured in one of the stitching modes.
+
+ Scenario for stitcher operation. This is usually determined by source of images
+ to stitch and their transformation.Default parameters will be chosen for operation in given scenario.
+
+
+
+ Releases managed resources
+
+
+
+
+ Try to stitch the given images.
+
+ Input images.
+ Final pano.
+ Status code.
+
+
+
+ Try to stitch the given images.
+
+ Input images.
+ Final pano.
+ Status code.
+
+
+
+ Try to stitch the given images.
+
+ Input images.
+ Region of interest rectangles.
+ Final pano.
+ Status code.
+
+
+
+ Try to stitch the given images.
+
+ Input images.
+ Region of interest rectangles.
+ Final pano.
+ Status code.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Clear all inner buffers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for Super Resolution algorithms.
+
+
+
+
+ Constructor
+
+
+
+
+ Creates instance from cv::Ptr<T> .
+ ptr is disposed when the wrapper disposes.
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Create Bilateral TV-L1 Super Resolution.
+
+
+
+
+
+ Create Bilateral TV-L1 Super Resolution.
+
+
+
+
+
+ Set input frame source for Super Resolution algorithm.
+
+ Input frame source
+
+
+
+ Process next frame from input and return output result.
+
+ Output result
+
+
+
+
+
+
+
+ Clear all inner buffers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Scale factor
+
+
+
+
+ Iterations count
+
+
+
+
+ Asymptotic value of steepest descent method
+
+
+
+
+ Weight parameter to balance data term and smoothness term
+
+
+
+
+ Parameter of spacial distribution in Bilateral-TV
+
+
+
+
+ Kernel size of Bilateral-TV filter
+
+
+
+
+ Gaussian blur kernel size
+
+
+
+
+ Gaussian blur sigma
+
+
+
+
+ Radius of the temporal search area
+
+
+
+
+ base class BaseOCR declares a common API that would be used in a typical text recognition scenario
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cv::text functions
+
+
+
+
+ Applies the Stroke Width Transform operator followed by filtering of connected components of similar Stroke Widths to
+ return letter candidates. It also chain them by proximity and size, saving the result in chainBBs.
+
+ input the input image with 3 channels.
+ a boolean value signifying whether the text is darker or lighter than the background,
+ it is observed to reverse the gradient obtained from Scharr operator, and significantly affect the result.
+ an optional Mat of type CV_8UC3 which visualises the detected letters using bounding boxes.
+ an optional parameter which chains the letter candidates according to heuristics in the
+ paper and returns all possible regions where text is likely to occur.
+ a vector of resulting bounding boxes where probability of finding text is high
+
+
+
+ Recognize text using the tesseract-ocr API.
+
+ Takes image on input and returns recognized text in the output_text parameter.
+ Optionallyprovides also the Rects for individual text elements found(e.g.words),
+ and the list of those text elements with their confidence values.
+
+
+
+
+ Constructor
+
+
+
+
+
+ Creates an instance of the OCRTesseract class. Initializes Tesseract.
+
+ datapath the name of the parent directory of tessdata ended with "/", or null to use the system's default directory.
+ an ISO 639-3 code or NULL will default to "eng".
+ specifies the list of characters used for recognition.
+ null defaults to "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".
+ tesseract-ocr offers different OCR Engine Modes (OEM),
+ by deffault tesseract::OEM_DEFAULT is used.See the tesseract-ocr API documentation for other possible values.
+ tesseract-ocr offers different Page Segmentation Modes (PSM) tesseract::PSM_AUTO (fully automatic layout analysis) is used.
+ See the tesseract-ocr API documentation for other possible values.
+
+
+
+ Releases managed resources
+
+
+
+
+ Recognize text using the tesseract-ocr API.
+ Takes image on input and returns recognized text in the output_text parameter.
+ Optionally provides also the Rects for individual text elements found(e.g.words),
+ and the list of those text elements with their confidence values.
+
+ Input image CV_8UC1 or CV_8UC3
+ Output text of the tesseract-ocr.
+ If provided the method will output a list of Rects for the individual
+ text elements found(e.g.words or text lines).
+ If provided the method will output a list of text strings for the
+ recognition of individual text elements found(e.g.words or text lines).
+ If provided the method will output a list of confidence values
+ for the recognition of individual text elements found(e.g.words or text lines).
+ OCR_LEVEL_WORD (by default), or OCR_LEVEL_TEXT_LINE.
+
+
+
+ Recognize text using the tesseract-ocr API.
+ Takes image on input and returns recognized text in the output_text parameter.
+ Optionally provides also the Rects for individual text elements found(e.g.words),
+ and the list of those text elements with their confidence values.
+
+ Input image CV_8UC1 or CV_8UC3
+
+ Output text of the tesseract-ocr.
+ If provided the method will output a list of Rects for the individual
+ text elements found(e.g.words or text lines).
+ If provided the method will output a list of text strings for the
+ recognition of individual text elements found(e.g.words or text lines).
+ If provided the method will output a list of confidence values
+ for the recognition of individual text elements found(e.g.words or text lines).
+ OCR_LEVEL_WORD (by default), or OCR_LEVEL_TEXT_LINE.
+
+
+
+
+
+
+
+
+
+ An abstract class providing interface for text detection algorithms
+
+
+
+
+ Method that provides a quick and simple interface to detect text inside an image
+
+ an image to process
+ a vector of Rect that will store the detected word bounding box
+ a vector of float that will be updated with the confidence the classifier has for the selected bounding box
+
+
+
+ TextDetectorCNN class provides the functionality of text bounding box detection.
+
+
+ This class is representing to find bounding boxes of text words given an input image.
+ This class uses OpenCV dnn module to load pre-trained model described in @cite LiaoSBWL17.
+ The original repository with the modified SSD Caffe version: https://github.com/MhLiao/TextBoxes.
+ Model can be downloaded from[DropBox](https://www.dropbox.com/s/g8pjzv2de9gty8g/TextBoxes_icdar13.caffemodel?dl=0).
+ Modified.prototxt file with the model description can be found in `opencv_contrib/modules/text/samples/textbox.prototxt`.
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+ Creates an instance of the TextDetectorCNN class using the provided parameters.
+
+ the relative or absolute path to the prototxt file describing the classifiers architecture.
+ the relative or absolute path to the file containing the pretrained weights of the model in caffe-binary form.
+ a list of sizes for multiscale detection. The values`[(300,300),(700,500),(700,300),(700,700),(1600,1600)]`
+ are recommended in @cite LiaoSBWL17 to achieve the best quality.
+
+
+
+
+ Creates an instance of the TextDetectorCNN class using the provided parameters.
+
+ the relative or absolute path to the prototxt file describing the classifiers architecture.
+ the relative or absolute path to the file containing the pretrained weights of the model in caffe-binary form.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Method that provides a quick and simple interface to detect text inside an image
+
+ an image to process
+ a vector of Rect that will store the detected word bounding box
+ a vector of float that will be updated with the confidence the classifier has for the selected bounding box
+
+
+
+
+ the CSRT tracker
+ The implementation is based on @cite Lukezic_IJCV2018 Discriminative Correlation Filter with Channel and Spatial Reliability
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+ CSRT parameters
+
+
+
+
+
+
+
+
+
+
+ CSRT Params
+
+
+
+
+ Window function: "hann", "cheb", "kaiser"
+
+
+
+
+ we lost the target, if the psr is lower than this.
+
+
+
+
+
+ KCF is a novel tracking framework that utilizes properties of circulant matrix to enhance the processing speed.
+ * This tracking method is an implementation of @cite KCF_ECCV which is extended to KFC with color-names features(@cite KCF_CN).
+ * The original paper of KCF is available at [http://www.robots.ox.ac.uk/~joao/publications/henriques_tpami2015.pdf]
+ * as well as the matlab implementation.For more information about KCF with color-names features, please refer to
+ * [http://www.cvl.isy.liu.se/research/objrec/visualtracking/colvistrack/index.html].
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+ KCF parameters TrackerKCF::Params
+
+
+
+
+
+
+
+
+ detection confidence threshold
+
+
+
+
+ gaussian kernel bandwidth
+
+
+
+
+ regularization
+
+
+
+
+ linear interpolation factor for adaptation
+
+
+
+
+ spatial bandwidth (proportional to target)
+
+
+
+
+ compression learning rate
+
+
+
+
+ activate the resize feature to improve the processing speed
+
+
+
+
+ split the training coefficients into two matrices
+
+
+
+
+ wrap around the kernel values
+
+
+
+
+ activate the pca method to compress the features
+
+
+
+
+ threshold for the ROI size
+
+
+
+
+ feature size after compression
+
+
+
+
+ compressed descriptors of TrackerKCF::MODE
+
+
+
+
+ non-compressed descriptors of TrackerKCF::MODE
+
+
+
+
+ channel indices for multi-head camera live streams
+
+
+
+
+ Depth values in mm (CV_16UC1)
+
+
+
+
+ XYZ in meters (CV_32FC3)
+
+
+
+
+ Disparity in pixels (CV_8UC1)
+
+
+
+
+ Disparity in pixels (CV_32FC1)
+
+
+
+
+ CV_8UC1
+
+
+
+
+ Position in relative units
+
+
+
+
+ Start of the file
+
+
+
+
+ End of the file
+
+
+
+
+ Capture type of CvCapture (Camera or AVI file)
+
+
+
+
+ Captures from an AVI file
+
+
+
+
+ Captures from digital camera
+
+
+
+
+
+
+
+
+
+ Video Acceleration type
+ Used as value in #CAP_PROP_HW_ACCELERATION and #VIDEOWRITER_PROP_HW_ACCELERATION
+ note In case of FFmpeg backend, it translated to enum AVHWDeviceType (https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/hwcontext.h)
+
+
+
+
+ Do not require any specific H/W acceleration, prefer software processing.
+ Reading of this value means that special H/W accelerated handling is not added or not detected by OpenCV.
+
+
+
+
+ Prefer to use H/W acceleration. If no one supported, then fallback to software processing.
+ note H/W acceleration may require special configuration of used environment.
+ note Results in encoding scenario may differ between software and hardware accelerated encoders.
+
+
+
+
+ DirectX 11
+
+
+
+
+ VAAPI
+
+
+
+
+ libmfx (Intel MediaSDK/oneVPL)
+
+
+
+
+ Camera device types
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/videoio/include/opencv2/videoio.hpp#L89
+
+
+
+
+ Auto detect == 0
+
+
+
+
+ V4L/V4L2 capturing support
+
+
+
+
+ Same as CAP_V4L
+
+
+
+
+ IEEE 1394 drivers
+
+
+
+
+ Same value as CAP_FIREWIRE
+
+
+
+
+ Same value as CAP_FIREWIRE
+
+
+
+
+ Same value as CAP_FIREWIRE
+
+
+
+
+ Same value as CAP_FIREWIRE
+
+
+
+
+ DirectShow (via videoInput)
+
+
+
+
+ PvAPI, Prosilica GigE SDK
+
+
+
+
+ OpenNI (for Kinect)
+
+
+
+
+ OpenNI (for Asus Xtion)
+
+
+
+
+ Android - not used
+
+
+
+
+ XIMEA Camera API
+
+
+
+
+ AVFoundation framework for iOS (OS X Lion will have the same API)
+
+
+
+
+ Smartek Giganetix GigEVisionSDK
+
+
+
+
+ Microsoft Media Foundation (via videoInput)
+
+
+
+
+ Microsoft Windows Runtime using Media Foundation
+
+
+
+
+ RealSense (former Intel Perceptual Computing SDK)
+
+
+
+
+ Synonym for CAP_INTELPERC
+
+
+
+
+ OpenNI2 (for Kinect)
+
+
+
+
+ OpenNI2 (for Asus Xtion and Occipital Structure sensors)
+
+
+
+
+ gPhoto2 connection
+
+
+
+
+ GStreamer
+
+
+
+
+ Open and record video file or stream using the FFMPEG library
+
+
+
+
+ OpenCV Image Sequence (e.g. img_%02d.jpg)
+
+
+
+
+ Aravis SDK
+
+
+
+
+ Built-in OpenCV MotionJPEG codec
+
+
+
+
+ Intel MediaSDK
+
+
+
+
+ XINE engine (Linux)
+
+
+
+
+ uEye Camera API
+
+
+
+
+ Parameters of VideoCature for hardware acceleration
+ Please check the link below for current HW acceleration types support matrix
+ https://github.com/opencv/opencv/wiki/Video-IO-hardware-acceleration
+
+
+
+
+ Used as value in #CAP_PROP_HW_ACCELERATION and #VIDEOWRITER_PROP_HW_ACCELERATION
+ note In case of FFmpeg backend, it translated to enum AVHWDeviceType (https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/hwcontext.h)
+
+
+
+
+ Hardware device index (select GPU if multiple available). Device enumeration is acceleration type specific.
+
+
+
+
+ Constructor, parameter of VideoCature for hardware acceleration
+
+
+
+
+ Constructor, parameter of VideoCature for hardware acceleration
+
+ Video Acceleration type
+ Hardware device index
+
+
+
+ Get parameters of VideoCature for hardware acceleration
+
+
+
+
+ Property identifiers for CvCapture
+
+
+ https://github.com/opencv/opencv/blob/d3bc563c6e01c2bc153f23e7393322a95c7d3974/modules/videoio/include/opencv2/videoio.hpp#L133
+
+
+
+
+ Position in milliseconds from the file beginning
+
+
+
+
+ Position in frames (only for video files)
+
+
+
+
+ Position in relative units (0 - start of the file, 1 - end of the file)
+
+
+
+
+ Width of frames in the video stream (only for cameras)
+
+
+
+
+ Height of frames in the video stream (only for cameras)
+
+
+
+
+ Frame rate (only for cameras)
+
+
+
+
+ 4-character code of codec (only for cameras).
+
+
+
+
+ Number of frames in the video stream
+
+
+
+
+ The format of the Mat objects returned by retrieve()
+
+
+
+
+ A backend-specific value indicating the current capture mode
+
+
+
+
+ Brightness of image (only for cameras)
+
+
+
+
+ contrast of image (only for cameras)
+
+
+
+
+ Saturation of image (only for cameras)
+
+
+
+
+ hue of image (only for cameras)
+
+
+
+
+ Gain of the image (only for cameras)
+
+
+
+
+ Exposure (only for cameras)
+
+
+
+
+ Boolean flags indicating whether images should be converted to RGB
+
+
+
+
+
+
+
+
+
+ TOWRITE (note: only supported by DC1394 v 2.x backend currently)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ exposure control done by camera,
+ user can adjust refernce level using this feature
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Pop up video/camera filter dialog (note: only supported by DSHOW backend currently. Property value is ignored)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sample aspect ratio: num/den (num)
+
+
+
+
+ Sample aspect ratio: num/den (den)
+
+
+
+
+ Current backend (enum VideoCaptureAPIs). Read-only property
+
+
+
+
+ Video input or Channel Number (only for those cameras that support)
+
+
+
+
+ enable/ disable auto white-balance
+
+
+
+
+ white-balance color temperature
+
+
+
+
+ (read-only) codec's pixel format. 4-character code - see VideoWriter::fourcc . Subset of [AV_PIX_FMT_*](https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/raw.c) or -1 if unknown
+
+
+
+
+ (read-only) Video bitrate in kbits/s
+
+
+
+
+ (read-only) Frame rotation defined by stream meta (applicable for FFmpeg back-end only)
+
+
+
+
+ if true - rotates output frames of CvCapture considering video file's metadata (applicable for FFmpeg back-end only) (https://github.com/opencv/opencv/issues/15499)
+
+
+
+
+ (open-only) Hardware acceleration type (see VideoAccelerationType).
+ Setting supported only via params parameter in cv::VideoCapture constructor / .open() method.
+ Default value is backend-specific.
+
+
+
+
+ (open-only) Hardware device index (select GPU if multiple available). Device enumeration is acceleration type specific.
+
+
+
+
+
+
+
+
+
+ in mm
+
+
+
+
+ in mm
+
+
+
+
+ in pixels
+
+
+
+
+ flag that synchronizes the remapping depth map to image map
+ by changing depth generator's view point (if the flag is "on") or
+ sets this view point to its normal one (if the flag is "off").
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ default is 1
+
+
+
+
+ ip for anable multicast master mode. 0 for disable multicast
+
+
+
+
+ Determines how a frame is initiated
+
+
+
+
+ Horizontal sub-sampling of the image
+
+
+
+
+ Vertical sub-sampling of the image
+
+
+
+
+ Horizontal binning factor
+
+
+
+
+ Vertical binning factor
+
+
+
+
+ Pixel format
+
+
+
+
+ Change image resolution by binning or skipping.
+
+
+
+
+ Output data format.
+
+
+
+
+ Horizontal offset from the origin to the area of interest (in pixels).
+
+
+
+
+ Vertical offset from the origin to the area of interest (in pixels).
+
+
+
+
+ Defines source of trigger.
+
+
+
+
+ Generates an internal trigger. PRM_TRG_SOURCE must be set to TRG_SOFTWARE.
+
+
+
+
+ Selects general purpose input
+
+
+
+
+ Set general purpose input mode
+
+
+
+
+ Get general purpose level
+
+
+
+
+ Selects general purpose output
+
+
+
+
+ Set general purpose output mode
+
+
+
+
+ Selects camera signalling LED
+
+
+
+
+ Define camera signalling LED functionality
+
+
+
+
+ Calculates White Balance(must be called during acquisition)
+
+
+
+
+ Automatic white balance
+
+
+
+
+ Automatic exposure/gain
+
+
+
+
+ Exposure priority (0.5 - exposure 50%, gain 50%).
+
+
+
+
+ Maximum limit of exposure in AEAG procedure
+
+
+
+
+ Maximum limit of gain in AEAG procedure
+
+
+
+
+ Average intensity of output signal AEAG should achieve(in %)
+
+
+
+
+ Image capture timeout in milliseconds
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Capture only preview from liveview mode.
+
+
+
+
+ Readonly, returns (const char *).
+
+
+
+
+ Trigger, only by set. Reload camera settings.
+
+
+
+
+ Reload all settings on set.
+
+
+
+
+ Collect messages with details.
+
+
+
+
+ Readonly, returns (const char *).
+
+
+
+
+ Exposure speed. Can be readonly, depends on camera program.
+
+
+
+
+ Aperture. Can be readonly, depends on camera program.
+
+
+
+
+ Camera exposure program.
+
+
+
+
+ Enter liveview mode.
+
+
+
+
+ Parameters of VideoWriter for hardware acceleration
+ Please check the link below for current HW acceleration types support matrix
+ https://github.com/opencv/opencv/wiki/Video-IO-hardware-acceleration
+
+
+
+
+ Used as value in #CAP_PROP_HW_ACCELERATION and #VIDEOWRITER_PROP_HW_ACCELERATION
+ note In case of FFmpeg backend, it translated to enum AVHWDeviceType (https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/hwcontext.h)
+
+
+
+
+ Hardware device index (select GPU if multiple available). Device enumeration is acceleration type specific.
+
+
+
+
+ Constructor, parameter of VideoWriter for hardware acceleration
+
+
+
+
+ Constructor, parameter of VideoWriter for hardware acceleration
+
+ Video Acceleration type
+ Hardware device index
+
+
+
+ Get parameters of VideoWriter for hardware acceleration
+
+
+
+
+ VideoWriter generic properties identifier.
+
+
+
+
+ Current quality (0..100%) of the encoded video stream. Can be adjusted dynamically in some codecs.
+
+
+
+
+ (Read-only): Size of just encoded video frame. Note that the encoding order may be different from representation order.
+
+
+
+
+ Number of stripes for parallel encoding. -1 for auto detection.
+
+
+
+
+ If it is not zero, the encoder will expect and encode color frames, otherwise it will work with grayscale frames.
+
+
+
+
+ Defaults to CV_8U.
+
+
+
+
+ (open-only) Hardware acceleration type (see VideoAccelerationType).
+ Setting supported only via params parameter in cv::VideoCapture constructor / .open() method.
+ Default value is backend-specific.
+
+
+
+
+ (open-only) Hardware device index (select GPU if multiple available). Device enumeration is acceleration type specific.
+
+
+
+
+ 4-character code of codec used to compress the frames.
+
+
+
+
+ int value
+
+
+
+
+ Constructor
+
+
+
+
+
+ Create from four characters
+
+
+
+
+
+
+
+
+
+ Create from string (length == 4)
+
+
+
+
+
+
+ implicit cast to int
+
+
+
+
+
+ cast to int
+
+
+
+
+
+ implicit cast from int
+
+
+
+
+
+ cast from int
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Video capturing class
+
+
+
+
+ Capture type (File or Camera)
+
+
+
+
+ Initializes empty capture.
+ To use this, you should call Open.
+
+
+
+
+
+ Opens a camera for video capturing
+
+ id of the video capturing device to open. To open default camera using default backend just pass 0.
+ (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
+ preferred Capture API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
+
+
+
+
+ Opens a camera for video capturing with API Preference and parameters
+
+ id of the video capturing device to open. To open default camera using default backend just pass 0.
+ (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
+ preferred Capture API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
+ The `params` parameter allows to specify extra parameters encoded as pairs `(paramId_1, paramValue_1, paramId_2, paramValue_2, ...)`.
+ See cv::VideoCaptureProperties
+
+
+
+
+ Opens a camera for video capturing with API Preference and parameters
+
+ id of the video capturing device to open. To open default camera using default backend just pass 0.
+ (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
+ preferred Capture API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
+ Parameters of VideoCature for hardware acceleration
+
+
+
+
+ Opens a camera for video capturing
+
+ id of the video capturing device to open. To open default camera using default backend just pass 0.
+ (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
+ preferred Capture API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
+
+
+
+
+ Opens a video file or a capturing device or an IP video stream for video capturing with API Preference
+
+ it can be:
+ - name of video file (eg. `video.avi`)
+ - or image sequence (eg. `img_%02d.jpg`, which will read samples like `img_00.jpg, img_01.jpg, img_02.jpg, ...`)
+ - or URL of video stream (eg. `protocol://host:port/script_name?script_params|auth`).
+ Note that each video stream or IP camera feed has its own URL scheme. Please refer to the
+ documentation of source stream to know the right URL.
+ apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader
+ implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
+
+
+
+
+ Opens a video file or a capturing device or an IP video stream for video capturing with API Preference
+
+ it can be:
+ - name of video file (eg. `video.avi`)
+ - or image sequence (eg. `img_%02d.jpg`, which will read samples like `img_00.jpg, img_01.jpg, img_02.jpg, ...`)
+ - or URL of video stream (eg. `protocol://host:port/script_name?script_params|auth`).
+ Note that each video stream or IP camera feed has its own URL scheme. Please refer to the
+ documentation of source stream to know the right URL.
+ apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader
+ implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
+ The `params` parameter allows to specify extra parameters encoded as pairs `(paramId_1, paramValue_1, paramId_2, paramValue_2, ...)`.
+ See cv::VideoCaptureProperties
+
+
+
+
+ Opens a video file or a capturing device or an IP video stream for video capturing with API Preference
+
+ it can be:
+ - name of video file (eg. `video.avi`)
+ - or image sequence (eg. `img_%02d.jpg`, which will read samples like `img_00.jpg, img_01.jpg, img_02.jpg, ...`)
+ - or URL of video stream (eg. `protocol://host:port/script_name?script_params|auth`).
+ Note that each video stream or IP camera feed has its own URL scheme. Please refer to the
+ documentation of source stream to know the right URL.
+ apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader
+ implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
+ Parameters of VideoCature for hardware acceleration
+
+
+
+
+ Opens a video file or a capturing device or an IP video stream for video capturing with API Preference
+
+ it can be:
+ - name of video file (eg. `video.avi`)
+ - or image sequence (eg. `img_%02d.jpg`, which will read samples like `img_00.jpg, img_01.jpg, img_02.jpg, ...`)
+ - or URL of video stream (eg. `protocol://host:port/script_name?script_params|auth`).
+ Note that each video stream or IP camera feed has its own URL scheme. Please refer to the
+ documentation of source stream to know the right URL.
+ apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader
+ implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
+
+
+
+
+ Initializes from native pointer
+
+ CvCapture*
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Gets the capture type (File or Camera)
+
+
+
+
+ Gets or sets film current position in milliseconds or video capture timestamp
+
+
+
+
+ Gets or sets 0-based index of the frame to be decoded/captured next
+
+
+
+
+ Gets or sets relative position of video file
+
+
+
+
+ Gets or sets width of frames in the video stream
+
+
+
+
+ Gets or sets height of frames in the video stream
+
+
+
+
+ Gets or sets frame rate
+
+
+
+
+ Gets or sets 4-character code of codec
+
+
+
+
+ Gets number of frames in video file
+
+
+
+
+ Gets or sets brightness of image (only for cameras)
+
+
+
+
+ Gets or sets contrast of image (only for cameras)
+
+
+
+
+ Gets or sets saturation of image (only for cameras)
+
+
+
+
+ Gets or sets hue of image (only for cameras)
+
+
+
+
+ The format of the Mat objects returned by retrieve()
+
+
+
+
+ A backend-specific value indicating the current capture mode
+
+
+
+
+ Gain of the image (only for cameras)
+
+
+
+
+ Exposure (only for cameras)
+
+
+
+
+ Boolean flags indicating whether images should be converted to RGB
+
+
+
+
+
+
+
+
+
+ TOWRITE (note: only supported by DC1394 v 2.x backend currently)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ exposure control done by camera,
+ user can adjust refernce level using this feature
+ [CV_CAP_PROP_AUTO_EXPOSURE]
+
+
+
+
+
+
+
+
+
+
+ [CV_CAP_PROP_TEMPERATURE]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [CV_CAP_PROP_OPENNI_OUTPUT_MODE]
+
+
+
+
+ in mm
+ [CV_CAP_PROP_OPENNI_FRAME_MAX_DEPTH]
+
+
+
+
+ in mm
+ [CV_CAP_PROP_OPENNI_BASELINE]
+
+
+
+
+ in pixels
+ [CV_CAP_PROP_OPENNI_FOCAL_LENGTH]
+
+
+
+
+ flag that synchronizes the remapping depth map to image map
+ by changing depth generator's view point (if the flag is "on") or
+ sets this view point to its normal one (if the flag is "off").
+ [CV_CAP_PROP_OPENNI_REGISTRATION]
+
+
+
+
+
+ [CV_CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE]
+
+
+
+
+
+ [CV_CAP_OPENNI_DEPTH_GENERATOR_BASELINE]
+
+
+
+
+
+ [CV_CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH]
+
+
+
+
+
+ [CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON]
+
+
+
+
+ default is 1
+ [CV_CAP_GSTREAMER_QUEUE_LENGTH]
+
+
+
+
+ ip for anable multicast master mode. 0 for disable multicast
+ [CV_CAP_PROP_PVAPI_MULTICASTIP]
+
+
+
+
+ Change image resolution by binning or skipping.
+ [CV_CAP_PROP_XI_DOWNSAMPLING]
+
+
+
+
+ Output data format.
+ [CV_CAP_PROP_XI_DATA_FORMAT]
+
+
+
+
+ Horizontal offset from the origin to the area of interest (in pixels).
+ [CV_CAP_PROP_XI_OFFSET_X]
+
+
+
+
+ Vertical offset from the origin to the area of interest (in pixels).
+ [CV_CAP_PROP_XI_OFFSET_Y]
+
+
+
+
+ Defines source of trigger.
+ [CV_CAP_PROP_XI_TRG_SOURCE]
+
+
+
+
+ Generates an internal trigger. PRM_TRG_SOURCE must be set to TRG_SOFTWARE.
+ [CV_CAP_PROP_XI_TRG_SOFTWARE]
+
+
+
+
+ Selects general purpose input
+ [CV_CAP_PROP_XI_GPI_SELECTOR]
+
+
+
+
+ Set general purpose input mode
+ [CV_CAP_PROP_XI_GPI_MODE]
+
+
+
+
+ Get general purpose level
+ [CV_CAP_PROP_XI_GPI_LEVEL]
+
+
+
+
+ Selects general purpose output
+ [CV_CAP_PROP_XI_GPO_SELECTOR]
+
+
+
+
+ Set general purpose output mode
+ [CV_CAP_PROP_XI_GPO_MODE]
+
+
+
+
+ Selects camera signalling LED
+ [CV_CAP_PROP_XI_LED_SELECTOR]
+
+
+
+
+ Define camera signalling LED functionality
+ [CV_CAP_PROP_XI_LED_MODE]
+
+
+
+
+ Calculates White Balance(must be called during acquisition)
+ [CV_CAP_PROP_XI_MANUAL_WB]
+
+
+
+
+ Automatic white balance
+ [CV_CAP_PROP_XI_AUTO_WB]
+
+
+
+
+ Automatic exposure/gain
+ [CV_CAP_PROP_XI_AEAG]
+
+
+
+
+ Exposure priority (0.5 - exposure 50%, gain 50%).
+ [CV_CAP_PROP_XI_EXP_PRIORITY]
+
+
+
+
+ Maximum limit of exposure in AEAG procedure
+ [CV_CAP_PROP_XI_AE_MAX_LIMIT]
+
+
+
+
+ Maximum limit of gain in AEAG procedure
+ [CV_CAP_PROP_XI_AG_MAX_LIMIT]
+
+
+
+
+ default is 1
+ [CV_CAP_PROP_XI_AEAG_LEVEL]
+
+
+
+
+ default is 1
+ [CV_CAP_PROP_XI_TIMEOUT]
+
+
+
+
+ Opens a video file or a capturing device or an IP video stream for video capturing.
+
+ it can be:
+ - name of video file (eg. `video.avi`)
+ - or image sequence (eg. `img_%02d.jpg`, which will read samples like `img_00.jpg, img_01.jpg, img_02.jpg, ...`)
+ - or URL of video stream (eg. `protocol://host:port/script_name?script_params|auth`).
+ Note that each video stream or IP camera feed has its own URL scheme. Please refer to the
+ documentation of source stream to know the right URL.
+ apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader
+ implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
+ `true` if the file has been successfully opened
+
+
+
+ Opens a camera for video capturing
+
+ id of the video capturing device to open. To open default camera using default backend just pass 0.
+ (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
+ preferred Capture API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
+ `true` if the file has been successfully opened
+
+
+
+ Returns true if video capturing has been initialized already.
+
+
+
+
+
+ Closes video file or capturing device.
+
+
+
+
+
+ Grabs the next frame from video file or capturing device.
+
+ The method/function grabs the next frame from video file or camera and returns true (non-zero) in the case of success.
+
+ The primary use of the function is in multi-camera environments, especially when the cameras do not
+ have hardware synchronization. That is, you call VideoCapture::grab() for each camera and after that
+ call the slower method VideoCapture::retrieve() to decode and get frame from each camera. This way
+ the overhead on demosaicing or motion jpeg decompression etc. is eliminated and the retrieved frames
+ from different cameras will be closer in time.
+
+ Also, when a connected camera is multi-head (for example, a stereo camera or a Kinect device), the
+ correct way of retrieving data from it is to call VideoCapture::grab() first and then call
+ VideoCapture::retrieve() one or more times with different values of the channel parameter.
+
+ `true` (non-zero) in the case of success.
+
+
+
+ Decodes and returns the grabbed video frame.
+
+ The method decodes and returns the just grabbed frame. If no frames has been grabbed
+ (camera has been disconnected, or there are no more frames in video file), the method returns false
+ and the function returns an empty image (with %cv::Mat, test it with Mat::empty()).
+
+ the video frame is returned here. If no frames has been grabbed the image will be empty.
+ it could be a frame index or a driver specific flag
+
+
+
+
+ Decodes and returns the grabbed video frame.
+
+ The method decodes and returns the just grabbed frame. If no frames has been grabbed
+ (camera has been disconnected, or there are no more frames in video file), the method returns false
+ and the function returns an empty image (with %cv::Mat, test it with Mat::empty()).
+
+ the video frame is returned here. If no frames has been grabbed the image will be empty.
+ non-zero streamIdx is only valid for multi-head camera live streams
+
+
+
+
+ Decodes and returns the grabbed video frame.
+
+ The method decodes and returns the just grabbed frame. If no frames has been grabbed
+ (camera has been disconnected, or there are no more frames in video file), the method returns false
+ and the function returns an empty image (with %cv::Mat, test it with Mat::empty()).
+
+ the video frame is returned here. If no frames has been grabbed the image will be empty.
+ it could be a frame index or a driver specific flag
+
+
+
+
+ Decodes and returns the grabbed video frame.
+
+ The method decodes and returns the just grabbed frame. If no frames has been grabbed
+ (camera has been disconnected, or there are no more frames in video file), the method returns false
+ and the function returns an empty image (with %cv::Mat, test it with Mat::empty()).
+
+ the video frame is returned here. If no frames has been grabbed the image will be empty.
+ non-zero streamIdx is only valid for multi-head camera live streams
+
+
+
+
+ Decodes and returns the grabbed video frame.
+
+ The method decodes and returns the just grabbed frame. If no frames has been grabbed
+ (camera has been disconnected, or there are no more frames in video file), the method returns false
+ and the function returns an empty image (with %cv::Mat, test it with Mat::empty()).
+
+ the video frame is returned here. If no frames has been grabbed the image will be empty.
+
+
+
+ Grabs, decodes and returns the next video frame.
+
+ The method/function combines VideoCapture::grab() and VideoCapture::retrieve() in one call. This is the
+ most convenient method for reading video files or capturing data from decode and returns the just
+ grabbed frame. If no frames has been grabbed (camera has been disconnected, or there are no more
+ frames in video file), the method returns false and the function returns empty image (with %cv::Mat, test it with Mat::empty()).
+
+ `false` if no frames has been grabbed
+
+
+
+ Grabs, decodes and returns the next video frame.
+
+ The method/function combines VideoCapture::grab() and VideoCapture::retrieve() in one call. This is the
+ most convenient method for reading video files or capturing data from decode and returns the just
+ grabbed frame. If no frames has been grabbed (camera has been disconnected, or there are no more
+ frames in video file), the method returns false and the function returns empty image (with %cv::Mat, test it with Mat::empty()).
+
+ `false` if no frames has been grabbed
+
+
+
+ Sets a property in the VideoCapture.
+
+ Property identifier from cv::VideoCaptureProperties (eg. cv::CAP_PROP_POS_MSEC, cv::CAP_PROP_POS_FRAMES, ...)
+ or one from @ref videoio_flags_others
+ Value of the property.
+ `true` if the property is supported by backend used by the VideoCapture instance.
+
+
+
+ Sets a property in the VideoCapture.
+
+ Property identifier from cv::VideoCaptureProperties (eg. cv::CAP_PROP_POS_MSEC, cv::CAP_PROP_POS_FRAMES, ...)
+ or one from @ref videoio_flags_others
+ Value of the property.
+ `true` if the property is supported by backend used by the VideoCapture instance.
+
+
+
+ Returns the specified VideoCapture property
+
+ Property identifier from cv::VideoCaptureProperties (eg. cv::CAP_PROP_POS_MSEC, cv::CAP_PROP_POS_FRAMES, ...)
+ or one from @ref videoio_flags_others
+ Value for the specified property. Value 0 is returned when querying a property that is not supported by the backend used by the VideoCapture instance.
+
+
+
+ Returns the specified VideoCapture property
+
+ Property identifier from cv::VideoCaptureProperties (eg. cv::CAP_PROP_POS_MSEC, cv::CAP_PROP_POS_FRAMES, ...)
+ or one from @ref videoio_flags_others
+ Value for the specified property. Value 0 is returned when querying a property that is not supported by the backend used by the VideoCapture instance.
+
+
+
+ Returns used backend API name.
+ Note that stream should be opened.
+
+
+
+
+
+ Switches exceptions mode.
+ methods raise exceptions if not successful instead of returning an error code
+
+
+
+
+
+ query if exception mode is active
+
+
+
+
+
+ Wait for ready frames from VideoCapture.
+
+ The primary use of the function is in multi-camera environments.
+ The method fills the ready state vector, grabs video frame, if camera is ready.
+
+ After this call use VideoCapture::retrieve() to decode and fetch frame data.
+
+ input video streams
+ stream indexes with grabbed frames (ready to use .retrieve() to fetch actual frame)
+ number of nanoseconds (0 - infinite)
+ Exception %Exception on stream errors (check .isOpened()
+ to filter out malformed streams) or VideoCapture type is not supported
+ `true if streamReady is not empty
+
+
+
+ For accessing each byte of Int32 value
+
+
+
+
+ AVI Video File Writer
+
+
+
+
+
+
+
+
+
+ Creates video writer structure.
+
+ Name of the output video file.
+ 4-character code of codec used to compress the frames. For example, "PIM1" is MPEG-1 codec, "MJPG" is motion-jpeg codec etc.
+ Under Win32 it is possible to pass null in order to choose compression method and additional compression parameters from dialog.
+ Frame rate of the created video stream.
+ Size of video frames.
+ If it is true, the encoder will expect and encode color frames, otherwise it will work with grayscale frames (the flag is currently supported on Windows only).
+
+
+
+
+ Creates video writer structure.
+
+ Name of the output video file.
+ allows to specify API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_GSTREAMER.
+ 4-character code of codec used to compress the frames. For example, "PIM1" is MPEG-1 codec, "MJPG" is motion-jpeg codec etc.
+ Under Win32 it is possible to pass null in order to choose compression method and additional compression parameters from dialog.
+ Frame rate of the created video stream.
+ Size of video frames.
+ If it is true, the encoder will expect and encode color frames, otherwise it will work with grayscale frames (the flag is currently supported on Windows only).
+
+
+
+
+ Creates video writer structure.
+
+ Name of the output video file.
+ 4-character code of codec used to compress the frames. For example, "PIM1" is MPEG-1 codec, "MJPG" is motion-jpeg codec etc.
+ Under Win32 it is possible to pass null in order to choose compression method and additional compression parameters from dialog.
+ Frame rate of the created video stream.
+ Size of video frames.
+ The `params` parameter allows to specify extra encoder parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .)
+ see cv::VideoWriterProperties
+
+
+
+
+ Creates video writer structure.
+
+ Name of the output video file.
+ 4-character code of codec used to compress the frames. For example, "PIM1" is MPEG-1 codec, "MJPG" is motion-jpeg codec etc.
+ Under Win32 it is possible to pass null in order to choose compression method and additional compression parameters from dialog.
+ Frame rate of the created video stream.
+ Size of video frames.
+ Parameters of VideoWriter for hardware acceleration
+
+
+
+
+ Creates video writer structure.
+
+ Name of the output video file.
+ allows to specify API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_GSTREAMER.
+ 4-character code of codec used to compress the frames. For example, "PIM1" is MPEG-1 codec, "MJPG" is motion-jpeg codec etc.
+ Under Win32 it is possible to pass null in order to choose compression method and additional compression parameters from dialog.
+ Frame rate of the created video stream.
+ Size of video frames.
+ The `params` parameter allows to specify extra encoder parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .)
+ see cv::VideoWriterProperties
+
+
+
+
+ Creates video writer structure.
+
+ Name of the output video file.
+ allows to specify API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_GSTREAMER.
+ 4-character code of codec used to compress the frames. For example, "PIM1" is MPEG-1 codec, "MJPG" is motion-jpeg codec etc.
+ Under Win32 it is possible to pass null in order to choose compression method and additional compression parameters from dialog.
+ Frame rate of the created video stream.
+ Size of video frames.
+ Parameters of VideoWriter for hardware acceleration
+
+
+
+
+ Initializes from native pointer
+
+ CvVideoWriter*
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ Get output video file name
+
+
+
+
+ Frames per second of the output video
+
+
+
+
+ Get size of frame image
+
+
+
+
+ Get whether output frames is color or not
+
+
+
+
+ Creates video writer structure.
+
+ Name of the output video file.
+ 4-character code of codec used to compress the frames. For example, "PIM1" is MPEG-1 codec, "MJPG" is motion-jpeg codec etc.
+ Under Win32 it is possible to pass null in order to choose compression method and additional compression parameters from dialog.
+ Frame rate of the created video stream.
+ Size of video frames.
+ If it is true, the encoder will expect and encode color frames, otherwise it will work with grayscale frames (the flag is currently supported on Windows only).
+
+
+
+
+ Creates video writer structure.
+
+ Name of the output video file.
+ allows to specify API backends to use. Can be used to enforce a specific reader implementation
+ if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_GSTREAMER.
+ 4-character code of codec used to compress the frames. For example, "PIM1" is MPEG-1 codec, "MJPG" is motion-jpeg codec etc.
+ Under Win32 it is possible to pass null in order to choose compression method and additional compression parameters from dialog.
+ Frame rate of the created video stream.
+ Size of video frames.
+ If it is true, the encoder will expect and encode color frames, otherwise it will work with grayscale frames (the flag is currently supported on Windows only).
+
+
+
+
+ Returns true if video writer has been successfully initialized.
+
+
+
+
+
+
+
+
+
+
+
+ Writes/appends one frame to video file.
+
+ the written frame.
+
+
+
+
+ Sets a property in the VideoWriter.
+
+ Property identifier from cv::VideoWriterProperties (eg. cv::VIDEOWRITER_PROP_QUALITY) or one of @ref videoio_flags_others
+ Value of the property.
+ `true` if the property is supported by the backend used by the VideoWriter instance.
+
+
+
+ Returns the specified VideoWriter property
+
+ Property identifier from cv::VideoWriterProperties (eg. cv::VIDEOWRITER_PROP_QUALITY) or one of @ref videoio_flags_others
+ Value for the specified property. Value 0 is returned when querying a property that is not supported by the backend used by the VideoWriter instance.
+
+
+
+ Concatenates 4 chars to a fourcc code.
+ This static method constructs the fourcc code of the codec to be used in
+ the constructor VideoWriter::VideoWriter or VideoWriter::open.
+
+
+
+
+ Concatenates 4 chars to a fourcc code.
+ This static method constructs the fourcc code of the codec to be used in
+ the constructor VideoWriter::VideoWriter or VideoWriter::open.
+
+
+
+
+
+
+ Returns used backend API name.
+ Note that stream should be opened.
+
+
+
+
+
+ The Base Class for Background/Foreground Segmentation.
+ The class is only used to define the common interface for
+ the whole family of background/foreground segmentation algorithms.
+
+
+
+
+ the update operator that takes the next video frame and returns the current foreground mask as 8-bit binary image.
+
+
+
+
+
+
+
+ computes a background image
+
+
+
+
+
+ K nearest neigbours algorithm
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+ Creates KNN Background Subtractor
+
+ Length of the history.
+ Threshold on the squared distance between the pixel and the sample to decide
+ whether a pixel is close to that sample. This parameter does not affect the background update.
+ If true, the algorithm will detect shadows and mark them. It decreases the
+ speed a bit, so if you do not need this feature, set the parameter to false.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Gets or sets the number of last frames that affect the background model.
+
+
+
+
+ Gets or sets the number of data samples in the background model
+
+
+
+
+ Gets or sets the threshold on the squared distance between the pixel and the sample.
+ The threshold on the squared distance between the pixel and the sample to decide whether a pixel is close to a data sample.
+
+
+
+
+ Returns the number of neighbours, the k in the kNN.
+ K is the number of samples that need to be within dist2Threshold in order to decide that that
+ pixel is matching the kNN background model.
+
+
+
+
+ Returns the shadow detection flag.
+ If true, the algorithm detects shadows and marks them. See createBackgroundSubtractorKNN for details.
+
+
+
+
+ Gets or sets the shadow value.
+ Shadow value is the value used to mark shadows in the foreground mask. Default value is 127.
+ Value 0 in the mask always means background, 255 means foreground.
+
+
+
+
+ Gets or sets the shadow threshold.
+ A shadow is detected if pixel is a darker version of the background. The shadow threshold (Tau in
+ the paper) is a threshold defining how much darker the shadow can be. Tau= 0.5 means that if a pixel
+ is more than twice darker then it is not shadow. See Prati, Mikic, Trivedi and Cucchiara,
+ *Detecting Moving Shadows...*, IEEE PAMI,2003.
+
+
+
+
+ The Base Class for Background/Foreground Segmentation.
+ The class is only used to define the common interface for
+ the whole family of background/foreground segmentation algorithms.
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+ Creates MOG2 Background Subtractor.
+
+ Length of the history.
+ Threshold on the squared Mahalanobis distance between the pixel and the model
+ to decide whether a pixel is well described by the background model. This parameter does not affect the background update.
+ If true, the algorithm will detect shadows and mark them. It decreases the speed a bit,
+ so if you do not need this feature, set the parameter to false.
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Gets or sets the number of last frames that affect the background model.
+
+
+
+
+ Gets or sets the number of gaussian components in the background model.
+
+
+
+
+ Gets or sets the "background ratio" parameter of the algorithm.
+ If a foreground pixel keeps semi-constant value for about backgroundRatio\*history frames, it's
+ considered background and added to the model as a center of a new component. It corresponds to TB
+ parameter in the paper.
+
+
+
+
+ Gets or sets the variance threshold for the pixel-model match.
+ The main threshold on the squared Mahalanobis distance to decide if the sample is well described by
+ the background model or not. Related to Cthr from the paper.
+
+
+
+
+ Gets or sets the variance threshold for the pixel-model match used for new mixture component generation.
+ Threshold for the squared Mahalanobis distance that helps decide when a sample is close to the
+ existing components (corresponds to Tg in the paper). If a pixel is not close to any component, it
+ is considered foreground or added as a new component. 3 sigma =\> Tg=3\*3=9 is default. A smaller Tg
+ value generates more components. A higher Tg value may result in a small number of components but they can grow too large.
+
+
+
+
+ Gets or sets the initial variance of each gaussian component.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets or sets the complexity reduction threshold.
+ This parameter defines the number of samples needed to accept to prove the component exists. CT=0.05
+ is a default value for all the samples. By setting CT=0 you get an algorithm very similar to the standard Stauffer&Grimson algorithm.
+
+
+
+
+ Gets or sets the shadow detection flag.
+ If true, the algorithm detects shadows and marks them. See createBackgroundSubtractorKNN for details.
+
+
+
+
+ Gets or sets the shadow value.
+ Shadow value is the value used to mark shadows in the foreground mask. Default value is 127.
+ Value 0 in the mask always means background, 255 means foreground.
+
+
+
+
+ Gets or sets the shadow threshold.
+ A shadow is detected if pixel is a darker version of the background. The shadow threshold (Tau in
+ the paper) is a threshold defining how much darker the shadow can be. Tau= 0.5 means that if a pixel
+ is more than twice darker then it is not shadow. See Prati, Mikic, Trivedi and Cucchiara,
+ *Detecting Moving Shadows...*, IEEE PAMI,2003.
+
+
+
+
+ [findTransformECC] specifying the type of motion
+
+
+
+
+ sets a translational motion model; warpMatrix is \f$2\times 3\f$ with
+ the first \f$2\times 2\f$ part being the unity matrix and the rest two parameters being estimated.
+
+
+
+
+ sets a Euclidean (rigid) transformation as motion model; three parameters are estimated; warpMatrix is \f$2\times 3\f$.
+
+
+
+
+ sets an affine motion model (DEFAULT); six parameters are estimated; warpMatrix is \f$2\times 3\f$.
+
+
+
+
+ sets a homography as a motion model; eight parameters are estimated;\`warpMatrix\` is \f$3\times 3\f$.
+
+
+
+
+ cv::calcOpticalFlowPyrLK flags
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Kalman filter.
+ The class implements standard Kalman filter \url{http://en.wikipedia.org/wiki/Kalman_filter}.
+ However, you can modify KalmanFilter::transitionMatrix, KalmanFilter::controlMatrix and
+ KalmanFilter::measurementMatrix to get the extended Kalman filter functionality.
+
+
+
+
+ the default constructor
+
+
+
+
+ the full constructor taking the dimensionality of the state, of the measurement and of the control vector
+
+
+
+
+
+
+
+
+ Releases unmanaged resources
+
+
+
+
+ predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k)
+
+
+
+
+ corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k))
+
+
+
+
+ state transition matrix (A)
+
+
+
+
+ control matrix (B) (not used if there is no control)
+
+
+
+
+ measurement matrix (H)
+
+
+
+
+ process noise covariance matrix (Q)
+
+
+
+
+ measurement noise covariance matrix (R)
+
+
+
+
+ priori error estimate covariance matrix (P'(k)): P'(k)=A*P(k-1)*At + Q)*/
+
+
+
+
+ Kalman gain matrix (K(k)): K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R)
+
+
+
+
+ posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k)
+
+
+
+
+ re-initializes Kalman filter. The previous content is destroyed.
+
+
+
+
+
+
+
+
+ computes predicted state
+
+
+
+
+
+
+ updates the predicted state from the measurement
+
+
+
+
+
+
+ Base abstract class for the long-term tracker
+
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Initialize the tracker with a know bounding box that surrounding the target
+
+ The initial frame
+ The initial bounding box
+
+
+
+
+ Update the tracker, find the new most likely bounding box for the target
+
+ The current frame
+ The bounding box that represent the new target location, if true was returned, not modified otherwise
+ True means that target was located and false means that tracker cannot locate target in
+ current frame.Note, that latter *does not* imply that tracker has failed, maybe target is indeed
+ missing from the frame (say, out of sight)
+
+
+
+
+ GOTURN (@cite GOTURN) is kind of trackers based on Convolutional Neural Networks (CNN).
+
+
+ * While taking all advantages of CNN trackers, GOTURN is much faster due to offline training without online fine-tuning nature.
+ * GOTURN tracker addresses the problem of single target tracking: given a bounding box label of an object in the first frame of the video,
+
+ * we track that object through the rest of the video.NOTE: Current method of GOTURN does not handle occlusions; however, it is fairly
+ * robust to viewpoint changes, lighting changes, and deformations.
+
+ * Inputs of GOTURN are two RGB patches representing Target and Search patches resized to 227x227.
+ * Outputs of GOTURN are predicted bounding box coordinates, relative to Search patch coordinate system, in format X1, Y1, X2, Y2.
+ * Original paper is here: [http://davheld.github.io/GOTURN/GOTURN.pdf]
+ * As long as original authors implementation: [https://github.com/davheld/GOTURN#train-the-tracker]
+ * Implementation of training algorithm is placed in separately here due to 3d-party dependencies:
+ * [https://github.com/Auron-X/GOTURN_Training_Toolkit]
+ * GOTURN architecture goturn.prototxt and trained model goturn.caffemodel are accessible on opencv_extra GitHub repository.
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+ GOTURN parameters
+
+
+
+
+
+
+
+
+
+
+ The MIL algorithm trains a classifier in an online manner to separate the object from the background.
+ Multiple Instance Learning avoids the drift problem for a robust tracking.The implementation is based on @cite MIL.
+ Original code can be found here [http://vision.ucsd.edu/~bbabenko/project_miltrack.shtml]
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ Constructor
+
+ MIL parameters
+
+
+
+
+
+
+
+
+ radius for gathering positive instances during init
+
+
+
+
+ # negative samples to use during init
+
+
+
+
+ size of search window
+
+
+
+
+ radius for gathering positive instances during tracking
+
+
+
+
+ # positive samples to use during tracking
+
+
+
+
+ # negative samples to use during tracking
+
+
+
+
+ # features
+
+
+
+
+ WeChat QRCode includes two CNN-based models:
+ A object detection model and a super resolution model.
+ Object detection model is applied to detect QRCode with the bounding box.
+ super resolution model is applied to zoom in QRCode when it is small.
+
+
+
+
+ Initialize the WeChatQRCode.
+ It includes two models, which are packaged with caffe format.
+ Therefore, there are prototxt and caffe models (In total, four paramenters).
+
+ prototxt file path for the detector
+ caffe model file path for the detector
+ prototxt file path for the super resolution model
+ caffe file path for the super resolution model
+
+
+
+
+
+ Both detects and decodes QR code.
+ To simplify the usage, there is a only API: detectAndDecode
+
+ supports grayscale or color(BGR) image.
+ optional output array of vertices of the found QR code quadrangle.Will be empty if not found.
+ list of decoded string.
+
+
+
+
+
+
+ BRIEF Descriptor
+
+
+
+
+ cv::Ptr<T>
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+ bytes is a length of descriptor in bytes. It can be equal 16, 32 or 64 bytes.
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ FREAK implementation
+
+
+
+
+
+
+
+
+
+ Constructor
+
+ enable orientation normalization
+ enable scale normalization
+ scaling of the description pattern
+ number of octaves covered by the detected keypoints
+ (optional) user defined selected pairs
+
+
+
+ Releases managed resources
+
+
+
+
+ LATCH Descriptor.
+
+ latch Class for computing the LATCH descriptor.
+ If you find this code useful, please add a reference to the following paper in your work:
+ Gil Levi and Tal Hassner, "LATCH: Learned Arrangements of Three Patch Codes", arXiv preprint arXiv:1501.03719, 15 Jan. 2015.
+
+ Note: a complete example can be found under /samples/cpp/tutorial_code/xfeatures2D/latch_match.cpp
+
+
+
+
+
+
+
+
+
+ Constructor
+
+ the size of the descriptor - can be 64, 32, 16, 8, 4, 2 or 1
+ whether or not the descriptor should compansate for orientation changes.
+ the size of half of the mini-patches size. For example, if we would like to compare triplets of patches of size 7x7x
+ then the half_ssd_size should be (7-1)/2 = 3.
+ sigma value for GaussianBlur smoothing of the source image. Source image will be used without smoothing in case sigma value is 0.
+ Note: the descriptor can be coupled with any keypoint extractor. The only demand is that if you use set rotationInvariance = True then
+ you will have to use an extractor which estimates the patch orientation (in degrees). Examples for such extractors are ORB and SIFT.
+
+
+
+ Releases managed resources
+
+
+
+
+ Class implementing the locally uniform comparison image descriptor, described in @cite LUCID.
+
+ An image descriptor that can be computed very fast, while being
+ about as robust as, for example, SURF or BRIEF.
+ @note It requires a color image as input.
+
+
+
+
+
+
+
+
+
+ Constructor
+
+ kernel for descriptor construction, where 1=3x3, 2=5x5, 3=7x7 and so forth
+ kernel for blurring image prior to descriptor construction, where 1=3x3, 2=5x5, 3=7x7 and so forth
+
+
+
+ Releases managed resources
+
+
+
+
+ The "Star" Detector
+
+
+
+
+
+
+
+
+
+ Constructor
+
+
+
+
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Class for extracting Speeded Up Robust Features from an image.
+
+
+
+
+ Creates instance by raw pointer cv::SURF*
+
+
+
+
+ The SURF constructor.
+
+ Only features with keypoint.hessian larger than that are extracted.
+ The number of a gaussian pyramid octaves that the detector uses. It is set to 4 by default.
+ If you want to get very large features, use the larger value. If you want just small features, decrease it.
+ The number of images within each octave of a gaussian pyramid. It is set to 2 by default.
+ false means basic descriptors (64 elements each), true means extended descriptors (128 elements each)
+ false means that detector computes orientation of each feature.
+ true means that the orientation is not computed (which is much, much faster).
+
+
+
+ Releases managed resources
+
+
+
+
+ Threshold for the keypoint detector. Only features, whose hessian is larger than hessianThreshold
+ are retained by the detector. Therefore, the larger the value, the less keypoints you will get.
+ A good default value could be from 300 to 500, depending from the image contrast.
+
+
+
+
+ The number of a gaussian pyramid octaves that the detector uses. It is set to 4 by default.
+ If you want to get very large features, use the larger value. If you want just small features, decrease it.
+
+
+
+
+ The number of images within each octave of a gaussian pyramid. It is set to 2 by default.
+
+
+
+
+ false means that the basic descriptors (64 elements each) shall be computed.
+ true means that the extended descriptors (128 elements each) shall be computed
+
+
+
+
+ false means that detector computes orientation of each feature.
+ true means that the orientation is not computed (which is much, much faster).
+ For example, if you match images from a stereo pair, or do image stitching, the matched features
+ likely have very similar angles, and you can speed up feature extraction by setting upright=true.
+
+
+
+
+ cv::ximgproc functions
+
+
+
+
+ Strategy for the selective search segmentation algorithm.
+
+
+
+
+ Create a new color-based strategy
+
+
+
+
+
+ Create a new size-based strategy
+
+
+
+
+
+ Create a new size-based strategy
+
+
+
+
+
+ Create a new fill-based strategy
+
+
+
+
+
+ Create a new multiple strategy
+
+
+
+
+
+ Create a new multiple strategy and set one subtrategy
+
+ The first strategy
+
+
+
+
+ Create a new multiple strategy and set one subtrategy
+
+ The first strategy
+ The second strategy
+
+
+
+
+ Create a new multiple strategy and set one subtrategy
+
+ The first strategy
+ The second strategy
+ The third strategy
+
+
+
+
+ Create a new multiple strategy and set one subtrategy
+
+ The first strategy
+ The second strategy
+ The third strategy
+ The forth strategy
+
+
+
+
+ run_length_morphology.hpp
+
+
+
+
+ Applies a fixed-level threshold to each array element.
+
+ input array (single-channel).
+ resulting run length encoded image.
+ threshold value.
+ thresholding type (only cv::THRESH_BINARY and cv::THRESH_BINARY_INV are supported)
+
+
+
+ Dilates an run-length encoded binary image by using a specific structuring element.
+
+ input image
+ result
+ kernel
+ position of the anchor within the element; default value (0, 0) is usually the element center.
+
+
+
+ Erodes an run-length encoded binary image by using a specific structuring element.
+
+ input image
+ result
+ kernel
+ indicates whether pixel outside the image boundary are assumed to be on
+ (True: works in the same way as the default of cv::erode, False: is a little faster)
+ position of the anchor within the element; default value (0, 0)
+ is usually the element center.
+
+
+
+ Returns a run length encoded structuring element of the specified size and shape.
+
+ Element shape that can be one of cv::MorphShapes
+ Size of the structuring element.
+
+
+
+
+ Paint run length encoded binary image into an image.
+
+ image to paint into (currently only single channel images).
+ run length encoded image
+ all foreground pixel of the binary image are set to this value
+
+
+
+ Check whether a custom made structuring element can be used with run length morphological operations.
+ (It must consist of a continuous array of single runs per row)
+
+
+
+
+
+
+ Creates a run-length encoded image from a vector of runs (column begin, column end, row)
+
+ vector of runs
+ result
+ image size (to be used if an "on" boundary should be used in erosion, using the default
+ means that the size is computed from the extension of the input)
+
+
+
+ Applies a morphological operation to a run-length encoded binary image.
+
+ input image
+ result
+ all operations supported by cv::morphologyEx (except cv::MORPH_HITMISS)
+ kernel
+ indicates whether pixel outside the image boundary are assumed
+ to be on for erosion operations (True: works in the same way as the default of cv::erode, False: is a little faster)
+ position of the anchor within the element; default value (0, 0) is usually the element center.
+
+
+
+ Applies Niblack thresholding to input image.
+
+ T(x, y)\)}{0}{otherwise}\f]
+ - ** THRESH_BINARY_INV**
+ \f[dst(x, y) = \fork{0}{if \(src(x, y) > T(x, y)\)}{\texttt{maxValue}}{otherwise}\f]
+ where \f$T(x, y)\f$ is a threshold calculated individually for each pixel.
+ The threshold value \f$T(x, y)\f$ is the mean minus \f$ delta \f$ times standard deviation
+ of \f$\texttt{blockSize} \times\texttt{blockSize}\f$ neighborhood of \f$(x, y)\f$.
+ The function can't process the image in-place.
+ ]]>
+ Source 8-bit single-channel image.
+ Destination image of the same size and the same type as src.
+ Non-zero value assigned to the pixels for which the condition is satisfied,
+ used with the THRESH_BINARY and THRESH_BINARY_INV thresholding types.
+ Thresholding type, see cv::ThresholdTypes.
+ Size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, and so on.
+ The user-adjustable parameter used by Niblack and inspired techniques.For Niblack,
+ this is normally a value between 0 and 1 that is multiplied with the standard deviation and subtracted from the mean.
+ Binarization method to use. By default, Niblack's technique is used.
+ Other techniques can be specified, see cv::ximgproc::LocalBinarizationMethods.
+ The user-adjustable parameter used by Sauvola's technique. This is the dynamic range of standard deviation.
+
+
+
+ Applies a binary blob thinning operation, to achieve a skeletization of the input image.
+ The function transforms a binary blob image into a skeletized form using the technique of Zhang-Suen.
+
+ Source 8-bit single-channel image, containing binary blobs, with blobs having 255 pixel values.
+ Destination image of the same size and the same type as src. The function can work in-place.
+ Value that defines which thinning algorithm should be used.
+
+
+
+ Performs anisotropic diffusian on an image.
+ The function applies Perona-Malik anisotropic diffusion to an image.
+
+ Grayscale Source image.
+ Destination image of the same size and the same number of channels as src.
+ The amount of time to step forward by on each iteration (normally, it's between 0 and 1).
+ sensitivity to the edges
+ The number of iterations
+
+
+
+
+
+
+
+
+
+
+
+
+
+ creates a quaternion image.
+
+ Source 8-bit, 32-bit or 64-bit image, with 3-channel image.
+ result CV_64FC4 a quaternion image( 4 chanels zero channel and B,G,R).
+
+
+
+ calculates conjugate of a quaternion image.
+
+ quaternion image.
+ conjugate of qimg
+
+
+
+ divides each element by its modulus.
+
+ quaternion image.
+ conjugate of qimg
+
+
+
+ Calculates the per-element quaternion product of two arrays
+
+ quaternion image.
+ quaternion image.
+ product dst(I)=src1(I) . src2(I)
+
+
+
+ Performs a forward or inverse Discrete quaternion Fourier transform of a 2D quaternion array.
+
+ quaternion image.
+ quaternion image in dual space.
+ quaternion image in dual space. only DFT_INVERSE flags is supported
+ true the hypercomplex exponential is to be multiplied on the left (false on the right ).
+
+
+
+ Compares a color template against overlapped color image regions.
+
+ Image where the search is running. It must be 3 channels image
+ Searched template. It must be not greater than the source image and have 3 channels
+ Map of comparison results. It must be single-channel 64-bit floating-point
+
+
+
+ Applies Y Deriche filter to an image.
+
+ Source 8-bit or 16bit image, 1-channel or 3-channel image.
+ result CV_32FC image with same number of channel than _op.
+ double see paper
+ double see paper
+
+
+
+ Applies X Deriche filter to an image.
+
+ Source 8-bit or 16bit image, 1-channel or 3-channel image.
+ result CV_32FC image with same number of channel than _op.
+ double see paper
+ double see paper
+
+
+
+ Creates a EdgeBoxes
+
+ step size of sliding window search.
+ nms threshold for object proposals.
+ adaptation rate for nms threshold.
+ min score of boxes to detect.
+ max number of boxes to detect.
+ edge min magnitude. Increase to trade off accuracy for speed.
+ edge merge threshold. Increase to trade off accuracy for speed.
+ cluster min magnitude. Increase to trade off accuracy for speed.
+ max aspect ratio of boxes.
+ minimum area of boxes.
+ affinity sensitivity.
+ scale sensitivity.
+
+
+
+
+ Factory method, create instance of DTFilter and produce initialization routines.
+
+ guided image (used to build transformed distance, which describes edge structure of
+ guided image).
+ sigma_H parameter in the original article, it's similar to the sigma in the
+ coordinate space into bilateralFilter.
+ sigma_r parameter in the original article, it's similar to the sigma in the
+ color space into bilateralFilter.
+ one form three modes DTF_NC, DTF_RF and DTF_IC which corresponds to three modes for
+ filtering 2D signals in the article.
+ optional number of iterations used for filtering, 3 is quite enough.
+
+
+
+
+ Simple one-line Domain Transform filter call. If you have multiple images to filter with the same
+ guided image then use DTFilter interface to avoid extra computations on initialization stage.
+
+ guided image (also called as joint image) with unsigned 8-bit or floating-point 32-bit
+ depth and up to 4 channels.
+ filtering image with unsigned 8-bit or floating-point 32-bit depth and up to 4 channels.
+ destination image
+ sigma_H parameter in the original article, it's similar to the sigma in the
+ coordinate space into bilateralFilter.
+ sigma_r parameter in the original article, it's similar to the sigma in the
+ color space into bilateralFilter.
+ one form three modes DTF_NC, DTF_RF and DTF_IC which corresponds to three modes for
+ filtering 2D signals in the article.
+ optional number of iterations used for filtering, 3 is quite enough.
+
+
+
+ Factory method, create instance of GuidedFilter and produce initialization routines.
+
+ guided image (or array of images) with up to 3 channels, if it have more then 3
+ channels then only first 3 channels will be used.
+ radius of Guided Filter.
+ regularization term of Guided Filter. eps^2 is similar to the sigma in the color
+ space into bilateralFilter.
+
+
+
+
+ Simple one-line Guided Filter call.
+
+ If you have multiple images to filter with the same guided image then use GuidedFilter interface to
+ avoid extra computations on initialization stage.
+
+ guided image (or array of images) with up to 3 channels, if it have more then 3
+ channels then only first 3 channels will be used.
+ filtering image with any numbers of channels.
+ output image.
+ radius of Guided Filter.
+ regularization term of Guided Filter. eps^2 is similar to the sigma in the color
+ space into bilateralFilter.
+ optional depth of the output image.
+
+
+
+ Factory method, create instance of AdaptiveManifoldFilter and produce some initialization routines.
+
+ spatial standard deviation.
+ color space standard deviation, it is similar to the sigma in the color space into
+ bilateralFilter.
+ optional, specify perform outliers adjust operation or not, (Eq. 9) in the
+ original paper.
+
+
+
+
+ Simple one-line Adaptive Manifold Filter call.
+
+ joint (also called as guided) image or array of images with any numbers of channels.
+ filtering image with any numbers of channels.
+ output image.
+ spatial standard deviation.
+ color space standard deviation, it is similar to the sigma in the color space into
+ bilateralFilter.
+ optional, specify perform outliers adjust operation or not, (Eq. 9) in the
+ original paper.
+
+
+
+ Applies the joint bilateral filter to an image.
+
+ Joint 8-bit or floating-point, 1-channel or 3-channel image.
+ Source 8-bit or floating-point, 1-channel or 3-channel image with the same depth as joint image.
+ Destination image of the same size and type as src.
+ Diameter of each pixel neighborhood that is used during filtering. If it is non-positive,
+ it is computed from sigmaSpace.
+ Filter sigma in the color space. A larger value of the parameter means that
+ farther colors within the pixel neighborhood(see sigmaSpace) will be mixed together, resulting in
+ larger areas of semi-equal color.
+ Filter sigma in the coordinate space. A larger value of the parameter means that
+ farther pixels will influence each other as long as their colors are close enough(see sigmaColor).
+ When d\>0 , it specifies the neighborhood size regardless of sigmaSpace.Otherwise, d is
+ proportional to sigmaSpace.
+
+
+
+
+ Applies the bilateral texture filter to an image. It performs structure-preserving texture filter.
+ For more details about this filter see @cite Cho2014.
+
+ Source image whose depth is 8-bit UINT or 32-bit FLOAT
+ Destination image of the same size and type as src.
+ Radius of kernel to be used for filtering. It should be positive integer
+ Number of iterations of algorithm, It should be positive integer
+ Controls the sharpness of the weight transition from edges to smooth/texture regions, where
+ a bigger value means sharper transition.When the value is negative, it is automatically calculated.
+ Range blur parameter for texture blurring. Larger value makes result to be more blurred. When the
+ value is negative, it is automatically calculated as described in the paper.
+
+
+
+ Applies the rolling guidance filter to an image.
+
+ 8-bit or floating-point, 1-channel or 3-channel image.
+ Destination image of the same size and type as src.
+ Diameter of each pixel neighborhood that is used during filtering. If it is non-positive,
+ it is computed from sigmaSpace.
+ Filter sigma in the color space. A larger value of the parameter means that
+ farther colors within the pixel neighborhood(see sigmaSpace) will be mixed together, resulting in
+ larger areas of semi-equal color.
+ Filter sigma in the coordinate space. A larger value of the parameter means that
+ farther pixels will influence each other as long as their colors are close enough(see sigmaColor).
+ When d\>0 , it specifies the neighborhood size regardless of sigmaSpace.Otherwise, d is
+ proportional to sigmaSpace.
+ Number of iterations of joint edge-preserving filtering applied on the source image.
+
+
+
+
+ Simple one-line Fast Bilateral Solver filter call. If you have multiple images to filter with the same
+ guide then use FastBilateralSolverFilter interface to avoid extra computations.
+
+ image serving as guide for filtering. It should have 8-bit depth and either 1 or 3 channels.
+ source image for filtering with unsigned 8-bit or signed 16-bit or floating-point 32-bit depth and up to 4 channels.
+ confidence image with unsigned 8-bit or floating-point 32-bit confidence and 1 channel.
+ destination image.
+ parameter, that is similar to spatial space sigma (bandwidth) in bilateralFilter.
+ parameter, that is similar to luma space sigma (bandwidth) in bilateralFilter.
+ parameter, that is similar to chroma space sigma (bandwidth) in bilateralFilter.
+ smoothness strength parameter for solver.
+ number of iterations used for solver, 25 is usually enough.
+ convergence tolerance used for solver.
+
+
+
+ Factory method, create instance of FastGlobalSmootherFilter and execute the initialization routines.
+
+ image serving as guide for filtering. It should have 8-bit depth and either 1 or 3 channels.
+ parameter defining the amount of regularization
+ parameter, that is similar to color space sigma in bilateralFilter.
+ internal parameter, defining how much lambda decreases after each iteration. Normally,
+ it should be 0.25. Setting it to 1.0 may lead to streaking artifacts.
+ number of iterations used for filtering, 3 is usually enough.
+
+
+
+
+ Simple one-line Fast Global Smoother filter call. If you have multiple images to filter with the same
+ guide then use FastGlobalSmootherFilter interface to avoid extra computations.
+
+ image serving as guide for filtering. It should have 8-bit depth and either 1 or 3 channels.
+ source image for filtering with unsigned 8-bit or signed 16-bit or floating-point 32-bit depth and up to 4 channels.
+ destination image.
+ parameter defining the amount of regularization
+ parameter, that is similar to color space sigma in bilateralFilter.
+ internal parameter, defining how much lambda decreases after each iteration. Normally,
+ it should be 0.25. Setting it to 1.0 may lead to streaking artifacts.
+ number of iterations used for filtering, 3 is usually enough.
+
+
+
+ Global image smoothing via L0 gradient minimization.
+
+ source image for filtering with unsigned 8-bit or signed 16-bit or floating-point depth.
+ destination image.
+ parameter defining the smooth term weight.
+ parameter defining the increasing factor of the weight of the gradient data term.
+
+
+
+ Smoothes an image using the Edge-Preserving filter.
+
+ Source 8-bit 3-channel image.
+ Destination image of the same size and type as src.
+ Diameter of each pixel neighborhood that is used during filtering. Must be greater or equal 3.
+ Threshold, which distinguishes between noise, outliers, and data.
+
+
+
+ Computes the estimated covariance matrix of an image using the sliding window forumlation.
+
+
+ The window size parameters control the accuracy of the estimation.
+ The sliding window moves over the entire image from the top-left corner
+ to the bottom right corner.Each location of the window represents a sample.
+ If the window is the size of the image, then this gives the exact covariance matrix.
+ For all other cases, the sizes of the window will impact the number of samples
+ and the number of elements in the estimated covariance matrix.
+
+ The source image. Input image must be of a complex type.
+ The destination estimated covariance matrix. Output matrix will be size (windowRows*windowCols, windowRows*windowCols).
+ The number of rows in the window.
+ The number of cols in the window.
+
+
+
+ Calculates 2D Fast Hough transform of an image.
+
+ The source (input) image.
+ The destination image, result of transformation.
+ The depth of destination image
+ The part of Hough space to calculate, see cv::AngleRangeOption
+ The operation to be applied, see cv::HoughOp
+ Specifies to do or not to do image skewing, see cv::HoughDeskewOption
+
+
+
+ Calculates coordinates of line segment corresponded by point in Hough space.
+
+
+ If rules parameter set to RO_STRICT then returned line cut along the border of source image.
+ If rules parameter set to RO_WEAK then in case of point, which belongs
+ the incorrect part of Hough image, returned line will not intersect source image.
+
+ Point in Hough space.
+ The source (input) image of Hough transform.
+ The part of Hough space where point is situated, see cv::AngleRangeOption
+ Specifies to do or not to do image skewing, see cv::HoughDeskewOption
+ Specifies strictness of line segment calculating, see cv::RulesOption
+ Coordinates of line segment corresponded by point in Hough space.
+
+
+
+ Creates a smart pointer to a FastLineDetector object and initializes it
+
+ Segment shorter than this will be discarded
+ A point placed from a hypothesis line segment farther than
+ this will be regarded as an outlier
+ First threshold for hysteresis procedure in Canny()
+ Second threshold for hysteresis procedure in Canny()
+ Aperture size for the sobel operator in Canny()
+ If true, incremental merging of segments will be performed
+
+
+
+
+ Class implementing the LSC (Linear Spectral Clustering) superpixels.
+
+ The function initializes a SuperpixelLSC object for the input image. It sets the parameters of
+ superpixel algorithm, which are: region_size and ruler.It preallocate some buffers for future
+ computing iterations over the given image.An example of LSC is illustrated in the following picture.
+ For enhanced results it is recommended for color images to preprocess image with little gaussian blur
+ with a small 3 x 3 kernel and additional conversion into CieLAB color space.
+
+ image Image to segment
+ Chooses an average superpixel size measured in pixels
+ Chooses the enforcement of superpixel compactness factor of superpixel
+
+
+
+
+ Applies Paillou filter to an image.
+
+ Source CV_8U(S) or CV_16U(S), 1-channel or 3-channels image.
+ Result CV_32F image with same number of channel than op.
+ double see paper
+ double see paper
+
+
+
+ Applies Paillou filter to an image.
+
+ Source CV_8U(S) or CV_16U(S), 1-channel or 3-channels image.
+ Result CV_32F image with same number of channel than op.
+ double see paper
+ double see paper
+
+
+
+ Calculates an affine transformation that normalize given image using Pei&Lin Normalization.
+
+ Given transformed image.
+ Transformation matrix corresponding to inversed image transformation
+
+
+
+ Calculates an affine transformation that normalize given image using Pei&Lin Normalization.
+
+ Given transformed image.
+ Inversed image transformation.
+
+
+
+ Initializes a SuperpixelSEEDS object.
+
+ The function initializes a SuperpixelSEEDS object for the input image. It stores the parameters of
+ the image: image_width, image_height and image_channels.It also sets the parameters of the SEEDS
+ superpixel algorithm, which are: num_superpixels, num_levels, use_prior, histogram_bins and
+ double_step.
+
+ The number of levels in num_levels defines the amount of block levels that the algorithm use in the
+ optimization.The initialization is a grid, in which the superpixels are equally distributed through
+ the width and the height of the image.The larger blocks correspond to the superpixel size, and the
+ levels with smaller blocks are formed by dividing the larger blocks into 2 x 2 blocks of pixels,
+ recursively until the smaller block level. An example of initialization of 4 block levels is
+ illustrated in the following figure.
+
+ Image width.
+ Image height.
+ Number of channels of the image.
+ Desired number of superpixels. Note that the actual number may be smaller
+ due to restrictions(depending on the image size and num_levels). Use getNumberOfSuperpixels() to
+ get the actual number.
+ Number of block levels. The more levels, the more accurate is the segmentation,
+ but needs more memory and CPU time.
+ enable 3x3 shape smoothing term if \>0. A larger value leads to smoother shapes. prior
+ must be in the range[0, 5].
+ Number of histogram bins.
+ If true, iterate each block level twice for higher accuracy.
+
+
+
+
+ Creates a RFFeatureGetter
+
+
+
+
+
+ Creates a StructuredEdgeDetection
+
+ name of the file where the model is stored
+ optional object inheriting from RFFeatureGetter.
+ You need it only if you would like to train your own forest, pass null otherwise
+
+
+
+
+ Applies weighted median filter to an image.
+
+
+ For more details about this implementation, please see @cite zhang2014100+
+
+ Joint 8-bit, 1-channel or 3-channel image.
+ Source 8-bit or floating-point, 1-channel or 3-channel image.
+ Destination image.
+ Radius of filtering kernel, should be a positive integer.
+ Filter range standard deviation for the joint image.
+ The type of weight definition, see WMFWeightType
+ A 0-1 mask that has the same size with I. This mask is used to ignore the effect of some pixels. If the pixel value on mask is 0,
+ the pixel will be ignored when maintaining the joint-histogram.This is useful for applications like optical flow occlusion handling.
+
+
+
+ Class implementing EdgeBoxes algorithm from @cite ZitnickECCV14edgeBoxes
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Creates a EdgeBoxes
+
+ step size of sliding window search.
+ nms threshold for object proposals.
+ adaptation rate for nms threshold.
+ min score of boxes to detect.
+ max number of boxes to detect.
+ edge min magnitude. Increase to trade off accuracy for speed.
+ edge merge threshold. Increase to trade off accuracy for speed.
+ cluster min magnitude. Increase to trade off accuracy for speed.
+ max aspect ratio of boxes.
+ minimum area of boxes.
+ affinity sensitivity.
+ scale sensitivity.
+
+
+
+
+ Gets or sets the step size of sliding window search.
+
+
+
+
+ Gets or sets the nms threshold for object proposals.
+
+
+
+
+ Gets or sets adaptation rate for nms threshold.
+
+
+
+
+ Gets or sets the min score of boxes to detect.
+
+
+
+
+ Gets or sets the max number of boxes to detect.
+
+
+
+
+ Gets or sets the edge min magnitude.
+
+
+
+
+ Gets or sets the edge merge threshold.
+
+
+
+
+ Gets or sets the cluster min magnitude.
+
+
+
+
+ Gets or sets the max aspect ratio of boxes.
+
+
+
+
+ Gets or sets the minimum area of boxes.
+
+
+
+
+ Gets or sets the affinity sensitivity.
+
+
+
+
+ Gets or sets the scale sensitivity.
+
+
+
+
+ Returns array containing proposal boxes.
+
+ edge image.
+ orientation map.
+ proposal boxes.
+
+
+
+ Interface for Adaptive Manifold Filter realizations.
+
+ Below listed optional parameters which may be set up with Algorithm::set function.
+ - member double sigma_s = 16.0
+ Spatial standard deviation.
+ - member double sigma_r = 0.2
+ Color space standard deviation.
+ - member int tree_height = -1
+ Height of the manifold tree (default = -1 : automatically computed).
+ - member int num_pca_iterations = 1
+ Number of iterations to computed the eigenvector.
+ - member bool adjust_outliers = false
+ Specify adjust outliers using Eq. 9 or not.
+ - member bool use_RNG = true
+ Specify use random number generator to compute eigenvector or not.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Factory method, create instance of AdaptiveManifoldFilter and produce some initialization routines.
+
+ spatial standard deviation.
+ color space standard deviation, it is similar to the sigma in the color space into
+ bilateralFilter.
+ optional, specify perform outliers adjust operation or not, (Eq. 9) in the
+ original paper.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apply high-dimensional filtering using adaptive manifolds.
+
+ filtering image with any numbers of channels.
+ output image.
+ optional joint (also called as guided) image with any numbers of channels.
+
+
+
+ Interface for realizations of Domain Transform filter.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Factory method, create instance of DTFilter and produce initialization routines.
+
+ guided image (used to build transformed distance, which describes edge structure of
+ guided image).
+ sigma_H parameter in the original article, it's similar to the sigma in the
+ coordinate space into bilateralFilter.
+ sigma_r parameter in the original article, it's similar to the sigma in the
+ color space into bilateralFilter.
+ one form three modes DTF_NC, DTF_RF and DTF_IC which corresponds to three modes for
+ filtering 2D signals in the article.
+ optional number of iterations used for filtering, 3 is quite enough.
+
+
+
+
+ Simple one-line Domain Transform filter call. If you have multiple images to filter with the same
+ guided image then use DTFilter interface to avoid extra computations on initialization stage.
+
+
+
+
+
+
+
+ Interface for implementations of Fast Bilateral Solver.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Factory method, create instance of FastBilateralSolverFilter and execute the initialization routines.
+
+ image serving as guide for filtering. It should have 8-bit depth and either 1 or 3 channels.
+ parameter, that is similar to spatial space sigma (bandwidth) in bilateralFilter.
+ parameter, that is similar to luma space sigma (bandwidth) in bilateralFilter.
+ parameter, that is similar to chroma space sigma (bandwidth) in bilateralFilter.
+ smoothness strength parameter for solver.
+ number of iterations used for solver, 25 is usually enough.
+ convergence tolerance used for solver.
+
+
+
+
+ Apply smoothing operation to the source image.
+
+ source image for filtering with unsigned 8-bit or signed 16-bit or floating-point 32-bit depth and up to 3 channels.
+ confidence image with unsigned 8-bit or floating-point 32-bit confidence and 1 channel.
+ destination image.
+
+
+
+ Interface for implementations of Fast Global Smoother filter.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Factory method, create instance of FastGlobalSmootherFilter and execute the initialization routines.
+
+ image serving as guide for filtering. It should have 8-bit depth and either 1 or 3 channels.
+ parameter defining the amount of regularization
+ parameter, that is similar to color space sigma in bilateralFilter.
+ internal parameter, defining how much lambda decreases after each iteration. Normally,
+ it should be 0.25. Setting it to 1.0 may lead to streaking artifacts.
+ number of iterations used for filtering, 3 is usually enough.
+
+
+
+
+ Apply smoothing operation to the source image.
+
+ source image for filtering with unsigned 8-bit or signed 16-bit or floating-point 32-bit depth and up to 4 channels.
+ destination image.
+
+
+
+ Interface for realizations of Guided Filter.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Factory method, create instance of GuidedFilter and produce initialization routines.
+
+ guided image (or array of images) with up to 3 channels, if it have more then 3
+ channels then only first 3 channels will be used.
+ radius of Guided Filter.
+ regularization term of Guided Filter. eps^2 is similar to the sigma in the color
+ space into bilateralFilter.
+
+
+
+
+ Apply Guided Filter to the filtering image.
+
+ filtering image with any numbers of channels.
+ output image.
+ optional depth of the output image. dDepth can be set to -1, which will be equivalent to src.depth().
+
+
+
+ Specifies the part of Hough space to calculate
+
+
+ The enum specifies the part of Hough space to calculate.
+ Each member specifies primarily direction of lines(horizontal or vertical)
+ and the direction of angle changes.
+ Direction of angle changes is from multiples of 90 to odd multiples of 45.
+ The image considered to be written top-down and left-to-right.
+ Angles are started from vertical line and go clockwise.
+ Separate quarters and halves are written in orientation they should be in full Hough space.
+
+
+
+
+ Vertical primarily direction and clockwise angle changes
+
+
+
+
+ Horizontal primarily direction and counterclockwise angle changes
+
+
+
+
+ Horizontal primarily direction and clockwise angle changes
+
+
+
+
+ Vertical primarily direction and counterclockwise angle changes
+
+
+
+
+ Vertical primarily direction
+
+
+
+
+ Horizontal primarily direction
+
+
+
+
+ Full set of directions
+
+
+
+
+ 90 +/- atan(0.5), interval approximately from 64.5 to 116.5 degrees.
+ It is used for calculating Fast Hough Transform for images skewed by atan(0.5).
+
+
+
+
+ +/- atan(0.5), interval approximately from 333.5(-26.5) to 26.5 degrees
+ It is used for calculating Fast Hough Transform for images skewed by atan(0.5).
+
+
+
+
+ one form three modes DTF_NC, DTF_RF and DTF_IC which corresponds to three modes for
+ filtering 2D signals in the article.
+
+
+
+
+ Specifies to do or not to do skewing of Hough transform image
+
+
+ The enum specifies to do or not to do skewing of Hough transform image
+ so it would be no cycling in Hough transform image through borders of image.
+
+
+
+
+ Use raw cyclic image
+
+
+
+
+ Prepare deskewed image
+
+
+
+
+ Specifies binary operations.
+
+
+ The enum specifies binary operations, that is such ones which involve
+ two operands. Formally, a binary operation @f$ f @f$ on a set @f$ S @f$
+ is a binary relation that maps elements of the Cartesian product
+ @f$ S \times S @f$ to @f$ S @f$:
+ @f[ f: S \times S \to S @f]
+
+
+
+
+ Binary minimum operation. The constant specifies the binary minimum operation
+ @f$ f @f$ that is defined as follows: @f[ f(x, y) = \min(x, y) @f]
+
+
+
+
+ Binary maximum operation. The constant specifies the binary maximum operation
+ @f$ f @f$ that is defined as follows: @f[ f(x, y) = \max(x, y) @f]
+
+
+
+
+ Binary addition operation. The constant specifies the binary addition operation
+ @f$ f @f$ that is defined as follows: @f[ f(x, y) = x + y @f]
+
+
+
+
+ Binary average operation. The constant specifies the binary average operation
+ @f$ f @f$ that is defined as follows: @f[ f(x, y) = \frac{x + y}{2} @f]
+
+
+
+
+ Specifies the binarization method to use in cv::ximgproc::niBlackThreshold
+
+
+
+
+ Classic Niblack binarization. See @cite Niblack1985 .
+
+
+
+
+ Sauvola's technique. See @cite Sauvola1997 .
+
+
+
+
+ Wolf's technique. See @cite Wolf2004 .
+
+
+
+
+ NICK technique. See @cite Khurshid2009 .
+
+
+
+
+ Specifies the degree of rules validation.
+
+
+ The enum specifies the degree of rules validation. This can be used, for example, to choose a proper way of input arguments validation.
+
+
+
+
+ Validate each rule in a proper way.
+
+
+
+
+ Skip validations of image borders.
+
+
+
+
+ The algorithm variant to use for SuperpixelSLIC:
+ SLIC segments image using a desired region_size, and in addition SLICO will optimize using adaptive compactness factor,
+ while MSLIC will optimize using manifold methods resulting in more content-sensitive superpixels.
+
+
+
+
+ SLIC(Simple Linear Iterative Clustering) clusters pixels using pixel channels and image plane space
+ to efficiently generate compact, nearly uniform superpixels.The simplicity of approach makes it
+ extremely easy to use a lone parameter specifies the number of superpixels and the efficiency of
+ the algorithm makes it very practical.
+
+
+
+
+ SLICO stands for "Zero parameter SLIC" and it is an optimization of baseline SLIC described in @cite Achanta2012.
+
+
+
+
+ MSLIC stands for "Manifold SLIC" and it is an optimization of baseline SLIC described in @cite Liu_2017_IEEE.
+
+
+
+
+ thinning algorithm
+
+
+
+
+ Thinning technique of Zhang-Suen
+
+
+
+
+ Thinning technique of Guo-Hall
+
+
+
+
+ Specifies weight types of weighted median filter.
+
+
+
+
+ \f$exp(-|I1-I2|^2/(2*sigma^2))\f$
+
+
+
+
+ \f$(|I1-I2|+sigma)^-1\f$
+
+
+
+
+ \f$(|I1-I2|^2+sigma^2)^-1\f$
+
+
+
+
+ \f$dot(I1,I2)/(|I1|*|I2|)\f$
+
+
+
+
+ \f$(min(r1,r2)+min(g1,g2)+min(b1,b2))/(max(r1,r2)+max(g1,g2)+max(b1,b2))\f$
+
+
+
+
+ unweighted
+
+
+
+
+ Class implementing the FLD (Fast Line Detector) algorithm described in @cite Lee14.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Creates a smart pointer to a FastLineDetector object and initializes it
+
+ Segment shorter than this will be discarded
+ A point placed from a hypothesis line segment farther than
+ this will be regarded as an outlier
+ First threshold for hysteresis procedure in Canny()
+ Second threshold for hysteresis procedure in Canny()
+ Aperturesize for the sobel operator in Canny()
+ If true, incremental merging of segments will be perfomred
+
+
+
+
+ Finds lines in the input image.
+ This is the output of the default parameters of the algorithm on the above shown image.
+
+ A grayscale (CV_8UC1) input image. If only a roi needs to be
+ selected, use: `fld_ptr-\>detect(image(roi), lines, ...);
+ lines += Scalar(roi.x, roi.y, roi.x, roi.y);`
+ A vector of Vec4f elements specifying the beginning
+ and ending point of a line. Where Vec4f is (x1, y1, x2, y2),
+ point 1 is the start, point 2 - end.Returned lines are directed so that the
+ brighter side is on their left.
+
+
+
+ Finds lines in the input image.
+ This is the output of the default parameters of the algorithm on the above shown image.
+
+ A grayscale (CV_8UC1) input image. If only a roi needs to be
+ selected, use: `fld_ptr-\>detect(image(roi), lines, ...);
+ lines += Scalar(roi.x, roi.y, roi.x, roi.y);`
+ A vector of Vec4f elements specifying the beginning
+ and ending point of a line. Where Vec4f is (x1, y1, x2, y2),
+ point 1 is the start, point 2 - end.Returned lines are directed so that the
+ brighter side is on their left.
+
+
+
+ Draws the line segments on a given image.
+
+ The image, where the lines will be drawn. Should be bigger or equal to the image, where the lines were found.
+ A vector of the lines that needed to be drawn.
+ If true, arrow heads will be drawn.
+
+
+
+ Draws the line segments on a given image.
+
+ The image, where the lines will be drawn. Should be bigger or equal to the image, where the lines were found.
+ A vector of the lines that needed to be drawn.
+ If true, arrow heads will be drawn.
+
+
+
+ Helper class for training part of [P. Dollar and C. L. Zitnick. Structured Forests for Fast Edge Detection, 2013].
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Creates a RFFeatureGetter
+
+
+
+
+
+ Extracts feature channels from src.
+ Than StructureEdgeDetection uses this feature space to detect edges.
+
+ source image to extract features
+ output n-channel floating point feature matrix.
+ gradientNormalizationRadius
+ gradientSmoothingRadius
+ shrinkNumber
+ numberOfOutputChannels
+ numberOfGradientOrientations
+
+
+
+ Graph Based Segmentation Algorithm.
+ The class implements the algorithm described in @cite PFF2004.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Creates a graph based segmentor
+
+ The sigma parameter, used to smooth image
+ The k parameter of the algorithm
+ The minimum size of segments
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Segment an image and store output in dst
+
+ The input image. Any number of channel (1 (Eg: Gray), 3 (Eg: RGB), 4 (Eg: RGB-D)) can be provided
+ The output segmentation. It's a CV_32SC1 Mat with the same number of cols and rows as input image, with an unique, sequential, id for each pixel.
+
+
+
+ Selective search segmentation algorithm.
+ The class implements the algorithm described in @cite uijlings2013selective.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Create a new SelectiveSearchSegmentation class.
+
+
+
+
+
+ Set a image used by switch* functions to initialize the class
+
+ The image
+
+
+
+ Initialize the class with the 'Single stragegy' parameters describled in @cite uijlings2013selective.
+
+ The k parameter for the graph segmentation
+ The sigma parameter for the graph segmentation
+
+
+
+ Initialize the class with the 'Selective search fast' parameters describled in @cite uijlings2013selective.
+
+ The k parameter for the first graph segmentation
+ The increment of the k parameter for all graph segmentations
+ The sigma parameter for the graph segmentation
+
+
+
+ Initialize the class with the 'Selective search fast' parameters describled in @cite uijlings2013selective.
+
+ The k parameter for the first graph segmentation
+ The increment of the k parameter for all graph segmentations
+ The sigma parameter for the graph segmentation
+
+
+
+ Add a new image in the list of images to process.
+
+ The image
+
+
+
+ Clear the list of images to process
+
+
+
+
+ Add a new graph segmentation in the list of graph segementations to process.
+
+ The graph segmentation
+
+
+
+ Clear the list of graph segmentations to process
+
+
+
+
+ Add a new strategy in the list of strategy to process.
+
+ The strategy
+
+
+
+ Clear the list of strategy to process;
+
+
+
+
+ Based on all images, graph segmentations and stragies, computes all possible rects and return them
+
+ The list of rects. The first ones are more relevents than the lasts ones.
+
+
+
+
+ Strategy for the selective search segmentation algorithm.
+ The class implements a generic stragery for the algorithm described in @cite uijlings2013selective.
+
+
+
+
+
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Set a initial image, with a segementation.
+
+ The input image. Any number of channel can be provided
+ A segementation of the image. The parameter must be the same size of img.
+ The sizes of different regions
+ If not set to -1, try to cache pre-computations. If the same set og (img, regions, size) is used, the image_id need to be the same.
+
+
+
+ Return the score between two regions (between 0 and 1)
+
+ The first region
+ The second region
+
+
+
+ Inform the strategy that two regions will be merged
+
+ The first region
+ The second region
+
+
+
+
+ Color-based strategy for the selective search segmentation algorithm.
+ The class is implemented from the algorithm described in @cite uijlings2013selective.
+
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Create a new color-based strategy
+
+
+
+
+
+
+ Size-based strategy for the selective search segmentation algorithm.
+ The class is implemented from the algorithm described in @cite uijlings2013selective.
+
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Create a new size-based strategy
+
+
+
+
+
+ Texture-based strategy for the selective search segmentation algorithm.
+ The class is implemented from the algorithm described in @cite uijlings2013selective.
+
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Create a new size-based strategy
+
+
+
+
+
+ Fill-based strategy for the selective search segmentation algorithm.
+ The class is implemented from the algorithm described in @cite uijlings2013selective.
+
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Create a new fill-based strategy
+
+
+
+
+
+
+ Regroup multiple strategies for the selective search segmentation algorithm
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Set a initial image, with a segementation.
+
+ The input image. Any number of channel can be provided
+ A segementation of the image. The parameter must be the same size of img.
+ The sizes of different regions
+ If not set to -1, try to cache pre-computations. If the same set og (img, regions, size) is used, the image_id need to be the same.
+
+
+
+ Return the score between two regions (between 0 and 1)
+
+ The first region
+ The second region
+
+
+
+ Inform the strategy that two regions will be merged
+
+ The first region
+ The second region
+
+
+
+ Create a new multiple strategy
+
+
+
+
+
+ Create a new multiple strategy and set one subtrategy
+
+ The first strategy
+
+
+
+
+ Create a new multiple strategy and set one subtrategy
+
+ The first strategy
+ The second strategy
+
+
+
+
+ Create a new multiple strategy and set one subtrategy
+
+ The first strategy
+ The second strategy
+ The third strategy
+
+
+
+
+ Create a new multiple strategy and set one subtrategy
+
+ The first strategy
+ The second strategy
+ The third strategy
+ The forth strategy
+
+
+
+
+ Class implementing edge detection algorithm from @cite Dollar2013 :
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Creates a StructuredEdgeDetection
+
+ name of the file where the model is stored
+ optional object inheriting from RFFeatureGetter.
+ You need it only if you would like to train your own forest, pass null otherwise
+
+
+
+
+ Returns array containing proposal boxes.
+
+ edge image.
+ orientation map.
+ proposal boxes.
+
+
+
+ The function detects edges in src and draw them to dst.
+ The algorithm underlies this function is much more robust to texture presence, than common approaches, e.g.Sobel
+
+ source image (RGB, float, in [0;1]) to detect edges
+ destination image (grayscale, float, in [0;1]) where edges are drawn
+
+
+
+ The function computes orientation from edge image.
+
+ edge image.
+ orientation image.
+
+
+
+ The function edgenms in edge image and suppress edges where edge is stronger in orthogonal direction.
+
+ edge image from detectEdges function.
+ orientation image from computeOrientation function.
+ suppressed image (grayscale, float, in [0;1])
+ radius for NMS suppression.
+ radius for boundary suppression.
+ multiplier for conservative suppression.
+ enables/disables parallel computing.
+
+
+
+ Class implementing the LSC (Linear Spectral Clustering) superpixels
+ algorithm described in @cite LiCVPR2015LSC.
+
+ LSC(Linear Spectral Clustering) produces compact and uniform superpixels with low
+ computational costs.Basically, a normalized cuts formulation of the superpixel
+ segmentation is adopted based on a similarity metric that measures the color
+ similarity and space proximity between image pixels.LSC is of linear computational
+ complexity and high memory efficiency and is able to preserve global properties of images.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Class implementing the LSC (Linear Spectral Clustering) superpixels.
+
+ The function initializes a SuperpixelLSC object for the input image. It sets the parameters of
+ superpixel algorithm, which are: region_size and ruler.It preallocate some buffers for future
+ computing iterations over the given image.An example of LSC is illustrated in the following picture.
+ For enhanced results it is recommended for color images to preprocess image with little gaussian blur
+ with a small 3 x 3 kernel and additional conversion into CieLAB color space.
+
+ image Image to segment
+ Chooses an average superpixel size measured in pixels
+ Chooses the enforcement of superpixel compactness factor of superpixel
+
+
+
+
+ Calculates the actual amount of superpixels on a given segmentation computed and stored in SuperpixelLSC object.
+
+
+
+
+
+ Calculates the superpixel segmentation on a given image with the initialized
+ parameters in the SuperpixelLSC object.
+
+ This function can be called again without the need of initializing the algorithm with
+ createSuperpixelLSC(). This save the computational cost of allocating memory for all the
+ structures of the algorithm.
+
+ The function computes the superpixels segmentation of an image with the parameters initialized
+ with the function createSuperpixelLSC(). The algorithms starts from a grid of superpixels and
+ then refines the boundaries by proposing updates of edges boundaries.
+
+ Number of iterations. Higher number improves the result.
+
+
+
+ Returns the segmentation labeling of the image.
+ Each label represents a superpixel, and each pixel is assigned to one superpixel label.
+
+ The function returns an image with the labels of the superpixel segmentation.The labels are in
+ the range [0, getNumberOfSuperpixels()].
+
+ Return: A CV_32SC1 integer array containing the labels of the superpixel
+ segmentation.The labels are in the range[0, getNumberOfSuperpixels()].
+
+
+
+ Returns the mask of the superpixel segmentation stored in SuperpixelLSC object.
+ The function return the boundaries of the superpixel segmentation.
+
+ Return: CV_8U1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise.
+ If false, the border is only one pixel wide, otherwise all pixels at the border are masked.
+
+
+
+ Enforce label connectivity.
+ The function merge component that is too small, assigning the previously found adjacent label
+ to this component.Calling this function may change the final number of superpixels.
+
+ The minimum element size in percents that should be absorbed into a bigger
+ superpixel.Given resulted average superpixel size valid value should be in 0-100 range, 25 means
+ that less then a quarter sized superpixel should be absorbed, this is default.
+
+
+
+ Class implementing the SEEDS (Superpixels Extracted via Energy-Driven Sampling) superpixels
+ algorithm described in @cite VBRV14.
+
+ The algorithm uses an efficient hill-climbing algorithm to optimize the superpixels' energy
+ function that is based on color histograms and a boundary term, which is optional.The energy
+ function encourages superpixels to be of the same color, and if the boundary term is activated, the
+ superpixels have smooth boundaries and are of similar shape. In practice it starts from a regular
+ grid of superpixels and moves the pixels or blocks of pixels at the boundaries to refine the
+ solution.The algorithm runs in real-time using a single CPU.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Initializes a SuperpixelSEEDS object.
+
+ The function initializes a SuperpixelSEEDS object for the input image. It stores the parameters of
+ the image: image_width, image_height and image_channels.It also sets the parameters of the SEEDS
+ superpixel algorithm, which are: num_superpixels, num_levels, use_prior, histogram_bins and
+ double_step.
+
+ The number of levels in num_levels defines the amount of block levels that the algorithm use in the
+ optimization.The initialization is a grid, in which the superpixels are equally distributed through
+ the width and the height of the image.The larger blocks correspond to the superpixel size, and the
+ levels with smaller blocks are formed by dividing the larger blocks into 2 x 2 blocks of pixels,
+ recursively until the smaller block level. An example of initialization of 4 block levels is
+ illustrated in the following figure.
+
+ Image width.
+ Image height.
+ Number of channels of the image.
+ Desired number of superpixels. Note that the actual number may be smaller
+ due to restrictions(depending on the image size and num_levels). Use getNumberOfSuperpixels() to
+ get the actual number.
+ Number of block levels. The more levels, the more accurate is the segmentation,
+ but needs more memory and CPU time.
+ enable 3x3 shape smoothing term if \>0. A larger value leads to smoother shapes. prior
+ must be in the range[0, 5].
+ Number of histogram bins.
+ If true, iterate each block level twice for higher accuracy.
+
+
+
+
+ Calculates the superpixel segmentation on a given image stored in SuperpixelSEEDS object.
+
+ The function computes the superpixels segmentation of an image with the parameters initialized
+ with the function createSuperpixelSEEDS().
+
+
+
+
+
+ Input image. Supported formats: CV_8U, CV_16U, CV_32F. Image size & number of
+ channels must match with the initialized image size & channels with the function
+ createSuperpixelSEEDS(). It should be in HSV or Lab color space.Lab is a bit better, but also slower.
+
+ Supported formats: CV_8U, CV_16U, CV_32F. Image size & number of
+ channels must match with the initialized image size & channels with the function
+ createSuperpixelSEEDS(). It should be in HSV or Lab color space.Lab is a bit better, but also slower.
+ Number of pixel level iterations. Higher number improves the result.
+
+
+
+ Returns the segmentation labeling of the image.
+ Each label represents a superpixel, and each pixel is assigned to one superpixel label.
+
+ The function returns an image with ssthe labels of the superpixel segmentation. The labels are in
+ the range[0, getNumberOfSuperpixels()].
+
+ Return: A CV_32UC1 integer array containing the labels of the superpixel
+ segmentation.The labels are in the range[0, getNumberOfSuperpixels()].
+
+
+
+ Returns the mask of the superpixel segmentation stored in SuperpixelSEEDS object.
+ The function return the boundaries of the superpixel segmentation.
+
+ Return: CV_8U1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise.
+ If false, the border is only one pixel wide, otherwise all pixels at the border are masked.
+
+
+
+ Class implementing the SLIC (Simple Linear Iterative Clustering) superpixels
+ algorithm described in @cite Achanta2012.
+
+
+
+
+ Creates instance by raw pointer
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Initialize a SuperpixelSLIC object.
+
+ The function initializes a SuperpixelSLIC object for the input image. It sets the parameters of chosen
+ superpixel algorithm, which are: region_size and ruler.It preallocate some buffers for future
+ computing iterations over the given image.For enanched results it is recommended for color images to
+ preprocess image with little gaussian blur using a small 3 x 3 kernel and additional conversion into
+ CieLAB color space.An example of SLIC versus SLICO and MSLIC is ilustrated in the following picture.
+
+ Image to segment
+ Chooses the algorithm variant to use:
+ SLIC segments image using a desired region_size, and in addition SLICO will optimize using adaptive compactness factor,
+ while MSLIC will optimize using manifold methods resulting in more content-sensitive superpixels.
+ Chooses an average superpixel size measured in pixels
+ Chooses the enforcement of superpixel smoothness factor of superpixel
+
+
+
+
+ Calculates the actual amount of superpixels on a given segmentation computed
+ and stored in SuperpixelSLIC object.
+
+
+
+
+
+ Calculates the superpixel segmentation on a given image with the initialized
+ parameters in the SuperpixelSLIC object.
+
+ This function can be called again without the need of initializing the algorithm with
+ createSuperpixelSLIC(). This save the computational cost of allocating memory for all the
+ structures of the algorithm.
+
+ The function computes the superpixels segmentation of an image with the parameters initialized
+ with the function createSuperpixelSLIC(). The algorithms starts from a grid of superpixels and
+ then refines the boundaries by proposing updates of edges boundaries.
+
+ Number of iterations. Higher number improves the result.
+
+
+
+ Returns the segmentation labeling of the image.
+ Each label represents a superpixel, and each pixel is assigned to one superpixel label.
+
+ The function returns an image with the labels of the superpixel segmentation. The labels are in
+ the range[0, getNumberOfSuperpixels()].
+
+
+
+
+
+ Returns the mask of the superpixel segmentation stored in SuperpixelSLIC object.
+ The function return the boundaries of the superpixel segmentation.
+
+ Return: CV_8U1 image mask where -1 indicates that the pixel is a superpixel border, and 0 otherwise.
+ If false, the border is only one pixel wide, otherwise all pixels at the border are masked.
+
+
+
+ Enforce label connectivity.
+
+ The function merge component that is too small, assigning the previously found adjacent label
+ to this component.Calling this function may change the final number of superpixels.
+
+ The minimum element size in percents that should be absorbed into a bigger
+ superpixel.Given resulted average superpixel size valid value should be in 0-100 range, 25 means
+ that less then a quarter sized superpixel should be absorbed, this is default.
+
+
+
+ Applies Ridge Detection Filter to an input image.
+
+ Implements Ridge detection similar to the one in [Mathematica](http://reference.wolfram.com/language/ref/RidgeFilter.html)
+ using the eigen values from the Hessian Matrix of the input image using Sobel Derivatives.
+ Additional refinement can be done using Skeletonization and Binarization. Adapted from @cite segleafvein and @cite M_RF
+
+
+
+
+ Constructor
+
+
+
+
+ Create pointer to the Ridge detection filter.
+
+ Specifies output image depth. Defualt is CV_32FC1
+ Order of derivative x, default is 1
+ Order of derivative y, default is 1
+ Sobel kernel size , default is 3
+ Converted format for output, default is CV_8UC1
+ Optional scale value for derivative values, default is 1
+ Optional bias added to output, default is 0
+ Pixel extrapolation method, default is BORDER_DEFAULT
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Apply Ridge detection filter on input image.
+
+ InputArray as supported by Sobel. img can be 1-Channel or 3-Channels.
+ OutputAray of structure as RidgeDetectionFilter::ddepth. Output image with ridges.
+
+
+
+ cv::xphoto functions
+
+
+
+
+ Performs image denoising using the Block-Matching and 3D-filtering algorithm
+ (http://www.cs.tut.fi/~foi/GCF-BM3D/BM3D_TIP_2007.pdf) with several computational
+ optimizations.Noise expected to be a gaussian white noise.
+
+ Input 8-bit or 16-bit 1-channel image.
+ Output image of the first step of BM3D with the same size and type as src.
+ Output image of the second step of BM3D with the same size and type as src.
+ Parameter regulating filter strength. Big h value perfectly removes noise but also
+ removes image details, smaller h value preserves details but also preserves some noise.
+ Size in pixels of the template patch that is used for block-matching. Should be power of 2.
+ Size in pixels of the window that is used to perform block-matching.
+ Affect performance linearly: greater searchWindowsSize - greater denoising time. Must be larger than templateWindowSize.
+ Block matching threshold for the first step of BM3D (hard thresholding),
+ i.e.maximum distance for which two blocks are considered similar.Value expressed in euclidean distance.
+ Block matching threshold for the second step of BM3D (Wiener filtering),
+ i.e.maximum distance for which two blocks are considered similar. Value expressed in euclidean distance.
+ Maximum size of the 3D group for collaborative filtering.
+ Sliding step to process every next reference block.
+ Kaiser window parameter that affects the sidelobe attenuation of the transform of the
+ window.Kaiser window is used in order to reduce border effects.To prevent usage of the window, set beta to zero.
+ Norm used to calculate distance between blocks. L2 is slower than L1 but yields more accurate results.
+ Step of BM3D to be executed. Allowed are only BM3D_STEP1 and BM3D_STEPALL.
+ BM3D_STEP2 is not allowed as it requires basic estimate to be present.
+ Type of the orthogonal transform used in collaborative filtering step.
+ Currently only Haar transform is supported.
+
+
+
+ Performs image denoising using the Block-Matching and 3D-filtering algorithm
+ (http://www.cs.tut.fi/~foi/GCF-BM3D/BM3D_TIP_2007.pdf) with several computational optimizations.Noise expected to be a gaussian white noise.
+
+ Input 8-bit or 16-bit 1-channel image.
+ Output image with the same size and type as src.
+ Parameter regulating filter strength. Big h value perfectly removes noise but also
+ removes image details, smaller h value preserves details but also preserves some noise.
+ Size in pixels of the template patch that is used for block-matching. Should be power of 2.
+ Size in pixels of the window that is used to perform block-matching.
+ Affect performance linearly: greater searchWindowsSize - greater denoising time. Must be larger than templateWindowSize.
+ Block matching threshold for the first step of BM3D (hard thresholding),
+ i.e.maximum distance for which two blocks are considered similar.Value expressed in euclidean distance.
+ Block matching threshold for the second step of BM3D (Wiener filtering),
+ i.e.maximum distance for which two blocks are considered similar. Value expressed in euclidean distance.
+ Maximum size of the 3D group for collaborative filtering.
+ Sliding step to process every next reference block.
+ Kaiser window parameter that affects the sidelobe attenuation of the transform of the
+ window.Kaiser window is used in order to reduce border effects.To prevent usage of the window, set beta to zero.
+ Norm used to calculate distance between blocks. L2 is slower than L1 but yields more accurate results.
+ Step of BM3D to be executed. Allowed are only BM3D_STEP1 and BM3D_STEPALL.
+ BM3D_STEP2 is not allowed as it requires basic estimate to be present.
+ Type of the orthogonal transform used in collaborative filtering step.
+ Currently only Haar transform is supported.
+
+
+
+ The function implements simple dct-based denoising
+
+
+ http://www.ipol.im/pub/art/2011/ys-dct/
+
+ source image
+ destination image
+ expected noise standard deviation
+ size of block side where dct is computed
+
+
+
+ The function implements different single-image inpainting algorithms.
+
+ source image, it could be of any type and any number of channels from 1 to 4. In case of 3- and 4-channels images the function expect them in CIELab colorspace or similar one, where first color component shows intensity, while second and third shows colors. Nonetheless you can try any colorspaces.
+ mask (CV_8UC1), where non-zero pixels indicate valid image area, while zero pixels indicate area to be inpainted
+ destination image
+ see OpenCvSharp.XPhoto.InpaintTypes
+
+
+
+ oilPainting.
+ See the book @cite Holzmann1988 for details.
+
+ Input three-channel or one channel image (either CV_8UC3 or CV_8UC1)
+ Output image of the same size and type as src.
+ neighbouring size is 2-size+1
+ image is divided by dynRatio before histogram processing
+ color space conversion code(see ColorConversionCodes). Histogram will used only first plane
+
+
+
+ Implements an efficient fixed-point approximation for applying channel gains,
+ which is the last step of multiple white balance algorithms.
+
+ Input three-channel image in the BGR color space (either CV_8UC3 or CV_16UC3)
+ Output image of the same size and type as src.
+ gain for the B channel
+ gain for the G channel
+ gain for the R channel
+
+
+
+ Creates an instance of GrayworldWB
+
+
+
+
+
+ Creates an instance of LearningBasedWB
+
+ Path to a .yml file with the model. If not specified, the default model is used
+
+
+
+
+ Creates an instance of SimpleWB
+
+
+
+
+
+ BM3D algorithm steps
+
+
+
+
+ Execute all steps of the algorithm
+
+
+
+
+ Execute only first step of the algorithm
+
+
+
+
+ Execute only second step of the algorithm
+
+
+
+
+ various inpainting algorithms
+
+
+
+
+ This algorithm searches for dominant correspondences(transformations) of image patches
+ and tries to seamlessly fill-in the area to be inpainted using this transformations inpaint
+
+
+
+
+ Performs Frequency Selective Reconstruction (FSR).
+ One of the two quality profiles BEST and FAST can be chosen, depending on the time available for reconstruction.
+ See @cite GenserPCS2018 and @cite SeilerTIP2015 for details.
+
+ The algorithm may be utilized for the following areas of application:
+ 1. %Error Concealment (Inpainting).
+ The sampling mask indicates the missing pixels of the distorted input
+ image to be reconstructed.
+ 2. Non-Regular Sampling.
+ For more information on how to choose a good sampling mask, please review
+ @cite GroscheICIP2018 and @cite GroscheIST2018.
+
+ 1-channel grayscale or 3-channel BGR image are accepted.
+
+ Conventional accepted ranges:
+ - 0-255 for CV_8U
+ - 0-65535 for CV_16U
+ - 0-1 for CV_32F/CV_64F.
+
+
+
+
+ See #INPAINT_FSR_BEST
+
+
+
+
+ BM3D transform types
+
+
+
+
+ Un-normalized Haar transform
+
+
+
+
+ Gray-world white balance algorithm.
+
+
+
+
+ Constructor
+
+
+
+
+ Creates an instance of GrayworldWB
+
+
+
+
+
+
+
+
+ Maximum saturation for a pixel to be included in the gray-world assumption.
+
+
+
+
+ Applies white balancing to the input image.
+
+ Input image
+ White balancing result
+
+
+
+ More sophisticated learning-based automatic white balance algorithm.
+
+
+
+
+ Constructor
+
+
+
+
+ Creates an instance of LearningBasedWB
+
+ Path to a .yml file with the model. If not specified, the default model is used
+
+
+
+
+
+
+
+ Defines the size of one dimension of a three-dimensional RGB histogram that is used internally by the algorithm. It often makes sense to increase the number of bins for images with higher bit depth (e.g. 256 bins for a 12 bit image).
+
+
+
+
+ Maximum possible value of the input image (e.g. 255 for 8 bit images, 4095 for 12 bit images)
+
+
+
+
+ Threshold that is used to determine saturated pixels, i.e. pixels where at least one of the channels exceeds
+
+
+
+
+ Applies white balancing to the input image.
+
+ Input image
+ White balancing result
+
+
+
+ Implements the feature extraction part of the algorithm.
+
+ Input three-channel image (BGR color space is assumed).
+ An array of four (r,g) chromaticity tuples corresponding to the features listed above.
+
+
+
+ A simple white balance algorithm that works by independently stretching each of the input image channels to the specified range. For increased robustness it ignores the top and bottom p% of pixel values.
+
+
+
+
+ Constructor
+
+
+
+
+ Creates an instance of SimpleWB
+
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Input image range maximum value.
+
+
+
+
+ Input image range minimum value.
+
+
+
+
+ Output image range maximum value.
+
+
+
+
+ Output image range minimum value.
+
+
+
+
+ Percent of top/bottom values to ignore.
+
+
+
+
+ Applies white balancing to the input image.
+
+ Input image
+ White balancing result
+
+
+
+ This algorithm decomposes image into two layers: base layer and detail layer using bilateral filter
+ and compresses contrast of the base layer thus preserving all the details.
+
+ This implementation uses regular bilateral filter from OpenCV.
+
+ Saturation enhancement is possible as in cv::TonemapDrago.
+
+ For more information see @cite DD02 .
+
+
+
+
+ Constructor
+
+
+
+
+ Creates TonemapDurand object
+
+ positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma
+ equal to 2.2f is suitable for most displays.
+ Generally gamma > 1 brightens the image and gamma < 1 darkens it.
+ resulting contrast on logarithmic scale, i. e. log(max / min), where max and min
+ positive saturation enhancement value. 1.0 preserves saturation, values greater
+ than 1 increase saturation and values less than 1 decrease it.
+ bilateral filter sigma in coordinate space
+ bilateral filter sigma in color space
+
+
+
+
+ Releases managed resources
+
+
+
+
+ Gets or sets positive saturation enhancement value. 1.0 preserves saturation, values greater
+ than 1 increase saturation and values less than 1 decrease it.
+
+
+
+
+ Gets or sets resulting contrast on logarithmic scale, i. e. log(max / min), where max and min
+
+
+
+
+ Gets or sets bilateral filter sigma in coordinate space
+
+
+
+
+ Gets or sets bilateral filter sigma in color space
+
+
+
+
+ The base class for auto white balance algorithms.
+
+
+
+
+ Applies white balancing to the input image.
+
+ Input image
+ White balancing result
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/S7.Net.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/S7.Net.xml
new file mode 100644
index 0000000..69b7c6f
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/S7.Net.xml
@@ -0,0 +1,1853 @@
+
+
+
+ S7.Net
+
+
+
+
+ Conversion methods to convert from Siemens numeric format to C# and back
+
+
+
+
+ Converts a binary string to Int32 value
+
+
+
+
+
+
+ Converts a binary string to a byte. Can return null.
+
+
+
+
+
+
+ Converts the value to a binary string
+
+
+
+
+
+
+ Helper to get a bit value given a byte and the bit index.
+ Example: DB1.DBX0.5 -> var bytes = ReadBytes(DB1.DBW0); bool bit = bytes[0].SelectBit(5);
+
+
+
+
+
+
+
+ Converts from ushort value to short value; it's used to retrieve negative values from words
+
+
+
+
+
+
+ Converts from short value to ushort value; it's used to pass negative values to DWs
+
+
+
+
+
+
+ Converts from UInt32 value to Int32 value; it's used to retrieve negative values from DBDs
+
+
+
+
+
+
+ Converts from Int32 value to UInt32 value; it's used to pass negative values to DBDs
+
+
+
+
+
+
+ Converts from float to DWord (DBD)
+
+
+
+
+
+
+ Converts from DWord (DBD) to float
+
+
+
+
+
+
+ COTP Protocol functions and types
+
+
+
+
+ Describes a COTP TPDU (Transport protocol data unit)
+
+
+
+
+ Reads COTP TPDU (Transport protocol data unit) from the network stream
+ See: https://tools.ietf.org/html/rfc905
+
+ The socket to read from
+ A cancellation token that can be used to cancel the asynchronous operation.
+ COTP DPDU instance
+
+
+
+ Describes a COTP TSDU (Transport service data unit). One TSDU consist of 1 ore more TPDUs
+
+
+
+
+ Reads the full COTP TSDU (Transport service data unit)
+ See: https://tools.ietf.org/html/rfc905
+
+ The stream to read from
+ A cancellation token that can be used to cancel the asynchronous operation.
+ Data in TSDU
+
+
+
+ Types of S7 cpu supported by the library
+
+
+
+
+ S7 200 cpu type
+
+
+
+
+ Siemens Logo 0BA8
+
+
+
+
+ S7 200 Smart
+
+
+
+
+ S7 300 cpu type
+
+
+
+
+ S7 400 cpu type
+
+
+
+
+ S7 1200 cpu type
+
+
+
+
+ S7 1500 cpu type
+
+
+
+
+ Types of error code that can be set after a function is called
+
+
+
+
+ The function has been executed correctly
+
+
+
+
+ Wrong type of CPU error
+
+
+
+
+ Connection error
+
+
+
+
+ Ip address not available
+
+
+
+
+ Wrong format of the variable
+
+
+
+
+ Wrong number of received bytes
+
+
+
+
+ Error on send data
+
+
+
+
+ Error on read data
+
+
+
+
+ Error on write data
+
+
+
+
+ Types of memory area that can be read
+
+
+
+
+ Input area memory
+
+
+
+
+ Output area memory
+
+
+
+
+ Merkers area memory (M0, M0.0, ...)
+
+
+
+
+ DB area memory (DB1, DB2, ...)
+
+
+
+
+ Timer area memory(T1, T2, ...)
+
+
+
+
+ Counter area memory (C1, C2, ...)
+
+
+
+
+ Types
+
+
+
+
+ S7 Bit variable type (bool)
+
+
+
+
+ S7 Byte variable type (8 bits)
+
+
+
+
+ S7 Word variable type (16 bits, 2 bytes)
+
+
+
+
+ S7 DWord variable type (32 bits, 4 bytes)
+
+
+
+
+ S7 Int variable type (16 bits, 2 bytes)
+
+
+
+
+ DInt variable type (32 bits, 4 bytes)
+
+
+
+
+ Real variable type (32 bits, 4 bytes)
+
+
+
+
+ LReal variable type (64 bits, 8 bytes)
+
+
+
+
+ Char Array / C-String variable type (variable)
+
+
+
+
+ S7 String variable type (variable)
+
+
+
+
+ S7 WString variable type (variable)
+
+
+
+
+ Timer variable type
+
+
+
+
+ Counter variable type
+
+
+
+
+ DateTIme variable type
+
+
+
+
+ DateTimeLong variable type
+
+
+
+
+ Helper function to write to whole content of the given byte array to a memory stream.
+
+ Writes all bytes in value from 0 to value.Length to the memory stream.
+
+
+
+
+
+
+ Helper function to write the whole content of the given byte span to a memory stream.
+
+
+
+
+
+
+ Creates an instance of S7.Net driver
+
+
+ Creates an instance of S7.Net driver
+
+
+
+
+ The default port for the S7 protocol.
+
+
+
+
+ The default timeout (in milliseconds) used for and .
+
+
+
+
+ IP address of the PLC
+
+
+
+
+ PORT Number of the PLC, default is 102
+
+
+
+
+ The TSAP addresses used during the connection request.
+
+
+
+
+ CPU type of the PLC
+
+
+
+
+ Rack of the PLC
+
+
+
+
+ Slot of the CPU of the PLC
+
+
+
+
+ Max PDU size this cpu supports
+
+
+
+ Gets or sets the amount of time that a read operation blocks waiting for data from PLC.
+ A that specifies the amount of time, in milliseconds, that will elapse before a read operation fails. The default value, , specifies that the read operation does not time out.
+
+
+ Gets or sets the amount of time that a write operation blocks waiting for data to PLC.
+ A that specifies the amount of time, in milliseconds, that will elapse before a write operation fails. The default value, , specifies that the write operation does not time out.
+
+
+
+ Gets a value indicating whether a connection to the PLC has been established.
+
+
+ The property gets the connection state of the Client socket as
+ of the last I/O operation. When it returns false, the Client socket was either
+ never connected, or is no longer connected.
+
+
+ Because the property only reflects the state of the connection
+ as of the most recent operation, you should attempt to send or receive a message to
+ determine the current state. After the message send fails, this property no longer
+ returns true. Note that this behavior is by design. You cannot reliably test the
+ state of the connection because, in the time between the test and a send/receive, the
+ connection could have been lost. Your code should assume the socket is connected, and
+ gracefully handle failed transmissions.
+
+
+
+
+
+ Creates a PLC object with all the parameters needed for connections.
+ For S7-1200 and S7-1500, the default is rack = 0 and slot = 0.
+ You need slot > 0 if you are connecting to external ethernet card (CP).
+ For S7-300 and S7-400 the default is rack = 0 and slot = 2.
+
+ CpuType of the PLC (select from the enum)
+ Ip address of the PLC
+ rack of the PLC, usually it's 0, but check in the hardware configuration of Step7 or TIA portal
+ slot of the CPU of the PLC, usually it's 2 for S7300-S7400, 0 for S7-1200 and S7-1500.
+ If you use an external ethernet card, this must be set accordingly.
+
+
+
+ Creates a PLC object with all the parameters needed for connections.
+ For S7-1200 and S7-1500, the default is rack = 0 and slot = 0.
+ You need slot > 0 if you are connecting to external ethernet card (CP).
+ For S7-300 and S7-400 the default is rack = 0 and slot = 2.
+
+ CpuType of the PLC (select from the enum)
+ Ip address of the PLC
+ Port number used for the connection, default 102.
+ rack of the PLC, usually it's 0, but check in the hardware configuration of Step7 or TIA portal
+ slot of the CPU of the PLC, usually it's 2 for S7300-S7400, 0 for S7-1200 and S7-1500.
+ If you use an external ethernet card, this must be set accordingly.
+
+
+
+ Creates a PLC object with all the parameters needed for connections.
+ For S7-1200 and S7-1500, the default is rack = 0 and slot = 0.
+ You need slot > 0 if you are connecting to external ethernet card (CP).
+ For S7-300 and S7-400 the default is rack = 0 and slot = 2.
+
+ Ip address of the PLC
+ The TSAP addresses used for the connection request.
+
+
+
+ Creates a PLC object with all the parameters needed for connections. Use this constructor
+ if you want to manually override the TSAP addresses used during the connection request.
+
+ Ip address of the PLC
+ Port number used for the connection, default 102.
+ The TSAP addresses used for the connection request.
+
+
+
+ Close connection to PLC
+
+
+
+
+ Dispose Plc Object
+
+
+
+
+
+ Connects to the PLC and performs a COTP ConnectionRequest and S7 CommunicationSetup.
+
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that the cancellation will not affect opening the socket in any way and only affects data transfers for configuring the connection after the socket connection is successfully established.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous open operation.
+
+
+
+ Reads a number of bytes from a DB starting from a specified index. This handles more than 200 bytes with multiple requests.
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Byte count, if you want to read 120 bytes, set this to 120.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ Returns the bytes in an array
+
+
+
+ Reads a number of bytes from a DB starting from a specified index. This handles more than 200 bytes with multiple requests.
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Buffer to receive the read bytes. The determines the number of bytes to read.
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ Returns the bytes in an array
+
+
+
+ Read and decode a certain number of bytes of the "VarType" provided.
+ This can be used to read multiple consecutive variables of the same type (Word, DWord, Int, etc).
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Type of the variable/s that you are reading
+ Address of bit. If you want to read DB1.DBX200.6, set 6 to this parameter.
+
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+
+
+
+ Reads a single variable from the PLC, takes in input strings like "DB1.DBX0.0", "DB20.DBD200", "MB20", "T45", etc.
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Input strings like "DB1.DBX0.0", "DB20.DBD200", "MB20", "T45", etc.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ Returns an object that contains the value. This object must be cast accordingly.
+
+
+
+ Reads all the bytes needed to fill a struct in C#, starting from a certain address, and return an object that can be casted to the struct.
+
+ Type of the struct to be readed (es.: TypeOf(MyStruct)).
+ Address of the DB.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ Returns a struct that must be cast.
+
+
+
+ Reads all the bytes needed to fill a struct in C#, starting from a certain address, and returns the struct or null if nothing was read.
+
+ The struct type
+ Address of the DB.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ Returns a nulable struct. If nothing was read null will be returned.
+
+
+
+ Reads all the bytes needed to fill a class in C#, starting from a certain address, and set all the properties values to the value that are read from the PLC.
+ This reads only properties, it doesn't read private variable or public variable without {get;set;} specified.
+
+ Instance of the class that will store the values
+ Index of the DB; es.: 1 is for DB1
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ The number of read bytes
+
+
+
+ Reads all the bytes needed to fill a class in C#, starting from a certain address, and set all the properties values to the value that are read from the PLC.
+ This reads only properties, it doesn't read private variable or public variable without {get;set;} specified. To instantiate the class defined by the generic
+ type, the class needs a default constructor.
+
+ The class that will be instantiated. Requires a default constructor
+ Index of the DB; es.: 1 is for DB1
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ An instance of the class with the values read from the PLC. If no data has been read, null will be returned
+
+
+
+ Reads all the bytes needed to fill a class in C#, starting from a certain address, and set all the properties values to the value that are read from the PLC.
+ This reads only properties, it doesn't read private variable or public variable without {get;set;} specified.
+
+ The class that will be instantiated
+ Function to instantiate the class
+ Index of the DB; es.: 1 is for DB1
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ An instance of the class with the values read from the PLC. If no data has been read, null will be returned
+
+
+
+ Reads multiple vars in a single request.
+ You have to create and pass a list of DataItems and you obtain in response the same list with the values.
+ Values are stored in the property "Value" of the dataItem and are already converted.
+ If you don't want the conversion, just create a dataItem of bytes.
+ The number of DataItems as well as the total size of the requested data can not exceed a certain limit (protocol restriction).
+
+ List of dataitems that contains the list of variables that must be read.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+
+
+
+ Read the current status from the PLC. A value of 0x08 indicates the PLC is in run status, regardless of the PLC type.
+
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous operation, with it's result set to the current PLC status on completion.
+
+
+
+ Write a number of bytes from a DB starting from a specified index. This handles more than 200 bytes with multiple requests.
+ If the write was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to write DB1.DBW200, this is 200.
+ Bytes to write. If more than 200, multiple requests will be made.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous write operation.
+
+
+
+ Write a number of bytes from a DB starting from a specified index. This handles more than 200 bytes with multiple requests.
+ If the write was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to write DB1.DBW200, this is 200.
+ Bytes to write. If more than 200, multiple requests will be made.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous write operation.
+
+
+
+ Write a single bit from a DB with the specified index.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to write DB1.DBW200, this is 200.
+ The address of the bit. (0-7)
+ Bytes to write. If more than 200, multiple requests will be made.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous write operation.
+
+
+
+ Write a single bit from a DB with the specified index.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to write DB1.DBW200, this is 200.
+ The address of the bit. (0-7)
+ Bytes to write. If more than 200, multiple requests will be made.
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous write operation.
+
+
+
+ Takes in input an object and tries to parse it to an array of values. This can be used to write many data, all of the same type.
+ You must specify the memory area type, memory are address, byte start address and bytes count.
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Bytes to write. The lenght of this parameter can't be higher than 200. If you need more, use recursion.
+ The address of the bit. (0-7)
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous write operation.
+
+
+
+ Writes a single variable from the PLC, takes in input strings like "DB1.DBX0.0", "DB20.DBD200", "MB20", "T45", etc.
+
+ Input strings like "DB1.DBX0.0", "DB20.DBD200", "MB20", "T45", etc.
+ Value to be written to the PLC
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous write operation.
+
+
+
+ Writes a C# struct to a DB in the PLC
+
+ The struct to be written
+ Db address
+ Start bytes on the PLC
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous write operation.
+
+
+
+ Writes a C# class to a DB in the PLC
+
+ The class to be written
+ Db address
+ Start bytes on the PLC
+ The token to monitor for cancellation requests. The default value is None.
+ Please note that cancellation is advisory/cooperative and will not lead to immediate cancellation in all cases.
+ A task that represents the asynchronous write operation.
+
+
+
+ Write DataItem(s) to the PLC. Throws an exception if the response is invalid
+ or when the PLC reports errors for item(s) written.
+
+ The DataItem(s) to write to the PLC.
+ Task that completes when response from PLC is parsed.
+
+
+
+ Writes up to 200 bytes to the PLC. You must specify the memory area type, memory are address, byte start address and bytes count.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Bytes to write. The lenght of this parameter can't be higher than 200. If you need more, use recursion.
+ A cancellation token that can be used to cancel the asynchronous operation.
+ A task that represents the asynchronous write operation.
+
+
+
+ Creates the header to read bytes from the PLC.
+
+ The stream to write to.
+ The number of items to read.
+
+
+
+ Create the bytes-package to request data from the PLC. You have to specify the memory type (dataType),
+ the address of the memory, the address of the byte and the bytes count.
+
+ The stream to write the read data request to.
+ MemoryType (DB, Timer, Counter, etc.)
+ Address of the memory to be read
+ Start address of the byte
+ Number of bytes to be read
+
+
+
+
+ Given a S7 variable type (Bool, Word, DWord, etc.), it converts the bytes in the appropriate C# format.
+
+
+
+
+
+
+
+
+
+ Given a S7 (Bool, Word, DWord, etc.), it returns how many bytes to read.
+
+
+
+ Byte lenght of variable
+
+
+
+ Connects to the PLC and performs a COTP ConnectionRequest and S7 CommunicationSetup.
+
+
+
+
+ Reads a number of bytes from a DB starting from a specified index. This handles more than 200 bytes with multiple requests.
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Byte count, if you want to read 120 bytes, set this to 120.
+ Returns the bytes in an array
+
+
+
+ Reads a number of bytes from a DB starting from a specified index. This handles more than 200 bytes with multiple requests.
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Buffer to receive the read bytes. The determines the number of bytes to read.
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Returns the bytes in an array
+
+
+
+ Read and decode a certain number of bytes of the "VarType" provided.
+ This can be used to read multiple consecutive variables of the same type (Word, DWord, Int, etc).
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Type of the variable/s that you are reading
+ Address of bit. If you want to read DB1.DBX200.6, set 6 to this parameter.
+
+
+
+
+ Reads a single variable from the PLC, takes in input strings like "DB1.DBX0.0", "DB20.DBD200", "MB20", "T45", etc.
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Input strings like "DB1.DBX0.0", "DB20.DBD200", "MB20", "T45", etc.
+ Returns an object that contains the value. This object must be cast accordingly. If no data has been read, null will be returned
+
+
+
+ Reads all the bytes needed to fill a struct in C#, starting from a certain address, and return an object that can be casted to the struct.
+
+ Type of the struct to be readed (es.: TypeOf(MyStruct)).
+ Address of the DB.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Returns a struct that must be cast. If no data has been read, null will be returned
+
+
+
+ Reads all the bytes needed to fill a struct in C#, starting from a certain address, and returns the struct or null if nothing was read.
+
+ The struct type
+ Address of the DB.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Returns a nullable struct. If nothing was read null will be returned.
+
+
+
+ Reads all the bytes needed to fill a class in C#, starting from a certain address, and set all the properties values to the value that are read from the PLC.
+ This reads only properties, it doesn't read private variable or public variable without {get;set;} specified.
+
+ Instance of the class that will store the values
+ Index of the DB; es.: 1 is for DB1
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ The number of read bytes
+
+
+
+ Reads all the bytes needed to fill a class in C#, starting from a certain address, and set all the properties values to the value that are read from the PLC.
+ This reads only properties, it doesn't read private variable or public variable without {get;set;} specified. To instantiate the class defined by the generic
+ type, the class needs a default constructor.
+
+ The class that will be instantiated. Requires a default constructor
+ Index of the DB; es.: 1 is for DB1
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ An instance of the class with the values read from the PLC. If no data has been read, null will be returned
+
+
+
+ Reads all the bytes needed to fill a class in C#, starting from a certain address, and set all the properties values to the value that are read from the PLC.
+ This reads only properties, it doesn't read private variable or public variable without {get;set;} specified.
+
+ The class that will be instantiated
+ Function to instantiate the class
+ Index of the DB; es.: 1 is for DB1
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ An instance of the class with the values read from the PLC. If no data has been read, null will be returned
+
+
+
+ Write a number of bytes from a DB starting from a specified index. This handles more than 200 bytes with multiple requests.
+ If the write was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to write DB1.DBW200, this is 200.
+ Bytes to write. If more than 200, multiple requests will be made.
+
+
+
+ Write a number of bytes from a DB starting from a specified index. This handles more than 200 bytes with multiple requests.
+ If the write was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to write DB1.DBW200, this is 200.
+ Bytes to write. If more than 200, multiple requests will be made.
+
+
+
+ Write a single bit from a DB with the specified index.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to write DB1.DBW200, this is 200.
+ The address of the bit. (0-7)
+ Bytes to write. If more than 200, multiple requests will be made.
+
+
+
+ Write a single bit to a DB with the specified index.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to write DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to write DB1.DBW200, this is 200.
+ The address of the bit. (0-7)
+ Value to write (0 or 1).
+
+
+
+ Takes in input an object and tries to parse it to an array of values. This can be used to write many data, all of the same type.
+ You must specify the memory area type, memory are address, byte start address and bytes count.
+ If the read was not successful, check LastErrorCode or LastErrorString.
+
+ Data type of the memory area, can be DB, Timer, Counter, Merker(Memory), Input, Output.
+ Address of the memory area (if you want to read DB1, this is set to 1). This must be set also for other memory area types: counters, timers,etc.
+ Start byte address. If you want to read DB1.DBW200, this is 200.
+ Bytes to write. The lenght of this parameter can't be higher than 200. If you need more, use recursion.
+ The address of the bit. (0-7)
+
+
+
+ Writes a single variable from the PLC, takes in input strings like "DB1.DBX0.0", "DB20.DBD200", "MB20", "T45", etc.
+
+ Input strings like "DB1.DBX0.0", "DB20.DBD200", "MB20", "T45", etc.
+ Value to be written to the PLC
+
+
+
+ Writes a C# struct to a DB in the PLC
+
+ The struct to be written
+ Db address
+ Start bytes on the PLC
+
+
+
+ Writes a C# class to a DB in the PLC
+
+ The class to be written
+ Db address
+ Start bytes on the PLC
+
+
+
+ Write DataItem(s) to the PLC. Throws an exception if the response is invalid
+ or when the PLC reports errors for item(s) written.
+
+ The DataItem(s) to write to the PLC.
+
+
+
+ Reads multiple vars in a single request.
+ You have to create and pass a list of DataItems and you obtain in response the same list with the values.
+ Values are stored in the property "Value" of the dataItem and are already converted.
+ If you don't want the conversion, just create a dataItem of bytes.
+ The number of DataItems as well as the total size of the requested data can not exceed a certain limit (protocol restriction).
+
+ List of dataitems that contains the list of variables that must be read.
+
+
+
+ Read the current status from the PLC. A value of 0x08 indicates the PLC is in run status, regardless of the PLC type.
+
+ The current PLC status.
+
+
+
+ Represents an area of memory in the PLC
+
+
+
+
+ Memory area to read
+
+
+
+
+ Address of memory area to read (example: for DB1 this value is 1, for T45 this value is 45)
+
+
+
+
+ Address of the first byte to read
+
+
+
+
+ Length of data to read
+
+
+
+
+ Provides a representation of the Transport Service Access Point, or TSAP in short. TSAP's are used
+ to specify a client and server address. For most PLC types a default TSAP is available that allows
+ connection from any IP and can be calculated using the rack and slot numbers.
+
+
+
+
+ First byte of the TSAP.
+
+
+
+
+ Second byte of the TSAP.
+
+
+
+
+ Initializes a new instance of the class using the specified values.
+
+ The first byte of the TSAP.
+ The second byte of the TSAP.
+
+
+
+ Implements a pair of TSAP addresses used to connect to a PLC.
+
+
+
+
+ The local .
+
+
+
+
+ The remote
+
+
+
+
+ Initializes a new instance of the class using the specified local and
+ remote TSAP.
+
+ The local TSAP.
+ The remote TSAP.
+
+
+
+ Builds a that can be used to connect to a PLC using the default connection
+ addresses.
+
+
+ The remote TSAP is constructed using new Tsap(0x03, (byte) ((rack << 5) | slot)).
+
+ The CPU type of the PLC.
+ The rack of the PLC's network card.
+ The slot of the PLC's network card.
+ A TSAP pair that matches the given parameters.
+ The is invalid.
+
+ -or-
+
+ The parameter is less than 0.
+
+ -or-
+
+ The parameter is greater than 15.
+
+ -or-
+
+ The parameter is less than 0.
+
+ -or-
+
+ The parameter is greater than 15.
+
+
+
+ Extensions for Streams
+
+
+
+
+ Reads bytes from the stream into the buffer until exactly the requested number of bytes (or EOF) have been read
+
+ the Stream to read from
+ the buffer to read into
+ the offset in the buffer to read into
+ the amount of bytes to read into the buffer
+ returns the amount of read bytes
+
+
+
+ Reads bytes from the stream into the buffer until exactly the requested number of bytes (or EOF) have been read
+
+ the Stream to read from
+ the buffer to read into
+ the offset in the buffer to read into
+ the amount of bytes to read into the buffer
+ A cancellation token that can be used to cancel the asynchronous operation.
+ returns the amount of read bytes
+
+
+
+ Describes a TPKT Packet
+
+
+
+
+ Reads a TPKT from the socket Async
+
+ The stream to read from
+ A cancellation token that can be used to cancel the asynchronous operation.
+ Task TPKT Instace
+
+
+
+ Contains the conversion methods to convert Bit from S7 plc to C#.
+
+
+
+
+ Converts a Bit to bool
+
+
+
+
+ Converts an array of bytes to a BitArray.
+
+ The bytes to convert.
+ A BitArray with the same number of bits and equal values as .
+
+
+
+ Converts an array of bytes to a BitArray.
+
+ The bytes to convert.
+ The number of bits to return.
+ A BitArray with bits.
+
+
+
+ Contains the methods to read, set and reset bits inside bytes
+
+
+
+
+ Returns the value of a bit in a bit, given the address of the bit
+
+
+
+
+ Sets the value of a bit to 1 (true), given the address of the bit. Returns
+ a copy of the value with the bit set.
+
+ The input value to modify.
+ The index (zero based) of the bit to set.
+ The modified value with the bit at index set.
+
+
+
+ Sets the value of a bit to 1 (true), given the address of the bit.
+
+ The value to modify.
+ The index (zero based) of the bit to set.
+
+
+
+ Resets the value of a bit to 0 (false), given the address of the bit. Returns
+ a copy of the value with the bit cleared.
+
+ The input value to modify.
+ The index (zero based) of the bit to clear.
+ The modified value with the bit at index cleared.
+
+
+
+ Resets the value of a bit to 0 (false), given the address of the bit
+
+ The input value to modify.
+ The index (zero based) of the bit to clear.
+
+
+
+ Contains the methods to convert from bytes to byte arrays
+
+
+
+
+ Converts a byte to byte array
+
+
+
+
+ Converts a byte array to byte
+
+
+
+
+
+
+ Contains the methods to convert a C# class to S7 data types
+
+
+
+
+ Gets the size of the class in bytes.
+
+ An instance of the class
+ The offset of the current field.
+ if this property belongs to a class being serialized as member of the class requested for serialization; otherwise, .
+ the number of bytes
+
+
+
+ Sets the object's values with the given array of bytes
+
+ The object to fill in the given array of bytes
+ The array of bytes
+ The offset for the current field.
+ if this class is the type of a member of the class to be serialized; otherwise, .
+
+
+
+ Creates a byte array depending on the struct type.
+
+ The struct object.
+ The target byte array.
+ The offset for the current field.
+ A byte array or null if fails.
+
+
+
+ Contains the conversion methods to convert Counter from S7 plc to C# ushort (UInt16).
+
+
+
+
+ Converts a Counter (2 bytes) to ushort (UInt16)
+
+
+
+
+ Converts a ushort (UInt16) to word (2 bytes)
+
+
+
+
+ Converts an array of ushort (UInt16) to an array of bytes
+
+
+
+
+ Converts an array of bytes to an array of ushort
+
+
+
+
+ Create an instance of a memory block that can be read by using ReadMultipleVars
+
+
+
+
+ Memory area to read
+
+
+
+
+ Type of data to be read (default is bytes)
+
+
+
+
+ Address of memory area to read (example: for DB1 this value is 1, for T45 this value is 45)
+
+
+
+
+ Address of the first byte to read
+
+
+
+
+ Addess of bit to read from StartByteAdr
+
+
+
+
+ Number of variables to read
+
+
+
+
+ Contains the value of the memory area after the read has been executed
+
+
+
+
+ Create an instance of DataItem
+
+
+
+
+ Create an instance of from the supplied address.
+
+ The address to create the DataItem for.
+ A new instance with properties parsed from .
+ The property is not parsed from the address.
+
+
+
+ Create an instance of from the supplied address and value.
+
+ The address to create the DataItem for.
+ The value to be applied to the DataItem.
+ A new instance with properties parsed from and the supplied value set.
+
+
+
+ Contains the methods to convert between and S7 representation of datetime values.
+
+
+
+
+ The minimum value supported by the specification.
+
+
+
+
+ The maximum value supported by the specification.
+
+
+
+
+ Parses a value from bytes.
+
+ Input bytes read from PLC.
+ A object representing the value read from PLC.
+ Thrown when the length of
+ is not 8 or any value in
+ is outside the valid range of values.
+
+
+
+ Parses an array of values from bytes.
+
+ Input bytes read from PLC.
+ An array of objects representing the values read from PLC.
+ Thrown when the length of
+ is not a multiple of 8 or any value in
+ is outside the valid range of values.
+
+
+
+ Converts a value to a byte array.
+
+ The DateTime value to convert.
+ A byte array containing the S7 date time representation of .
+ Thrown when the value of
+ is before
+ or after .
+
+
+
+ Converts an array of values to a byte array.
+
+ The DateTime values to convert.
+ A byte array containing the S7 date time representations of .
+ Thrown when any value of
+ is before
+ or after .
+
+
+
+ Contains the methods to convert between and S7 representation of DateTimeLong (DTL) values.
+
+
+
+
+ The minimum value supported by the specification.
+
+
+
+
+ The maximum value supported by the specification.
+
+
+
+
+ Parses a value from bytes.
+
+ Input bytes read from PLC.
+ A object representing the value read from PLC.
+
+ Thrown when the length of
+ is not 12 or any value in
+ is outside the valid range of values.
+
+
+
+
+ Parses an array of values from bytes.
+
+ Input bytes read from PLC.
+ An array of objects representing the values read from PLC.
+
+ Thrown when the length of
+ is not a multiple of 12 or any value in
+ is outside the valid range of values.
+
+
+
+
+ Converts a value to a byte array.
+
+ The DateTime value to convert.
+ A byte array containing the S7 DateTimeLong representation of .
+
+ Thrown when the value of
+ is before
+ or after .
+
+
+
+
+ Converts an array of values to a byte array.
+
+ The DateTime values to convert.
+ A byte array containing the S7 DateTimeLong representations of .
+
+ Thrown when any value of
+ is before
+ or after .
+
+
+
+
+ Contains the conversion methods to convert DInt from S7 plc to C# int (Int32).
+
+
+
+
+ Converts a S7 DInt (4 bytes) to int (Int32)
+
+
+
+
+ Converts a int (Int32) to S7 DInt (4 bytes)
+
+
+
+
+ Converts an array of int (Int32) to an array of bytes
+
+
+
+
+ Converts an array of S7 DInt to an array of int (Int32)
+
+
+
+
+ Contains the conversion methods to convert Real from S7 plc to C# double.
+
+
+
+
+ Converts a S7 Real (4 bytes) to double
+
+
+
+
+ Converts a S7 DInt to double
+
+
+
+
+ Converts a S7 DWord to double
+
+
+
+
+ Converts a double to S7 Real (4 bytes)
+
+
+
+
+ Converts an array of double to an array of bytes
+
+
+
+
+ Converts an array of S7 Real to an array of double
+
+
+
+
+ Contains the conversion methods to convert DWord from S7 plc to C#.
+
+
+
+
+ Converts a S7 DWord (4 bytes) to uint (UInt32)
+
+
+
+
+ Converts 4 bytes to DWord (UInt32)
+
+
+
+
+ Converts a uint (UInt32) to S7 DWord (4 bytes)
+
+
+
+
+ Converts an array of uint (UInt32) to an array of S7 DWord (4 bytes)
+
+
+
+
+ Converts an array of S7 DWord to an array of uint (UInt32)
+
+
+
+
+ Contains the conversion methods to convert Int from S7 plc to C#.
+
+
+
+
+ Converts a S7 Int (2 bytes) to short (Int16)
+
+
+
+
+ Converts a short (Int16) to a S7 Int byte array (2 bytes)
+
+
+
+
+ Converts an array of short (Int16) to a S7 Int byte array (2 bytes)
+
+
+
+
+ Converts an array of S7 Int to an array of short (Int16)
+
+
+
+
+ Converts a C# int value to a C# short value, to be used as word.
+
+
+
+
+
+
+ Contains the conversion methods to convert Real from S7 plc to C# double.
+
+
+
+
+ Converts a S7 LReal (8 bytes) to double
+
+
+
+
+ Converts a double to S7 LReal (8 bytes)
+
+
+
+
+ Converts an array of double to an array of bytes
+
+
+
+
+ Converts an array of S7 LReal to an array of double
+
+
+
+
+ Contains the conversion methods to convert Real from S7 plc to C# double.
+
+
+
+
+ Converts a S7 Real (4 bytes) to float
+
+
+
+
+ Converts a float to S7 Real (4 bytes)
+
+
+
+
+ Converts an array of float to an array of bytes
+
+
+
+
+ Converts an array of S7 Real to an array of float
+
+
+
+
+ Contains the methods to convert from S7 strings to C# strings
+ An S7 String has a preceeding 2 byte header containing its capacity and length
+
+
+
+
+ The Encoding used when serializing and deserializing S7String (Encoding.ASCII by default)
+
+ StringEncoding must not be null
+
+
+
+ Converts S7 bytes to a string
+
+
+
+
+
+
+ Converts a to S7 string with 2-byte header.
+
+ The string to convert to byte array.
+ The length (in characters) allocated in PLC for the string.
+ A containing the string header and string value with a maximum length of + 2.
+
+
+
+ Initializes a new instance of the class.
+
+ The string type.
+ Reserved length of the string in characters.
+ Please use a valid value for the string type
+
+
+
+ Gets the type of the string.
+
+
+ The string type.
+
+
+
+
+ Gets the reserved length of the string in characters.
+
+
+ The reserved length of the string in characters.
+
+
+
+
+ Gets the reserved length in bytes.
+
+
+ The reserved length in bytes.
+
+
+
+
+ String type.
+
+
+
+
+ ASCII string.
+
+
+
+
+ Unicode string.
+
+
+
+
+ Contains the methods to convert from S7 wstrings to C# strings
+ An S7 WString has a preceding 4 byte header containing its capacity and length
+
+
+
+
+ Converts S7 bytes to a string
+
+
+
+
+
+
+ Converts a to S7 wstring with 4-byte header.
+
+ The string to convert to byte array.
+ The length (in characters) allocated in PLC for the string.
+ A containing the string header and string value with a maximum length of + 4.
+
+
+
+ Contains the conversion methods to convert Real from S7 plc to C# float.
+
+
+
+
+ Converts a S7 Real (4 bytes) to float
+
+
+
+
+ Converts a S7 DInt to float
+
+
+
+
+ Converts a S7 DWord to float
+
+
+
+
+ Converts a double to S7 Real (4 bytes)
+
+
+
+
+ Converts an array of float to an array of bytes
+
+
+
+
+ Converts an array of S7 Real to an array of float
+
+
+
+
+ Contains the methods to convert from S7 Array of Chars (like a const char[N] C-String) to C# strings
+
+
+
+
+ Converts a string to of bytes, padded with 0-bytes if required.
+
+ The string to write to the PLC.
+ The amount of bytes reserved for the in the PLC.
+
+
+
+ Converts S7 bytes to a string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contains the method to convert a C# struct to S7 data types
+
+
+
+
+ Gets the size of the struct in bytes.
+
+ the type of the struct
+ the number of bytes
+
+
+
+ Creates a struct of a specified type by an array of bytes.
+
+ The struct type
+ The array of bytes
+ The object depending on the struct type or null if fails(array-length != struct-length
+
+
+
+ Creates a byte array depending on the struct type.
+
+ The struct object
+ A byte array or null if fails.
+
+
+
+ Converts the Timer data type to C# data type
+
+
+
+
+ Converts the timer bytes to a double
+
+
+
+
+ Converts a ushort (UInt16) to an array of bytes formatted as time
+
+
+
+
+ Converts an array of ushorts (Uint16) to an array of bytes formatted as time
+
+
+
+
+ Converts an array of bytes formatted as time to an array of doubles
+
+
+
+
+
+
+ Converts an array of T to an array of bytes
+
+
+
+
+ Converts an array of T repesented as S7 binary data to an array of T
+
+
+
+
+ Contains the conversion methods to convert Words from S7 plc to C#.
+
+
+
+
+ Converts a word (2 bytes) to ushort (UInt16)
+
+
+
+
+ Converts 2 bytes to ushort (UInt16)
+
+
+
+
+ Converts a ushort (UInt16) to word (2 bytes)
+
+
+
+
+ Converts an array of ushort (UInt16) to an array of bytes
+
+
+
+
+ Converts an array of bytes to an array of ushort
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/Service.dll.config b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Service.dll.config
new file mode 100644
index 0000000..6a702f3
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/Service.dll.config
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Buffers.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Buffers.xml
new file mode 100644
index 0000000..8a52c11
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.IO.Pipelines.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.IO.Pipelines.xml
new file mode 100644
index 0000000..79207a5
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.IO.Pipelines.xml
@@ -0,0 +1,341 @@
+
+
+
+ System.IO.Pipelines
+
+
+
+ Result returned by call.
+
+
+ Initializes a new instance of struct setting the and flags.
+
+ to indicate the current operation that produced this was canceled by ; otherwise, .
+
+ to indicate the reader is no longer reading data written to the .
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the current operation was canceled; otherwise, .
+
+
+ Gets a value that indicates the reader is no longer reading data written to the .
+
+ if the reader is no longer reading data written to the ; otherwise, .
+
+
+ Defines a class that provides a duplex pipe from which data can be read from and written to.
+
+
+ Gets the half of the duplex pipe.
+
+
+ Gets the half of the duplex pipe.
+
+
+ The default and implementation.
+
+
+ Initializes a new instance of the class using as options.
+
+
+ Initializes a new instance of the class with the specified options.
+ The set of options for this pipe.
+
+
+ Resets the pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Represents a set of options.
+
+
+ Initializes a new instance of the class with the specified parameters.
+ The pool of memory blocks to be used for buffer management.
+ The to be used to execute callbacks and async continuations.
+ The used to execute callbacks and async continuations.
+ The number of bytes in the before starts blocking. A value of zero prevents from ever blocking, effectively making the number of bytes in the unlimited.
+ The number of bytes in the when stops blocking.
+ The minimum size of the segment requested from .
+
+ if asynchronous continuations should be executed on the they were captured on; otherwise. This takes precedence over the schedulers specified in and .
+
+
+ Gets the default instance of .
+ A object initialized with default parameters.
+
+
+ Gets the minimum size of the segment requested from the .
+ The minimum size of the segment requested from the .
+
+
+ Gets the number of bytes in the when starts blocking.
+ The number of bytes in the when starts blocking.
+
+
+ Gets the object used for buffer management.
+ A pool of memory blocks used for buffer management.
+
+
+ Gets the used to execute callbacks and async continuations.
+ A that is used to execute callbacks and async continuations.
+
+
+ Gets the number of bytes in the when stops blocking.
+ The number of bytes in the when stops blocking.
+
+
+ Gets a value that determines if asynchronous callbacks and continuations should be executed on the they were captured on. This takes precedence over the schedulers specified in and .
+
+ if asynchronous callbacks and continuations should be executed on the they were captured on; otherwise, .
+
+
+ Gets the used to execute callbacks and async continuations.
+ A object used to execute callbacks and async continuations.
+
+
+ Defines a class that provides access to a read side of pipe.
+
+
+ Initializes a new instance of the class.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.
+ Marks the extent of the data that has been successfully processed.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.
+ Marks the extent of the data that has been successfully processed.
+ Marks the extent of the data that has been read and examined.
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels to currently pending or if none is pending next call to , without completing the .
+
+
+ Signals to the producer that the consumer is done reading.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe reader instance as being complete, meaning no more data will be read from it.
+ An optional exception that indicates the failure that caused the reader to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a specified buffer size and cancellation token.
+ The pipe writer to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified stream, using a specified cancellation token.
+ The stream to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe reader will wrap.
+ The options to configure the pipe reader.
+ A that wraps the .
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Asynchronously reads a sequence of bytes from the current .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous read operation.
+
+
+ Attempts to synchronously read data the .
+ When this method returns , this value is set to a instance that represents the result of the read call; otherwise, this value is set to .
+
+ if data was available, or if the call was canceled or the writer was completed; otherwise, .
+
+
+ Abstraction for running and callbacks and continuations.
+
+
+ Initializes new a instance.
+
+
+ Requests to be run on scheduler with being passed in.
+ The single-parameter action delegate to schedule.
+ The parameter to pass to the delegate.
+
+
+ The implementation that runs callbacks inline.
+ A instance that runs callbacks inline.
+
+
+ The implementation that queues callbacks to the thread pool.
+ A instance that queues callbacks to the thread pool.
+
+
+ Defines a class that provides a pipeline to which data can be written.
+
+
+ Initializes a new instance of the class.
+
+
+ Notifies the that bytes were written to the output or . You must request a new buffer after calling to continue writing more data; you cannot write to a previously acquired buffer.
+ The number of bytes written to the or .
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels the pending operation. If there is none, cancels next operation, without completing the .
+
+
+ Marks the as being complete, meaning no more items will be written to it.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe writer instance as being complete, meaning no more data will be written to it.
+ An optional exception that indicates the failure that caused the pipeline to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the specified stream and writes them to the .
+ The stream from which the contents will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe writer will wrap.
+ The options to configure the pipe writer.
+ A that wraps the .
+
+
+ Makes bytes written available to and runs continuation.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents and wraps the asynchronous flush operation.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty memory buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A memory buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Writes the specified byte memory range to the pipe and makes data accessible to the .
+ The read-only byte memory region to write.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.
+
+
+ Represents the result of a call.
+
+
+ Creates a new instance of setting and flags.
+ The read-only sequence containing the bytes of data that were read in the call.
+ A flag that indicates if the operation that produced this was canceled by .
+ A flag that indicates whether the end of the data stream has been reached.
+
+
+ Gets the that was read.
+ A read-only sequence containing the bytes of data that were read in the call.
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the operation that produced this was canceled by ; otherwise, .
+
+
+ Gets a value that indicates whether the end of the data stream has been reached.
+
+ if the end of the data stream has been reached; otherwise, .
+
+
+ Provides extension methods for that support read and write operations directly into pipes.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a cancellation token.
+ The stream from which the contents of the current stream will be copied.
+ The writer to which the contents of the source stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, a minimum read size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+ The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ The buffer size.
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.
+ The minimum read size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ An integer representing the minimum buffer size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Memory.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Memory.xml
new file mode 100644
index 0000000..de9af89
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Memory.xml
@@ -0,0 +1,355 @@
+
+
+ System.Memory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Numerics.Vectors.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..3d093a1
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Runtime.CompilerServices.Unsafe.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..de129b8
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,291 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given void pointer.
+ The void pointer to add the offset to.
+ The offset to add.
+ The type of void pointer.
+ A new void pointer that reflects the addition of offset to the specified pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Determines whether the specified references point to the same location.
+ The first reference to compare.
+ The second reference to compare.
+ The type of reference.
+
+ if and point to the same location; otherwise, .
+
+
+ Casts the given object to the specified type.
+ The object to cast.
+ The type which the object will be cast to.
+ The original object, casted to the given type.
+
+
+ Reinterprets the given reference as a reference to a value of type .
+ The reference to reinterpret.
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ A reference to a value of type .
+
+
+ Returns a pointer to the given by-ref parameter.
+ The object whose pointer is obtained.
+ The type of object.
+ A pointer to the given value.
+
+
+ Reinterprets the given read-only reference as a reference.
+ The read-only reference to reinterpret.
+ The type of reference.
+ A reference to a value of type .
+
+
+ Reinterprets the given location as a reference to a value of type .
+ The location of the value to reference.
+ The type of the interpreted location.
+ A reference to a value of type .
+
+
+ Determines the byte offset from origin to target from the given references.
+ The reference to origin.
+ The reference to target.
+ The type of reference.
+ Byte offset from origin to target i.e. - .
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A pointer to the value to copy.
+ The type of value to copy.
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A reference to the value to copy.
+ The type of value to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Returns a value that indicates whether a specified reference is greater than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is greater than ; otherwise, .
+
+
+ Returns a value that indicates whether a specified reference is less than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is less than ; otherwise, .
+
+
+ Determines if a given reference to a value of type is a null reference.
+ The reference to check.
+ The type of the reference.
+
+ if is a null reference; otherwise, .
+
+
+ Returns a reference to a value of type that is a null reference.
+ The type of the reference.
+ A reference to a value of type that is a null reference.
+
+
+ Reads a value of type from the given location.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Returns the size of an object of the given type parameter.
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+ Bypasses definite assignment rules for a given value.
+ The uninitialized object.
+ The type of the uninitialized object.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+ Subtracts an element offset from the given void pointer.
+ The void pointer to subtract the offset from.
+ The offset to subtract.
+ The type of the void pointer.
+ A new void pointer that reflects the subtraction of offset from the specified pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of byte offset from pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+ Returns a to a boxed value.
+ The value to unbox.
+ The type to be unboxed.
+
+ is , and is a non-nullable value type.
+
+ is not a boxed value type.
+
+-or-
+
+ is not a boxed .
+
+ cannot be found.
+ A to the boxed value .
+
+
+ Writes a value of type to the given location.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Threading.Tasks.Extensions.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Threading.Tasks.Extensions.xml
new file mode 100644
index 0000000..1ee5def
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.Threading.Tasks.Extensions.xml
@@ -0,0 +1,166 @@
+
+
+ System.Threading.Tasks.Extensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a value type that wraps a and a TResult, only one of which is used.
+ The result.
+
+
+ Initializes a new instance of the class using the supplied task that represents the operation.
+ The task.
+ The task argument is null.
+
+
+ Initializes a new instance of the class using the supplied result of a successful operation.
+ The result.
+
+
+ Retrieves a object that represents this .
+ The object that is wrapped in this if one exists, or a new object that represents the result.
+
+
+ Configures an awaiter for this value.
+ true to attempt to marshal the continuation back to the captured context; otherwise, false.
+ The configured awaiter.
+
+
+ Creates a method builder for use with an async method.
+ The created builder.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Creates an awaiter for this value.
+ The awaiter.
+
+
+ Returns the hash code for this instance.
+ The hash code for the current object.
+
+
+ Gets a value that indicates whether this object represents a canceled operation.
+ true if this object represents a canceled operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a completed operation.
+ true if this object represents a completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a successfully completed operation.
+ true if this object represents a successfully completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a failed operation.
+ true if this object represents a failed operation; otherwise, false.
+
+
+ Compares two values for equality.
+ The first value to compare.
+ The second value to compare.
+ true if the two values are equal; otherwise, false.
+
+
+ Determines whether two values are unequal.
+ The first value to compare.
+ The seconed value to compare.
+ true if the two values are not equal; otherwise, false.
+
+
+ Gets the result.
+ The result.
+
+
+ Returns a string that represents the current object.
+ A string that represents the current object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.ValueTuple.xml b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.ValueTuple.xml
new file mode 100644
index 0000000..59fd818
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/bin/x64/Release/System.ValueTuple.xml
@@ -0,0 +1,8 @@
+
+
+
+ System.ValueTuple
+
+
+
+
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.SysUI.DefectPicShow.DebugTestFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.SysUI.DefectPicShow.DebugTestFrm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.SysUI.DefectPicShow.DebugTestFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.UI.SysSet.SysSetFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.UI.SysSet.SysSetFrm.resources
index cd7be21..bafaa35 100644
Binary files a/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.UI.SysSet.SysSetFrm.resources and b/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.UI.SysSet.SysSetFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.csproj.FileListAbsolute.txt b/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.csproj.FileListAbsolute.txt
index c89c786..f2acce4 100644
--- a/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.csproj.FileListAbsolute.txt
+++ b/MaiMuAOI/MaiMuAOI/obj/x64/Debug/MaiMuAOI.csproj.FileListAbsolute.txt
@@ -445,3 +445,109 @@ D:\版博士\AOI\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Threading.Tasks.Extensio
D:\版博士\AOI\MaiMuAOI\MaiMuAOI\bin\x64\Debug\K4os.Compression.LZ4.xml
D:\版博士\AOI\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.IO.Pipelines.xml
D:\版博士\AOI\MaiMuAOI\MaiMuAOI\bin\x64\Debug\K4os.Hash.xxHash.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MQTTnet.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MQTTnet.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\dll\x86\OpenCvSharpExtern.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\dll\x86\opencv_videoio_ffmpeg480.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\dll\x64\OpenCvSharpExtern.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\dll\x64\opencv_videoio_ffmpeg480_64.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\runtimes\win-x64\native\WebView2Loader.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MaiMuAOI.exe.config
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MaiMuAOI.exe
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MaiMuAOI.pdb
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\CSkin.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\halcondotnet.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\hdevenginedotnet.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\HZH_Controls.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Microsoft.ML.OnnxRuntime.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Microsoft.Web.WebView2.Core.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Microsoft.Web.WebView2.WinForms.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Microsoft.Web.WebView2.Wpf.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Models.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\OpenCvSharp.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\OpenCvSharp.Extensions.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Service.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\SixLabors.ImageSharp.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Buffers.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Memory.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Numerics.Vectors.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Runtime.CompilerServices.Unsafe.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.ValueTuple.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Yolo5.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\S7.Net.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\BouncyCastle.Crypto.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MySql.Data.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MySqlBackup.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MQTTnet.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\ControllerDllCSharp.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Automation.BDaq4.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MvCameraControl.Net.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\AdvMotAPI.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\GerberLibrary.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Google.Protobuf.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\ZstdSharp.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\K4os.Compression.LZ4.Streams.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Threading.Tasks.Extensions.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\K4os.Compression.LZ4.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.IO.Pipelines.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\K4os.Hash.xxHash.dll
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Models.pdb
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\ImageBox.pdb
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\ImageBox.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\ImageBox.dll.config
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Microsoft.Web.WebView2.Core.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Microsoft.Web.WebView2.WinForms.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Microsoft.Web.WebView2.Wpf.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Newtonsoft.Json.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\OpenCvSharp.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Service.pdb
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\Service.dll.config
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Buffers.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Memory.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Numerics.Vectors.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.Runtime.CompilerServices.Unsafe.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\System.ValueTuple.xml
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MQTTnet.xml
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.csproj.AssemblyReference.cache
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.csproj.SuggestedBindingRedirects.cache
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.exe.config
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.MainFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.Properties.Resources.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.DefectPicShow.CamImageFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.DefectPicShow.ImageShowFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.Load.InitFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.ProcessStep.StepInfoFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.ProcessStep.StepListFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.ProductAndStep.InputFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.ProductAndStep.ProductClassesFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.ProductAndStep.ProductInfoFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.ProductAndStep.ProductListFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.ProductAndStep.ProductStepFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.ProductAndStep.SetParamsFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.FrmGetPosByPic.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UIAxisDev.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UIAxisDevTag.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UICodeScannerDev.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UIDefectLib.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UIForLib.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UIIFLib.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UIIOCardDev.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UILightDev.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UIPagination.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UIScannerDev.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UI.UISizeLib.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.SysSet.SysDebugFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.SysSet.SysInfoFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.SysSet.SysLogFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.SysSet.SysPointsFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.UI.SysSet.SysSetFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\ProductionControl.UIExtend.DefectCountOfSizeControl.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.Web.WebFrm.resources
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.csproj.GenerateResource.cache
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.csproj.CoreCompileInputs.cache
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.csproj.CopyComplete
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.exe
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.pdb
+E:\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.DefectPicShow.DebugTestFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Debug\MaiMuAOI.SysUI.DefectPicShow.DebugTestFrm.resources
+E:\MaiMuAOI\MaiMuAOI\bin\x64\Debug\MaiMuControl.dll
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Debug/ProductionControl.UI.UIAxisDev.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Debug/ProductionControl.UI.UIAxisDev.resources
index 7d3481f..8591c62 100644
Binary files a/MaiMuAOI/MaiMuAOI/obj/x64/Debug/ProductionControl.UI.UIAxisDev.resources and b/MaiMuAOI/MaiMuAOI/obj/x64/Debug/ProductionControl.UI.UIAxisDev.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/MaiMuAOI/MaiMuAOI/obj/x64/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..3cf0af3
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/obj/x64/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.MainFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.MainFrm.resources
new file mode 100644
index 0000000..0ec6325
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.MainFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.Properties.Resources.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.Properties.Resources.resources
new file mode 100644
index 0000000..277287a
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.Properties.Resources.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.DefectPicShow.CamImageFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.DefectPicShow.CamImageFrm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.DefectPicShow.CamImageFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.DefectPicShow.ImageShowFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.DefectPicShow.ImageShowFrm.resources
new file mode 100644
index 0000000..21695da
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.DefectPicShow.ImageShowFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.Load.InitFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.Load.InitFrm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.Load.InitFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProcessStep.StepInfoFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProcessStep.StepInfoFrm.resources
new file mode 100644
index 0000000..3d70cb5
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProcessStep.StepInfoFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProcessStep.StepListFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProcessStep.StepListFrm.resources
new file mode 100644
index 0000000..3e588a9
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProcessStep.StepListFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.InputFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.InputFrm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.InputFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductClassesFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductClassesFrm.resources
new file mode 100644
index 0000000..f673f08
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductClassesFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductInfoFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductInfoFrm.resources
new file mode 100644
index 0000000..4001913
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductInfoFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductListFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductListFrm.resources
new file mode 100644
index 0000000..6f3c48c
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductListFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductStepFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductStepFrm.resources
new file mode 100644
index 0000000..802e317
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.ProductStepFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.SetParamsFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.SetParamsFrm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.ProductAndStep.SetParamsFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysDebugFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysDebugFrm.resources
new file mode 100644
index 0000000..b0ff9ba
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysDebugFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysInfoFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysInfoFrm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysInfoFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysLogFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysLogFrm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysLogFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysPointsFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysPointsFrm.resources
new file mode 100644
index 0000000..9692d9c
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.SysSet.SysPointsFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.Web.WebFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.Web.WebFrm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.SysUI.Web.WebFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.UI.SysSet.SysSetFrm.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.UI.SysSet.SysSetFrm.resources
new file mode 100644
index 0000000..bafaa35
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.UI.SysSet.SysSetFrm.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.csproj.CopyComplete b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.csproj.FileListAbsolute.txt b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..1f52f97
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.csproj.FileListAbsolute.txt
@@ -0,0 +1,117 @@
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\dll\x86\OpenCvSharpExtern.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\dll\x86\opencv_videoio_ffmpeg480.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\dll\x64\OpenCvSharpExtern.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\dll\x64\opencv_videoio_ffmpeg480_64.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\runtimes\win-x64\native\WebView2Loader.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MaiMuAOI.exe.config
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MaiMuAOI.exe
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MaiMuAOI.pdb
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\CSkin.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\halcondotnet.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\hdevenginedotnet.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\HZH_Controls.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\ImageBox.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MaiMuControl.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Microsoft.ML.OnnxRuntime.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Microsoft.Web.WebView2.Core.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Microsoft.Web.WebView2.WinForms.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Microsoft.Web.WebView2.Wpf.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Models.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Newtonsoft.Json.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\OpenCvSharp.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\OpenCvSharp.Extensions.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Service.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\SixLabors.ImageSharp.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\SqlSugar.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Buffers.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Memory.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Numerics.Vectors.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Runtime.CompilerServices.Unsafe.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.ValueTuple.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Yolo5.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\S7.Net.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\BouncyCastle.Crypto.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MySql.Data.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MySqlBackup.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MQTTnet.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\ControllerDllCSharp.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Automation.BDaq4.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MvCameraControl.Net.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\AdvMotAPI.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\GerberLibrary.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Google.Protobuf.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\ZstdSharp.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\K4os.Compression.LZ4.Streams.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Threading.Tasks.Extensions.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\K4os.Compression.LZ4.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.IO.Pipelines.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\K4os.Hash.xxHash.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Models.pdb
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\ImageBox.pdb
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\ImageBox.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\ImageBox.dll.config
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MaiMuControl.pdb
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MaiMuControl.dll.config
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Microsoft.Web.WebView2.Core.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Microsoft.Web.WebView2.WinForms.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Microsoft.Web.WebView2.Wpf.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Newtonsoft.Json.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\OpenCvSharp.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Service.pdb
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Service.dll.config
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Buffers.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Memory.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Numerics.Vectors.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Runtime.CompilerServices.Unsafe.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.ValueTuple.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\S7.Net.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\BouncyCastle.Crypto.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MySql.Data.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\MQTTnet.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Google.Protobuf.pdb
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\Google.Protobuf.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\K4os.Compression.LZ4.Streams.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.Threading.Tasks.Extensions.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\K4os.Compression.LZ4.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\System.IO.Pipelines.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\bin\x64\Release\K4os.Hash.xxHash.xml
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.csproj.AssemblyReference.cache
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.csproj.SuggestedBindingRedirects.cache
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.exe.config
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.MainFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.Properties.Resources.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.DefectPicShow.CamImageFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.DefectPicShow.ImageShowFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.Load.InitFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.ProcessStep.StepInfoFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.ProcessStep.StepListFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.ProductAndStep.InputFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.ProductAndStep.ProductClassesFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.ProductAndStep.ProductInfoFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.ProductAndStep.ProductListFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.ProductAndStep.ProductStepFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.ProductAndStep.SetParamsFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.FrmGetPosByPic.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UIAxisDev.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UIAxisDevTag.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UICodeScannerDev.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UIDefectLib.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UIForLib.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UIIFLib.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UIIOCardDev.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UILightDev.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UIPagination.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UIScannerDev.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UI.UISizeLib.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.SysSet.SysDebugFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.SysSet.SysInfoFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.SysSet.SysLogFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.SysSet.SysPointsFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.UI.SysSet.SysSetFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\ProductionControl.UIExtend.DefectCountOfSizeControl.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.SysUI.Web.WebFrm.resources
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.csproj.GenerateResource.cache
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.csproj.CoreCompileInputs.cache
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.csproj.CopyComplete
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.exe
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\MaiMuAOI\obj\x64\Release\MaiMuAOI.pdb
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.exe.config b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.exe.config
new file mode 100644
index 0000000..27fc164
--- /dev/null
+++ b/MaiMuAOI/MaiMuAOI/obj/x64/Release/MaiMuAOI.exe.config
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.FrmGetPosByPic.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.FrmGetPosByPic.resources
new file mode 100644
index 0000000..f58f487
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.FrmGetPosByPic.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIAxisDev.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIAxisDev.resources
new file mode 100644
index 0000000..8340bb3
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIAxisDev.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIAxisDevTag.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIAxisDevTag.resources
new file mode 100644
index 0000000..c24a500
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIAxisDevTag.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UICodeScannerDev.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UICodeScannerDev.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UICodeScannerDev.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIDefectLib.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIDefectLib.resources
new file mode 100644
index 0000000..a36d946
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIDefectLib.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIForLib.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIForLib.resources
new file mode 100644
index 0000000..d613b82
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIForLib.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIIFLib.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIIFLib.resources
new file mode 100644
index 0000000..d5d277b
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIIFLib.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIIOCardDev.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIIOCardDev.resources
new file mode 100644
index 0000000..4e05b7b
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIIOCardDev.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UILightDev.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UILightDev.resources
new file mode 100644
index 0000000..8c8f268
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UILightDev.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIPagination.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIPagination.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIPagination.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIScannerDev.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIScannerDev.resources
new file mode 100644
index 0000000..6c1cdfb
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UIScannerDev.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UISizeLib.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UISizeLib.resources
new file mode 100644
index 0000000..c7a3dad
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UI.UISizeLib.resources differ
diff --git a/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UIExtend.DefectCountOfSizeControl.resources b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UIExtend.DefectCountOfSizeControl.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/MaiMuAOI/MaiMuAOI/obj/x64/Release/ProductionControl.UIExtend.DefectCountOfSizeControl.resources differ
diff --git a/MaiMuAOI/Models/.vs/Models.csproj.dtbcache.json b/MaiMuAOI/Models/.vs/Models.csproj.dtbcache.json
new file mode 100644
index 0000000..d3b68b6
--- /dev/null
+++ b/MaiMuAOI/Models/.vs/Models.csproj.dtbcache.json
@@ -0,0 +1 @@
+{"RootPath":"E:\\MaiMuAOI\\Models","ProjectFileName":"Models.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"BaseTable.cs"},{"SourceFile":"Classes.cs"},{"SourceFile":"Order.cs"},{"SourceFile":"Product.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Step.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Models\\bin\\Debug\\SqlSugar.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"E:\\MaiMuAOI\\Models\\bin\\Debug\\Models.dll","OutputItemRelativePath":"Models.dll"},{"OutputItemFullPath":"E:\\MaiMuAOI\\Models\\bin\\Debug\\Models.pdb","OutputItemRelativePath":"Models.pdb"}],"CopyToOutputEntries":[]}
\ No newline at end of file
diff --git a/MaiMuAOI/Models/obj/Debug/Models.csproj.FileListAbsolute.txt b/MaiMuAOI/Models/obj/Debug/Models.csproj.FileListAbsolute.txt
index c7a2639..225f408 100644
--- a/MaiMuAOI/Models/obj/Debug/Models.csproj.FileListAbsolute.txt
+++ b/MaiMuAOI/Models/obj/Debug/Models.csproj.FileListAbsolute.txt
@@ -23,3 +23,11 @@ D:\版博士\AOI\MaiMuAOI\Models\obj\Debug\Models.csproj.CoreCompileInputs.cache
D:\版博士\AOI\MaiMuAOI\Models\obj\Debug\Models.csproj.CopyComplete
D:\版博士\AOI\MaiMuAOI\Models\obj\Debug\Models.dll
D:\版博士\AOI\MaiMuAOI\Models\obj\Debug\Models.pdb
+E:\MaiMuAOI\Models\bin\Debug\Models.dll
+E:\MaiMuAOI\Models\bin\Debug\Models.pdb
+E:\MaiMuAOI\Models\bin\Debug\MySql.Data.dll
+E:\MaiMuAOI\Models\obj\Debug\Models.csproj.AssemblyReference.cache
+E:\MaiMuAOI\Models\obj\Debug\Models.csproj.CoreCompileInputs.cache
+E:\MaiMuAOI\Models\obj\Debug\Models.csproj.CopyComplete
+E:\MaiMuAOI\Models\obj\Debug\Models.dll
+E:\MaiMuAOI\Models\obj\Debug\Models.pdb
diff --git a/MaiMuAOI/Models/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/MaiMuAOI/Models/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..3cf0af3
--- /dev/null
+++ b/MaiMuAOI/Models/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
diff --git a/MaiMuAOI/Models/obj/Release/Models.csproj.CopyComplete b/MaiMuAOI/Models/obj/Release/Models.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/MaiMuAOI/Models/obj/Release/Models.csproj.FileListAbsolute.txt b/MaiMuAOI/Models/obj/Release/Models.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..857f8ea
--- /dev/null
+++ b/MaiMuAOI/Models/obj/Release/Models.csproj.FileListAbsolute.txt
@@ -0,0 +1,9 @@
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\bin\Release\Models.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\bin\Release\Models.pdb
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\bin\Release\SqlSugar.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\bin\Release\MySql.Data.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\obj\Release\Models.csproj.AssemblyReference.cache
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\obj\Release\Models.csproj.CoreCompileInputs.cache
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\obj\Release\Models.csproj.CopyComplete
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\obj\Release\Models.dll
+E:\CPL\迈沐智能项目\2023\AOI 版博士\程序\MaiMuAOI\Models\obj\Release\Models.pdb
diff --git a/MaiMuAOI/Service/.vs/Service.csproj.dtbcache.json b/MaiMuAOI/Service/.vs/Service.csproj.dtbcache.json
new file mode 100644
index 0000000..20fcd17
--- /dev/null
+++ b/MaiMuAOI/Service/.vs/Service.csproj.dtbcache.json
@@ -0,0 +1 @@
+{"RootPath":"E:\\MaiMuAOI\\Service","ProjectFileName":"Service.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"BaseExtend.cs"},{"SourceFile":"InitDB.cs"},{"SourceFile":"OrderService.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Repository.cs"},{"SourceFile":"ProductService.cs"},{"SourceFile":"ClassesService.cs"},{"SourceFile":"StepService.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\BouncyCastle.Crypto.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\Google.Protobuf.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\K4os.Compression.LZ4.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\K4os.Compression.LZ4.Streams.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\K4os.Hash.xxHash.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Models\\bin\\Debug\\Models.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\MySql.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\MySqlBackup.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\SqlSugar.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Buffers.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Configuration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Configuration.Install.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\System.Diagnostics.DiagnosticSource.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Memory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Numerics.Vectors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Threading.Tasks.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Transactions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\MaiMuAOI\\Service\\bin\\Debug\\ZstdNet.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"E:\\MaiMuAOI\\Service\\bin\\Debug\\Service.dll","OutputItemRelativePath":"Service.dll"},{"OutputItemFullPath":"E:\\MaiMuAOI\\Service\\bin\\Debug\\Service.pdb","OutputItemRelativePath":"Service.pdb"}],"CopyToOutputEntries":[]}
\ No newline at end of file
diff --git a/MaiMuAOI/Service/obj/Debug/build.force b/MaiMuAOI/Service/obj/Debug/build.force
new file mode 100644
index 0000000..e69de29
diff --git a/MaiMuAOI/Service/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/MaiMuAOI/Service/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs
new file mode 100644
index 0000000..3cf0af3
--- /dev/null
+++ b/MaiMuAOI/Service/obj/Release/.NETFramework,Version=v4.8.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
diff --git a/MaiMuAOI/Service/obj/Release/build.force b/MaiMuAOI/Service/obj/Release/build.force
new file mode 100644
index 0000000..e69de29