summaryrefslogtreecommitdiff
path: root/Build/source/libs/graphite2/graphite2-1.2.3/src/inc/json.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/graphite2/graphite2-1.2.3/src/inc/json.h')
-rw-r--r--Build/source/libs/graphite2/graphite2-1.2.3/src/inc/json.h165
1 files changed, 0 insertions, 165 deletions
diff --git a/Build/source/libs/graphite2/graphite2-1.2.3/src/inc/json.h b/Build/source/libs/graphite2/graphite2-1.2.3/src/inc/json.h
deleted file mode 100644
index 80ff5b5cbf8..00000000000
--- a/Build/source/libs/graphite2/graphite2-1.2.3/src/inc/json.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* GRAPHITE2 LICENSING
-
- Copyright 2010, SIL International
- All rights reserved.
-
- This library is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published
- by the Free Software Foundation; either version 2.1 of 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
- Lesser General Public License for more details.
-
- You should also have received a copy of the GNU Lesser General Public
- License along with this library in the file named "LICENSE".
- If not, write to the Free Software Foundation, 51 Franklin Street,
- Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
- internet at http://www.fsf.org/licenses/lgpl.html.
-
-Alternatively, the contents of this file may be used under the terms of the
-Mozilla Public License (http://mozilla.org/MPL) or 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.
-*/
-// JSON pretty printer for graphite font debug output logging.
-// Created on: 15 Dec 2011
-// Author: Tim Eves
-
-#pragma once
-#include "inc/Main.h"
-#include <cassert>
-#include <cstdio>
-
-namespace graphite2 {
-
-class json
-{
- // Prevent copying
- json(const json &);
- json & operator = (const json &);
-
- typedef void (*_context_t)(json &);
- class _null_t {};
-
- FILE * const _stream;
- char _contexts[128], // context stack
- * _context, // current context (top of stack)
- * _flatten; // if !0 points to context above which
- // pretty printed output should occur.
-
- void context(const char current) throw();
- void indent(const int d=0) throw();
- void push_context(const char, const char) throw();
- void pop_context() throw();
-
-public:
- class closer;
-
- typedef const char * string;
- typedef double number;
- typedef long signed int integer;
- typedef bool boolean;
- static const _null_t null;
-
- static void flat(json &) throw();
- static void close(json &) throw();
- static void object(json &) throw();
- static void array(json &) throw();
- static void item(json &) throw();
-
- json(FILE * stream) throw();
- ~json() throw ();
-
- FILE * stream() const throw();
-
- json & operator << (string) throw();
- json & operator << (number) throw();
- json & operator << (integer) throw();
- json & operator << (long unsigned int d) throw();
- json & operator << (boolean) throw();
- json & operator << (_null_t) throw();
- json & operator << (_context_t) throw();
-
- operator bool() const throw();
- bool good() const throw();
- bool eof() const throw();
-
- CLASS_NEW_DELETE;
-};
-
-class json::closer
-{
- // Prevent copying.
- closer(const closer &);
- closer & operator = (const closer &);
-
- json * const _j;
-public:
- closer(json * const j) : _j(j) {}
- ~closer() throw() { if (_j) *_j << close; }
-};
-
-inline
-json::json(FILE * s) throw()
-: _stream(s), _context(_contexts), _flatten(0)
-{
- if (good())
- fflush(s);
-}
-
-
-inline
-json::~json() throw ()
-{
- while (_context > _contexts) pop_context();
-}
-
-inline
-FILE * json::stream() const throw() { return _stream; }
-
-
-inline
-json & json::operator << (json::_context_t ctxt) throw()
-{
- ctxt(*this);
- return *this;
-}
-
-inline
-json & operator << (json & j, signed char d) throw() { return j << json::integer(d); }
-
-inline
-json & operator << (json & j, short signed int d) throw() { return j << json::integer(d); }
-
-inline
-json & operator << (json & j, signed int d) throw() { return j << json::integer(d); }
-
-inline
-json & operator << (json & j, unsigned char d) throw() { return j << json::integer(d); }
-
-inline
-json & operator << (json & j, short unsigned int d) throw() { return j << json::integer(d); }
-
-inline
-json & operator << (json & j, unsigned int d) throw() { return j << json::integer(d); }
-
-inline
-json & operator << (json & j, char c) throw ()
-{
- const char str[2] = {c,0};
- return j << str;
-}
-
-inline
-json::operator bool() const throw() { return good(); }
-
-inline
-bool json::good() const throw() { return _stream && ferror(_stream) == 0; }
-
-inline
-bool json::eof() const throw() { return feof(_stream) != 0; }
-
-} // namespace graphite2