- Main Page
- Modules
- Classes
- Files
- Examples

- File List
- File Members

# private.h

Go to the documentation of this file.

    00001 // Copyright (C) 1999-2005 Open Source Telecom Corporation.
    00002 // Copyright (C) 2006-2010 David Sugar, Tycho Softworks.
    00003 //
    00004 // This program is free software; you can redistribute it and/or modify
    00005 // it under the terms of the GNU General Public License as published by
    00006 // the Free Software Foundation; either version 2 of the License, or
    00007 // (at your option) any later version.
    00008 //
    00009 // This program is distributed in the hope that it will be useful,
    00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00012 // GNU General Public License for more details.
    00013 //
    00014 // You should have received a copy of the GNU General Public License
    00015 // along with this program; if not, write to the Free Software
    00016 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    00017 //
    00018 // As a special exception to the GNU General Public License, permission is
    00019 // granted for additional uses of the text contained in its release
    00020 // of ccRTP.
    00021 //
    00022 // The exception is that, if you link the ccRTP library with other
    00023 // files to produce an executable, this does not by itself cause the
    00024 // resulting executable to be covered by the GNU General Public License.
    00025 // Your use of that executable is in no way restricted on account of
    00026 // linking the ccRTP library code into it.
    00027 //
    00028 // This exception does not however invalidate any other reasons why
    00029 // the executable file might be covered by the GNU General Public License.
    00030 //
    00031 // This exception applies only to the code released under the
    00032 // name ccRTP.  If you copy code from other releases into a copy of
    00033 // ccRTP, as the General Public License permits, the exception does
    00034 // not apply to the code that you add in this way.  To avoid misleading
    00035 // anyone as to the status of such modified files, you must delete
    00036 // this exception notice from them.
    00037 //
    00038 // If you write modifications of your own for ccRTP, it is your choice
    00039 // whether to permit this exception to apply to your modifications.
    00040 // If you do not wish that, delete this exception notice.
    00041
    00051 // This is for the main page in Doxygen documentation
    00056 // This will make doxygen to generate example descriptions
    00086 #ifndef CCXX_RTP_PRIVATE_H_
    00087 #define CCXX_RTP_PRIVATE_H_
    00088
    00089 #include <cc++/config.h>
    00090 #include <cc++/thread.h>
    00091 #include <cc++/socket.h>
    00092 #include <cc++/process.h>
    00093 #include <cc++/export.h>
    00094
    00095 #ifndef CCRTP_CAPE
    00096 #include "config.h"
    00097 #endif
    00098
    00099 #undef  PACKAGE
    00100 #undef  VERSION
    00101
    00102 // This is only of interest for developers, so it is included only if
    00103 // --with-nana flag is given to configure
    00104 #ifdef HAVE_LIBNANA
    00105 #   include "nana.h"
    00106 #   include "DL.h"
    00107 #else
    00108 #   define I(e)    /* empty */
    00109 #   define DL(e)   /* empty */
    00110 #   define VDL(e)  /* empty */
    00111 #endif
    00112
    00113 #ifdef  CCXX_NAMESPACES
    00114 namespace ost {
    00115 #endif
    00116
    00117 #ifdef WIN32
    00118
    00119 #ifndef timeradd
    00120 #define timeradd(a, b, result)                              \
    00121 {                                                           \
    00122     (result)->tv_sec = (a)->tv_sec + (b)->tv_sec;           \
    00123     (result)->tv_usec = (a)->tv_usec + (b)->tv_usec;        \
    00124     if ( (result)->tv_usec >= 1000000 ) {                   \
    00125         (result)->tv_sec++; (result)->tv_usec -= 1000000ul; \
    00126     }                                                       \
    00127 }
    00128 #endif
    00129
    00130 #ifndef timersub
    00131 #define timersub(a, b, result)                              \
    00132 {                                                           \
    00133     (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;           \
    00134     (result)->tv_usec = (a)->tv_usec - (b)->tv_usec;        \
    00135     if ( (result)->tv_usec < 0 ) {                          \
    00136         (result)->tv_sec--; (result)->tv_usec += 1000000ul; \
    00137     }                                                       \
    00138 }
    00139 #endif
    00140
    00141 #endif // WIN32
    00142
    00143 // Number of seconds ellapsed from 1900 to 1970
    00144 const uint32 NTP_EPOCH_OFFSET = static_cast<uint32>(2208992400ul);
    00145
    00146 uint32 random32();
    00147 uint16 random16();
    00148
    00149 #ifdef  CCXX_NAMESPACES
    00150 }
    00151 #endif
    00152
    00153 #endif // ifndef CCXX_RTP_PRIVATE_H_
    00154