Instead of using borrowed raw pointers (which is a big
risk when there are multiple users of the container)
give a possibility to operate on the AmObject as
a shared pointer, which at least ensures that
the object won't be gone if there are still some users.
In the next improvements the raw pointers usage for
`AmDynInvoke*` and `AmObject*` will be deprecated and
both of them will be replaced with shared pointers,
accordingly callers refactoring is required.
Change-Id: I576b0eca22f01b41473b0551b940452dc2515e19
We are now ready to use the default constructors and assignment
operators. Add move semantics as well.
Change-Id: I89738bff6498979ff9df6bfe1f9489568c4564cf
Directly contain the ValueArray in the variant instead of manually
managing a pointer. Requires updating the return type of some const
functions to also be const, which in turn requires some of their users
to have the type const qualified as well.
Change-Id: I2ec31d659eef521a3f68d642ee431b5c38f27fdf
We still have raw pointers in the variant and so we need to deal with
copying the contained objects ourselves.
Change-Id: I0e5f1b56430ffeda9d34ede30ec87cfd45a61662
This doesn't yet do much in terms of memory management as it still uses
pointers for arrays and structs, but it does move management of strings
and blobs into the variant. Further refactoring will bring the full
benefits.
Add specialised == operator to avoid implicit conversions to temporary
AmArg.
Includes white space cleanups.
Change-Id: I1e4bce6b96c2187294044f9f2a30fa7013912139