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, 6 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.