From 5df79c53745fde5d6c3340a2979b1429cd5892c1 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Sat, 8 Oct 2011 20:30:28 +0200 Subject: Initial import of htcd system 1.0 Signed-off-by: Henrik Rydberg --- src/mt/issue.h | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/mt/issue.h (limited to 'src/mt/issue.h') diff --git a/src/mt/issue.h b/src/mt/issue.h new file mode 100644 index 0000000..27f6aa0 --- /dev/null +++ b/src/mt/issue.h @@ -0,0 +1,55 @@ +/************************************************************************* + * + * HTCd - Copyright (C) 1998-2006 Henrik Rydberg + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef ISSUEH +#define ISSUEH + +#include +#include +#include + +// ISSUE A PIPED COMMAND +// +// This class is tuned to work in a mt environment. +// The aim is to make this work locally as if it was +// a single thread returning something to the stream out +// depending on the input in. + +struct issue_t { + mrvec arg; + + issue_t() {} + ~issue_t() { clear(); } + + issue_t(const sref& s,const charset& ws=cset_ws) { + sref first,rest=s; + while(Split(first,rest,ws)) arg.push_back(first.news()); + arg.push_back(0); + } + + void clear() { for(int i=0;i