xc
DbTagData.h
1 //----------------------------------------------------------------------------
2 // XC program; finite element analysis code
3 // for structural analysis and design.
4 //
5 // Copyright (C) Luis Claudio Pérez Tato
6 //
7 // This program derives from OpenSees <http://opensees.berkeley.edu>
8 // developed by the «Pacific earthquake engineering research center».
9 //
10 // Except for the restrictions that may arise from the copyright
11 // of the original program (see copyright_opensees.txt)
12 // XC is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This software is distributed in the hope that it will be useful, but
18 // WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program.
25 // If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------------
27 
28 
29 #ifndef DbTagData_h
30 #define DbTagData_h
31 
32 #include "utility/matrix/ID.h"
33 #include <set>
34 
35 namespace XC {
36 
37 class CommParameters;
38 class CommMetaData;
39 
41 //
43 class DbTagData
44  {
45  private:
46  ID data;
47  mutable std::set<size_t> visitados;
48 
49  friend class CommParameters;
50  int sendIdData(CommParameters &,const int &) const;
51  int receiveIdData(const CommParameters &,const int &);
52  public:
53  DbTagData(const int &dataSize= 0);
54  explicit DbTagData(const ID &);
55  void inicComm(const int &dataSize);
56 
57  inline int Size(void) const
58  { return data.Size(); }
59  const int &getDbTagDataPos(const size_t &i) const;
60  void setDbTagDataPos(const size_t &i,const int &v);
61  int send(DbTagData &,CommParameters &, const CommMetaData &) const;
62  int receive(DbTagData &,const CommParameters &,const CommMetaData &);
63  void Print(std::ostream &os) const;
64  };
65 
66 std::ostream &operator<<(std::ostream &,const DbTagData &);
67 
68 } // end of XC namespace
69 
70 #endif
DbTagData(const int &dataSize=0)
Constructor.
Definition: DbTagData.cc:34
const int & getDbTagDataPos(const size_t &i) const
Returns the integer in the position being passed as parameter.
Definition: DbTagData.cc:58
Vector that stores the dbTags of the class members.
Definition: DbTagData.h:43
Vector of integers.
Definition: ID.h:93
Data about the index, size,,...
Definition: CommMetaData.h:38
int send(DbTagData &, CommParameters &, const CommMetaData &) const
Sends the object.
Definition: DbTagData.cc:102
int receive(DbTagData &, const CommParameters &, const CommMetaData &)
Receive the object.
Definition: DbTagData.cc:106
void inicComm(const int &dataSize)
Parameter initialization to communicate sz objects.
Definition: DbTagData.cc:42
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
Communication parameters between processes.
Definition: CommParameters.h:65
void setDbTagDataPos(const size_t &i, const int &v)
Sets the integer in the position being passed as parameter.
Definition: DbTagData.cc:77
void Print(std::ostream &os) const
Print stuff.
Definition: DbTagData.cc:110
int Size(void) const
Returns the vector size.
Definition: ID.h:113