OpenWalnut  1.2.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
WBatchLoader.h
1 //---------------------------------------------------------------------------
2 //
3 // Project: OpenWalnut ( http://www.openwalnut.org )
4 //
5 // Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6 // For more information see http://www.openwalnut.org/copying
7 //
8 // This file is part of OpenWalnut.
9 //
10 // OpenWalnut is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU Lesser General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // OpenWalnut is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public License
21 // along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
22 //
23 //---------------------------------------------------------------------------
24 
25 #ifndef WBATCHLOADER_H
26 #define WBATCHLOADER_H
27 
28 #include <string>
29 #include <vector>
30 
31 #include <boost/enable_shared_from_this.hpp>
32 #include <boost/shared_ptr.hpp>
33 
34 #include "../common/WThreadedRunner.h"
35 
36 #include "WExportKernel.h"
37 
38 class WModuleContainer;
39 
40 /**
41  * Class for loading many datasets. It runs in a separate thread.
42  */
43 class OWKERNEL_EXPORT WBatchLoader: public WThreadedRunner,
44  public boost::enable_shared_from_this< WBatchLoader >
45 {
46 public:
47 
48  /**
49  * Initializes the batchloader but does not start it. Use run().
50  *
51  * \param fileNames the files to load.
52  * \param targetContainer the container to which the data modules should be added.
53  */
54  WBatchLoader( std::vector< std::string > fileNames, boost::shared_ptr< WModuleContainer > targetContainer );
55 
56  /**
57  * Destructor.
58  */
59  virtual ~WBatchLoader();
60 
61  /**
62  * Run thread and load the data.
63  */
64  virtual void run();
65 
66 protected:
67 
68  /**
69  * Function that has to be overwritten for execution. It gets executed in a separate thread after run()
70  * has been called.
71  */
72  virtual void threadMain();
73 
74  /**
75  * List of files to load.
76  */
77  std::vector< std::string > m_fileNamesToLoad;
78 
79  /**
80  * The container which later will contain the loaded datasets.
81  */
82  boost::shared_ptr< WModuleContainer > m_targetContainer;
83 
84 private:
85 };
86 
87 #endif // WBATCHLOADER_H
88