summaryrefslogtreecommitdiff
path: root/indra/llcommon/llsdutil.h
AgeCommit message (Collapse)Author
2023-05-03SL-19647: Eliminate LLSDArray entirely.Nat Goodspeed
Newer C++ compilers have different semantics around LLSDArray's special copy constructor, which was essential to proper LLSD nesting. In short, we can no longer trust LLSDArray to behave correctly. Now that we have variadic functions, get rid of LLSDArray and replace every reference with llsd::array().
2021-06-24SL-15393: Use non-overloaded name for function returning LLSD&.Nat Goodspeed
2020-07-22Put hash for boost namespace properly into that by using namespace boostNicky Dasmijn
2020-05-06DRTVWR-476: Add llsd::clone(), llsd::shallow() aliasesNat Goodspeed
for new llsd_clone(), llsd_shallow() functions.
2020-05-06DRTVWR-476: Merge branch 'master' of lindenlab/viewer into DRTVWR-476-boost-1.72Nat Goodspeed
2020-03-25DRTVWR-476: Add llsd::array() and llsd::map() variadic functions.Nat Goodspeed
llsd::array(), as one might suspect, takes an arbitrary number of arguments of arbitrary convertible types and returns an LLSD::Array constructed from those elements. This supercedes the older LLSDArray class. llsd::map() takes an even number of arguments paired as (LLSD::String, arbitrary convertible type) and returns an LLSD::Map constructed from those (key, value) pairs. This supercedes the older LLSDMap class. These two functions not only have a simpler API -- arbitrary function arguments rather than an (arg list)(arg list) sequence -- but also specifically return a final LLSD object, rather than needing conversion to LLSD from the LLSDArray or LLSDMap object. Also support LLSD == LLSD and LLSD != LLSD comparisons, using llsd_equals() with default exact-float-equality semantics.
2020-03-25SL-11216: Add llsd::drill() function to drill into an LLSD blob.Nat Goodspeed
We include both const and non-const overloads. The latter returns LLSD&, so you can assign to the located element. In fact we already implemented the non-const logic in a less public form as storeToLLSDPath() in lleventcoro.cpp. Reimplement the latter to use the new llsd::drill() function.
2018-02-26MergeRider Linden
2017-11-30Split for viewer/simhost sync LLSD with simhost.Rider Linden
2017-11-27Mac compile does not like not having a default even if it does nothing.Rider Linden
2017-11-27Added boost::hash<> spec for LLSDRider Linden
2016-08-11add convenience function ll_stream_notation_sd for compact representation of ↵Oz Linden
llsd
2015-11-10remove execute permission from many files that should not have itOz Linden
2014-10-17Update to build on Xcode 6.0: clang warned about comparison of unsigned int ↵callum_linden
to >=0 - correct ifx here is to retype the variable as signed
2013-07-19BUILDFIX: #include and dependency cleanupRichard Linden
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2012-02-01converted a bunch of narrowing implicit conversions to explicitRichard Linden
2011-02-03Introduce BOOST_FOREACH() helpers for LLSD in llsdutil.h.Nat Goodspeed
You can't directly write: BOOST_FOREACH(LLSD item, someLLSDarray) { ... } because LLSD has two distinct iteration mechanisms, one for arrays and one for maps, neither using the standard [const_]iterator typedefs or begin()/end() methods. But with these helpers, you can write: BOOST_FOREACH(LLSD item, llsd::inArray(someLLSDarray)) { ... } or BOOST_FOREACH(const llsd::MapEntry& pair, llsd::inMap(someLLSDmap)) { ... } These are in namespace llsd instead of being (e.g.) llsd_inMap because with a namespace at least your .cpp file can have a local 'using': using namespace llsd; BOOST_FOREACH(LLSD item, inArray(someLLSDarray)) { ... } It's namespace llsd rather than LLSD because LLSD can't be both a namespace and a class name.
2011-01-31Fix a couple gotchas in LLSDArray, LLSDParam, llsd_equals().Nat Goodspeed
Nested LLSDArray expressions, e.g.: LLSD array_of_arrays(LLSDArray(LLSDArray(17)(34)) (LLSDArray("x")("y"))); would quietly produce bad results because the outermost LLSDArray was being constructed with the compiler's implicit LLSDArray(const LLSDArray&) rather than LLSDArray(const LLSD&) as the reader assumes. Fixed with an explicit copy constructor to Do The Right Thing. Generalized LLSDParam<float> specialization into a macro to resolve similar conversion ambiguities for float, LLUUID, LLDate, LLURI and LLSD::Binary. Added optional bits= argument to llsd_equals() to permit comparing embedded Real values using is_approx_equal_fraction() rather than strictly bitwise. Omitting bits= retains current bitwise-comparison behavior.
2011-01-28Introduce LLSDArray, LLSDMap, LLSDParam.Nat Goodspeed
LLSDArray is a helper to construct an LLSD::Array value inline. LLSDMap is a helper to construct an LLSD::Map value inline. LLSDParam is a customization point, a way for generic code to support unforseen parameter types as conversion targets for LLSD values.
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2009-07-30Fixes to build on linux for DEV-35401.palmer@eniac54.lindenlab.com
Moves libllcommon.so to a staging dir for unit tests to work and gets rid of LL_COMMON_API in forward declarations
2009-05-29Added new LL_COMMON_API dll export declaration for new llsd_equals function.Brad Kittenbrink
2009-05-26Add llsd_equals(), a function whose absence sorely puzzles meNat Goodspeed
2009-05-22DEV-27646 dll linkage for login module.Brad Kittenbrink
Ok, finally got this to a point where it doesn't break the build and I can check in. llcommon can be built as a shared library (disabled but can be enabled with cmake cache var LLCOMMON_LINK_SHARED. reviewed by Mani on tuesday (I still need to get his suggested changes re-reviewed)
2009-05-11svn merge -r113003:119136 ↵Nat Goodspeed
svn+ssh://svn.lindenlab.com/svn/linden/branches/login-api/login-api-2 svn+ssh://svn.lindenlab.com/svn/linden/branches/login-api/login-api-3
2009-05-08merge trunk@116587 skinning-7@119389 -> viewer-2.0.0-skinning-7Steven Bennetts
2009-01-08Result of svn merge -r107256:107258 ↵Aaron Brashears
svn+ssh://svn/svn/user/phoenix/license_2009_merge into trunk. QAR-1165
2008-07-15svn merge -r 90938:92097 ↵Jon Wolk
svn+ssh://svn.lindenlab.com/svn/linden/branches/qar-730/qar-730-merge -> release. This is for QAR-730: Combination merge of QAR-432 and QAR-601
2008-06-02svn merge -r88066:88786 ↵Bryan O'Sullivan
svn+ssh://svn.lindenlab.com/svn/linden/branches/cmake-9-merge dataserver-is-deprecated for-fucks-sake-whats-with-these-commit-markers
2008-04-28svn merge -r 84911:86069 ↵Josh Bell
svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-21-Server --> release Backport fixes made in the production branch to the trunk now that it is live on the grid: * DEV-14443 Launcher not producing colo prefix when looking up sim class * DEV-10840 "/etc/init.d/backbone stop" returns before all child backbones exited; "backbone restart" results in defunct children * DEV-12558: Able to make anyone's object shout error messages * QAR-483 user start location migration prelude * QAR-490 havok4-6 * Revert havok4-5/4-6 code changes causing parcel access check issues * Revert QAR-277 sqlite-backbone * DEV-12357 SEC-53: Script that crashes regions * QAR-486 New proc and query for Web Classifieds Fix
2008-04-16svn merge -r84476:84911 ↵Dave Kaprielian
svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-21-Server Includes pullout of migrate-start-location-2, webservice changes made to 1.20, DEV-7229, and other web-ds changes. Reviewed by Josh.
2008-04-09Result of svn merge -r84383:84400 ↵Aaron Brashears
svn+ssh://svn/svn/linden/branches/migrate-start-location-2 intinto release. QAR-458
2007-12-19svn merge -r 75354:76103 ↵Jon Wolk
svn+ssh://svn.lindenlab.com/svn/linden/branches/voice-group-moderation-3 -> release. Finished product of QAR-134
2007-10-04Result of svn merge -r71162:71205 ↵Aaron Brashears
svn+ssh://svn/svn/linden/branches/new-license into release. only changes files which are not deployed or the comments section of code.
2007-06-13result of merge manually performed through diff and patch. svn diff ↵Aaron Brashears
svn+ssh://svn/svn/linden/release@63615 svn+ssh://svn/svn/linden/branches/release-candidate@63637 | patch -p0 in release
2007-05-01svn merge -r 59163:61099 svn+ssh://svn/svn/linden/branches/release-candidate ↵Don Kjer
into release
2007-01-31merge release@57486 release-candidate@57503Steven Bennetts
2007-01-15Port fix for SL-32157 "PowerPC Mac crashes when crossing regions or ↵Josh Bell
teleporting with capabilities turned on" from Branch 1-13-2 r56710 via partial merge of release-candidate -r 56743:56744
2007-01-02Print done when done.James Cook