67 return m_parallel_mng;
72 void compute()
override;
90 void synchronizeData(
IData* data)
override;
94 return m_on_synchronized;
103 IParallelMng* m_parallel_mng =
nullptr;
104 ItemGroup m_item_group;
105 Ref<DataSynchronizeInfo> m_sync_info;
106 Timer* m_sync_timer =
nullptr;
107 bool m_is_verbose =
false;
108 bool m_allow_multi_sync =
true;
109 bool m_trace_sync =
false;
110 EventObservable<const VariableSynchronizerEventArgs&> m_on_synchronized;
111 Ref<IDataSynchronizeImplementationFactory> m_implementation_factory;
112 IVariableSynchronizerMng* m_variable_synchronizer_mng =
nullptr;
113 SyncMessage* m_default_message =
nullptr;
114 Runner* m_runner =
nullptr;
116 Ref<DataSynchronizeInfo> m_partial_sync_info;
117 Ref<SyncMessage> m_partial_message;
118 UniqueArray<Int32> m_partial_local_ids;
119 bool m_is_check_coherence =
false;
123 void _synchronize(IVariable* var, SyncMessage* message);
124 void _synchronizeMulti(
const VariableCollection& vars, SyncMessage* message);
125 bool _canSynchronizeMulti(
const VariableCollection& vars);
126 DataSynchronizeResult _synchronize(INumericDataInternal* data,
bool is_compare_sync);
127 SyncMessage* _buildMessage();
128 SyncMessage* _buildMessage(Ref<DataSynchronizeInfo>& sync_info);
129 void _rebuildMessage(Int32ConstArrayView local_ids);
130 void _sendBeginEvent(VariableSynchronizerEventArgs& args);
131 void _sendEndEvent(VariableSynchronizerEventArgs& args);
132 void _sendEvent(VariableSynchronizerEventArgs& args);
133 void _checkCreateTimer();
134 void _doSynchronize(SyncMessage* message);
135 void _setCurrentDevice();