source: src/Actions/FragmentationAction/ParseFragmentJobsAction.cpp@ 88bb6b

Last change on this file since 88bb6b was b5b01e, checked in by Frederik Heber <heber@…>, 12 years ago

ActionState extracted into own header file, rename Action::state_ptr -> ActionState::ptr.

  • Property mode set to 100644
File size: 2.8 KB
Line 
1/*
2 * Project: MoleCuilder
3 * Description: creates and alters molecular systems
4 * Copyright (C) 2013 University of Bonn. All rights reserved.
5 * Copyright (C) 2013 Frederik Heber. All rights reserved.
6 *
7 *
8 * This file is part of MoleCuilder.
9 *
10 * MoleCuilder is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * MoleCuilder 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 General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with MoleCuilder. If not, see <http://www.gnu.org/licenses/>.
22 */
23
24/*
25 * ParseFragmentJobsAction.cpp
26 *
27 * Created on: Mar 04, 2013
28 * Author: heber
29 */
30
31// include config.h
32#ifdef HAVE_CONFIG_H
33#include <config.h>
34#endif
35
36#include "CodePatterns/MemDebug.hpp"
37
38#include "CodePatterns/Log.hpp"
39#include "Fragmentation/Automation/FragmentJobQueue.hpp"
40
41#include <boost/filesystem.hpp>
42#include <string>
43
44#include "Actions/FragmentationAction/ParseFragmentJobsAction.hpp"
45
46using namespace MoleCuilder;
47
48// and construct the stuff
49#include "ParseFragmentJobsAction.def"
50#include "Action_impl_pre.hpp"
51/** =========== define the function ====================== */
52ActionState::ptr FragmentationParseFragmentJobsAction::performCall() {
53 // check for present jobs
54 if (params.jobfiles.get().empty()) {
55 ELOG(2, "Given vector of jobfiles is empty!");
56 return Action::failure;
57 }
58
59 // parse in fragment-jobs if given
60 if(!FragmentJobQueue::getInstance().addJobsFromFiles(
61 params.jobfiles.get(),
62 params.level.get()))
63 return Action::failure;
64 size_t FragmentCounter = FragmentJobQueue::getInstance().size();
65 LOG(1, "STATUS: I parsed " << FragmentCounter << " fragment files.");
66
67 // then parse in KeySets and add on top
68 FragmentJobQueue::getInstance().addKeySetsFromFiles(params.path.get(), FragmentCounter, NonHydrogenKeySets);
69 FragmentJobQueue::getInstance().addFullKeySetsFromFiles(params.path.get(), FragmentCounter, NonHydrogenKeySets);
70
71 return Action::success;
72}
73
74ActionState::ptr FragmentationParseFragmentJobsAction::performUndo(ActionState::ptr _state) {
75 return Action::success;
76}
77
78ActionState::ptr FragmentationParseFragmentJobsAction::performRedo(ActionState::ptr _state){
79 return Action::success;
80}
81
82bool FragmentationParseFragmentJobsAction::canUndo() {
83 return true;
84}
85
86bool FragmentationParseFragmentJobsAction::shouldUndo() {
87 return true;
88}
89/** =========== end of function ====================== */
Note: See TracBrowser for help on using the repository browser.