Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoFileSensor.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23#ifndef _SO_FILE_SENSOR_H
24#define _SO_FILE_SENSOR_H
25
26#include <Inventor/sensors/SoTimerSensor.h>
27#include <Inventor/helpers/SbFileHelper.h>
28
29#include <Inventor/STL/map>
30#include <Inventor/STL/vector>
31
51
52 public:
57
62 SoFileSensor(SoSensorCB *func, void *data);
63
68 virtual ~SoFileSensor();
69
73 void addFile(const SbString& filename);
74
78 void removeFile(const SbString& filename);
79
83 void clearFiles();
84
89 inline SbString getFilename() const { return m_currentFile; }
90
91private:
93 virtual void trigger();
94
95private:
98
99 typedef std::pair<SbString, SbFileHelper::Stat> FullPathStatPair;
100 typedef std::map<SbString, FullPathStatPair> FileStatMap;
101
102 void triggerFile(SbString string);
103
104 std::vector<SbString> m_touchedFiles;
105
106 FileStatMap m_fileStat;
107
109 SbString m_currentFile;
110};
111
112#endif
113
Class for smart character strings.
Definition SbString.h:202
Sensor that triggers a callback each time a file is changed.
SoFileSensor()
Default constructor.
void removeFile(const SbString &filename)
Remove file from monitored list.
virtual ~SoFileSensor()
Destroys the sensor, freeing up any memory associated with it after unscheduling it.
SoFileSensor(SoSensorCB *func, void *data)
Constructor that takes the callback function and data to be called when the sensor is triggered.
void clearFiles()
Stop monitoring all previously registered files.
void addFile(const SbString &filename)
Add file to be monitored.
SbString getFilename() const
Return changed file name.
void SoSensorCB(void *data, SoSensor *sensor)
This typedef defines the calling sequence for all callbacks from sensors.
Definition SoSensor.h:68
Sensor that triggers repeatedly at regular intervals.
void setBaseTime(const SbTime &base)
Sets the base time.
const SbTime & getBaseTime() const
Gets the base time.