source: flair-src/trunk/lib/FlairCore/src/MatrixDescriptor.cpp

Last change on this file was 318, checked in by Sanahuja Guillaume, 2 years ago
File size: 1.9 KB
RevLine 
[2]1// %flair:license{
[15]2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
[2]4// %flair:license}
5//  created:    2014/02/05
[318]6//  filename:   MatrixDescriptor.cpp
[2]7//
8//  author:     Guillaume Sanahuja
9//              Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11//  version:    $Id: $
12//
[318]13//  purpose:    Class describing matrix elements, for log and graphs purpose
[2]14//
15/*********************************************************************/
16
[318]17#include "MatrixDescriptor.h"
[2]18#include "FrameworkManager.h"
19
20using std::string;
21
[15]22namespace flair {
23namespace core {
[2]24
[318]25MatrixDescriptor::MatrixDescriptor(uint32_t rows, uint32_t cols) {
[15]26  this->rows = rows;
27  this->cols = cols;
[2]28
[15]29  if (rows == 0 || cols == 0)
30    getFrameworkManager()->Err("rows and cols must be >0\n");
[2]31
[15]32  element_names = (string **)malloc(rows * cols * sizeof(string *));
33  for (uint32_t i = 0; i < rows * cols; i++) {
34    element_names[i] = new string();
35  }
[2]36}
37
[318]38MatrixDescriptor::~MatrixDescriptor() {
[15]39  for (uint32_t i = 0; i < rows * cols; i++) {
40    delete element_names[i];
41  }
42  free(element_names);
[2]43}
44
[318]45void MatrixDescriptor::SetElementName(uint32_t row, uint32_t col,
[15]46                                         string name) {
47  if (row >= rows || col >= cols) {
[214]48    getFrameworkManager()->Err("index out of bound %s (%i,%i), max (%i,%i)\n",
[15]49                               name.c_str(), row, col, rows - 1, cols - 1);
50    return;
51  }
52  *element_names[row * cols + col] = name;
[2]53}
54
[318]55string MatrixDescriptor::ElementName(uint32_t row, uint32_t col) const {
[15]56  if (row >= rows || col >= cols) {
[214]57    getFrameworkManager()->Err("index out of bound (%i,%i), max (%i,%i)\n",
[15]58                               row, col, rows - 1, cols - 1);
59    return *element_names[0]; // safe value...
60  }
61  return *element_names[row * cols + col];
[2]62}
63
[318]64uint32_t MatrixDescriptor::Rows() const { return rows; }
[2]65
[318]66uint32_t MatrixDescriptor::Cols() const { return cols; }
[2]67
68} // end namespace core
69} // end namespace flair
Note: See TracBrowser for help on using the repository browser.