WvStreams
Main Page
Modules
Classes
Files
File List
File Members
include
wvprotostream.h
1
/* -*- Mode: C++ -*-
2
* Worldvisions Weaver Software:
3
* Copyright (C) 1997-2002 Net Integration Technologies, Inc.
4
*
5
*/
6
#ifndef __WVPROTOSTREAM_H
7
#define __WVPROTOSTREAM_H
8
9
#include "wvstreamclone.h"
10
11
class
WvLog
;
12
19
class
WvProtoStream
:
public
WvStreamClone
20
{
21
public
:
22
class
Token
23
{
24
public
:
25
WvString
data;
26
size_t
length;
27
28
Token
();
29
Token
(
const
unsigned
char
*_data,
size_t
_length);
30
void
fill(
const
unsigned
char
*_data,
size_t
_length);
31
~
Token
();
32
};
33
34
DeclareWvList(
Token
);
35
36
WvDynBuf
tokbuf;
37
bool
log_enable;
38
39
WvProtoStream
(
WvStream
*_cloned,
WvLog
*_debuglog = NULL);
40
virtual
~
WvProtoStream
();
41
43
virtual
size_t
uwrite
(
const
void
*buffer,
size_t
size);
44
45
// Routines to convert an input line into a set of Tokens.
46
virtual
Token
*next_token();
47
WvString
next_token_str();
48
WvString
token_remaining();
49
virtual
TokenList *tokenize();
50
size_t
list_to_array(TokenList *tl,
Token
**array);
51
Token
*tokline(
const
char
*line);
52
54
int
tokanal
(
const
Token
&t,
const
char
**lookup,
55
bool
case_sensitive =
false
);
56
57
// finite state machine
58
int
state;
59
virtual
void
do_state(
Token
&t1);
60
virtual
void
switch_state(
int
newstate);
61
63
virtual
void
execute
();
64
65
protected
:
66
WvLog
*logp;
67
68
public
:
69
const
char
*wstype()
const
{
return
"WvProtoStream"
; }
70
};
71
72
73
#endif // __WVPROTOSTREAM_H
Generated on Thu Jul 12 2012 23:23:55 for WvStreams by
1.8.1.1