modules/up/src/rpsl/rpsl/rpsl_policy.cc

/* [<][>]
[^][v][top][bottom][index][help] */

FUNCTIONS

This source file includes following functions.
  1. print
  2. print
  3. print
  4. print
  5. print
  6. print
  7. print
  8. print
  9. print

   1 //  $Id: rpsl_policy.cc,v 1.1.1.1 2000/03/10 16:32:23 engin Exp $
   2 //
   3 //  Copyright (c) 1994 by the University of Southern California
   4 //  All rights reserved.
   5 //
   6 //  Permission to use, copy, modify, and distribute this software and its
   7 //  documentation in source and binary forms for lawful non-commercial
   8 //  purposes and without fee is hereby granted, provided that the above
   9 //  copyright notice appear in all copies and that both the copyright
  10 //  notice and this permission notice appear in supporting documentation,
  11 //  and that any documentation, advertising materials, and other materials
  12 //  related to such distribution and use acknowledge that the software was
  13 //  developed by the University of Southern California, Information
  14 //  Sciences Institute. The name of the USC may not be used to endorse or
  15 //  promote products derived from this software without specific prior
  16 //  written permission.
  17 //
  18 //  THE UNIVERSITY OF SOUTHERN CALIFORNIA DOES NOT MAKE ANY
  19 //  REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY
  20 //  PURPOSE.  THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
  21 //  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  22 //  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
  23 //  TITLE, AND NON-INFRINGEMENT.
  24 //
  25 //  IN NO EVENT SHALL USC, OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY
  26 //  SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, WHETHER IN CONTRACT, TORT,
  27 //  OR OTHER FORM OF ACTION, ARISING OUT OF OR IN CONNECTION WITH, THE USE
  28 //  OR PERFORMANCE OF THIS SOFTWARE.
  29 //
  30 //  Questions concerning this software should be directed to 
  31 //  ratoolset@isi.edu.
  32 //
  33 //  Author(s): Cengiz Alaettinoglu <cengiz@ISI.EDU>
  34 
  35 #include "config.h"
  36 #include <cstdio>
  37 #include "rpsl_policy.hh"
  38 #include "rpsl_attr.hh"
  39 
  40 //// printing ////////////////////////////////////////////////////////
  41 
  42 ostream& Policy::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
  43    return out;
  44 }
  45 
  46 ostream &PolicyAction::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
  47    out << rp_attr->name;
  48    if (rp_method->isOperator)
  49       out << " " << (rp_method->name + 8) << " " << *args;
  50    else
  51       out << "." << rp_method->name << "(" << *args << ")";
  52 
  53    return out;
  54 }
  55 
  56 ostream &PolicyActionList::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
  57    if (!isEmpty()) {
  58       out << "action ";
  59       for (PolicyAction *nd = head(); nd; nd = next(nd))
  60          out << *nd << "; ";
  61    }
  62       
  63    return out;
  64 }
  65 
  66 ostream &PolicyPeeringAction::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
  67    out << *peering << "\n";
  68    if (!action->isEmpty())
  69       out << "       \t" << *action << "\n";
  70    return out;
  71 }
  72 
  73 ostream &PolicyFactor::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
  74    for (PolicyPeeringAction *pa = peeringActionList->head();
  75         pa;
  76         pa = peeringActionList->next(pa))
  77       out << "\tfrom/to " << *pa << "\n";
  78 
  79    out << "       \taccept/announce " << *filter <<";";
  80 
  81    return out;
  82 }
  83 
  84 ostream &PolicyTerm::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
  85    bool indent = !isEmpty() && !isSingleton();
  86    if (indent) 
  87       out << "{\n";
  88 
  89    for (PolicyFactor *pf = head(); pf; pf = next(pf)) {
  90       if (indent)
  91          out << "   ";
  92       out << *pf << "\n";
  93    }
  94    if (indent) 
  95       out << "}";
  96 
  97    return out;
  98 }
  99 
 100 ostream &PolicyRefine::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
 101    out << *left << " refine " << *right;
 102    return out;
 103 }
 104    
 105 ostream &PolicyExcept::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
 106    out << *left << " except " << *right;
 107    return out;
 108 }
 109    
 110 
 111 ostream &PolicyPeering::print(ostream &out) const {
     /* [<][>][^][v][top][bottom][index][help] */
 112    if (prngSet)
 113       out << prngSet;
 114    else {
 115       out << *peerASes;
 116       if (peerRtrs)
 117          out << " " << *peerRtrs;
 118       if (localRtrs)
 119          out << " at " << localRtrs;
 120    }
 121 
 122    return out;
 123 }
 124 

/* [<][>][^][v][top][bottom][index][help] */