blob: 6d04703649762f41a09a314a5a22d70862744b4d [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
12namespace ndn {
13
14namespace der {
15
Jeff Thompson736a1822013-10-14 18:22:53 -070016// TODO: This is a stub. We want to implement an any type, but avoid boost::any which is not in the C++ standard library.
17class Any {
18public:
19 Any() {}
20
21 template<class T> Any(const T& value) {}
22};
23
Jeff Thompson958bf9b2013-10-12 17:20:51 -070024class DerBool;
25class DerInteger;
26class DerPrintableString;
27class DerBitString;
28class DerNull;
29class DerOctetString;
30class DerOid;
31class DerSequence;
32class DerGtime;
33
34class Visitor
35{
36public:
37 virtual Any visit(DerBool&, Any) = 0;
38 virtual Any visit(DerInteger&, Any) = 0;
39 virtual Any visit(DerPrintableString&, Any) = 0;
40 virtual Any visit(DerBitString&, Any) = 0;
41 virtual Any visit(DerNull&, Any) = 0;
42 virtual Any visit(DerOctetString&, Any) = 0;
43 virtual Any visit(DerOid&, Any) = 0;
44 virtual Any visit(DerSequence&, Any) = 0;
45 virtual Any visit(DerGtime&, Any) = 0;
46};
47
48} // der
49
50}
51
52#endif