From 1fdd86a04924e4ab9543133b74df3322cffbd358 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 15 Feb 2018 20:25:49 -0500 Subject: Move Pl_QPDFTokenizer to public interface --- include/qpdf/Pl_QPDFTokenizer.hh | 74 ++++++++++++++++++++++++++++++++++++++++ libqpdf/qpdf/Pl_QPDFTokenizer.hh | 48 -------------------------- 2 files changed, 74 insertions(+), 48 deletions(-) create mode 100644 include/qpdf/Pl_QPDFTokenizer.hh delete mode 100644 libqpdf/qpdf/Pl_QPDFTokenizer.hh diff --git a/include/qpdf/Pl_QPDFTokenizer.hh b/include/qpdf/Pl_QPDFTokenizer.hh new file mode 100644 index 00000000..be34b32e --- /dev/null +++ b/include/qpdf/Pl_QPDFTokenizer.hh @@ -0,0 +1,74 @@ +// Copyright (c) 2005-2018 Jay Berkenbilt +// +// This file is part of qpdf. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Versions of qpdf prior to version 7 were released under the terms +// of version 2.0 of the Artistic License. At your option, you may +// continue to consider qpdf to be licensed under those terms. Please +// see the manual for additional information. + +#ifndef __PL_QPDFTOKENIZER_HH__ +#define __PL_QPDFTOKENIZER_HH__ + +#include + +#include +#include +#include + +// Tokenize the incoming text using QPDFTokenizer and pass the tokens +// in turn to a QPDFObjectHandle::TokenFilter object. All bytes of +// incoming content will be included in exactly one token and passed +// downstream. + +// This is a very low-level interface for working with token filters. +// Most code will want to use QPDFObjectHandle::filterPageContents or +// QPDFObjectHandle::addTokenFilter. See QPDFObjectHandle.hh for +// details. + +class Pl_QPDFTokenizer: public Pipeline +{ + public: + Pl_QPDFTokenizer(char const* identifier, + QPDFObjectHandle::TokenFilter* filter); + virtual ~Pl_QPDFTokenizer(); + virtual void write(unsigned char* buf, size_t len); + virtual void finish(); + + private: + void processChar(char ch); + void checkUnread(); + + class Members + { + friend class Pl_QPDFTokenizer; + + public: + ~Members(); + + private: + Members(); + Members(Members const&); + + QPDFObjectHandle::TokenFilter* filter; + QPDFTokenizer tokenizer; + bool last_char_was_cr; + bool unread_char; + char char_to_unread; + }; + PointerHolder m; +}; + +#endif // __PL_QPDFTOKENIZER_HH__ diff --git a/libqpdf/qpdf/Pl_QPDFTokenizer.hh b/libqpdf/qpdf/Pl_QPDFTokenizer.hh deleted file mode 100644 index 42358898..00000000 --- a/libqpdf/qpdf/Pl_QPDFTokenizer.hh +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef __PL_QPDFTOKENIZER_HH__ -#define __PL_QPDFTOKENIZER_HH__ - -#include - -#include -#include -#include - -// Tokenize the incoming text using QPDFTokenizer and pass the tokens -// in turn to a QPDFObjectHandle::TokenFilter object. All bytes of -// incoming content will be included in exactly one token and passed -// downstream. - -class Pl_QPDFTokenizer: public Pipeline -{ - public: - Pl_QPDFTokenizer(char const* identifier, - QPDFObjectHandle::TokenFilter* filter); - virtual ~Pl_QPDFTokenizer(); - virtual void write(unsigned char* buf, size_t len); - virtual void finish(); - - private: - void processChar(char ch); - void checkUnread(); - - class Members - { - friend class Pl_QPDFTokenizer; - - public: - ~Members(); - - private: - Members(); - Members(Members const&); - - QPDFObjectHandle::TokenFilter* filter; - QPDFTokenizer tokenizer; - bool last_char_was_cr; - bool unread_char; - char char_to_unread; - }; - PointerHolder m; -}; - -#endif // __PL_QPDFTOKENIZER_HH__ -- cgit v1.2.3-54-g00ecf