- // 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