+ // Reviso buffers completos a ver si puedo sacar algo
+ buffer_complete_type::iterator f = buffer_complete.find(proto);
+ if (f != buffer_complete.end()) // Hay algo
+ {
+ srcmap_type& srcmap = f->second;
+ srcmap_type::iterator b;
+ if (filter)
+ b = srcmap.find(src); // Si filtro, busco el que me interesa
+ else
+ b = srcmap.begin(); // Si no filtro, agarro el primero
+ if (b != srcmap.end())
+ {
+ src = b->first;
+ dst = (b->second).dst;
+ std::string data = b->second.data;
+ // Limpio buffers
+ srcmap.erase(src);
+ if (srcmap.empty())
+ buffer_complete.erase(proto);
+ return data;
+ }
+ }
+ // Si no pude sacar nada, recibo