cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
prmMaskedVector.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Anton Deguet
7  Created on: 2008-02-05
8 
9  (C) Copyright 2008-2014 Johns Hopkins University (JHU), All Rights Reserved.
10 
11 --- begin cisst license - do not edit ---
12 
13 This software is provided "as is" under an open source license, with
14 no warranty. The complete license can be found in license.txt and
15 http://www.cisst.org/cisst/license.txt.
16 
17 --- end cisst license ---
18 */
19 
20 
21 #ifndef _prmMaskedVector_h
22 #define _prmMaskedVector_h
23 
27 
28 //#include <cisstMultiTask/mtsForwardDeclarations.h>
29 
30 // Always include last
32 
33 template <class _elementType>
35 {
36  // declare services, requires dynamic creation
37  CMN_DECLARE_SERVICES_EXPORT_ALWAYS(CMN_DYNAMIC_CREATION, CMN_LOG_ALLOW_DEFAULT);
38 
39 public:
40 
43 
45 
47 
48 protected:
50  typedef unsigned int size_type;
51 
56 
57 
62 
63 public:
65  inline prmMaskedVector(void):
66  DataMember(0),
67  MaskMember(0)
68  {}
69 
73  inline void SetSize(size_type size){
74  DataMember.SetSize(size);
75  MaskMember.SetSize(size);
76  DataMember.Zeros();
77  MaskMember.Zeros();
78  }
79 
80 
82  inline prmMaskedVector(size_type size){
83  SetSize(size);
84  }
85 
86  /* inline prmMaskedVector( const DataType& data,
87  const mtsBoolVec& mask ):
88  DataMember(data),
89  MaskMember(mask)
90  {}*/
91 
93  inline prmMaskedVector(const ThisType & otherVector):
94  mtsGenericObject( otherVector ),
95  DataMember( otherVector.Data() ),
96  MaskMember( otherVector.Mask() )
97  {}
98 
101  inline ~prmMaskedVector() {}
102 
104  virtual std::string ToString(void) const {
105  std::stringstream outputStream;
106  ToStream(outputStream);
107  return outputStream.str();
108  }
109 
111  virtual void ToStream(std::ostream & outputStream) const {
112  mtsGenericObject::ToStream(outputStream);
113  outputStream<<" , "<<DataMember<<" , "<<MaskMember;
114  }
115 
117  void SerializeRaw(std::ostream & outputStream) const{
118  BaseType::SerializeRaw(outputStream);
119  MaskMember.SerializeRaw(outputStream);
120  DataMember.SerializeRaw(outputStream);
121  }
122 
124  void DeSerializeRaw(std::istream & inputStream){
125  BaseType::DeSerializeRaw(inputStream);
126  MaskMember.DeSerializeRaw(inputStream);
127  DataMember.DeSerializeRaw(inputStream);
128  }
129 };
130 
131 
132 // define some basic vectors
135 
138 
141 
144 
147 
150 
153 
156 
159 
162 
165 
166 #endif // _prmMaskedVector_h
prmMaskedVector< bool > prmMaskedBoolVec
Definition: prmMaskedVector.h:163
A vector object of dynamic size.
Definition: vctDynamicVector.h:127
Typedef for dynamic vectors.
prmMaskedVector< unsigned char > prmMaskedUCharVec
Definition: prmMaskedVector.h:160
prmMaskedVector< unsigned int > prmMaskedUIntVec
Definition: prmMaskedVector.h:148
Definition: prmMaskedVector.h:34
virtual void SerializeRaw(std::ostream &outputStream) const
virtual void DeSerializeRaw(std::istream &inputStream)
virtual void ToStream(std::ostream &outputStream) const
prmMaskedVector< _elementType > ThisType
Definition: prmMaskedVector.h:42
prmMaskedVector< int > prmMaskedIntVec
Definition: prmMaskedVector.h:145
Base class for data object in cisstMultiTask.
Definition: mtsGenericObject.h:56
vctDynamicVector< _elementType > DataType
Definition: prmMaskedVector.h:46
prmMaskedVector< unsigned long > prmMaskedULongVec
Definition: prmMaskedVector.h:142
prmMaskedVector< short > prmMaskedShortVec
Definition: prmMaskedVector.h:151
CMN_DECLARE_MEMBER_AND_ACCESSORS(DataType, Data)
void SerializeRaw(std::ostream &outputStream) const
Definition: prmMaskedVector.h:117
void DeSerializeRaw(std::istream &inputStream)
Definition: prmMaskedVector.h:124
Defines mtsGenericObject.
virtual std::string ToString(void) const
Definition: prmMaskedVector.h:104
prmMaskedVector(void)
Definition: prmMaskedVector.h:65
prmMaskedVector(const ThisType &otherVector)
Definition: prmMaskedVector.h:93
CMN_DECLARE_SERVICES_INSTANTIATION(prmMaskedDoubleVec)
prmMaskedVector< double > prmMaskedDoubleVec
Definition: prmMaskedVector.h:133
prmMaskedVector< float > prmMaskedFloatVec
Definition: prmMaskedVector.h:136
unsigned int size_type
Definition: prmMaskedVector.h:50
Rules of exporting.
prmMaskedVector< long > prmMaskedLongVec
Definition: prmMaskedVector.h:139
prmMaskedVector< unsigned short > prmMaskedUShortVec
Definition: prmMaskedVector.h:154
const int CMN_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:331
prmMaskedVector(size_type size)
Definition: prmMaskedVector.h:82
mtsGenericObject BaseType
Definition: prmMaskedVector.h:44
~prmMaskedVector()
Definition: prmMaskedVector.h:101
virtual void ToStream(std::ostream &outputStream) const
Definition: prmMaskedVector.h:111
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76
prmMaskedVector< char > prmMaskedCharVec
Definition: prmMaskedVector.h:157
void SetSize(size_type size)
Definition: prmMaskedVector.h:73