summaryrefslogtreecommitdiff
path: root/indra/test/llsd_new_tut.cpp
AgeCommit message (Collapse)Author
2013-03-13Large changes to the LLCurl::Responder API, as well as pulling in some ↵Don Kjer
changes to common libraries from the server codebase: * Additional error checking in http handlers. * Uniform log spam for http errors. * Switch to using constants for http heads and status codes. * Fixed bugs in incorrectly checking if parsing LLSD xml resulted in an error. * Reduced spam regarding LLSD parsing errors in the default completedRaw http handler. It should not longer be necessary to short-circuit completedRaw to avoid spam. * Ported over a few bug fixes from the server code. * Switch mode http status codes to use S32 instead of U32. * Ported LLSD::asStringRef from server code; avoids copying strings all over the place. * Ported server change to LLSD::asBinary; this always returns a reference now instead of copying the entire binary blob. * Ported server pretty notation format (and pretty binary format) to llsd serialization. * The new LLCurl::Responder API no longer has two error handlers to choose from. Overriding the following methods have been deprecated: ** error - use httpFailure ** errorWithContent - use httpFailure ** result - use httpSuccess ** completed - use httpCompleted ** completedHeader - no longer necessary; call getResponseHeaders() from a completion method to obtain these headers. * In order to 'catch' a completed http request, override one of these methods: ** httpSuccess - Called for any 2xx status code. ** httpFailure - Called for any non-2xx status code. ** httpComplete - Called for all status codes. Default implementation is to call either httpSuccess or httpFailure. * It is recommended to keep these methods protected/private in order to avoid triggering of these methods without using a 'push' method (see below). * Uniform error handling should followed whenever possible by calling a variant of this during httpFailure: ** llwarns << dumpResponse() << llendl; * Be sure to include LOG_CLASS(your_class_name) in your class in order for the log entry to give more context. * In order to 'push' a result into the responder, you should no longer call error, errorWithContent, result, or completed. * Nor should you directly call httpSuccess/Failure/Completed (unless passing a message up to a parent class). * Instead, you can set the internal content of a responder and trigger a corresponding method using the following methods: ** successResult - Sets results and calls httpSuccess ** failureResult - Sets results and calls httpFailure ** completedResult - Sets results and calls httpCompleted * To obtain information about a the response from a reponder method, use the following getters: ** getStatus - HTTP status code ** getReason - Reason string ** getContent - Content (Parsed body LLSD) ** getResponseHeaders - Response Headers (LLSD map) ** getHTTPMethod - HTTP method of the request ** getURL - URL of the request * It is still possible to override completeRaw if you want to manipulate data directly out of LLPumpIO. * See indra/llmessage/llcurl.h for more information.
2011-12-01Automated merge with http://hg.secondlife.com/viewer-developmentNat Goodspeed
2011-12-01LLSD-14: Move LLSD::(outstanding|allocation)Count() to free functions.Nat Goodspeed
Free functions can be unconditionally compiled into the .o file, but conditionally hidden in the header file. Static class methods don't have that flexibility: without a declaration in the header file, you can't compile a function definition in the .cpp file. That makes it awkward to use the same llcommon build for production and for unit tests. Why make the function declarations conditional at all? These are debugging functions. They break the abstraction, they peek under the covers. Production code should not use them. Making them conditional on an #ifdef symbol in the unit-test source file means the compiler would reject any use by production code. Put differently, it allows us to assert with confidence that only unit tests do use them. Put new free functions in (lowercase) llsd namespace so as not to clutter global namespace. Tweak the one known consumer (llsd_new_tut.cpp) accordingly.
2011-11-17LLSD-14: Add tests from Simon's server-trunk changeset 3852648182db.Nat Goodspeed
That changeset provides most of the changes previously checked in on this Jira (viewer changeset 22b293aae639). Bring over the code he added to llsd_new_tut.cpp as well.
2011-10-05Changed the handling of the different naming of fpclassify on windows and ↵Logan Dethrow
Linux in llsd_new_tut.cpp to be more clean at Nat's recommendation.
2011-09-09Re-enabled and fixed llsd_new_tut.cpp by copying the fixed version from the ↵Logan Dethrow
server test directory.
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2009-01-08Result of svn merge -r107256:107258 ↵Aaron Brashears
svn+ssh://svn/svn/user/phoenix/license_2009_merge into trunk. QAR-1165
2008-12-18Result of svn merge -r105061:106057 ↵Aaron Brashears
svn+ssh://svn/svn/user/phoenix/upgrade-tut into trunk. QAR-1074
2008-11-07Merged into release with command:Kartic Krishnamurthy
================================= svn merge -r100865:101402 svn+ssh://svn/svn/linden/branches/purge-dpo-code-for-merge . QAR-951 : Sandbox QA for DEV 20842 - Ensure DPO is not enabled accidentally QAR-967 : Merge Build for DEV 20842 - Ensure DPOis not enabled accidentally QA tested: Beast, Oskar DEV's fulfilled as part of this branch: ====================================== DEV-20842 Prevent accidental activation of DPO procs DEV-23028 Mac build fails - link error dual inclusion DEV-20824 VWR-9255: Build fails on mac_updater and mac_crash_logger targets due to info.plist problems DEV-22997 Xcode project: 'server' target has no dependencies DEV-23353 Friend request custom messages come through as an asset tag. DEV-23309 Voice Chat Indicator does not show active voice status DEV-23187 Can't teleport to home location
2008-06-26QAR-628 merge string-cleanup-5 -r 90476:90508 -> releaseSteven Bennetts
dataserver-is-deprecated
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-10-04Result of svn merge -r70873:71086 ↵Aaron Brashears
svn+ssh://svn/svn/linden/branches/enable-exceptions into release.
2007-05-01svn merge -r 59163:61099 svn+ssh://svn/svn/linden/branches/release-candidate ↵Don Kjer
into release
2007-02-09Result of svn merge -r57350:57790 ↵Aaron Brashears
svn+ssh://svn/svn/linden/branches/os-patches.001 into release.
2007-02-07Fixed a linux build issue when the llhavok suddenly required rtti in order ↵Andrew Meadows
to link. I added a #ifndef hack to v3math.h to eliminate LLString's from the llhavok project. I also removed lluuid.h's dependency on LLString (using std::string) instead and then fixed a bunch of bad dependency fallout on a few files around the project that suddenly lost their hidden access to some fundamental includes. The important parts were reviewed with James.
2007-01-02Print done when done.James Cook