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

Last change on this file since 234 was 223, checked in by Sanahuja Guillaume, 6 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.