blob: 06c469f3e8846892ce6d5788e11fa15a74881d73 [file] [log] [blame]
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
/**
* Copyright (C) 2013 Regents of the University of California.
* @author: Yingdi Yu <yingdi@cs.ucla.edu>
* @author: Jeff Thompson <jefft0@remap.ucla.edu>
* See COPYING for copyright and distribution information.
*/
#ifndef NDN_DER_VISITOR_HPP
#define NDN_DER_VISITOR_HPP
#include <ndn-cpp/common.hpp>
#if NDN_CPP_USE_SYSTEM_BOOST
#include <boost/any.hpp>
namespace ndnboost = boost;
#else
// We can use ndnboost::any because this is an internal header and will not conflict with the application if it uses boost::any.
#include <ndnboost/any.hpp>
#endif
namespace ndn {
namespace der {
class DerBool;
class DerInteger;
class DerPrintableString;
class DerBitString;
class DerNull;
class DerOctetString;
class DerOid;
class DerSequence;
class DerGtime;
class Visitor
{
public:
virtual ndnboost::any visit(DerBool&, ndnboost::any) = 0;
virtual ndnboost::any visit(DerInteger&, ndnboost::any) = 0;
virtual ndnboost::any visit(DerPrintableString&, ndnboost::any) = 0;
virtual ndnboost::any visit(DerBitString&, ndnboost::any) = 0;
virtual ndnboost::any visit(DerNull&, ndnboost::any) = 0;
virtual ndnboost::any visit(DerOctetString&, ndnboost::any) = 0;
virtual ndnboost::any visit(DerOid&, ndnboost::any) = 0;
virtual ndnboost::any visit(DerSequence&, ndnboost::any) = 0;
virtual ndnboost::any visit(DerGtime&, ndnboost::any) = 0;
};
} // der
}
#endif