blob: d8290bf9016d481aac79519dd1d1522d66850171 [file] [log] [blame]
Jeff Thompson25b4e612013-10-10 16:03:24 -07001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
Jeff Thompson47eecfc2013-07-07 22:56:46 -07002/**
Jeff Thompson7687dc02013-09-13 11:54:07 -07003 * Copyright (C) 2013 Regents of the University of California.
4 * @author: Jeff Thompson <jefft0@remap.ucla.edu>
Jeff Thompson47eecfc2013-07-07 22:56:46 -07005 * See COPYING for copyright and distribution information.
Jeff Thompson571f3522013-07-07 22:39:31 -07006 */
7
8#ifndef NDN_COMMON_HPP
9#define NDN_COMMON_HPP
10
Alexander Afanasyev09c613f2014-01-29 00:23:58 -080011#include "ndn-cpp-config.h"
Alexander Afanasyevd409d592014-01-28 18:36:38 -080012#include <stdint.h>
13// TODO: Is stddef.h portable?
14#include <stddef.h>
15
Jeff Thompson51dd5fd2013-07-10 19:27:18 -070016#include <vector>
Alexander Afanasyev19508852014-01-29 01:01:51 -080017#include <list>
18#include <set>
19#include <algorithm>
Jeff Thompson571f3522013-07-07 22:39:31 -070020
Alexander Afanasyev0541cf42014-01-02 19:10:37 -080021#if NDN_CPP_HAVE_CXX11
Alexander Afanasyev472fa022014-01-07 13:30:49 -080022
23#if (__cplusplus < 201103L)
Yingdi Yu61ec2722014-01-20 14:22:32 -080024#error "NDN-CPP-DEV library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
Alexander Afanasyev472fa022014-01-07 13:30:49 -080025#endif
26
Jeff Thompson571f3522013-07-07 22:39:31 -070027#include <memory>
Alexander Afanasyev0541cf42014-01-02 19:10:37 -080028#include <functional>
Alexander Afanasyev19508852014-01-29 01:01:51 -080029
30namespace ndn {
31
32namespace ptr_lib = std;
33namespace func_lib = std
34
35using std::shared_ptr;
36using std::make_shared;
37using std::enable_shared_from_this;
38
39using std::function;
40using std::bind;
41using std::placeholders; // _1, _2, ..
42
43} // namespace ndn
44
Alexander Afanasyev0541cf42014-01-02 19:10:37 -080045
Alexander Afanasyevd409d592014-01-28 18:36:38 -080046#else
Alexander Afanasyev0541cf42014-01-02 19:10:37 -080047
Jeff Thompson571f3522013-07-07 22:39:31 -070048#include <boost/shared_ptr.hpp>
Alexander Afanasyevb790d952014-01-24 12:07:53 -080049#include <boost/enable_shared_from_this.hpp>
Jeff Thompson571f3522013-07-07 22:39:31 -070050#include <boost/make_shared.hpp>
Alexander Afanasyev0541cf42014-01-02 19:10:37 -080051
Alexander Afanasyev0541cf42014-01-02 19:10:37 -080052#include <boost/function.hpp>
53#include <boost/bind.hpp>
Alexander Afanasyev19508852014-01-29 01:01:51 -080054
55namespace ndn {
56
57namespace ptr_lib = boost;
58namespace func_lib = boost;
59
60using boost::shared_ptr;
61using boost::make_shared;
62using boost::enable_shared_from_this;
63
64using boost::function;
65using boost::bind;
66
67} // namespace ndn
Alexander Afanasyev0541cf42014-01-02 19:10:37 -080068
Jeff Thompsona28eed82013-08-22 16:21:10 -070069#endif
70
Jeff Thompson51dd5fd2013-07-10 19:27:18 -070071namespace ndn {
Jeff Thompson9a8e82f2013-10-17 14:13:43 -070072
Alexander Afanasyev19508852014-01-29 01:01:51 -080073
Jeff Thompson9a8e82f2013-10-17 14:13:43 -070074/**
75 * A time interval represented as the number of milliseconds.
76 */
Alexander Afanasyevee940312013-12-24 19:43:15 -080077typedef int64_t Milliseconds;
Jeff Thompson04bfd942013-09-12 15:55:58 -070078
Jeff Thompson9a8e82f2013-10-17 14:13:43 -070079/**
80 * The calendar time represented as the number of milliseconds since 1/1/1970.
81 */
Alexander Afanasyevee940312013-12-24 19:43:15 -080082typedef int64_t MillisecondsSince1970;
Jeff Thompson9a8e82f2013-10-17 14:13:43 -070083
Jeff Thompsona8d7b062013-08-08 15:56:35 -070084/**
85 * Return the hex representation of the bytes in array.
86 * @param array The array of bytes.
87 * @return Hex string.
88 */
Jeff Thompson0050abe2013-09-17 12:50:25 -070089std::string
Jeff Thompson10ad12a2013-09-24 16:19:11 -070090toHex(const std::vector<uint8_t>& array);
Jeff Thompsona8d7b062013-08-08 15:56:35 -070091
Yingdi Yu31b4af22014-01-14 14:13:00 -080092MillisecondsSince1970
93getNow();
94
Jeff Thompson51dd5fd2013-07-10 19:27:18 -070095}
96
Jeff Thompson571f3522013-07-07 22:39:31 -070097#endif