LSSTApplications  8.0.0.0+107,8.0.0.1+13,9.1+18,9.2,master-g084aeec0a4,master-g0aced2eed8+6,master-g15627eb03c,master-g28afc54ef9,master-g3391ba5ea0,master-g3d0fb8ae5f,master-g4432ae2e89+36,master-g5c3c32f3ec+17,master-g60f1e072bb+1,master-g6a3ac32d1b,master-g76a88a4307+1,master-g7bce1f4e06+57,master-g8ff4092549+31,master-g98e65bf68e,master-ga6b77976b1+53,master-gae20e2b580+3,master-gb584cd3397+53,master-gc5448b162b+1,master-gc54cf9771d,master-gc69578ece6+1,master-gcbf758c456+22,master-gcec1da163f+63,master-gcf15f11bcc,master-gd167108223,master-gf44c96c709
LSSTDataManagementBasePackage
EventFactory.cc
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 
3 /*
4  * LSST Data Management System
5  * Copyright 2008, 2009, 2010 LSST Corporation.
6  *
7  * This product includes software developed by the
8  * LSST Project (http://www.lsst.org/).
9  *
10  * This program 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 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program 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 LSST License Statement and
21  * the GNU General Public License along with this program. If not,
22  * see <http://www.lsstcorp.org/LegalNotices/>.
23  */
24 
34 #include <iomanip>
35 #include <sstream>
36 #include <stdexcept>
37 
40 #include "lsst/pex/policy/Policy.h"
41 #include "lsst/pex/exceptions.h"
42 
43 #include "lsst/ctrl/events/Event.h"
49 
53 
54 namespace pexLogging =lsst::pex::logging;
55 namespace pexExceptions =lsst::pex::exceptions;
56 
57 using namespace std;
58 
59 namespace lsst {
60 namespace ctrl {
61 namespace events {
65 EventFactory::EventFactory() {
66 }
67 
70 EventFactory::~EventFactory() {
71 }
72 
76 Event* EventFactory::createEvent(cms::TextMessage* msg) {
77  vector<std::string> names = msg->getPropertyNames();
78 
79 /*
80  for (unsigned int i = 0; i < names.size(); i++)
81  std::cout << names[i] << std::endl;
82 */
83 
84  std::string _type = msg->getStringProperty("TYPE");
85 
86  if (_type == EventTypes::LOG) {
87  return new LogEvent(msg);
88  } else if (_type == EventTypes::STATUS) {
89  return new StatusEvent(msg);
90  } else if (_type == EventTypes::COMMAND) {
91  return new CommandEvent(msg);
92  } else if (_type == EventTypes::PIPELINELOG) {
93  return new PipelineLogEvent(msg);
94  }
95  return new Event(msg);
96 }
97 }
98 
99 }
100 }
Representation of an LSST Event.
defines the EventLog class
Representation of an LSST Event.
Definition: LogEvent.h:67
defines EventTypes
defines the PipelineLogEvent class
Representation of an LSST Event.
Definition: StatusEvent.h:63
Representation of an LSST Event.
Definition: CommandEvent.h:63
definition of the LogRecord, RecordProperty and Prop classes
defines the EventFactory class
Include files required for standard LSST Exception handling.
defines the EventLibrary class
defines the CommandEvent class
defines the Event class
defines the LogEvent class
Representation of an LSST Event.
Definition: Event.h:67
Interface for PropertySet class.