## modules/up/src/rpsl/rpsl/rpsl_item.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
10. print
11. print
12. print
13. print
14. print
15. print
16. print
17. print
18. print
19. print
20. print
21. print
22. print
23. print
24. print
25. ItemFilter

       1 //  $Id: rpsl_item.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 <iostream.h>
      37 #include <iomanip.h>
      38 #include "rpsl_item.hh"
      39 #include "rpsl_filter.hh"
      40
      41 //// printing ////////////////////////////////////////////////////////
      42
      43 ostream &Item::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
      44    return out;
      45 }
      46 ostream &ItemASNO::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
      47    out << "AS" << asno;
      48    return out;
      49 }
      50
      51 ostream &ItemMSItem::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
      52    out << *item;
      53    switch (code) {
      54    case 0:
      55       out << "^-";
      56       break;
      57    case 1:
      58       out << "^+";
      59       break;
      60    case 2:
      61       if (n == m)
      62          out << "^" << n;
      63       else
      64          out << "^" << n << "-" << m;
      65    }
      66    return out;
      67 }
      68
      69
      70 ostream &ItemFilter::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
      71    out << filter;
      72    return out;
      73 }
      74
      75 ostream &ItemINT::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
      76    out << i;
      77    return out;
      78 }
      79
      80 ostream &ItemTimeStamp::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
      81    tm *ts;
      82    ts = gmtime(&stamp);
      83    out.form("%04d%02d%02d %02d:%02d:%02d +00:00",
      84             ts->tm_year + 1900, ts->tm_mon+1, ts->tm_mday,
      85             ts->tm_hour, ts->tm_min, ts->tm_sec);
      86    return out;
      87 }
      88
      89 ostream &ItemREAL::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
      90    out << real;
      91    return out;
      92 }
      93
      94 ostream &ItemSTRING::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
      95    out << string;
      96    return out;
      97 }
      98
      99 ostream &ItemBLOB::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     100    out << blob;
     101    return out;
     102 }
     103
     104 ostream &ItemIPV4::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     105    out << *ipv4;
     106    return out;
     107 }
     108
     109 ostream &ItemPRFXV4::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     110    out << *prfxv4;
     111    return out;
     112 }
     113
     114 ostream &ItemPRFXV4Range::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     115    out << *prfxv4;
     116    return out;
     117 }
     118
     119 ostream &ItemConnection::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     120    if (ip)
     121       out << *ip;
     122    else
     123       out << host;
     124    if (port)
     125       out << ":" << port;
     126    if (ttl)
     127       out << ":" << ttl;
     128    return out;
     129 }
     130
     131 ostream &ItemSID::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     132    out << name;
     133    return out;
     134 }
     135
     136 ostream &ItemBOOLEAN::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     137    out << (i ? "true" : "false");
     138    return out;
     139 }
     140
     141 ostream &ItemWORD::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     142    out << word;
     143    return out;
     144 }
     145
     146 ostream &ItemNICHDL::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     147    out << nichdl;
     148    return out;
     149 }
     150
     151 ostream &ItemPRFXV6::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     152    out << word;
     153    return out;
     154 }
     155
     156 ostream &ItemEMAIL::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     157    out << email;
     158    return out;
     159 }
     160
     161 ostream &ItemKEYCRTNAME::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     162    out << name;
     163    return out;
     164 }
     165
     166 ostream &ItemRange::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     167    out << *begin << " - " << *end;
     168    return out;
     169 }
     170
     171 ostream &ItemFREETEXT::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     172    for (int i = 0; i < length; ++i)
     173       out << *(text + i);
     174    return out;
     175 }
     176
     177 ostream &ItemList::print(ostream &out, char *delim) const {
         /* [<][>][^][v][top][bottom][index][help] */
     178    Item *item = head();
     179    if (item) {
     180       item->print(out);
     181       for (item = next(item); item; item = next(item)) {
     182          out << delim;
     183          item->print(out);
     184       }
     185    }
     186
     187    return out;
     188 }
     189
     190 ostream &ItemSequence::print(ostream &out) const {
         /* [<][>][^][v][top][bottom][index][help] */
     191    Item *item = head();
     192    if (item) {
     193       item->print(out);
     194       for (item = next(item); item; item = next(item)) {
     195          out << " ";
     196          item->print(out);
     197       }
     198    }
     199
     200    return out;
     201 }
     202
     203 ItemFilter::~ItemFilter() {
         /* [<][>][^][v][top][bottom][index][help] */
     204    if (filter)
     205       delete filter;
     206 }

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