N-sim
Emulation and simulation of
Wireless Sensor Networks



   Home


   Project Page


   Download


   CVS



   Installation


   Configuration


   Plug-ins




 Hosted by
SourceForge.net Logo

/home/brennan/n-sim/OrbisQuartus/shared/comparable.h

Go to the documentation of this file.
00001 
00014 /*
00015  * Copyright 2007. Los Alamos National Security, LLC. This material
00016  * was produced under U.S. Government contract DE-AC52-06NA25396 for
00017  * Los Alamos National Laboratory (LANL), which is operated by Los
00018  * Alamos National Security, LLC, for the Department of Energy. The
00019  * U.S. Government has rights to use, reproduce, and distribute this
00020  * software. NEITHER THE GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY,
00021  * LLC, MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
00022  * LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified to
00023  * produce derivative works, such modified software should be clearly
00024  * marked, so as not to confuse it with the version available from LANL.
00025  *
00026  * Additionally, this program is free software; you can redistribute
00027  * it and/or modify it under the terms of the GNU General Public
00028  * License as published by the Free Software Foundation; version 2 of
00029  * the License. Accordingly, this program is distributed in the hope
00030  * it will be useful, but WITHOUT ANY WARRANTY; without even the
00031  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00032  * PURPOSE. See the GNU General Public License for more details.
00033  */
00034 
00035 
00036 #ifndef _COMPARABLE_H_
00037 #define _COMPARABLE_H_
00038 
00039 #define MAX_FORMAT_STRING  128
00040 
00041 
00042 template <class Key>
00043 class AVL_tree;
00044 
00045 
00046 template <class Key>
00047 class Comparable {
00048  protected:
00049         Key key;
00050 
00051         virtual const char *key_format_string() { return ""; };
00052 
00053         friend class AVL_tree<Key>;
00054 
00055  public:
00056         Comparable(Key k) : key(k) {};
00057 
00058         virtual ~Comparable() {};
00059 
00060         Key key_value() const { return key; };
00061 
00062 
00063         inline bool operator== (Comparable<Key> other) { 
00064                 return key == other.key_value();
00065         };
00066 
00067         inline bool operator< (Comparable<Key> other) {
00068                 return key < other.key_value();
00069         };
00070 
00071         inline bool operator> (Comparable<Key> other) {
00072                 return key > other.key_value();
00073         };
00074 
00075         inline bool operator<= (Comparable<Key> other) {
00076                 return key <= other.key_value();
00077         };
00078 
00079         inline bool operator>= (Comparable<Key> other) {
00080                 return key >= other.key_value();
00081         };
00082 };
00083 
00084 
00085 #endif  // _COMPARABLE_H_


© 2007, Los Alamos National Security, LLC.