source: flair-src/trunk/lib/FlairCore/src/unexported/IODevice_impl.h@ 2

Last change on this file since 2 was 2, checked in by Sanahuja Guillaume, 8 years ago

flaircore

File size: 1.8 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/*!
6 * \file IODevice_impl.h
7 * \brief Classe de base pour un système à entrées/sorties
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2011/05/01
10 * \version 4.0
11 */
12
13#ifndef IO_DEVICE_IMPL_H
14#define IO_DEVICE_IMPL_H
15
16#include <string>
17#include <Object.h>
18
19namespace flair
20{
21 namespace core
22 {
23 class io_data;
24 class IODevice;
25 class Thread;
26 class Mutex;
27 class FrameworkManager;
28 class SharedMem;
29 }
30}
31
32class FrameworkManager_impl;
33
34class IODevice_impl
35{
36 public:
37 IODevice_impl(const flair::core::IODevice* self);
38 ~IODevice_impl();
39 void ResumeThread(void);
40 size_t LogSize(void) const;
41 void AppendLog(char** ptr);
42 void AddDataToLog(const flair::core::io_data* data);
43 void WriteLogsDescriptors(std::fstream& desc_file,int *index);
44 int SetToWake(const flair::core::Thread* thread);
45 void WriteLog(flair::core::Time time);
46 void AddDeviceToLog(const flair::core::IODevice* device);
47 bool SetToBeLogged(void);//return true if possible
48 void OutputToShMem(bool enabled);
49 void WriteToShMem(void);
50 void PrintLogsDescriptors(void);
51
52 private:
53 std::vector<const flair::core::IODevice*> devicesToLog;
54 const flair::core::IODevice* self;
55 const flair::core::FrameworkManager* framework;
56 FrameworkManager_impl* framework_impl;
57 std::vector<const flair::core::io_data*> datasToLog;
58 flair::core::Thread* thread_to_wake;
59 flair::core::Mutex* wake_mutex;
60 bool tobelogged;
61 bool outputtoshm;
62 flair::core::SharedMem *shmem;
63};
64
65#endif // IO_DEVICE_IMPL_H
Note: See TracBrowser for help on using the repository browser.