LSSTApplications  11.0-13-gbb96280,12.1.rc1,12.1.rc1+1,12.1.rc1+2,12.1.rc1+5,12.1.rc1+8,12.1.rc1-1-g06d7636+1,12.1.rc1-1-g253890b+5,12.1.rc1-1-g3d31b68+7,12.1.rc1-1-g3db6b75+1,12.1.rc1-1-g5c1385a+3,12.1.rc1-1-g83b2247,12.1.rc1-1-g90cb4cf+6,12.1.rc1-1-g91da24b+3,12.1.rc1-2-g3521f8a,12.1.rc1-2-g39433dd+4,12.1.rc1-2-g486411b+2,12.1.rc1-2-g4c2be76,12.1.rc1-2-gc9c0491,12.1.rc1-2-gda2cd4f+6,12.1.rc1-3-g3391c73+2,12.1.rc1-3-g8c1bd6c+1,12.1.rc1-3-gcf4b6cb+2,12.1.rc1-4-g057223e+1,12.1.rc1-4-g19ed13b+2,12.1.rc1-4-g30492a7
LSSTDataManagementBasePackage
Host.cc
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 
3 /*
4  * LSST Data Management System
5  * Copyright 2008-2015 AURA/LSST.
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 <https://www.lsstcorp.org/LegalNotices/>.
23  */
24 
34 #include <string>
35 #include <vector>
36 #include "lsst/ctrl/events/Host.h"
37 
38 #include "lsst/pex/exceptions.h"
39 
40 namespace pexExceptions = lsst::pex::exceptions;
41 
42 namespace lsst {
43 namespace ctrl {
44 namespace events {
45 
46 Host const& Host::getHost() {
47  if (thisHost == 0) {
48 
49  // create the _hostname here, rather than
50  // reconstructing it every time we create an
51  // identificationId
52 
53  long int host_len = sysconf(_SC_HOST_NAME_MAX)+1; // add one for the null
54 
55  std::vector<char> vec;
56  vec.resize(host_len);
57 
58  if (gethostname(vec.data(), vec.size()) == 0) {
59  _hostname = std::string(vec.data());
60  } else {
61  std::string msg("call to gethostname() failed");
62  throw LSST_EXCEPT(pexExceptions::RuntimeError, msg);
63  }
64 
65  // create the default EventSystem object
66  thisHost = new Host();
67  }
68  return *thisHost;
69 
70 }
71 
72 Host* Host::thisHost = 0;
73 std::string Host::_hostname;
74 
75 std::string const& Host::getHostName() {
76  return _hostname;
77 }
78 
79 }}}
std::string const & getHostName()
get the host name
Definition: Host.cc:75
defines the Host class
static Host const & getHost()
get the Host object, which can access the host and ip address.
Definition: Host.cc:46
This object represents the host that is being used to transmit events, giving quick access to often-u...
Definition: Host.h:48
static std::string _hostname
Definition: Host.h:66
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
static Host * thisHost
Definition: Host.h:64
Include files required for standard LSST Exception handling.