diff options
Diffstat (limited to 'src/expr/pickler.h')
-rw-r--r-- | src/expr/pickler.h | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/src/expr/pickler.h b/src/expr/pickler.h deleted file mode 100644 index f0d219eeb..000000000 --- a/src/expr/pickler.h +++ /dev/null @@ -1,129 +0,0 @@ -/********************* */ -/*! \file pickler.h - ** \verbatim - ** Top contributors (to current version): - ** Morgan Deters, Tim King, Clark Barrett - ** This file is part of the CVC4 project. - ** Copyright (c) 2009-2019 by the authors listed in the file AUTHORS - ** in the top-level source directory) and their institutional affiliations. - ** All rights reserved. See the file COPYING in the top-level source - ** directory for licensing information.\endverbatim - ** - ** \brief This is a "pickler" for expressions - ** - ** This is a "pickler" for expressions. It produces a binary - ** serialization of an expression that can be converted back - ** into an expression in the same or another ExprManager. - **/ - -#include "cvc4_public.h" - -#ifndef __CVC4__PICKLER_H -#define __CVC4__PICKLER_H - -#include "expr/variable_type_map.h" -#include "expr/expr.h" -#include "base/exception.h" - -#include <exception> -#include <stack> - -namespace CVC4 { - -class ExprManager; - -namespace expr { -namespace pickle { - -class Pickler; -class PicklerPrivate; - -class PickleData;// CVC4-internal representation - -class CVC4_PUBLIC Pickle { - PickleData* d_data; - friend class Pickler; - friend class PicklerPrivate; -public: - Pickle(); - Pickle(const Pickle& p); - ~Pickle(); - Pickle& operator=(const Pickle& other); -};/* class Pickle */ - -class CVC4_PUBLIC PicklingException : public Exception { -public: - PicklingException() : - Exception("Pickling failed") { - } -};/* class PicklingException */ - -class CVC4_PUBLIC Pickler { - PicklerPrivate* d_private; - - friend class PicklerPrivate; - -protected: - virtual uint64_t variableToMap(uint64_t x) const { return x; } - virtual uint64_t variableFromMap(uint64_t x) const { return x; } -public: - Pickler(ExprManager* em); - virtual ~Pickler(); - - /** - * Constructs a new Pickle of the node n. - * n must be a node allocated in the node manager specified at initialization - * time. The new pickle has variables mapped using the VariableIDMap provided - * at initialization. - * TODO: Fix comment - * - * @return the pickle, which should be dispose()'d when you're done with it - */ - void toPickle(Expr e, Pickle& p); - - /** - * Constructs a node from a Pickle. - * This destroys the contents of the Pickle. - * The node is created in the NodeManager getNM(); - * TODO: Fix comment - */ - Expr fromPickle(Pickle& p); - - static void debugPickleTest(Expr e); - -};/* class Pickler */ - -class CVC4_PUBLIC MapPickler : public Pickler { -private: - const VarMap& d_toMap; - const VarMap& d_fromMap; - -public: - MapPickler(ExprManager* em, const VarMap& to, const VarMap& from): - Pickler(em), - d_toMap(to), - d_fromMap(from) { - } - -protected: - uint64_t variableToMap(uint64_t x) const override - { - VarMap::const_iterator i = d_toMap.find(x); - if (i != d_toMap.end()) - { - return i->second; - } - else - { - throw PicklingException(); - } - } - - uint64_t variableFromMap(uint64_t x) const override; -};/* class MapPickler */ - -}/* CVC4::expr::pickle namespace */ -}/* CVC4::expr namespace */ -}/* CVC4 namespace */ - -#endif /* __CVC4__PICKLER_H */ |