OpenDDS  Snapshot(2023/04/07-19:43)
Public Types | Public Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::StructComparator< Sample, Field > Class Template Reference

#include <Comparator_T.h>

Inheritance diagram for OpenDDS::DCPS::StructComparator< Sample, Field >:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::DCPS::StructComparator< Sample, Field >:
Collaboration graph
[legend]

Public Types

typedef Field Sample::* MemberPtr
 
- Public Types inherited from OpenDDS::DCPS::ComparatorBase
typedef RcHandle< ComparatorBasePtr
 

Public Member Functions

 StructComparator (MemberPtr mp, ComparatorBase::Ptr delegate, ComparatorBase::Ptr next)
 
bool less (void *lhs_void, void *rhs_void) const
 
bool equal (void *lhs_void, void *rhs_void) const
 
- Public Member Functions inherited from OpenDDS::DCPS::ComparatorBase
 ComparatorBase ()
 
 ComparatorBase (Ptr next)
 
virtual ~ComparatorBase ()
 
bool compare (void *lhs, void *rhs) const
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Private Attributes

MemberPtr mp_
 
ComparatorBase::Ptr delegate_
 

Additional Inherited Members

- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 

Detailed Description

template<class Sample, class Field>
class OpenDDS::DCPS::StructComparator< Sample, Field >

deal with nested structs, for example: struct A { long x; }; struct B { A theA; }; B's query string has "ORDER BY theA.x" The generated code will create a StructComparator with Sample = B and Field = A which in turn has a "delegate" which is a FieldComparator (see above) with Sample = A and Field = CORBA::Long

Definition at line 94 of file Comparator_T.h.

Member Typedef Documentation

◆ MemberPtr

template<class Sample , class Field >
typedef Field Sample::* OpenDDS::DCPS::StructComparator< Sample, Field >::MemberPtr

Definition at line 96 of file Comparator_T.h.

Constructor & Destructor Documentation

◆ StructComparator()

template<class Sample , class Field >
OpenDDS::DCPS::StructComparator< Sample, Field >::StructComparator ( MemberPtr  mp,
ComparatorBase::Ptr  delegate,
ComparatorBase::Ptr  next 
)
inline

Definition at line 97 of file Comparator_T.h.

99  : ComparatorBase(next)
100  , mp_(mp)
101  , delegate_(delegate) {}
ComparatorBase::Ptr delegate_
Definition: Comparator_T.h:117

Member Function Documentation

◆ equal()

template<class Sample , class Field >
bool OpenDDS::DCPS::StructComparator< Sample, Field >::equal ( void *  lhs_void,
void *  rhs_void 
) const
inlinevirtual

Implements OpenDDS::DCPS::ComparatorBase.

Definition at line 109 of file Comparator_T.h.

109  {
110  Sample* lhs = static_cast<Sample*>(lhs_void);
111  Sample* rhs = static_cast<Sample*>(rhs_void);
112  return delegate_->equal(&(lhs->*mp_), &(rhs->*mp_));
113  }
ComparatorBase::Ptr delegate_
Definition: Comparator_T.h:117
virtual bool equal(void *lhs, void *rhs) const =0

◆ less()

template<class Sample , class Field >
bool OpenDDS::DCPS::StructComparator< Sample, Field >::less ( void *  lhs_void,
void *  rhs_void 
) const
inlinevirtual

Implements OpenDDS::DCPS::ComparatorBase.

Definition at line 103 of file Comparator_T.h.

103  {
104  Sample* lhs = static_cast<Sample*>(lhs_void);
105  Sample* rhs = static_cast<Sample*>(rhs_void);
106  return delegate_->less(&(lhs->*mp_), &(rhs->*mp_));
107  }
ComparatorBase::Ptr delegate_
Definition: Comparator_T.h:117
virtual bool less(void *lhs, void *rhs) const =0

Member Data Documentation

◆ delegate_

template<class Sample , class Field >
ComparatorBase::Ptr OpenDDS::DCPS::StructComparator< Sample, Field >::delegate_
private

Definition at line 117 of file Comparator_T.h.

◆ mp_

template<class Sample , class Field >
MemberPtr OpenDDS::DCPS::StructComparator< Sample, Field >::mp_
private

Definition at line 116 of file Comparator_T.h.


The documentation for this class was generated from the following file: