home *** CD-ROM | disk | FTP | other *** search
/ Windows 95 v2.4 Fix / W95-v2.4fix.iso / ACADWIN / ASE / ASECLASS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-02-08  |  22.8 KB  |  498 lines

  1. #ifndef _ASECLASS_H
  2. #define _ASECLASS_H
  3. /*****************************************************************************
  4.     Name: aseclass.h                                       
  5.  
  6.     Description:  
  7.             This file describes the ASE Program Interface
  8.             classes for C++ AutoCAD applications.
  9.  
  10.     Author: Volodya Sirotinin
  11.             Autodesk, Inc.
  12.             Moscow, Russia.
  13.  
  14.    Copyright (C) 1992, 1993, 1994 by Autodesk, Inc.
  15.  
  16.    Permission to use, copy, modify, and distribute this software in 
  17.    object code form for any purpose and without fee is hereby granted, 
  18.    provided that the above copyright notice appears in all copies and 
  19.    that both that copyright notice and the limited warranty and 
  20.    restricted rights notice below appear in all supporting 
  21.    documentation.
  22.  
  23.    AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.  
  24.    AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF 
  25.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
  26.    DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE 
  27.    UNINTERRUPTED OR ERROR FREE.
  28.  
  29.    Use, duplication, or disclosure by the U.S. Government is subject to 
  30.    restrictions set forth in FAR 52.227-19 (Commercial Computer 
  31.    Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 
  32.    (Rights in Technical Data and Computer Software), as applicable.
  33.  
  34.     Entry Points:
  35.  
  36.     Modification History:
  37.     11 Oct 1993 - volodyas - original written
  38.  
  39.     Bugs and restriction on use:
  40.  
  41.     Notes:
  42.  
  43. *****************************************************************************/
  44.  
  45. /***************************************************************************/
  46. /* INCLUDES */
  47. /***************************************************************************/
  48. #include <asiappl.h>
  49. #include <aseconst.h>
  50.  
  51. /***************************************************************************/
  52. /* DEFINES */
  53. /***************************************************************************/
  54. #define CASEAPPL(x)       ((CAseAppl*)x)
  55. #define CASELINKPATH(x)   ((CAseLinkPath*)x)
  56. #define CASELINK(x)       ((CAseLink*)x)
  57. #define CASELINKSEL(x)    ((CAseLinkSel*)x)
  58.  
  59. // Can be used to throw ASI exception with the 
  60. // diagnostic parameters, containing in the specified 
  61. // CAseApiObj-derived object
  62. #define ASE_THROW(x)  {((CAseApiObj*)x)->appThrow() ;}
  63.  
  64. /***************************************************************************/
  65. /* TYPEDEFS */
  66. /***************************************************************************/
  67.  
  68. /***************************************************************************/
  69. /* CLASS DESCRIPTION */
  70. /***************************************************************************/
  71. #if defined(__cplusplus)
  72.  
  73. class CAseApiErr ;
  74. class CAseApiObj ;
  75.   class CAseAppl ;
  76.   class CAseLinkPath ;
  77.   class CAseLinkSel ;
  78.  
  79. class CAseApiObj 
  80. //
  81. //  This class defines the properties of the
  82. //  all ASE classes and has to be inherited by the all
  83. //  other concrete ASE API classes.
  84. //
  85. {
  86.   public:
  87.                          CAseApiObj(CAseApiObj *pObj) ;
  88.                          CAseApiObj(CAseApiObj &Obj) ;
  89.   virtual                ~CAseApiObj() ;
  90.   virtual EAsiBoolean    init() ;
  91.   virtual EAseApiClassId isA() const = 0 ;
  92.   virtual CAseApiObj    *clone() const = 0 ;
  93.   virtual EAsiBoolean    copyFrom(const CAseApiObj *pObj) ;
  94.   virtual CAseApiObj&    operator=(const CAseApiObj &Obj) ;
  95.   virtual int            operator==(const CAseApiObj *pObj) const = 0 ;
  96.   virtual int            operator==(const CAseApiObj &Obj) const = 0 ;
  97.   virtual EAsiBoolean    isInit() const ;
  98.   const char            *version() const ;
  99.   const CAsiException   *errGet() const ;
  100.   int                    errQty() const ;
  101.   EAseErrDsc             errDsc(int ErrNum) const ;
  102.   int                    errCode(int ErrNum) const ;
  103.   EAsiBoolean            errMsg(int ErrNum,
  104.                                 char *pBuf,
  105.                                 int BufLen) const;
  106.   EAsiBoolean            errClear() ;
  107.   void                   appThrow() const ;
  108.   const char            *errDiagParNameCode(int ParNum,
  109.                                             int *pParCode,
  110.                                             int *pIsStr) const ;
  111.   EAsiBoolean            errDiagPar(int ErrNum, 
  112.                                     int ParCode,
  113.                                     int *pIntValue) const ;
  114.   EAsiBoolean            errDiagPar(int ErrNum, 
  115.                                     int ParCode,
  116.                                     char *pStrValue,
  117.                                     int BufLen) const ;
  118.  
  119.   // Non-documented
  120.   // Init the descriptor by the CAsiException 
  121.   EAsiBoolean            errInitAsi(CAsiException *pErr) ;
  122.  
  123.   // Init the descriptor by the CAsiSQLObject
  124.   EAsiBoolean            errInitAsi(CAsiSQLObject *pSQLObj) ;
  125.   EAsiBoolean            errInitAsi(CAsiSQLObject &SQLObj) ;
  126.  
  127.   friend class CAseApiErr ;
  128.   friend class CAseAppl ;
  129.   protected:
  130.   struct resbuf         *getLast(const struct resbuf *bufptr) const ;
  131.   struct resbuf         *allocAttr(EAseLinkAttr attr, const char *pStr=NULL) const ;
  132.   struct resbuf         *copyBuf(const struct resbuf *bufptr, 
  133.                                  const struct resbuf *pBorder=NULL) const ;
  134.   struct resbuf         *nextAttr(const struct resbuf *bufptr) const ;
  135.   struct resbuf         *getAttrType(const struct resbuf *bufptr,
  136.                                      EAseLinkAttr lattr) const ;
  137.   const struct resbuf   *getAttrPtr(const struct resbuf *bufptr,
  138.                                     EAseLinkAttr lattr) const ;
  139.   EAsiBoolean            setAttrPtr(struct resbuf *bufptr,
  140.                                     EAseLinkAttr LinkAttr,
  141.                                     struct resbuf *pAttrValue) const ;
  142.   struct resbuf         *delAttrPtr(struct resbuf *bufptr,
  143.                                     struct resbuf *pAttr) const ;
  144.   EAsiBoolean            parseLisp(struct resbuf *bufptr) ;
  145.   CAseAppl              *getAppl() const ;
  146.   void                   freeStr(struct resbuf *pBuf) const ;
  147.   EAsiBoolean            isDiffChar() const ;
  148.  
  149.   void                  *mpErr ;       // The error descriptor pointer
  150. } ;
  151.  
  152. class CAseAppl : public CAseApiObj 
  153. //
  154. //            This class is responsible for the interface
  155. //            with the ASE main module.
  156. //
  157. {
  158.   public:
  159.                          CAseAppl(CAseApiObj *pObj=NULL) ;
  160.                          CAseAppl(CAseApiObj &Obj) ;
  161.   virtual                ~CAseAppl() ;
  162.   virtual EAsiBoolean    init() ;
  163.   virtual EAseApiClassId isA() const ;
  164.   virtual CAseApiObj    *clone() const ;
  165.   virtual EAsiBoolean    copyFrom(const CAseApiObj *pObj) ;
  166.   virtual CAseApiObj&    operator=(const CAseApiObj &Obj) ;
  167.   virtual int            operator==(const CAseApiObj *pObj) const ;
  168.   virtual int            operator==(const CAseApiObj &Obj) const ;
  169.   virtual EAsiBoolean    isInit() const ;
  170.   void                   term() ;
  171.   EAsiBoolean            getAseErr() ;
  172.  
  173.   protected:
  174.     // ASE call
  175.   struct resbuf *        aseiCallAse(int funCode,
  176.                                      struct resbuf* pParms,
  177.                                      void *pErr)  ;
  178.     // ADS-RX, RX-RX communication
  179.   struct resbuf *        ase_invoke(int funCode,
  180.                                     struct resbuf* pParms,
  181.                                     void *pErr)  ;
  182.   struct resbuf *        ase_fromAse(struct resbuf *pBuf) ;
  183.   EAsiBoolean            ase_toAse(struct resbuf *pBuf) ;
  184.   EAsiBoolean            addObj(const CAseApiObj *pObj) ;
  185.   EAsiBoolean            remObj(const CAseApiObj *pObj) ;
  186.  
  187.   EAsiBoolean    isADS() const ;
  188.  
  189.   friend class CAseApiObj ;
  190.   friend class CAseLinkPath ;
  191.   friend class CAseLink ;
  192.   friend class CAseLinkSel ;
  193.   friend class CAseApiErr ;
  194.   char                  *mpVersion ;    // The ASE version
  195.   void                  *mpXmf ;        // XMF file reference
  196.   void                  *mpObjs ;       // Attached objects list
  197.   EAsiBoolean            mIsDiffChar ;  // ASE & ASE appl have the
  198.                                         // different character sets (kAsiTrue)
  199.   char                  *mpDefChar ;    // ASE default character set
  200.                                         // (NULL if the same as ASE has)
  201. } ;
  202.  
  203.  
  204. class CAseLinkPath : public CAseApiObj
  205. //
  206. //            This class is responsible for the manipulations
  207. //            with the Link Paths. The class can refer to the
  208. //            one Link Path is its name is set or provide the
  209. //            caller with the group manipulations with the
  210. //            several Link Paths related with the Database
  211. //            Object Path. The procesing functions execute
  212. //            the actions over the single Link Path, if its
  213. //            name is specified. Otherwise, some of the
  214. //            functions execute the actions for all of Link
  215. //            Paths, related with the Database Object for
  216. //            specified path. If the Database Object Path is
  217. //            empty or wasn't specified, some of the
  218. //            functions execute the actions for all of Link
  219. //            Paths in the current drawing.
  220. //
  221. {
  222.   public:
  223.                          CAseLinkPath(CAseApiObj *pObj) ;
  224.                          CAseLinkPath(CAseApiObj &Obj) ;
  225.   virtual                ~CAseLinkPath() ;
  226.   virtual EAsiBoolean    init() ;
  227.   virtual EAseApiClassId isA() const ;
  228.   virtual CAseApiObj    *clone() const ;
  229.   virtual EAsiBoolean    copyFrom(const CAseApiObj *pObj) ;
  230.   virtual CAseApiObj&    operator=(const CAseApiObj &Obj) ;
  231.   virtual int            operator==(const CAseApiObj *pObj) const ;
  232.   virtual int            operator==(const CAseApiObj &Obj) const ;
  233.   virtual EAsiBoolean    isInit() const ;
  234.  
  235.   EAsiBoolean            initPath(const char *pPath) ;
  236.   EAsiBoolean            initName(const char *pName) ;
  237.   EAsiBoolean            initCurrent() ;
  238.   EAsiBoolean            setName(const char *pName,
  239.                                  EAseDoNameCode NameCode=kAseLpnCode) ;
  240.   EAsiBoolean            getName(char *pBuf, int BufLen,
  241.                                  EAseDoNameCode NameCode=kAseLpnCode) const ;
  242.   int                    getNameSize(EAseDoNameCode NameCode=kAseLpnCode) const;
  243.   int                    cmpName(const char *pName, 
  244.                                  EAseDoNameCode NameCode=kAseLpnCode) const ;
  245.   int                    cmpName(const CAseLinkPath *pLinkPath, 
  246.                                  EAseDoNameCode NameCode=kAseLpnCode) const ;
  247.   EAseDoNameCode         getPathCode() const;
  248.   int                    getStatus() const;
  249.   EAsiBoolean            isUpdatable() const ;
  250.   EAsiBoolean            getKeyDsc(CAsiRow **pKeyDsc) const;
  251.   EAsiBoolean            getKeyDsc(CAsiColumn **pKeyDsc[], int *pColQty) const;
  252.   EAsiBoolean            create(const CAsiRow *pKeyDsc) ;
  253.   EAsiBoolean            create(const CAsiRow &KeyDsc) ;
  254.   EAsiBoolean            create(const CAsiColumn *pKeyDsc[], int ColQty) ;
  255.   EAsiBoolean            erase() ;
  256.   EAsiBoolean            rename(const char *pLinkPathName) ;
  257.   EAsiBoolean            setCurrent() const ;
  258.   struct resbuf         *getLinkNames() const ;
  259.   struct resbuf         *getPaths(int Status) const ;
  260.  
  261.   protected:
  262.   void                   *mpPath ;    // The internal data pointer
  263. } ;
  264.  
  265. class CAseLink : public CAseApiObj
  266. //
  267. //  This is the base class, defining the common
  268. //  responsibility of the concrete links.
  269. //
  270. {
  271.   public:
  272.                          CAseLink(CAseApiObj *pObj) ;
  273.                          CAseLink(CAseApiObj &Obj) ;
  274.   virtual                ~CAseLink() ;
  275.   virtual EAsiBoolean    init() ;
  276.   virtual EAsiBoolean    init(EAseLinkType lType) ;
  277.   virtual EAsiBoolean    init(LinkID linkId) ;
  278.   virtual EAsiBoolean    init(const char *pName, 
  279.                               const CAsiRow *pKeyValue, 
  280.                               ads_name EntName) ;
  281.   virtual EAsiBoolean    init(const char *pName, 
  282.                               const CAsiRow &KeyValue, 
  283.                               ads_name EntName) ;
  284.   virtual EAsiBoolean    init(const char *pName, 
  285.                               const CAsiColumn *pKeyValue[],
  286.                               int ColQty,
  287.                               ads_name EntName) ;
  288.   virtual EAsiBoolean    init(const char *pName, 
  289.                               const CAsiRow *pKeyValue,
  290.                               const CAsiRow *pDACols,
  291.                               const struct resbuf *pDAParms) ;
  292.   virtual EAsiBoolean    init(const char *pName, 
  293.                               const CAsiRow &KeyValue,
  294.                               const CAsiRow &DACols,
  295.                               const struct resbuf *pDAParms) ;
  296.   virtual EAsiBoolean    init(const char *pName, 
  297.                               const CAsiColumn *pKeyValue[],
  298.                               int ColQty,
  299.                               const CAsiColumn *pDACols[],
  300.                               int DAColQty,
  301.                               const struct resbuf *pDAParms) ;
  302.   virtual EAseApiClassId isA() const ;
  303.   virtual CAseApiObj    *clone() const ;
  304.   virtual EAsiBoolean    copyFrom(const CAseApiObj *pObj) ;
  305.   virtual CAseApiObj&    operator=(const CAseApiObj &Obj) ;
  306.   virtual int            operator==(const CAseApiObj *pObj) const ;
  307.   virtual int            operator==(const CAseApiObj &Obj) const ;
  308.   virtual EAsiBoolean    isInit() const ;
  309.  
  310.   LinkID                 getId () const ;
  311.   EAseLinkType           getType() const ;
  312.   EAsiBoolean            getName(char *pBuf, int len) const;
  313.   int                    getNameSize() const ;
  314.   EAsiBoolean            setName(const char *pName) ;
  315.   EAsiBoolean            getEntity(ads_name EntName) const ;
  316.   EAsiBoolean            setEntity(ads_name EntName) ;
  317.   EAsiBoolean            getKey(CAsiRow *pKeyValue) const ;
  318.   EAsiBoolean            getKey(CAsiRow &KeyValue) const ;
  319.   EAsiBoolean            getKey(CAsiColumn *pKeyValue[], int ColQty) const ;
  320.   EAsiBoolean            setKey(const CAsiRow *pKeyValue) ;
  321.   EAsiBoolean            setKey(const CAsiRow &KeyValue) ;
  322.   EAsiBoolean            setKey(const CAsiColumn *pKeyValue[], int ColQty) ;
  323.   EAsiBoolean            setDACols (const CAsiRow *pCols) ;
  324.   EAsiBoolean            setDACols (const CAsiRow &Cols) ;
  325.   EAsiBoolean            setDACols(CAsiColumn *pCols[], int ColQty) ;
  326.   EAsiBoolean            getDACols (CAsiRow **pCols) const ;
  327.   EAsiBoolean            getDACols(CAsiColumn **pCols[], int *pColQty) const ;
  328.   EAsiBoolean            setDAParms(const struct resbuf *pParms) ;
  329.   EAsiBoolean            setDAValues(const CAsiRow *pDAValues) ;
  330.   EAsiBoolean            setDAValues(const CAsiRow &DAValues) ;
  331.   EAsiBoolean            setDAValues(CAsiColumn *pCols[], int ColQty) ;
  332.   EAsiBoolean            create () ;
  333.   EAsiBoolean            remove () ;
  334.   EAsiBoolean            update () ;
  335.   EAsiBoolean            getXName(char *pBuf, int len) const ;
  336.   EAsiBoolean            isUpdatable() const ;
  337.  
  338.     // Non-documented
  339.     // Gets/sets the link attribute values in the internal representation
  340.   struct resbuf         *getAttr(EAseLinkAttr LinkAttr) const ;
  341.   EAsiBoolean            setAttr(EAseLinkAttr LinkAttr,
  342.                                  const struct resbuf *pAttrValue) ;
  343.   private:
  344.   struct resbuf      *mpBuf ;    // The link result buffer representation
  345. } ;
  346.  
  347. class CAseLinkSel : public CAseApiObj 
  348. //
  349. //  This class describes the link selection.
  350. //
  351. {
  352.   public:
  353.                          CAseLinkSel(CAseApiObj *pObj) ;
  354.                          CAseLinkSel(CAseApiObj &Obj) ;
  355.   virtual                ~CAseLinkSel() ;
  356.   virtual EAsiBoolean    init() ;
  357.   virtual EAsiBoolean    init(EAseLinkType LinkType) ;
  358.   virtual EAsiBoolean    init(EAseLinkType LinkType,
  359.                               ads_name EntSelName) ;
  360.   virtual EAsiBoolean    init(EAseLinkType LinkType,
  361.                               const char *pXName) ;
  362.   virtual EAsiBoolean    init(ads_name EntName) ;
  363.   virtual EAsiBoolean    init(ads_name EntName,
  364.                               const char *pName) ;
  365.   virtual EAsiBoolean    init(ads_name EntName,
  366.                               const CAseLinkPath *pLinkPath) ;
  367.   virtual EAsiBoolean    init(ads_name EntName,
  368.                               const CAseLinkPath &LinkPath) ;
  369.   virtual EAsiBoolean    init(const char *pName,
  370.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  371.   virtual EAsiBoolean    init(const CAseLinkPath *pLinkPath,
  372.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  373.   virtual EAsiBoolean    init(const CAseLinkPath &LinkPath,
  374.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  375.   virtual EAsiBoolean    init(const char *pName,
  376.                               const CAsiRow *pKeyValue,
  377.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  378.   virtual EAsiBoolean    init(const char *pName,
  379.                               const CAsiRow &KeyValue,
  380.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  381.   virtual EAsiBoolean    init(const CAseLinkPath *pLinkPath, 
  382.                               const CAsiRow *pKeyValue,
  383.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  384.   virtual EAsiBoolean    init(const CAseLinkPath &LinkPath, 
  385.                               const CAsiRow &KeyValue,
  386.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  387.   virtual EAsiBoolean    init(const char *pName,
  388.                               const CAsiColumn *pKeyValue[],
  389.                               int ColQty,
  390.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  391.   virtual EAsiBoolean    init(const CAseLinkPath *pLinkPath, 
  392.                               const CAsiColumn *pKeyValue[],
  393.                               int ColQty,
  394.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  395.   virtual EAsiBoolean    init(const char *pName,
  396.                               const char *pTextCondition,
  397.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  398.   virtual EAsiBoolean    init(const CAseLinkPath *pLinkPath, 
  399.                               const char *pTextCondition,
  400.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  401.   virtual EAsiBoolean    init(const CAseLinkPath &LinkPath, 
  402.                               const char *pTextCondition,
  403.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  404.   virtual EAsiBoolean    init(const char *pName,
  405.                               ads_name EntSelName,
  406.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  407.   virtual EAsiBoolean    init(const CAseLinkPath *pLinkPath, 
  408.                               ads_name EntSelName,
  409.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  410.   virtual EAsiBoolean    init(const CAseLinkPath &LinkPath, 
  411.                               ads_name EntSelName,
  412.                               EAseLinkType LinkType=kAseUnknownLinkType) ;
  413.  
  414.   virtual EAseApiClassId isA() const ;
  415.   virtual CAseApiObj    *clone() const ;
  416.   virtual EAsiBoolean    copyFrom(const CAseApiObj *pObj) ;
  417.   virtual CAseApiObj&    operator=(const CAseApiObj &Obj) ;
  418.   virtual int            operator==(const CAseApiObj *pObj) const ;
  419.   virtual int            operator==(const CAseApiObj &Obj) const ;
  420.   virtual EAsiBoolean    isInit() const ;
  421.   EAsiBoolean            isUpdatable() const ;
  422.  
  423.   long                   getQty() const ;
  424.   LinkID                 getId(long ItemNum) const ;
  425.   EAsiBoolean            addId(LinkID linkId) ;
  426.   EAsiBoolean            delId(long ItemNum) ;
  427.   long                   membId(LinkID linkId) const ;
  428.   EAsiBoolean            unite(const CAseLinkSel *pSel) ;
  429.   EAsiBoolean            unite(const CAseLinkSel &Sel) ;
  430.   EAsiBoolean            subtract(const CAseLinkSel *pSel) ;
  431.   EAsiBoolean            subtract(const CAseLinkSel &Sel) ;
  432.   EAsiBoolean            intersect(const CAseLinkSel *pSel) ;
  433.   EAsiBoolean            intersect(const CAseLinkSel &Sel) ;
  434.  
  435.   virtual EAsiBoolean    intersect(EAseLinkType LinkType) ;
  436.   virtual EAsiBoolean    intersect(EAseLinkType LinkType,
  437.                                    ads_name EntSelName) ;
  438.   virtual EAsiBoolean    intersect(EAseLinkType LinkType,
  439.                                    const char *pXName) ;
  440.   virtual EAsiBoolean    intersect(ads_name EntName) ;
  441.   virtual EAsiBoolean    intersect(const char *pName) ;
  442.   virtual EAsiBoolean    intersect(const CAseLinkPath *pLinkPath) ;
  443.   virtual EAsiBoolean    intersect(const CAseLinkPath &LinkPath) ;
  444.   virtual EAsiBoolean    intersect(const char *pName,
  445.                                    const CAsiRow *pKeyValue) ;
  446.   virtual EAsiBoolean    intersect(const char *pName,
  447.                                    const CAsiRow &KeyValue) ;
  448.   virtual EAsiBoolean    intersect(const CAseLinkPath *pLinkPath, 
  449.                                    const CAsiRow *pKeyValue) ;
  450.   virtual EAsiBoolean    intersect(const CAseLinkPath &LinkPath, 
  451.                                    const CAsiRow &KeyValue) ;
  452.   virtual EAsiBoolean    intersect(const char *pName,
  453.                                    const CAsiColumn *pKeyValue[],
  454.                                    int ColQty) ;
  455.   virtual EAsiBoolean    intersect(const CAseLinkPath *pLinkPath, 
  456.                                    const CAsiColumn *pKeyValue[],
  457.                                    int ColQty);
  458.   virtual EAsiBoolean    intersect(const char *pName,
  459.                                    const char *pTextCondition) ;
  460.   virtual EAsiBoolean    intersect(const CAseLinkPath *pLinkPath, 
  461.                                    const char *pTextCondition) ;
  462.   virtual EAsiBoolean    intersect(const CAseLinkPath &LinkPath, 
  463.                                    const char *pTextCondition) ;
  464.  
  465.   struct resbuf         *getXNames() const ;
  466.   struct resbuf         *getLinkNames() const ;
  467.   EAsiBoolean            getEntSel(ads_name EntSelName) const ;
  468.   EAsiBoolean            erase() ;
  469.  
  470.   // Non-documented
  471.   // Initializes the link selection by the 
  472.   // internal link filter
  473.   virtual EAsiBoolean    init(struct resbuf *pLinkFilter) ;
  474.  
  475.   // Filters the link selection by the 
  476.   // internal link filter
  477.   virtual EAsiBoolean    intersect(const struct resbuf *pLinkFilter) ;
  478.  
  479.   protected:
  480.   void                   freeSel() ;
  481.   struct resbuf         *makeFilter(EAseLinkType LinkType,
  482.                                     const char *pXName,
  483.                                     ads_name EntName,
  484.                                     ads_name EntSelName,
  485.                                     const char *pName,
  486.                                     const CAseLinkPath *pLinkPath,
  487.                                     const CAsiRow *pKeyValue,
  488.                                     const char *pTextCondition) ;
  489.  
  490.   LinkSelID              mSelId ;    // The link selection identifier
  491. } ;
  492.  
  493.  
  494. #endif /* __cplusplus */
  495.  
  496. #endif /*_ASECLASS_H*/
  497.  
  498.