ACF $AcfVersion:0$
IObjectQueue.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QByteArray>
7#include <QtCore/QVector>
8
9// ACF includes
10#include <istd/IChangeable.h>
11
12
13namespace ibase
14{
15
16
20class IObjectQueue: virtual public istd::IChangeable
21{
22public:
23 typedef QVector<istd::IChangeable*> ObjectList;
24
29 virtual int GetObjectsCount(const QByteArray* typeIdPtr = NULL) const = 0;
30
34 virtual void ClearQueue() = 0;
35
42 virtual istd::IChangeable* CreateFrontObject(int offsetPos = 0, const QByteArray* typeIdPtr = NULL) = 0;
49 virtual istd::IChangeable* CreateBackObject(int offsetPos = 0, const QByteArray* typeIdPtr = NULL) = 0;
50
57 virtual void RemoveFrontObject(int offsetPos = 0, const QByteArray* typeIdPtr = NULL) = 0;
64 virtual void RemoveBackObject(int offsetPos = 0, const QByteArray* typeIdPtr = NULL) = 0;
65
71 virtual istd::IChangeable* GetFrontObject(int offsetPos = 0, const QByteArray* typeIdPtr = NULL) const = 0;
77 virtual istd::IChangeable* GetBackObject(int offsetPos = 0, const QByteArray* typeIdPtr = NULL) const = 0;
78
82 virtual void SelectObjects(
83 ObjectList& result,
84 bool doAppend = false,
85 int offsetPos = 0,
86 const QByteArray* typeIdPtr = NULL) const = 0;
87
94 virtual istd::IChangeable* PopFrontObject(int offsetPos = 0, const QByteArray* typeIdPtr = NULL) = 0;
101 virtual istd::IChangeable* PopBackObject(int offsetPos = 0, const QByteArray* typeIdPtr = NULL) = 0;
102};
103
104
105} // namespace ibase
106
107
108
109
Interface allowing to manage queue of some objects.
virtual istd::IChangeable * PopBackObject(int offsetPos=0, const QByteArray *typeIdPtr=NULL)=0
Get object at the end of queue and remove it from queue.
virtual istd::IChangeable * CreateFrontObject(int offsetPos=0, const QByteArray *typeIdPtr=NULL)=0
Create object at the front of this queue.
virtual istd::IChangeable * CreateBackObject(int offsetPos=0, const QByteArray *typeIdPtr=NULL)=0
Create object at the end of this queue.
virtual void RemoveFrontObject(int offsetPos=0, const QByteArray *typeIdPtr=NULL)=0
Remove object at the front of this queue.
virtual istd::IChangeable * PopFrontObject(int offsetPos=0, const QByteArray *typeIdPtr=NULL)=0
Get object at the front of queue and remove it from queue.
virtual int GetObjectsCount(const QByteArray *typeIdPtr=NULL) const =0
Get number of objects in this queue.
virtual void SelectObjects(ObjectList &result, bool doAppend=false, int offsetPos=0, const QByteArray *typeIdPtr=NULL) const =0
Find set of objects.
virtual istd::IChangeable * GetBackObject(int offsetPos=0, const QByteArray *typeIdPtr=NULL) const =0
Get object at the end of queue.
QVector< istd::IChangeable * > ObjectList
virtual istd::IChangeable * GetFrontObject(int offsetPos=0, const QByteArray *typeIdPtr=NULL) const =0
Get object at the front of queue.
virtual void ClearQueue()=0
Remove all objects from queue.
virtual void RemoveBackObject(int offsetPos=0, const QByteArray *typeIdPtr=NULL)=0
Remove object at the end of this queue.
Common interface for data model objects, which can be changed.
Definition IChangeable.h:28
#define NULL
Definition istd.h:74
This namespace contains basic implementations of standard primitives on the component level.