29 #include "Dimension.h"
30 #include "NCMLDebug.h"
36 using std::ostringstream;
41 Dimension::Dimension() :
42 name(
""), size(0), isShared(false), isSizeConstant(false)
46 Dimension::Dimension(
const string& nameArg,
unsigned int sizeArg,
bool isSharedArg,
bool isSizeConstantArg) :
47 name(nameArg), size(sizeArg), isShared(isSharedArg), isSizeConstant(isSizeConstantArg)
51 Dimension::~Dimension()
55 std::string Dimension::toString()
const
62 std::ostream& operator<<(std::ostream& os,
const Dimension& dim)
64 os << dim.name <<
'\n';
65 os << dim.size <<
'\n';
69 std::istream& operator>>(std::istream& is, Dimension& dim)
72 dim.isSizeConstant =
true;
74 getline(is, dim.name);
75 is >> ws >> dim.size >> ws;
80 bool DimensionTable::findDimension(
const std::string& name, Dimension* pOut)
const
83 vector<Dimension>::const_iterator endIt = _dimensions.end();
84 vector<Dimension>::const_iterator it;
85 for (it = _dimensions.begin(); it != endIt; ++it) {
86 if (it->name == name) {
97 void DimensionTable::addDimensionUnique(
const Dimension& dim)
99 if (!findDimension(dim.name)) {
100 _dimensions.push_back(dim);
103 BESDEBUG(
"ncml",
"A dimension with name=" << dim.name <<
" already exists. Not adding." << endl);
107 const std::vector<Dimension>&
108 DimensionTable::getDimensions()
const