@@ -77,13 +77,13 @@ void DBReader::DumpTables(std::string &binlog_name, unsigned long &binlog_pos, B
77
77
78
78
// send binlog position update event
79
79
if (!stopped) {
80
- SerializableBinlogEvent ev;
81
- ev. binlog_name = binlog_name;
82
- ev. binlog_pos = binlog_pos;
83
- // ev. seconds_behind_master = GetSecondsBehindMaster();
84
- ev. unix_timestamp = long (time (NULL ));
85
- ev. event = " IGNORE" ;
86
- stopped = cb (ev );
80
+ SerializableBinlogEventPtr ev ( new SerializableBinlogEvent) ;
81
+ ev-> binlog_name = binlog_name;
82
+ ev-> binlog_pos = binlog_pos;
83
+ // ev-> seconds_behind_master = GetSecondsBehindMaster();
84
+ ev-> unix_timestamp = long (time (NULL ));
85
+ ev-> event = " IGNORE" ;
86
+ stopped = cb (std::move (ev) );
87
87
}
88
88
89
89
// tempslave.close_connection();
@@ -118,41 +118,41 @@ void DBReader::EventCallback(const slave::RecordSet& event, const std::map<std::
118
118
{
119
119
last_event_when = event.when ;
120
120
121
- SerializableBinlogEvent ev;
122
- ev. binlog_name = state.getMasterLogName ();
123
- ev. binlog_pos = state.getMasterLogPos ();
124
- // ev. seconds_behind_master = GetSecondsBehindMaster();
125
- ev. unix_timestamp = long (time (NULL ));
126
- ev. database = event.db_name ;
127
- ev. table = event.tbl_name ;
121
+ SerializableBinlogEventPtr ev ( new SerializableBinlogEvent) ;
122
+ ev-> binlog_name = state.getMasterLogName ();
123
+ ev-> binlog_pos = state.getMasterLogPos ();
124
+ // ev-> seconds_behind_master = GetSecondsBehindMaster();
125
+ ev-> unix_timestamp = long (time (NULL ));
126
+ ev-> database = event.db_name ;
127
+ ev-> table = event.tbl_name ;
128
128
129
129
switch (event.type_event ) {
130
- case slave::RecordSet::Delete: ev. event = " DELETE" ; break ;
131
- case slave::RecordSet::Update: ev. event = " UPDATE" ; break ;
132
- case slave::RecordSet::Write: ev. event = " INSERT" ; break ;
133
- default : ev. event = " IGNORE" ;
130
+ case slave::RecordSet::Delete: ev-> event = " DELETE" ; break ;
131
+ case slave::RecordSet::Update: ev-> event = " UPDATE" ; break ;
132
+ case slave::RecordSet::Write: ev-> event = " INSERT" ; break ;
133
+ default : ev-> event = " IGNORE" ;
134
134
}
135
135
for (auto fi = filter.begin (), end = filter.end (); fi != end; ++fi) {
136
136
const auto ri = event.m_row .find (fi->first );
137
137
if (ri != event.m_row .end ()) {
138
- ev. row [ fi->second ] = ri->second ;
138
+ ev-> row [ fi->second ] = ri->second ;
139
139
}
140
140
}
141
- stopped = cb (ev );
141
+ stopped = cb (std::move (ev) );
142
142
}
143
143
144
144
void DBReader::XidEventCallback (unsigned int server_id, BinlogEventCallback cb)
145
145
{
146
146
last_event_when = ::time (NULL );
147
147
148
148
// send binlog position update event
149
- SerializableBinlogEvent ev;
150
- ev. binlog_name = state.getMasterLogName ();
151
- ev. binlog_pos = state.getMasterLogPos ();
152
- // ev. seconds_behind_master = GetSecondsBehindMaster();
153
- ev. unix_timestamp = long (time (NULL ));
154
- ev. event = " IGNORE" ;
155
- stopped = cb (ev );
149
+ SerializableBinlogEventPtr ev ( new SerializableBinlogEvent) ;
150
+ ev-> binlog_name = state.getMasterLogName ();
151
+ ev-> binlog_pos = state.getMasterLogPos ();
152
+ // ev-> seconds_behind_master = GetSecondsBehindMaster();
153
+ ev-> unix_timestamp = long (time (NULL ));
154
+ ev-> event = " IGNORE" ;
155
+ stopped = cb (std::move (ev) );
156
156
}
157
157
158
158
void DBReader::DumpTablesCallback (
@@ -162,27 +162,27 @@ void DBReader::DumpTablesCallback(
162
162
const nanomysql::fields_t & fields,
163
163
BinlogEventCallback cb
164
164
) {
165
- SerializableBinlogEvent ev;
166
- ev. binlog_name = " " ;
167
- ev. binlog_pos = 0 ;
168
- ev. database = db_name;
169
- ev. table = tbl_name;
170
- ev. event = " INSERT" ;
171
- // ev. seconds_behind_master = GetSecondsBehindMaster();
172
- ev. unix_timestamp = long (time (NULL ));
165
+ SerializableBinlogEventPtr ev ( new SerializableBinlogEvent) ;
166
+ ev-> binlog_name = " " ;
167
+ ev-> binlog_pos = 0 ;
168
+ ev-> database = db_name;
169
+ ev-> table = tbl_name;
170
+ ev-> event = " INSERT" ;
171
+ // ev-> seconds_behind_master = GetSecondsBehindMaster();
172
+ ev-> unix_timestamp = long (time (NULL ));
173
173
174
174
for (const auto & it : filter) {
175
175
slave::PtrField ptr_field = it.second ;
176
176
const auto & field = fields.at (ptr_field->field_name );
177
177
if (field.is_null ) {
178
- ev. row [ it.first ] = boost::any ();
178
+ ev-> row [ it.first ] = boost::any ();
179
179
} else {
180
180
ptr_field->unpack_str (field.data );
181
- ev. row [ it.first ] = ptr_field->field_data ;
181
+ ev-> row [ it.first ] = ptr_field->field_data ;
182
182
}
183
183
}
184
184
if (!stopped) {
185
- stopped = cb (ev );
185
+ stopped = cb (std::move (ev) );
186
186
}
187
187
}
188
188
0 commit comments