#include <alma/ASDM/Length.h>
#include <alma/ASDM/DoubleWrapper.h>
#include <alma/ASDM/NumberFormatException.h>
Length Length::getLength(StringTokenizer &t) {
double value = Double::parseDouble(t.nextToken());
bool Length::isZero() const {
double Length::fromString(const string& s) {
return Double::parseDouble(s);
string Length::toString(double x) {
return Double::toString(x);
void Length::toBin(EndianOSStream& eoss) {
eoss.writeDouble( value);
void Length::toBin(const vector<Length>& len, EndianOSStream& eoss) {
eoss.writeInt((int) len.size());
for (unsigned int i = 0; i < len.size(); i++)
eoss.writeDouble(len.at(i).value);
void Length::toBin(const vector<vector<Length> >& len, EndianOSStream& eoss) {
eoss.writeInt((int) len.size());
eoss.writeInt((int) len.at(0).size());
for (unsigned int i = 0; i < len.size(); i++)
for (unsigned int j = 0; j < len.at(0).size(); j++)
eoss.writeDouble(len.at(i).at(j).value);
void Length::toBin(const vector< vector<vector<Length> > >& len, EndianOSStream& eoss) {
eoss.writeInt((int) len.size());
eoss.writeInt((int) len.at(0).size());
eoss.writeInt((int) len.at(0).at(0).size());
for (unsigned int i = 0; i < len.size(); i++)
for (unsigned int j = 0; j < len.at(0).size(); j++)
for (unsigned int k = 0; k < len.at(0).at(0).size(); j++)
eoss.writeDouble(len.at(i).at(j).at(k).value);
Length Length::fromBin(EndianIStream & eis) {
return Length(eis.readDouble());
vector<Length> Length::from1DBin(EndianIStream & eis) {
int dim1 = eis.readInt();
for (int i = 0; i < dim1; i++)
result.push_back(Length(eis.readDouble()));