Provide value-semantic attribute class for decoder options.
More...
Namespaces |
namespace | bdlde |
namespace | bsl |
Detailed Description
- Outline
-
-
- Purpose:
- Provide value-semantic attribute class for decoder options.
-
- Classes:
-
- See also:
- bdlde_base64encorderoptions, bdlde_base64decorderoptions, Component bdlde_base64encoder, Component bdlde_base64decoder Component bdlde_base64alphabet
-
- Description:
- This component provides a value-semantic attribute class for specifying options for
bdlde::Base64Decoder
.
- This
class
supports default-generated copy construction and copy assignment, but the constructor is private. To create an object one must call one of the class methods, which will return a newly-constructed object by value. Specialized class methods are provided to create objects configured for the mime
, urlSafe
, and standard
configurations.
- Other configurations may be obtained by specifying arguments to the
custom
class method, or by calling the setters after the object is created.
-
- Usage:
- In this section we show intended use of this component.
-
- Example 1:
- Suppose we want a
Base64DecoderOptions
object configured for MIME encoding, meaning alphabet == e_BASIC
, isPadded == true
, and ignoreMode = e_IGNORE_WHITESPACE
.
- First, we call the
mime
class method, and we're done. Then, we check the attributes: assert(mimeOptions.ignoreMode() ==
bdlde::Base64IgnoreMode::e_IGNORE_WHITESPACE);
assert(mimeOptions.alphabet() == bdlde::Base64Alphabet::e_BASIC);
assert(mimeOptions.isPadded() == true);
Now, we stream the object: Finally, we observe the output: [
ignoreMode = IGNORE_WHITESPACE
alphabet = BASIC
isPadded = true
]
-
- Example 2:
- Suppose we want a
Base64DecoderOptions
object configured for translating URL's. That would mean alphabet == e_URL
, isPadded == false
, and ignoring neither unrecognized characters nor whitespace.
- First, the class method
urlSafe
returns an object configured exactly that way, so we simply call it: Then, we check the attributes: assert(urlOptions.ignoreMode() == bdlde::Base64IgnoreMode::e_IGNORE_NONE);
assert(urlOptions.alphabet() == bdlde::Base64Alphabet::e_URL);
assert(urlOptions.isPadded() == false);
Now, we stream the object: Finally, we observe the output: [
ignoreMode = IGNORE_NONE
alphabet = URL
isPadded = false
]
-
- Example 3:
- Suppose we want an options object configured for standard Base64:
- First, we can simply call the
standard
class method: Then, we check the attributes: assert(standardOptions.ignoreMode() ==
bdlde::Base64IgnoreMode::e_IGNORE_NONE);
assert(standardOptions.alphabet() ==
bdlde::Base64Alphabet::e_BASIC);
assert(standardOptions.isPadded() == true);
Now, we stream the object: standardOptions.print(cout);
Finally, we observe the output: [
ignoreMode = IGNORE_NONE
alphabet = BASIC
isPadded = true
]
-
- Example 4:
- Suppose we want a really strangely configured options object with
alphabet == e_URL
, and padding, and ignoring neither unrecognized characters nor whitespace.
- First, we can simply call the
custom
class method. The padded
and unrecognizedIsError == true
arguments are last, and they default to true
, so we don't have to pass that. Then, we check the attributes: assert(customOptions.ignoreMode() ==
bdlde::Base64IgnoreMode::e_IGNORE_NONE);
assert(customOptions.alphabet() == bdlde::Base64Alphabet::e_URL);
assert(customOptions.isPadded() == true);
Now, we stream the object: cout << customOptions << endl;
Finally, we observe the output: [ ignoreMode = IGNORE_NONE alphabet = URL isPadded = true ]