summaryrefslogtreecommitdiff
path: root/autobuild.xml
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2012-02-16 16:05:04 -0500
committerNat Goodspeed <nat@lindenlab.com>2012-02-16 16:05:04 -0500
commite92c3113545dd60fb76e115da201163e340c730c (patch)
tree4c9a5e231f0e2ad0075a25a7154e7e181434675d /autobuild.xml
parent85057908c3f7e48f1dc086ea1c82e672674b2596 (diff)
Add LLProcess::ReadPipe::find() methods, with corresponding npos.
If it's useful to have contains() to tell you whether incoming data contains a particular substring, and if it's useful for contains() and peek() to accept an offset within that data, then it's useful to allow you to get the offset of a desired substring within that data. But of course a find() returning offset needs something like std::string::npos for "not found"; borrow that convention. Support both find(const std::string&) and find(char); the latter permits a more efficient implementation. In fact, make find(string) recognize a string of length 1 and leverage the find(char) implementation. Given that, reimplement contains(mumble) as shorthand for find(mumble) != npos. Implement find() overloads using std::search() and std::find() on boost::asio::streambuf character iterators, rather than copying to std::string and then using string search like previous contains() implementation. Reimplement WritePipeImpl::tick() and ReadPipeImpl::tick() to write/read directly from/to boost::asio::streambuf data, instead of copying to/from a temporary flat buffer. As long as ReadPipeImpl::tick() keeps successfully filling buffers, keep reading. Previous implementation would only handle a long child write over successive tick() calls. Stop on read error or when we come up short.
Diffstat (limited to 'autobuild.xml')
0 files changed, 0 insertions, 0 deletions