Units use std::string
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
c831ff8507
commit
3f526873a3
|
|
@ -16,13 +16,16 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace sta {
|
||||
|
||||
using std::string;
|
||||
|
||||
class Unit
|
||||
{
|
||||
public:
|
||||
Unit(const char *suffix);
|
||||
~Unit();
|
||||
Unit(float scale,
|
||||
const char *suffix,
|
||||
int digits);
|
||||
|
|
@ -34,9 +37,9 @@ public:
|
|||
float scale() const { return scale_; }
|
||||
void setScale(float scale);
|
||||
const char *scaleAbbreviation() const;
|
||||
const char *suffix() const { return suffix_; }
|
||||
const char *suffix() const { return suffix_.c_str(); }
|
||||
// scale abbreviation + suffix
|
||||
const char *scaledSuffix() const { return scaled_suffix_; }
|
||||
const char *scaledSuffix() const { return scaled_suffix_.c_str(); }
|
||||
void setSuffix(const char *suffix);
|
||||
int digits() const { return digits_; }
|
||||
void setDigits(int digits);
|
||||
|
|
@ -51,8 +54,8 @@ private:
|
|||
void setScaledSuffix();
|
||||
|
||||
float scale_; // multiplier from user units to internal units
|
||||
const char *suffix_; // print suffix
|
||||
const char *scaled_suffix_;
|
||||
string suffix_; // print suffix
|
||||
string scaled_suffix_;
|
||||
int digits_; // print digits (after decimal pt)
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,8 +29,7 @@ using std::abs;
|
|||
|
||||
Unit::Unit(const char *suffix) :
|
||||
scale_(1.0),
|
||||
suffix_(stringCopy(suffix)),
|
||||
scaled_suffix_(nullptr),
|
||||
suffix_(suffix),
|
||||
digits_(3)
|
||||
{
|
||||
setScaledSuffix();
|
||||
|
|
@ -40,8 +39,7 @@ Unit::Unit(float scale,
|
|||
const char *suffix,
|
||||
int digits) :
|
||||
scale_(scale),
|
||||
suffix_(stringCopy(suffix)),
|
||||
scaled_suffix_(nullptr),
|
||||
suffix_(suffix),
|
||||
digits_(digits)
|
||||
{
|
||||
setScaledSuffix();
|
||||
|
|
@ -50,24 +48,15 @@ Unit::Unit(float scale,
|
|||
void
|
||||
Unit::setScaledSuffix()
|
||||
{
|
||||
stringDelete(scaled_suffix_);
|
||||
scaled_suffix_ = stringPrint("%s%s", scaleAbbreviation(), suffix_);
|
||||
}
|
||||
|
||||
Unit::~Unit()
|
||||
{
|
||||
stringDelete(suffix_);
|
||||
stringDelete(scaled_suffix_);
|
||||
scaled_suffix_ = scaleAbbreviation() + suffix_;
|
||||
}
|
||||
|
||||
void
|
||||
Unit::operator=(const Unit &unit)
|
||||
{
|
||||
scale_ = unit.scale_;
|
||||
stringDelete(suffix_);
|
||||
suffix_ = stringCopy(unit.suffix_);
|
||||
stringDelete(scaled_suffix_);
|
||||
scaled_suffix_ = stringCopy(unit.scaled_suffix_);
|
||||
suffix_ = unit.suffix_;
|
||||
scaled_suffix_ = unit.scaled_suffix_;
|
||||
digits_ = unit.digits_;
|
||||
}
|
||||
|
||||
|
|
@ -116,8 +105,7 @@ Unit::scaleAbbreviation() const
|
|||
void
|
||||
Unit::setSuffix(const char *suffix)
|
||||
{
|
||||
stringDelete(suffix_);
|
||||
suffix_ = stringCopy(suffix);
|
||||
suffix_ = suffix;
|
||||
setScaledSuffix();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue