/***********************************************************************/ /* Definition of class ARRAY with all its method functions. */ /* Note: This is not a general array class that could be defined as */ /* a template class, but rather a specific object containing a list */ /* of values to be processed by the filter IN operator. */ /* In addition it must act as a metaclass by being able to give back */ /* the type of values it contains. */ /* It must also be able to convert itself from some type to another. */ /***********************************************************************/ class DllExport ARRAY : public XOBJECT, public CSORT { // Array descblock friendclass MULAR; //friend class VALLST; //friend class SFROW; public: // Constructors
ARRAY(PGLOBAL g, int type, int size, int len = 1, int prec = 0); //ARRAY(PGLOBAL g, PQUERY qryp); //ARRAY(PGLOBAL g, PARRAY par, int k);
// Implementation int GetType(void) override {return TYPE_ARRAY;} int GetResultType(void) override {return Type;} int GetLength(void) override {return Len;} int GetLengthEx(void) override {return Len;} int GetScale() override {return0;} int GetNval(void) {return Nval;} int GetSize(void) {return Size;} // PVAL GetValp(void) {return Valp;} void SetType(int atype) {Type = atype;} // void SetCorrel(bool b) {Correlated = b;}
// Methods using XOBJECT::GetIntValue; void Reset(void) override {Bot = -1;} int Qcompare(int *, int *) override; bool Compare(PXOB) override {assert(false); returnfalse;} bool SetFormat(PGLOBAL, FORMAT&) override {assert(false); returnfalse;} //virtual int CheckSpcCol(PTDB, int) {return 0;} void Printf(PGLOBAL g, FILE *f, uint n) override; void Prints(PGLOBAL g, char *ps, uint z) override; // void Empty(void); void SetPrecision(PGLOBAL g, int p); bool AddValue(PGLOBAL g, PSZ sp); bool AddValue(PGLOBAL g, void *p); bool AddValue(PGLOBAL g, short n); bool AddValue(PGLOBAL g, int n); bool AddValue(PGLOBAL g, double f); bool AddValue(PGLOBAL g, PXOB xp); bool AddValue(PGLOBAL g, PVAL vp); void GetNthValue(PVAL valp, int n); int GetIntValue(int n); char *GetStringValue(int n);
BYTE Vcompare(PVAL vp, int n); void Save(int); void Restore(int); void Move(int, int); bool Sort(PGLOBAL g); void *GetSortIndex(PGLOBAL g); bool Find(PVAL valp); bool FilTest(PGLOBAL g, PVAL valp, OPVAL opc, int opm); int Convert(PGLOBAL g, int k, PVAL vp = NULL); int BlockTest(PGLOBAL g, int opc, int opm, void *minp, void *maxp, bool s);
PSZ MakeArrayList(PGLOBAL g); bool CanBeShort(void); bool GetSubValue(PGLOBAL g, PVAL valp, int *kp);
protected: // Members
PMBV Valblk; // To the MBVALS class
PVBLK Vblp; // To Valblock of the data array //PVAL Valp; // The value used for Save and Restore is Value int Size; // Size of value array int Nval; // Total number of items in array int Ndif; // Total number of distinct items in array int Xsize; // Size of Index (used for correlated arrays) int Type; // Type of individual values in the array int Len; // Length of character string int Bot; // Bottom of research index int Top; // Top of research index int X, Inf, Sup; // Used for block optimization //bool Correlated; // -----------> Temporary
}; // end of class ARRAY
/***********************************************************************/ /* Definition of class MULAR with all its method functions. */ /* This class is used when constructing the arrays of constants used */ /* for indexing. Its only purpose is to provide a way to sort, reduce */ /* and reorder the arrays of multicolumn indexes as one block. Indeed */ /* sorting the arrays independently would break the correspondence of */ /* column values. */ /***********************************************************************/ class MULAR : public CSORT, public BLOCK { // No need to be an XOBJECT public: // Constructor
MULAR(PGLOBAL g, int n);
// Implementation void SetPars(PARRAY par, int i) {Pars[i] = par;}
// Methods int Qcompare(int *i1, int *i2) override; // Sort compare routine bool Sort(PGLOBAL g);
protected: // Members int Narray; // The number of sub-arrays
PARRAY *Pars; // To the block of real arrays
}; // end of class ARRAY
#endif// __ARRAY_H
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.