blob: 5965ccb34d9e45bc57aa938d212db60182edae73 [file] [log] [blame]
Jeff Thompson958bf9b2013-10-12 17:20:51 -07001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
2/**
3 * Copyright (C) 2013 Regents of the University of California.
4 * @author: Yingdi Yu <yingdi@cs.ucla.edu>
5 * @author: Jeff Thompson <jefft0@remap.ucla.edu>
6 * See COPYING for copyright and distribution information.
7 */
8
9#ifndef NDN_DER_VISITOR_HPP
10#define NDN_DER_VISITOR_HPP
11
Jeff Thompsond0a7d6d2013-10-15 12:34:26 -070012// We can use ndnboost::any because this is an internal header and will not conflict with the application if it uses boost::any.
13#include <ndnboost/any.hpp>
14
Jeff Thompson958bf9b2013-10-12 17:20:51 -070015namespace ndn {
16
17namespace der {
18
Jeff Thompson958bf9b2013-10-12 17:20:51 -070019class DerBool;
20class DerInteger;
21class DerPrintableString;
22class DerBitString;
23class DerNull;
24class DerOctetString;
25class DerOid;
26class DerSequence;
27class DerGtime;
28
29class Visitor
30{
31public:
Jeff Thompsond0a7d6d2013-10-15 12:34:26 -070032 virtual ndnboost::any visit(DerBool&, ndnboost::any) = 0;
33 virtual ndnboost::any visit(DerInteger&, ndnboost::any) = 0;
34 virtual ndnboost::any visit(DerPrintableString&, ndnboost::any) = 0;
35 virtual ndnboost::any visit(DerBitString&, ndnboost::any) = 0;
36 virtual ndnboost::any visit(DerNull&, ndnboost::any) = 0;
37 virtual ndnboost::any visit(DerOctetString&, ndnboost::any) = 0;
38 virtual ndnboost::any visit(DerOid&, ndnboost::any) = 0;
39 virtual ndnboost::any visit(DerSequence&, ndnboost::any) = 0;
40 virtual ndnboost::any visit(DerGtime&, ndnboost::any) = 0;
Jeff Thompson958bf9b2013-10-12 17:20:51 -070041};
42
43} // der
44
45}
46
47#endif