NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
base64-encode.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013-2017 Regents of the University of California.
4  *
5  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6  *
7  * ndn-cxx library is free software: you can redistribute it and/or modify it under the
8  * terms of the GNU Lesser General Public License as published by the Free Software
9  * Foundation, either version 3 of the License, or (at your option) any later version.
10  *
11  * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13  * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14  *
15  * You should have received copies of the GNU General Public License and GNU Lesser
16  * General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17  * <http://www.gnu.org/licenses/>.
18  *
19  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20  */
21 
22 #ifndef NDN_CXX_SECURITY_TRANSFORM_BASE64_ENCODE_HPP
23 #define NDN_CXX_SECURITY_TRANSFORM_BASE64_ENCODE_HPP
24 
25 #include "transform-base.hpp"
26 
27 namespace ndn {
28 namespace security {
29 namespace transform {
30 
34 class Base64Encode : public Transform
35 {
36 public:
42  explicit
43  Base64Encode(bool needBreak = true);
44 
45  ~Base64Encode();
46 
47 private:
51  void
52  preTransform() final;
53 
58  size_t
59  convert(const uint8_t* data, size_t dataLen) final;
60 
66  void
67  finalize() final;
68 
72  void
73  fillOutputBuffer();
74 
78  bool
79  isConverterEmpty();
80 
81 private:
82  class Impl;
83  const unique_ptr<Impl> m_impl;
84 };
85 
86 unique_ptr<Transform>
87 base64Encode(bool needBreak = true);
88 
89 } // namespace transform
90 } // namespace security
91 } // namespace ndn
92 
93 #endif // NDN_CXX_SECURITY_TRANSFORM_BASE64_ENCODE_HPP
There are three types of module in a transformation chain: Source, Transform, and Sink...
Copyright (c) 2011-2015 Regents of the University of California.
The implementation class which contains the internal state of the filter which includes openssl speci...
The module to perform Base64 encoding transformation.
Base64Encode(bool needBreak=true)
Create a base64 encoding module.
Abstraction of an intermediate transformation module.
unique_ptr< Transform > base64Encode(bool needBreak)