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

Last change on this file since 439 was 318, checked in by Sanahuja Guillaume, 5 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.