blob: 63983237b2d4865b02e270bffc95a47e5b9eb552 [file] [log] [blame]
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
/**
* Copyright (C) 2013 Regents of the University of California.
* @author: Jeff Thompson <jefft0@remap.ucla.edu>
* See COPYING for copyright and distribution information.
*/
#ifndef NDN_COMMON_HPP
#define NDN_COMMON_HPP
#include "ndn-cpp-config.h"
#include <stdint.h>
// TODO: Is stddef.h portable?
#include <stddef.h>
#include <unistd.h>
// Standard headers to precompile
#include <vector>
#include <list>
#include <set>
#include <algorithm>
#include <map>
#include <sstream>
#include <fstream>
#include <exception>
#include <map>
// Other useful headers to precompile
#include <boost/lexical_cast.hpp>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/iostreams/detail/ios.hpp>
#include <boost/iostreams/categories.hpp>
#include <boost/iostreams/stream.hpp>
#if NDN_CPP_HAVE_CXX11
#if (__cplusplus < 201103L)
#error "NDN-CPP-DEV library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
#endif
#include <memory>
#include <functional>
namespace ndn {
namespace ptr_lib = std;
namespace func_lib = std
using std::shared_ptr;
using std::make_shared;
using std::enable_shared_from_this;
using std::function;
using std::bind;
using std::placeholders; // _1, _2, ..
} // namespace ndn
#else
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/make_shared.hpp>
#include <boost/function.hpp>
#include <boost/bind.hpp>
namespace ndn {
namespace ptr_lib = boost;
namespace func_lib = boost;
using boost::shared_ptr;
using boost::make_shared;
using boost::enable_shared_from_this;
using boost::function;
using boost::bind;
} // namespace ndn
#endif
namespace ndn {
/**
* A time interval represented as the number of milliseconds.
*/
typedef int64_t Milliseconds;
/**
* The calendar time represented as the number of milliseconds since 1/1/1970.
*/
typedef int64_t MillisecondsSince1970;
/**
* Return the hex representation of the bytes in array.
* @param array The array of bytes.
* @return Hex string.
*/
std::string
toHex(const std::vector<uint8_t>& array);
MillisecondsSince1970
getNow();
}
#endif