Blame src/membername.h

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#ifndef MEMBERNAME_H
Packit 1c1d7e
#define MEMBERNAME_H
Packit 1c1d7e
Packit 1c1d7e
#include <qlist.h>
Packit 1c1d7e
#include "memberdef.h"
Packit 1c1d7e
#include "sortdict.h"
Packit 1c1d7e
Packit 1c1d7e
/** Class representing all MemberDef objects with the same name */
Packit 1c1d7e
class MemberName : public QList<MemberDef>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    MemberName(const char *name);
Packit 1c1d7e
   ~MemberName();
Packit 1c1d7e
    const char *memberName() const { return name; }
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
    int compareValues(const MemberDef *item1,const MemberDef *item2) const;
Packit 1c1d7e
    QCString name;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
/** Iterator for MemberDef objects in a MemberName list. */
Packit 1c1d7e
class MemberNameIterator : public QListIterator<MemberDef>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    MemberNameIterator( const MemberName &list);
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
/** Sorted dictionary of MemberName objects. */
Packit 1c1d7e
class MemberNameSDict : public SDict<MemberName>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    MemberNameSDict(int size) : SDict<MemberName>(size) {}
Packit 1c1d7e
   ~MemberNameSDict() {}
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
   int compareValues(const MemberName *item1,const MemberName *item2) const;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
/** Data associated with a MemberDef in an inheritance relation. */
Packit 1c1d7e
struct MemberInfo
Packit 1c1d7e
{
Packit 1c1d7e
  MemberInfo(MemberDef *md,Protection p,Specifier v,bool inh) :
Packit 1c1d7e
        memberDef(md), prot(p), virt(v), inherited(inh), ambigClass(0) {}
Packit 1c1d7e
 ~MemberInfo() {}
Packit 1c1d7e
  MemberDef *memberDef;
Packit 1c1d7e
  Protection prot;
Packit 1c1d7e
  Specifier  virt;
Packit 1c1d7e
  bool       inherited;
Packit 1c1d7e
  QCString   scopePath;
Packit 1c1d7e
  QCString   ambiguityResolutionScope; 
Packit 1c1d7e
  ClassDef  *ambigClass;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
/** Class representing all MemberInfo objects with the same name */
Packit 1c1d7e
class MemberNameInfo : public QList<MemberInfo>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    MemberNameInfo(const char *name);  
Packit 1c1d7e
   ~MemberNameInfo() {}
Packit 1c1d7e
    const char *memberName() const { return name; }
Packit 1c1d7e
  private:
Packit 1c1d7e
    int compareValues(const MemberInfo *item1,const MemberInfo *item2) const;
Packit 1c1d7e
    QCString name;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
/** Iterator for MemberInfo objects in a MemberNameInfo list. */
Packit 1c1d7e
class MemberNameInfoIterator : public QListIterator<MemberInfo>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    MemberNameInfoIterator(const MemberNameInfo &mnii) 
Packit 1c1d7e
      : QListIterator<MemberInfo>(mnii) {}
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
/** Sorted dictionary of MemberNameInfo objects. */
Packit 1c1d7e
class MemberNameInfoSDict : public SDict<MemberNameInfo>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    MemberNameInfoSDict(int size) : SDict<MemberNameInfo>(size) {}
Packit 1c1d7e
   ~MemberNameInfoSDict() {}
Packit 1c1d7e
  private:
Packit 1c1d7e
    int compareValues(const MemberNameInfo *item1,const MemberNameInfo *item2) const
Packit 1c1d7e
    {
Packit 1c1d7e
      return qstricmp(item1->memberName(), item2->memberName());
Packit 1c1d7e
    }
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
#endif