📄 queryproc.h
字号:
/* ======================================================================== DEVise Data Visualization Software (c) Copyright 1992-1996 By the DEVise Development Group Madison, Wisconsin All Rights Reserved. ======================================================================== Under no circumstances is this software to be copied, distributed, or altered in any way without prior permission from the DEVise Development Group.*//* $Id: QueryProc.h,v 1.8 1996/11/26 16:51:36 ssl Exp $ $Log: QueryProc.h,v $ Revision 1.8 1996/11/26 16:51:36 ssl Added support for piled viws Revision 1.7 1996/11/23 21:12:06 jussi Removed support for multiple query processors. Revision 1.6 1996/06/27 15:52:44 jussi Added functionality which allows TDataAscii and TDataBinary to request that views using a given TData be refreshed (existing queries are aborted and new queries are issued). Fixed a few bugs in QueryProcFull which became visible only when this new functionality was tested. Revision 1.5 1996/06/13 00:16:27 jussi Added support for views that are slaves of more than one record link. This allows one to express disjunctive queries. Revision 1.4 1996/05/31 15:41:28 jussi Added support for record links. Revision 1.3 1996/01/15 16:55:15 jussi Added copyright notice and cleaned up the code a bit. Revision 1.2 1995/09/05 22:15:14 jussi Added CVS header.*/#ifndef QueryProc_h#define QueryProc_h#include "DeviseTypes.h"#include "VisualArg.h"#include "RecId.h"class BufMgr;class TData;class TDataMap;class Selection;class GData;class RecordLink;class RecordLinkList;/* Used to return query results */class QueryCallback { public: /* Query data ready to be returned. Do initialization here. */ virtual void QueryInit(void *userData) = 0; /* Return a batch of records */ virtual void ReturnGData(TDataMap *mapping, RecId id, void *gdata, int numGData) = 0; /* Done with query. bytes == # of TData bytes used in processing this query. */ virtual void QueryDone(int bytes, void *userData) = 0; /* Return list of record links whose slave the view is */ virtual RecordLinkList *GetRecordLinkList() { return 0; } virtual void PrintLinkInfo() {}};class QueryProc { public: /* get one and only instance of query processor */ static QueryProc *Instance(); /* batch a query. For now, we'll just queue it up. */ virtual void BatchQuery(TDataMap *map, VisualFilter &filter, QueryCallback *callback, void *userData, int priority = 0) = 0; /* Abort a query given the mapping and the callback. */ virtual void AbortQuery(TDataMap *map, QueryCallback *callback) = 0; /* Abort all queries, including prefetching */ virtual void ClearQueries() = 0; /* Abort and reexecute queries that use the specified tdata */ virtual void RefreshTData(TData *tdata); /* Clear info about TData from qp and bufmgr */ virtual void ClearTData(TData *tdata) = 0; /* Protocol to reset GData to a different one: first call ClearGData() to clear any info, then call ResetTData to reset it to new one */ virtual void ClearGData(GData *gdata) = 0; virtual void ResetGData(TData *tdata, GData *gdata) = 0; virtual BufMgr *GetMgr() = 0; /* TRUE if this qp is idle */ virtual Boolean Idle() = 0; /* print statistics */ virtual void PrintStat() = 0; /* Called to process query */ virtual void ProcessQuery() = 0; /* Interface to query for TData */ virtual void InitTDataQuery(TDataMap *map, VisualFilter &filter, Boolean approximate = false) = 0; virtual Boolean GetTData(RecId &startRid, int &numRecs, char *&buf) = 0; virtual void DoneTDataQuery() = 0; /* Get minimum X value for mapping. Return true if found */ virtual Boolean GetMinX(TDataMap *map, Coord &minX) = 0; protected: static QueryProc *_queryProc; /* the query process being used */};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -