mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 14:15:49 -06:00
70 lines
1.6 KiB
C++
70 lines
1.6 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin III - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
// gqbArrayCollection.h - Implementation of Collection Using Arrays
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef GQBARRAYCOLLECTION_H
|
|
#define GQBARRAYCOLLECTION_H
|
|
|
|
// App headers
|
|
#include "gqb/gqbCollectionBase.h"
|
|
|
|
WX_DEFINE_ARRAY_PTR(gqbObject *, gqbObjsArray);
|
|
|
|
class gqbArrayIterator : public gqbIteratorBase
|
|
{
|
|
public:
|
|
gqbArrayIterator(gqbObjsArray *gqbPtrsArray);
|
|
gqbObject *Next();
|
|
bool HasNext();
|
|
void ResetIterator();
|
|
|
|
private:
|
|
int position;
|
|
gqbObjsArray *internalArray;
|
|
};
|
|
|
|
class gqbArrayDownIterator : public gqbIteratorBase
|
|
{
|
|
public:
|
|
gqbArrayDownIterator(gqbObjsArray *gqbPtrsArray);
|
|
gqbObject *Next();
|
|
bool HasNext();
|
|
void ResetIterator();
|
|
|
|
private:
|
|
int position;
|
|
gqbObjsArray *internalArray;
|
|
};
|
|
|
|
//Create Array Objects used as base for gqbCollections
|
|
class gqbArrayCollection : public gqbCollectionBase
|
|
{
|
|
public:
|
|
~gqbArrayCollection();
|
|
void addItem(gqbObject *item);
|
|
void removeItem(gqbObject *item);
|
|
gqbIteratorBase *createIterator();
|
|
gqbIteratorBase *createDownIterator();
|
|
gqbObject *getItemAt(int index);
|
|
int count();
|
|
bool existsObject(gqbObject *item);
|
|
int getIndex(gqbObject *item);
|
|
void insertAtIndex(gqbObject *item, int index);
|
|
void deleteAll();
|
|
void removeAll();
|
|
gqbObject *&operator[](size_t index)
|
|
{
|
|
return gqbArray[index];
|
|
}
|
|
|
|
private:
|
|
gqbObjsArray gqbArray;
|
|
};
|
|
#endif
|