@@ -89,154 +89,148 @@ bool McServerBinaryParser::parseHeader(const char * bytes) {
8989
9090 // TODO validate command constraint (i.e. no extras, no value)
9191 switch (getOpCode ()) {
92- case 0x0a : // No-op
93- return false ;
94-
95- case 0x01 : // Set
92+ case mc_opcode_set:
9693 currentMessage_.emplace <McSetRequest>();
9794 consumer_ = &McServerBinaryParser::consumeSetLike<McSetRequest, false >;
9895 return true ;
99- case 0x11 : // SetQ
96+ case mc_opcode_setq:
10097 currentMessage_.emplace <McSetRequest>();
10198 consumer_ = &McServerBinaryParser::consumeSetLike<McSetRequest, true >;
10299 return true ;
103- case 0x02 : // Add
100+ case mc_opcode_add:
104101 currentMessage_.emplace <McAddRequest>();
105102 consumer_ = &McServerBinaryParser::consumeSetLike<McAddRequest, false >;
106103 return true ;
107- case 0x12 : // AddQ
104+ case mc_opcode_addq
108105 currentMessage_.emplace <McAddRequest>();
109106 consumer_ = &McServerBinaryParser::consumeSetLike<McAddRequest, true >;
110107 return true ;
111- case 0x03 : // Replace
108+ case mc_opcode_replace:
112109 currentMessage_.emplace <McReplaceRequest>();
113110 consumer_ = &McServerBinaryParser::consumeSetLike<McReplaceRequest, false >;
114111 return true ;
115- case 0x13 : // ReplaceQ
112+ case mc_opcode_replaceq:
116113 currentMessage_.emplace <McReplaceRequest>();
117114 consumer_ = &McServerBinaryParser::consumeSetLike<McReplaceRequest, true >;
118115 return true ;
119- case 0x0e : // Append
116+ case mc_opcode_append:
120117 currentMessage_.emplace <McAppendRequest>();
121118 consumer_ = &McServerBinaryParser::consumeAppendLike<McAppendRequest, false >;
122119 return true ;
123- case 0x19 : // AppendQ
120+ case mc_opcode_appendq:
124121 currentMessage_.emplace <McAppendRequest>();
125122 consumer_ = &McServerBinaryParser::consumeAppendLike<McAppendRequest, true >;
126123 return true ;
127- case 0x0f : // Prepend
124+ case mc_opcode_prepend:
128125 currentMessage_.emplace <McPrependRequest>();
129126 consumer_ = &McServerBinaryParser::consumeAppendLike<McPrependRequest, false >;
130127 return true ;
131- case 0x1a : // PrependQ
128+ case mc_opcode_prependq:
132129 currentMessage_.emplace <McPrependRequest>();
133130 consumer_ = &McServerBinaryParser::consumeAppendLike<McPrependRequest, true >;
134131 return true ;
135- case 0x00 : // Get
132+ case mc_opcode_get:
136133 currentMessage_.emplace <McGetRequest>();
137134 consumer_ = &McServerBinaryParser::consumeGetLike<McGetRequest, false , false >;
138135 return true ;
139- case 0x09 : // GetQ
136+ case mc_opcode_getq:
140137 currentMessage_.emplace <McGetRequest>();
141138 consumer_ = &McServerBinaryParser::consumeGetLike<McGetRequest, true , false >;
142139 return true ;
143- case 0x0c : // GetK
140+ case mc_opcode_getk:
144141 currentMessage_.emplace <McGetRequest>();
145142 consumer_ = &McServerBinaryParser::consumeGetLike<McGetRequest, false , true >;
146143 return true ;
147- case 0x0d : // GetKQ
144+ case mc_opcode_getkq:
148145 currentMessage_.emplace <McGetRequest>();
149146 consumer_ = &McServerBinaryParser::consumeGetLike<McGetRequest, true , true >;
150147 return true ;
151- case 0x04 : // Delete
148+ case mc_opcode_delete:
152149 currentMessage_.emplace <McDeleteRequest>();
153150 consumer_ = &McServerBinaryParser::consumeGetLike<McDeleteRequest, false , false >;
154151 return true ;
155- case 0x14 : // DeleteQ
152+ case mc_opcode_deleteq:
156153 currentMessage_.emplace <McDeleteRequest>();
157154 consumer_ = &McServerBinaryParser::consumeGetLike<McDeleteRequest, true , false >;
158155 return true ;
159- case 0x05 : // Increment
156+ case mc_opcode_increment:
160157 currentMessage_.emplace <McIncrRequest>();
161158 consumer_ = &McServerBinaryParser::consumeArithLike<McIncrRequest, false >;
162159 return true ;
163- case 0x15 : // IncrementQ
160+ case mc_opcode_incrementq:
164161 currentMessage_.emplace <McIncrRequest>();
165162 consumer_ = &McServerBinaryParser::consumeArithLike<McIncrRequest, true >;
166163 return true ;
167- case 0x06 : // Decrement
164+ case mc_opcode_decrement:
168165 currentMessage_.emplace <McDecrRequest>();
169166 consumer_ = &McServerBinaryParser::consumeArithLike<McDecrRequest, false >;
170167 return true ;
171- case 0x16 : // DecrementQ
168+ case mc_opcode_decrementq:
172169 currentMessage_.emplace <McDecrRequest>();
173170 consumer_ = &McServerBinaryParser::consumeArithLike<McDecrRequest, true >;
174171 return true ;
175- case 0x1c : // Touch
176- case 0x1d : // GAT
177- case 0x1e : // GATQ
172+ case mc_opcode_touch:
173+ case mc_opcode_gat:
174+ case mc_opcode_gatq:
178175 currentMessage_.emplace <McTouchRequest>();
179176 consumer_ = &McServerBinaryParser::consumeGetLike<McTouchRequest, false , false >;
180177 return true ;
181- case 0x10 : // Stat
178+ case mc_opcode_stat:
182179 currentMessage_.emplace <McStatsRequest>();
183180 consumer_ = &McServerBinaryParser::consumeGetLike<McStatsRequest, false , false >;
184181 return true ;
185- case 0x0b : // Version
182+ case mc_opcode_version:
186183 currentMessage_.emplace <McVersionRequest>();
187184 consumer_ = &McServerBinaryParser::consumeVersion;
188185 return true ;
189- case 0x07 : // Quit
186+ case mc_opcode_quit:
190187 currentMessage_.emplace <McQuitRequest>();
191188 consumer_ = &McServerBinaryParser::consumeQuit<false >;
192189 return true ;
193- case 0x17 : // QuitQ
190+ case mc_opcode_quitq:
194191 currentMessage_.emplace <McQuitRequest>();
195192 consumer_ = &McServerBinaryParser::consumeQuit<true >;
196193 return true ;
197- case 0x08 : // Flush
194+ case mc_opcode_flush:
198195 currentMessage_.emplace <McFlushAllRequest>();
199196 consumer_ = &McServerBinaryParser::consumeFlush<false >;
200197 return true ;
201- case 0x18 : // FlushQ
198+ case mc_opcode_flushq:
202199 currentMessage_.emplace <McFlushAllRequest>();
203200 consumer_ = &McServerBinaryParser::consumeFlush<true >;
204201 return true ;
205- /*
206- case 0x20: // SASL list mechs
207- case 0x21: // SASL Auth
208- case 0x22: // SASL Step
209-
210- // Range operations, not implemented in memcached itself
211- case 0x31: // RSet
212- case 0x32: // RSetQ
213- case 0x33: // RAppend
214- case 0x34: // RAppendQ
215- case 0x35: // RPrepend
216- case 0x36: // RPrependQ
217- case 0x30: // RGet
218- case 0x37: // RDelete
219- case 0x38: // RDeleteQ
220- case 0x39: // RIncr
221- case 0x3a: // RIncrQ
222- case 0x3b: // RDecr
223- case 0x3c: // RDecrQ
224-
202+ case mc_opcode_noop:
203+ // SASL commands
204+ case mc_opcode_sasllistmechs:
205+ case mc_opcode_saslauth:
206+ case mc_opcode_saslstep:
207+ // Range commands
208+ case mc_opcode_rset:
209+ case mc_opcode_rsetq:
210+ case mc_opcode_rappend:
211+ case mc_opcode_rappendq:
212+ case mc_opcode_rprepend:
213+ case mc_opcode_rprependq:
214+ case mc_opcode_rget:
215+ case mc_opcode_rdelete:
216+ case mc_opcode_rdeleteq:
217+ case mc_opcode_rincr:
218+ case mc_opcode_rincrq:
219+ case mc_opcode_rdecr:
220+ case mc_opcode_rdecrq:
225221 // v1.6 proposed commands
226- case 0x3d: // Set VBucket *
227- case 0x45: // TAP VBucket Set *
228- case 0x3e: // Get VBucket *
229- case 0x42: // TAP Delete *
230-
231- case 0x1b: // Verbosity *
232- case 0x43: // TAP Flush *
233- case 0x3f: // Del VBucket *
234- case 0x40: // TAP Connect *
235- case 0x41: // TAP Mutation *
236- case 0x44: // TAP Opaque *
237- case 0x46: // TAP Checkpoint Start *
238- case 0x47: // TAP Checkpoint End *
239- */
222+ case mc_opcode_setvbucket:
223+ case mc_opcode_tapvbucketset:
224+ case mc_opcode_getvbucket:
225+ case mc_opcode_tapdelete:
226+ case mc_opcode_verosity:
227+ case mc_opcode_tapflush:
228+ case mc_opcode_delvbucket:
229+ case mc_opcode_tapconnect:
230+ case mc_opcode_tapmutation:
231+ case mc_opcode_tapopaque:
232+ case mc_opcode_tapcheckpointstart:
233+ case mc_opcode_tapcheckpointend::
240234 default :
241235 return false ;
242236 }
0 commit comments