/usr/share/cruisecontrol-bin-2.6.1/projects/qpid-trunk/cpp/src/qpid/amqp_0_10/Decimal.h

00001 #ifndef TESTS_DECIMAL_H
00002 #define TESTS_DECIMAL_H
00003 
00004 /*
00005   *
00006   * Licensed to the Apache Software Foundation (ASF) under one
00007   * or more contributor license agreements.  See the NOTICE file
00008   * distributed with this work for additional information
00009   * regarding copyright ownership.  The ASF licenses this file
00010   * to you under the Apache License, Version 2.0 (the
00011   * "License"); you may not use this file except in compliance
00012   * with the License.  You may obtain a copy of the License at
00013   * 
00014   *   http://www.apache.org/licenses/LICENSE-2.0
00015   * 
00016   * Unless required by applicable law or agreed to in writing,
00017   * software distributed under the License is distributed on an
00018   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
00019   * KIND, either express or implied.  See the License for the
00020   * specific language governing permissions and limitations
00021   * under the License.
00022   *
00023   */
00024 #include <ostream>
00025 
00026 namespace qpid {
00027 namespace amqp_0_10 {
00028 
00029 template <class E, class M> struct Decimal {
00030     E exponent;
00031     M mantissa;
00032     
00033     Decimal(E exp=0, M man=0) : exponent(exp), mantissa(man) {}
00034 
00035     bool operator==(const Decimal& d) const {
00036         return exponent == d.exponent && mantissa == d.mantissa;
00037     }
00038 
00039     // TODO aconway 2008-02-20: We could provide arithmetic operators
00040     // if anybody really cares about this type.
00041 
00042     template <class S> void serialize(S& s) { s(exponent)(mantissa); }
00043 };
00044 
00045 template<class E, class M>
00046 inline std::ostream& operator<<(std::ostream& o, const Decimal<E,M>& d) {
00047     return o << "Decimal{" << d.mantissa << "/10^" << (int)d.exponent << "}";
00048 }
00049 }}
00050 
00051 #endif  

Generated on Thu Apr 10 11:08:17 2008 for Qpid by  doxygen 1.4.7