Add GNU LGPL headers to all .c .C and .h files
[oweals/cde.git] / cde / programs / dtinfo / dtinfogen / infolib / etc / DataTask.h
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these librararies and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /* $XConsortium: DataTask.h /main/2 1996/07/18 16:42:57 drk $ */
24 /* $Id: DataTask.h /main/2 1996/07/18 16:42:57 drk $ */
25
26 #ifndef __DataTask_h
27 #define __DataTask_h
28
29 #include <stddef.h>
30 #include "Task.h"
31 #include "FlexBuffer.h"
32
33 class DataTask : public Task{
34   /*
35    * A DataTask collects all the data for an element.
36    *
37    * USE:
38    *   if(t.type() == START && t.attrMatch(OLAF::OLIAS, OLAF::Title)){
39    *     titleTask = addSubTask(new DataTask());
40    *
41    *     ... (more markup(), data() calls) ...
42    *
43    *   const char *title = titleTask.content()
44    */
45 public:
46
47   DataTask(const Token& t);
48
49   virtual void markup(const Token& t) /* throw(Unexpected) */;
50
51   virtual void data(const char *chars,
52                     size_t len) /* throw(ResourcesExhausted) */;
53
54   const char *content(size_t *length_return = NULL);
55
56  private:
57   int level; /* how far nested are we? */
58   FlexBuffer buf;
59 };
60
61
62 #endif /* __DataTask_h */