FRIBParallelanalysis  1.0
FrameworkforMPIParalleldataanalysisatFRIB
MPITriggerSorter.h
Go to the documentation of this file.
1 /*
2  This software is Copyright by the Board of Trustees of Michigan
3  State University (c) Copyright 2017.
4 
5  You may use this software under the terms of the GNU public license
6  (GPL). The terms of this license are described at:
7 
8  http://www.gnu.org/licenses/gpl.txt
9 
10  Authors:
11  Ron Fox
12  Giordano Cerriza
13  FRIB
14  Michigan State University
15  East Lansing, MI 48824-1321
16 */
17 
22 #ifndef MPITRIGGERSORTER_H
23 #define MPITRIGGERSORTER_H
24 
25 #include "TriggerSorter.h"
26 #include <mpi.h>
27 #include <vector>
28 #include <memory>
29 
30 namespace frib {
31  namespace analysis {
40  private:
41  int m_outputRank;
42  MPI_Datatype& m_headerType; // MPI Data type for header data.
43  MPI_Datatype& m_parameterType; // MPI Data type for the parameters.
44  unsigned m_maxItems; // # items that can fit in m_item.
45  std::unique_ptr<FRIB_MPI_Parameter_Value> m_items; // To avoid allocation each event.
46  public:
48  int outputterRank, MPI_Datatype& headers, MPI_Datatype& param
49  );
50  virtual ~CMPITriggerSorter();
51 
52  virtual void emitItem(pParameterItem item);
53  };
54  }
55 }
56 
57 
58 
59 #endif
Definition: AnalysisRingItems.h:71
: Sort items by triggers that could come in out of order.
Definition: TriggerSorter.h:45
virtual ~CMPITriggerSorter()
Definition: MPITriggerSorter.cpp:50
Definition: MPITriggerSorter.h:39
virtual void emitItem(pParameterItem item)
Definition: MPITriggerSorter.cpp:61
Definition: AbstractApplication.cpp:30
CMPITriggerSorter(int outputterRank, MPI_Datatype &headers, MPI_Datatype &param)
Definition: MPITriggerSorter.cpp:41