#UpgradeNotes:
The TStructOpsTypeTraits<>::WithMessaging type trait is no longer necessary for UStructs intended to be used as messages, because UObject creation and destruction is now thread-safe, and message types no longer need to be pre-cached. You can now use any existing and custom UStruct class in the Engine as messages. I ran the Editor for a couple hours with the profiler enabled and did not have any stability issues. If you experience any Messaging related crashes, please let me know asap, thanks!
#CodeReview: robert.manuszewski, peter.sauerbrei, chris.gagnon, jason.bestimt, michael.trepka, nicholas.davies
[CL 2499164 by Max Preussner in Main branch]
#UpgradeNotes:
If one of your classes implements IMessageHandler, you must remove GetHandledMessageType() and instead verify the type of message in HandleMessage(). See TMessageHandler<> for details.
[CL 2497326 by Max Preussner in Main branch]
Details view supports displaying UProperties from external UStruct's that are not a property of a UObject.
#jira UE-2246 - BP: Local function variables need to support default values
[CL 2383580 by Michael Schoell in Main branch]
#UpgradeNotes:
- UdpMessaging protocol version is now 10 - rebuild all the things!
- IMessageBus::Forward() no longer takes a Scope parameter
Other changes:
- moved message serialization out of Messaging and into transport layer
- replaced legacy json message serializer with Serialization framework
- message serialization now more gracefully handles corrupted/malicious data
- first iteration towards "include what you use"
- moved several inline implementations into .cpp files
- documentation updates
In case of problems due to this changelist, throw your hands in the air and start screaming.
#CodeReview: peter.sauerbrei, justin.sargent
[CL 2340115 by Max Preussner in Main branch]
* Variadic version is compiler-switched on variadic template support.
* Variadic version doesn't repeatedly include lots of the same headers to generate code.
* Tidying up of some original delegate stuff.
* Removed return type from lambda in K2Node_TemporaryVariable which was causing a Clang ICE.
* TTuple, TIntegerSequence and associated functionality - generic, but currently only implementation details of delegates and not yet for use in general code because there is no non-variadic version of them.
* MessageRouter and MessageTracer updated to use an actual delegate instead of implementation-specific identifiers.
* TTypeWrapper and TUnwrapType added to aid 'recursive' template definitions.
* C4373 disabled on VC - was only hitting this warning during development, but it's good to disable it anyway, as it's a 'this code is now standard' warning.
#codereview robert.manuszewski,mike.fricker,max.preussner,gareth.martin
[CL 2312735 by Steve Robb in Main branch]