cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros
cmnAccessorMacros.h File Reference

Accessor macros. More...

Go to the source code of this file.

Macros

#define _cmnAccessorMacros_h
 
#define CMN_DECLARE_MEMBER_AND_ACCESSORS_INTERNAL(memberType, memberName)
 
#define CMN_DECLARE_MEMBER_AND_ACCESSORS(memberType, memberName)   CMN_DECLARE_MEMBER_AND_ACCESSORS_INTERNAL(memberType, memberName)
 

Detailed Description

Accessor macros.

Macro Definition Documentation

#define _cmnAccessorMacros_h

Author(s): Anton Deguet Created on: 2008-06-26

(C) Copyright 2008-2009 Johns Hopkins University (JHU), All Rights Reserved.

— begin cisst license - do not edit —

This software is provided "as is" under an open source license, with no warranty. The complete license can be found in license.txt and http://www.cisst.org/cisst/license.txt.

— end cisst license —

#define CMN_DECLARE_MEMBER_AND_ACCESSORS (   memberType,
  memberName 
)    CMN_DECLARE_MEMBER_AND_ACCESSORS_INTERNAL(memberType, memberName)

Macro to declare a data member and implement accessor methods. This macro creates 4 different accessors, two to read and two to write. For example, the following call:

will create the 4 following methods:

double & Timestamp(void);
const double & Timestamp(void);
void SetTimestamp(double newValue);
void GetTimestamp(double & placeHolder);

Finally, when used in conjunction with SWIG, the method Get is modified to return a value by const reference.

#define CMN_DECLARE_MEMBER_AND_ACCESSORS_INTERNAL (   memberType,
  memberName 
)
Value:
protected: \
memberType memberName##Member; \
public: \
inline void Set##memberName(const memberType & newValue) { \
this->memberName##Member = newValue; \
} \
inline void Get##memberName(memberType & placeHolder) { \
placeHolder = this->memberName##Member; \
} \
inline const memberType & memberName(void) const { \
return this->memberName##Member; \
} \
inline memberType & memberName(void) { \
return this->memberName##Member; \
} \
protected:

Macro used to declare a data member and implement accessor methods in a standard way. This macro should not be used, use CMN_DECLARE_MEMBER_AND_ACCESSORS instead.