vtkPVSystemConfigInformation.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
10 #ifndef vtkPVSystemConfigInformation_h
11 #define vtkPVSystemConfigInformation_h
12 
13 #include "vtkPVInformation.h"
14 
15 #include <string> // for string
16 using std::string;
17 #include <vector> // for vector
18 using std::vector;
19 
20 class VTKREMOTINGCORE_EXPORT vtkPVSystemConfigInformation : public vtkPVInformation
21 {
22 public:
23  class ConfigInfo
24  {
25  public:
27  : ProcessType(-1)
28  , SystemType(-1)
29  , Rank(-1)
30  , Pid(0)
31  , HostMemoryTotal(0)
32  , HostMemoryAvailable(0)
33  , ProcMemoryAvailable(0)
34  {
35  }
36 
37  void Print();
38 
39  bool operator<(const ConfigInfo& other) const { return this->Rank < other.Rank; }
40 
41  string OSDescriptor;
42  string CPUDescriptor;
43  string MemDescriptor;
44  string HostName;
47  int Rank;
48  long long Pid;
49  long long HostMemoryTotal;
52  };
53 
56  void PrintSelf(ostream& os, vtkIndent indent) override;
57 
61  void CopyFromObject(vtkObject* obj) override;
62 
66  void AddInformation(vtkPVInformation* info) override;
67 
69 
72  void CopyToStream(vtkClientServerStream* css) override;
73  void CopyFromStream(const vtkClientServerStream* css) override;
75 
79  size_t GetSize() { return this->Configs.size(); }
80 
81  const char* GetOSDescriptor(size_t i) { return this->Configs[i].OSDescriptor.c_str(); }
82  const char* GetCPUDescriptor(size_t i) { return this->Configs[i].CPUDescriptor.c_str(); }
83  const char* GetMemoryDescriptor(size_t i) { return this->Configs[i].MemDescriptor.c_str(); }
84  const char* GetHostName(size_t i) { return this->Configs[i].HostName.c_str(); }
85  int GetProcessType(size_t i) { return this->Configs[i].ProcessType; }
86  int GetSystemType(size_t i) { return this->Configs[i].SystemType; }
87  int GetRank(size_t i) { return this->Configs[i].Rank; }
88  long long GetPid(size_t i) { return this->Configs[i].Pid; }
89  long long GetHostMemoryTotal(size_t i) { return this->Configs[i].HostMemoryTotal; }
90  long long GetHostMemoryAvailable(size_t i) { return this->Configs[i].HostMemoryAvailable; }
91  long long GetProcMemoryAvailable(size_t i) { return this->Configs[i].ProcMemoryAvailable; }
92 
96  void Sort();
97 
98 protected:
100  ~vtkPVSystemConfigInformation() override;
101 
102 private:
103  vector<ConfigInfo> Configs;
104 
106  void operator=(const vtkPVSystemConfigInformation&) = delete;
107 };
108 
109 #endif
vtkPVSystemConfigInformation::ConfigInfo::OSDescriptor
string OSDescriptor
Definition: vtkPVSystemConfigInformation.h:41
vtkPVSystemConfigInformation::ConfigInfo::CPUDescriptor
string CPUDescriptor
Definition: vtkPVSystemConfigInformation.h:42
vtkPVInformation::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
vtkPVSystemConfigInformation::GetOSDescriptor
const char * GetOSDescriptor(size_t i)
Definition: vtkPVSystemConfigInformation.h:81
vtkPVSystemConfigInformation::ConfigInfo::ConfigInfo
ConfigInfo()
Definition: vtkPVSystemConfigInformation.h:26
vtkPVSystemConfigInformation::GetHostMemoryTotal
long long GetHostMemoryTotal(size_t i)
Definition: vtkPVSystemConfigInformation.h:89
vtkPVSystemConfigInformation::GetProcessType
int GetProcessType(size_t i)
Definition: vtkPVSystemConfigInformation.h:85
vtkObject::New
static vtkObject * New()
vtkPVSystemConfigInformation::ConfigInfo::Rank
int Rank
Definition: vtkPVSystemConfigInformation.h:47
vtkClientServerStream
Store messages for the interpreter.
Definition: vtkClientServerStream.h:23
vtkPVInformation.h
vtkObject
vtkPVInformation::operator=
void operator=(const vtkPVInformation &)=delete
vtkPVSystemConfigInformation::ConfigInfo::HostMemoryTotal
long long HostMemoryTotal
Definition: vtkPVSystemConfigInformation.h:49
vtkPVSystemConfigInformation::ConfigInfo::ProcMemoryAvailable
long long ProcMemoryAvailable
Definition: vtkPVSystemConfigInformation.h:51
vtkPVSystemConfigInformation::GetCPUDescriptor
const char * GetCPUDescriptor(size_t i)
Definition: vtkPVSystemConfigInformation.h:82
vtkPVSystemConfigInformation::ConfigInfo::Pid
long long Pid
Definition: vtkPVSystemConfigInformation.h:48
vtkPVInformation::AddInformation
virtual void AddInformation(vtkPVInformation *)
Merge another information object.
vtkPVSystemConfigInformation::GetMemoryDescriptor
const char * GetMemoryDescriptor(size_t i)
Definition: vtkPVSystemConfigInformation.h:83
vtkPVSystemConfigInformation::GetRank
int GetRank(size_t i)
Definition: vtkPVSystemConfigInformation.h:87
vtkPVSystemConfigInformation::ConfigInfo::ProcessType
int ProcessType
Definition: vtkPVSystemConfigInformation.h:45
vtkPVSystemConfigInformation::ConfigInfo::operator<
bool operator<(const ConfigInfo &other) const
Definition: vtkPVSystemConfigInformation.h:39
vtkIndent
vtkPVInformation::CopyFromObject
virtual void CopyFromObject(vtkObject *)
Transfer information about a single object into this object.
vtkPVSystemConfigInformation::ConfigInfo::MemDescriptor
string MemDescriptor
Definition: vtkPVSystemConfigInformation.h:43
vtkPVSystemConfigInformation::GetHostName
const char * GetHostName(size_t i)
Definition: vtkPVSystemConfigInformation.h:84
vtkPVSystemConfigInformation::ConfigInfo
Definition: vtkPVSystemConfigInformation.h:23
vtkPVInformation
Superclass for information objects.
Definition: vtkPVInformation.h:19
vtkPVSystemConfigInformation::GetPid
long long GetPid(size_t i)
Definition: vtkPVSystemConfigInformation.h:88
vtkPVSystemConfigInformation::GetProcMemoryAvailable
long long GetProcMemoryAvailable(size_t i)
Definition: vtkPVSystemConfigInformation.h:91
vtkPVSystemConfigInformation::GetSystemType
int GetSystemType(size_t i)
Definition: vtkPVSystemConfigInformation.h:86
vtkPVSystemConfigInformation::GetSize
size_t GetSize()
Access managed information.
Definition: vtkPVSystemConfigInformation.h:79
vtkPVSystemConfigInformation::GetHostMemoryAvailable
long long GetHostMemoryAvailable(size_t i)
Definition: vtkPVSystemConfigInformation.h:90
vtkPVInformation::CopyToStream
virtual void CopyToStream(vtkClientServerStream *)=0
Manage a serialized version of the information.
vtkPVSystemConfigInformation
Definition: vtkPVSystemConfigInformation.h:20
vtkPVInformation::CopyFromStream
virtual void CopyFromStream(const vtkClientServerStream *)
Manage a serialized version of the information.
vtkPVSystemConfigInformation::ConfigInfo::SystemType
int SystemType
Definition: vtkPVSystemConfigInformation.h:46
vtkPVSystemConfigInformation::ConfigInfo::HostMemoryAvailable
long long HostMemoryAvailable
Definition: vtkPVSystemConfigInformation.h:50
vtkPVSystemConfigInformation::ConfigInfo::HostName
string HostName
Definition: vtkPVSystemConfigInformation.h:44