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