| .TH PCRE2_SERIALIZE_ENCODE 3 "27 June 2018" "PCRE2 10.32" |
| .SH NAME |
| PCRE2 - Perl-compatible regular expressions (revised API) |
| .SH SYNOPSIS |
| .rs |
| .sp |
| .B #include <pcre2.h> |
| .PP |
| .nf |
| .B int32_t pcre2_serialize_encode(const pcre2_code **\fIcodes\fP, |
| .B " int32_t \fInumber_of_codes\fP, uint8_t **\fIserialized_bytes\fP," |
| .B " PCRE2_SIZE *\fIserialized_size\fP, pcre2_general_context *\fIgcontext\fP);" |
| .fi |
| . |
| .SH DESCRIPTION |
| .rs |
| .sp |
| This function encodes a list of compiled patterns into a byte stream that can |
| be saved on disc or elsewhere. Note that this is not an abstract format like |
| Java or .NET. Conversion of the byte stream back into usable compiled patterns |
| can only happen on a host that is running the same version of PCRE2, with the |
| same code unit width, and the host must also have the same endianness, pointer |
| width and PCRE2_SIZE type. The arguments for \fBpcre2_serialize_encode()\fP |
| are: |
| .sp |
| \fIcodes\fP pointer to a vector containing the list |
| \fInumber_of_codes\fP number of slots in the vector |
| \fIserialized_bytes\fP set to point to the serialized byte stream |
| \fIserialized_size\fP set to the number of bytes in the byte stream |
| \fIgcontext\fP pointer to a general context or NULL |
| .sp |
| The context argument is used to obtain memory for the byte stream. When the |
| serialized data is no longer needed, it must be freed by calling |
| \fBpcre2_serialize_free()\fP. The yield of the function is the number of |
| serialized patterns, or one of the following negative error codes: |
| .sp |
| PCRE2_ERROR_BADDATA \fInumber_of_codes\fP is zero or less |
| PCRE2_ERROR_BADMAGIC mismatch of id bytes in one of the patterns |
| PCRE2_ERROR_MEMORY memory allocation failed |
| PCRE2_ERROR_MIXEDTABLES the patterns do not all use the same tables |
| PCRE2_ERROR_NULL an argument other than \fIgcontext\fP is NULL |
| .sp |
| PCRE2_ERROR_BADMAGIC means either that a pattern's code has been corrupted, or |
| that a slot in the vector does not point to a compiled pattern. |
| .P |
| There is a complete description of the PCRE2 native API in the |
| .\" HREF |
| \fBpcre2api\fP |
| .\" |
| page and a description of the serialization functions in the |
| .\" HREF |
| \fBpcre2serialize\fP |
| .\" |
| page. |