Fawkes API  Fawkes Development Version
syncpoint_manager.cpp
1 /***************************************************************************
2  * syncpoint_manager.cpp - SyncPointManager Aspect initializer/finalizer
3  *
4  * Created: Wed Jan 15 13:19:22 2014
5  * Copyright 2014 Till Hofmann
6  *
7  ****************************************************************************/
8 
9 /* This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Library General Public License for more details.
18  *
19  * Read the full text in the LICENSE.GPL file in the doc directory.
20  */
21 
22 #include <aspect/inifins/syncpoint_manager.h>
23 #include <aspect/syncpoint_manager.h>
24 #include <syncpoint/syncpoint_manager.h>
25 
26 namespace fawkes {
27 
28 /** @class SyncPointManagerAspectIniFin <aspect/inifins/syncpoint_manager.h>
29  * Initializer/finalizer for the SyncPointManagerAspect
30  * @author Till Hofmann
31  */
32 
33 /** Constructor.
34  * @param syncpoint_manager SyncPointManager instance to pass to threads
35  */
36 SyncPointManagerAspectIniFin::SyncPointManagerAspectIniFin(SyncPointManager *syncpoint_manager)
37 : AspectIniFin("SyncPointManagerAspect")
38 {
39  syncpoint_manager_ = syncpoint_manager;
40 }
41 
42 void
44 {
45  SyncPointManagerAspect *syncpoint_thread;
46  syncpoint_thread = dynamic_cast<SyncPointManagerAspect *>(thread);
47  if (syncpoint_thread == NULL) {
48  throw CannotInitializeThreadException("Thread '%s' claims to have the "
49  "SyncPointManagerAspect, but RTTI says it "
50  "has not. ",
51  thread->name());
52  }
53 
54  syncpoint_thread->init_SyncPointManagerAspect(syncpoint_manager_);
55 }
56 
57 void
59 {
60 }
61 
62 } // end namespace fawkes
fawkes::SyncPointManagerAspectIniFin::init
virtual void init(Thread *thread)
Definition: syncpoint_manager.cpp:47
fawkes::SyncPointManagerAspectIniFin::SyncPointManagerAspectIniFin
SyncPointManagerAspectIniFin(SyncPointManager *syncpoint_manager)
Constructor.
Definition: syncpoint_manager.cpp:40
fawkes::CannotInitializeThreadException
Definition: thread_initializer.h:37
fawkes::Thread::name
const char * name() const
Definition: thread.h:99
fawkes
fawkes::SyncPointManagerAspectIniFin::finalize
virtual void finalize(Thread *thread)
Definition: syncpoint_manager.cpp:62
fawkes::Thread
Definition: thread.h:44
fawkes::SyncPointManagerAspect::init_SyncPointManagerAspect
void init_SyncPointManagerAspect(SyncPointManager *syncpoint_manager)
Init SyncPointManager aspect.
Definition: syncpoint_manager.cpp:58
fawkes::SyncPointManagerAspect
Definition: syncpoint_manager.h:34