source: flair-src/trunk/lib/FlairCore/src/io_data.cpp @ 223

Last change on this file since 223 was 223, checked in by Sanahuja Guillaume, 4 years ago

add delta time to io_data

File size: 2.0 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5//  created:    2012/03/21
6//  filename:   io_data.cpp
7//
8//  author:     Guillaume Sanahuja
9//              Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11//  version:    $Id: $
12//
13//  purpose:    Abstract class for data types
14//
15//
16/*********************************************************************/
17
18#include "io_data.h"
19#include "io_data_impl.h"
20
21using std::string;
22
23namespace flair {
24namespace core {
25
26DummyType dummyType;
27FloatType floatType;
28DoubleType doubleType;
29SignedIntegerType Int8Type(8);
30SignedIntegerType Int16Type(16);
31UnsignedIntegerType UInt8Type(8);
32UnsignedIntegerType UInt16Type(16);
33
34io_data::io_data(const Object *parent, string name, int n)
35    : Mutex(parent, name) {
36  pimpl_ = new io_data_impl(this, n);
37}
38
39io_data::~io_data() { delete pimpl_; }
40
41void io_data::AppendLogDescription(string description,
42                                   DataType const &datatype) {
43  pimpl_->AppendLogDescription(description, datatype);
44}
45
46void io_data::SetDataTime(Time time) {
47  GetMutex();
48  if(pimpl_->time!=TIME_INFINITE) pimpl_->deltaTime = time-pimpl_->time;
49  pimpl_->time = time;
50  ReleaseMutex();
51}
52
53void io_data::SetDataTime(Time time,Time deltaTime) {
54  GetMutex();
55  pimpl_->deltaTime = deltaTime;
56  pimpl_->time = time;
57  ReleaseMutex();
58}
59
60Time io_data::DataTime(void) const {
61  Time tmp;
62  GetMutex();
63  tmp = pimpl_->time;
64  ReleaseMutex();
65  return tmp;
66}
67
68Time io_data::DataDeltaTime(void) const {
69  Time tmp;
70  GetMutex();
71  tmp = pimpl_->deltaTime;
72  ReleaseMutex();
73  return tmp;
74}
75
76void io_data::GetDataTime(Time &time,Time &deltaTime) const{
77  GetMutex();
78  deltaTime=pimpl_->deltaTime ;
79  time=pimpl_->time ;
80  ReleaseMutex();
81}
82
83const io_data *io_data::Prev(int n) const {
84  if (n > 0)
85    return prev->Prev(n - 1);
86  else
87    return this;
88}
89
90void io_data::SetPtrToCircle(void **ptr) { pimpl_->circle_ptr = ptr; }
91
92} // end namespace core
93} // end namespace flair
Note: See TracBrowser for help on using the repository browser.