void FLiveEditorManager::BroadcastValueUpdate( const FString &ClassName, const FString &PropertyName, const FString &PropertyValue ) { // remove closed connections for ( TMap<FString, class FSocket *>::TIterator ConnectionIt(RemoteConnections); ConnectionIt; ++ConnectionIt ) { FSocket *Connection = (*ConnectionIt).Value; if ( Connection->GetConnectionState() != SCS_Connected ) { RemoteConnections.Remove( (*ConnectionIt).Key ); } } //no one to talk to, exit if ( RemoteConnections.Num() == 0 ) { return; } nLiveEditorListenServer::FNetworkMessage Message; Message.Type = nLiveEditorListenServer::CLASSDEFAULT_OBJECT_PROPERTY; Message.Payload.ClassName = ClassName; Message.Payload.PropertyName = PropertyName; Message.Payload.PropertyValue = PropertyValue; TSharedPtr<FArrayWriter> Datagram = MakeShareable(new FArrayWriter(true)); *Datagram << Message; for ( TMap<FString, class FSocket *>::TIterator ConnectionIt(RemoteConnections); ConnectionIt; ++ConnectionIt ) { FSocket *Connection = (*ConnectionIt).Value; int32 BytesSent = 0; Connection->Send( Datagram->GetData(), Datagram->Num(), BytesSent ); } }