WvStreams
wvbackslash.h
1/* -*- Mode: C++ -*-
2 * Worldvisions Weaver Software:
3 * Copyright (C) 2002 Net Integration Technologies, Inc.
4 *
5 * C-style backslash escaping and unescaping of strings.
6 */
7#ifndef __WVBACKSLASH_H
8#define __WVBACKSLASH_H
9
10#include "wvencoder.h"
11
23{
24 WvString nasties;
25
26public:
33 WvBackslashEncoder(WvStringParm _nasties = "\\\"");
34 virtual ~WvBackslashEncoder() { }
35
36protected:
37 virtual bool _encode(WvBuf &inbuf, WvBuf &outbuf, bool flush);
38 virtual bool _reset();
39};
40
41
66{
67 enum State
68 { Initial, Escape, Hex1, Hex2, Octal1, Octal2, Octal3 };
69 State state;
70 WvInPlaceBuf tmpbuf;
71 int value;
72
73public:
76 virtual ~WvBackslashDecoder() { }
77
78protected:
79 virtual bool _encode(WvBuf &inbuf, WvBuf &outbuf, bool flush);
80 virtual bool _reset();
81
82private:
83 bool flushtmpbuf(WvBuf &outbuf);
84};
85
86#endif // __WVBACKSLASH_H
An encoder that performs C-style backslash unescaping of strings.
Definition: wvbackslash.h:66
virtual bool _encode(WvBuf &inbuf, WvBuf &outbuf, bool flush)
Template method implementation of encode().
Definition: wvbackslash.cc:122
WvBackslashDecoder()
Creates a C-style backslash decoder.
Definition: wvbackslash.cc:116
virtual bool _reset()
Template method implementation of reset().
Definition: wvbackslash.cc:243
An encoder that performs C-style backslash escaping of strings.
Definition: wvbackslash.h:23
WvBackslashEncoder(WvStringParm _nasties="\\\"")
Creates a C-style backslash encoder.
Definition: wvbackslash.cc:39
virtual bool _encode(WvBuf &inbuf, WvBuf &outbuf, bool flush)
Template method implementation of encode().
Definition: wvbackslash.cc:45
virtual bool _reset()
Template method implementation of reset().
Definition: wvbackslash.cc:108
Specialization of WvBufBase for unsigned char type buffers intended for use with raw memory buffers.
Definition: wvbuf.h:24
The base encoder class.
Definition: wvencoder.h:68
bool flush(WvBuf &inbuf, WvBuf &outbuf, bool finish=false)
Flushes the encoder and optionally finishes it.
Definition: wvencoder.h:163
A WvFastString acts exactly like a WvString, but can take (const char *) strings without needing to a...
Definition: wvstring.h:94
The in place raw memory buffer type.
Definition: wvbuf.h:165
WvString is an implementation of a simple and efficient printable-string class.
Definition: wvstring.h:330