Search:

SENF Extensible Network Framework

  • Home
  • Download
  • Wiki
  • BerliOS
  • ChangeLog
  • Browse SVN
  • Bug Tracker
  • Overview
  • Examples
  • HowTos
  • Glossary
  • PPI
  • Packets
  • Scheduler
  • Socket
  • Utils
  • Console
  • Daemon
  • Logger
  • Termlib
  • Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

mpl.ih

Go to the documentation of this file.
00001 // $Id: mpl.ih 1742 2010-11-04 14:51:56Z g0dil $
00002 //
00003 // Copyright (C) 2007
00004 // Fraunhofer (FOKUS)
00005 // Competence Center NETwork research (NET), St. Augustin, GERMANY
00006 //     Stefan Bund <g0dil@berlios.de>
00007 //
00008 // This program is free software; you can redistribute it and/or modify
00009 // it under the terms of the GNU General Public License as published by
00010 // the Free Software Foundation; either version 2 of the License, or
00011 // (at your option) any later version.
00012 //
00013 // This program is distributed in the hope that it will be useful,
00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016 // GNU General Public License for more details.
00017 //
00018 // You should have received a copy of the GNU General Public License
00019 // along with this program; if not, write to the
00020 // Free Software Foundation, Inc.,
00021 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00022 
00026 #ifndef IH_SENF_Utils_mpl_
00027 #define IH_SENF_Utils_mpl_ 1
00028 
00029 // Custom includes
00030 
00031 //-/////////////////////////////////////////////////////////////////////////////////////////////////
00032 
00033 #define SENF_MPL_SLOT_I_CHOOSE(a,b) (a != 0 ? a-1 : (b))
00034 
00035 #define SENF_MPL_SLOT_I_CHECK(name,a,b)                                                           \
00036    SENF_MPL_SLOT_I_CHOOSE(                                                                        \
00037        SENF_MPL_RV(_SENF_MPL_SLOT_ ## name (senf::mpl::take_int<(a)>())),                         \
00038        b )
00039 
00040 #define SENF_MPL_SLOT_I_GET(name)                                                                 \
00041     SENF_MPL_SLOT_I_CHECK(name, __LINE__>1?__LINE__-1:0,                                          \
00042     SENF_MPL_SLOT_I_CHECK(name, __LINE__>2?__LINE__-2:0,                                          \
00043     SENF_MPL_SLOT_I_CHECK(name, __LINE__>3?__LINE__-3:0,                                          \
00044     SENF_MPL_SLOT_I_CHECK(name, __LINE__>4?__LINE__-4:0,                                          \
00045     SENF_MPL_SLOT_I_CHECK(name, __LINE__>5?__LINE__-5:0,                                          \
00046     SENF_MPL_SLOT_I_CHECK(name, __LINE__>6?__LINE__-6:0,                                          \
00047     SENF_MPL_SLOT_I_CHECK(name, __LINE__>7?__LINE__-7:0,                                          \
00048     SENF_MPL_SLOT_I_CHECK(name, __LINE__>8?__LINE__-8:0,                                          \
00049     SENF_MPL_SLOT_I_CHECK(name, __LINE__>9?__LINE__-9:0,                                          \
00050     SENF_MPL_SLOT_I_CHECK(name, __LINE__>10?__LINE__-10:0,                                        \
00051     SENF_MPL_SLOT_I_CHECK(name, __LINE__>11?__LINE__-11:0,                                        \
00052     SENF_MPL_SLOT_I_CHECK(name, __LINE__>12?__LINE__-12:0,                                        \
00053     SENF_MPL_SLOT_I_CHECK(name, __LINE__>13?__LINE__-13:0,                                        \
00054     SENF_MPL_SLOT_I_CHECK(name, __LINE__>14?__LINE__-14:0,                                        \
00055     SENF_MPL_SLOT_I_CHECK(name, __LINE__>15?__LINE__-15:0,                                        \
00056     SENF_MPL_SLOT_I_CHECK(name, __LINE__>16?__LINE__-16:0,                                        \
00057     SENF_MPL_SLOT_I_CHECK(name, __LINE__>17?__LINE__-17:0,                                        \
00058     SENF_MPL_SLOT_I_CHECK(name, __LINE__>18?__LINE__-18:0,                                        \
00059     SENF_MPL_SLOT_I_CHECK(name, __LINE__>19?__LINE__-19:0,                                        \
00060     SENF_MPL_SLOT_I_CHECK(name, __LINE__>20?__LINE__-20:0,                                        \
00061     SENF_MPL_SLOT_I_CHECK(name, __LINE__>21?__LINE__-21:0,                                        \
00062     SENF_MPL_SLOT_I_CHECK(name, __LINE__>22?__LINE__-22:0,                                        \
00063     SENF_MPL_SLOT_I_CHECK(name, __LINE__>23?__LINE__-23:0,                                        \
00064     SENF_MPL_SLOT_I_CHECK(name, __LINE__>24?__LINE__-24:0,                                        \
00065     SENF_MPL_SLOT_I_CHECK(name, __LINE__>25?__LINE__-25:0,                                        \
00066     SENF_MPL_SLOT_I_CHECK(name, __LINE__>26?__LINE__-26:0,                                        \
00067     SENF_MPL_SLOT_I_CHECK(name, __LINE__>27?__LINE__-27:0,                                        \
00068     SENF_MPL_SLOT_I_CHECK(name, __LINE__>28?__LINE__-28:0,                                        \
00069     SENF_MPL_SLOT_I_CHECK(name, __LINE__>29?__LINE__-29:0,                                        \
00070     SENF_MPL_SLOT_I_CHECK(name, __LINE__>30?__LINE__-30:0,                                        \
00071     SENF_MPL_SLOT_I_CHECK(name, __LINE__>31?__LINE__-31:0,                                        \
00072     SENF_MPL_SLOT_I_CHECK(name, __LINE__>32?__LINE__-32:0,                                        \
00073     SENF_MPL_SLOT_I_CHECK(name, __LINE__>33?__LINE__-33:0,                                        \
00074     SENF_MPL_SLOT_I_CHECK(name, __LINE__>34?__LINE__-34:0,                                        \
00075     SENF_MPL_SLOT_I_CHECK(name, __LINE__>35?__LINE__-35:0,                                        \
00076     SENF_MPL_SLOT_I_CHECK(name, __LINE__>36?__LINE__-36:0,                                        \
00077     SENF_MPL_SLOT_I_CHECK(name, __LINE__>37?__LINE__-37:0,                                        \
00078     SENF_MPL_SLOT_I_CHECK(name, __LINE__>38?__LINE__-38:0,                                        \
00079     SENF_MPL_SLOT_I_CHECK(name, __LINE__>39?__LINE__-39:0,                                        \
00080     SENF_MPL_SLOT_I_CHECK(name, __LINE__>40?__LINE__-40:0,                                        \
00081     SENF_MPL_SLOT_I_CHECK(name, __LINE__>41?__LINE__-41:0,                                        \
00082     SENF_MPL_SLOT_I_CHECK(name, __LINE__>42?__LINE__-42:0,                                        \
00083     SENF_MPL_SLOT_I_CHECK(name, __LINE__>43?__LINE__-43:0,                                        \
00084     SENF_MPL_SLOT_I_CHECK(name, __LINE__>44?__LINE__-44:0,                                        \
00085     SENF_MPL_SLOT_I_CHECK(name, __LINE__>45?__LINE__-45:0,                                        \
00086     SENF_MPL_SLOT_I_CHECK(name, __LINE__>46?__LINE__-46:0,                                        \
00087     SENF_MPL_SLOT_I_CHECK(name, __LINE__>47?__LINE__-47:0,                                        \
00088     SENF_MPL_SLOT_I_CHECK(name, __LINE__>48?__LINE__-48:0,                                        \
00089     SENF_MPL_SLOT_I_CHECK(name, __LINE__>49?__LINE__-49:0,                                        \
00090     SENF_MPL_SLOT_I_CHECK(name, __LINE__>50?__LINE__-50:0,                                        \
00091     SENF_MPL_SLOT_I_CHECK(name, __LINE__>51?__LINE__-51:0,                                        \
00092     SENF_MPL_SLOT_I_CHECK(name, __LINE__>52?__LINE__-52:0,                                        \
00093     SENF_MPL_SLOT_I_CHECK(name, __LINE__>53?__LINE__-53:0,                                        \
00094     SENF_MPL_SLOT_I_CHECK(name, __LINE__>54?__LINE__-54:0,                                        \
00095     SENF_MPL_SLOT_I_CHECK(name, __LINE__>55?__LINE__-55:0,                                        \
00096     SENF_MPL_SLOT_I_CHECK(name, __LINE__>56?__LINE__-56:0,                                        \
00097     SENF_MPL_SLOT_I_CHECK(name, __LINE__>57?__LINE__-57:0,                                        \
00098     SENF_MPL_SLOT_I_CHECK(name, __LINE__>58?__LINE__-58:0,                                        \
00099     SENF_MPL_SLOT_I_CHECK(name, __LINE__>59?__LINE__-59:0,                                        \
00100     SENF_MPL_SLOT_I_CHECK(name, __LINE__>60?__LINE__-60:0,                                        \
00101     SENF_MPL_SLOT_I_CHECK(name, __LINE__>61?__LINE__-61:0,                                        \
00102     SENF_MPL_SLOT_I_CHECK(name, __LINE__>62?__LINE__-62:0,                                        \
00103     SENF_MPL_SLOT_I_CHECK(name, __LINE__>63?__LINE__-63:0,                                        \
00104     SENF_MPL_SLOT_I_CHECK(name, __LINE__>64?__LINE__-64:0,                                        \
00105     SENF_MPL_SLOT_I_CHECK(name, __LINE__>65?__LINE__-65:0,                                        \
00106     SENF_MPL_SLOT_I_CHECK(name, __LINE__>66?__LINE__-66:0,                                        \
00107     SENF_MPL_SLOT_I_CHECK(name, __LINE__>67?__LINE__-67:0,                                        \
00108     SENF_MPL_SLOT_I_CHECK(name, __LINE__>68?__LINE__-68:0,                                        \
00109     SENF_MPL_SLOT_I_CHECK(name, __LINE__>69?__LINE__-69:0,                                        \
00110     SENF_MPL_SLOT_I_CHECK(name, __LINE__>70?__LINE__-70:0,                                        \
00111     SENF_MPL_SLOT_I_CHECK(name, __LINE__>71?__LINE__-71:0,                                        \
00112     SENF_MPL_SLOT_I_CHECK(name, __LINE__>72?__LINE__-72:0,                                        \
00113     SENF_MPL_SLOT_I_CHECK(name, __LINE__>73?__LINE__-73:0,                                        \
00114     SENF_MPL_SLOT_I_CHECK(name, __LINE__>74?__LINE__-74:0,                                        \
00115     SENF_MPL_SLOT_I_CHECK(name, __LINE__>75?__LINE__-75:0,                                        \
00116     SENF_MPL_SLOT_I_CHECK(name, __LINE__>76?__LINE__-76:0,                                        \
00117     SENF_MPL_SLOT_I_CHECK(name, __LINE__>77?__LINE__-77:0,                                        \
00118     SENF_MPL_SLOT_I_CHECK(name, __LINE__>78?__LINE__-78:0,                                        \
00119     SENF_MPL_SLOT_I_CHECK(name, __LINE__>79?__LINE__-79:0,                                        \
00120     SENF_MPL_SLOT_I_CHECK(name, __LINE__>80?__LINE__-80:0,                                        \
00121         0 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
00122 
00123 
00124 //-/////////////////////////////////////////////////////////////////////////////////////////////////
00125 #endif
00126 
00127 
00128 // Local Variables:
00129 // mode: c++
00130 // fill-column: 100
00131 // comment-column: 40
00132 // c-file-style: "senf"
00133 // indent-tabs-mode: nil
00134 // ispell-local-dictionary: "american"
00135 // compile-command: "scons -u test"
00136 // End:

Contact: senf-dev@lists.berlios.de | © 2006-2010 Fraunhofer Institute for Open Communication Systems, Network Research