LCOV - code coverage report
Current view: top level - geom/cgm - DAG.hpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 5 5 100.0 %
Date: 2020-06-30 00:58:45 Functions: 1 1 100.0 %
Branches: 3 4 75.0 %

           Branch data     Line data    Source code
       1                 :            : //-------------------------------------------------------------------------
       2                 :            : // Copyright Notice
       3                 :            : //
       4                 :            : // Copyright (c) 1996 
       5                 :            : // by Malcolm J. Panthaki, DBA, and the University of New Mexico.
       6                 :            : //-------------------------------------------------------------------------
       7                 :            : 
       8                 :            : //-------------------------------------------------------------------------
       9                 :            : // Filename      : DAG.hpp
      10                 :            : //
      11                 :            : // Purpose       : The DAG class performs general operations related
      12                 :            : //                 to DAGs and TopologyEntitys. Its current functionalities:
      13                 :            : //                   1)Maintain a list of deactivated TopologyEntitys
      14                 :            : //               Note: The "nodes" of the DAG are type TopologyEntity.
      15                 :            : //
      16                 :            : // Special Notes : The class is a singleton.
      17                 :            : //
      18                 :            : // Creator       : Raikanta Sahu
      19                 :            : //
      20                 :            : // Creation Date : 12/02/96
      21                 :            : //
      22                 :            : // Owner         : Raikanta Sahu
      23                 :            : //-------------------------------------------------------------------------
      24                 :            : 
      25                 :            : #ifndef DAG_HPP
      26                 :            : #define DAG_HPP
      27                 :            : 
      28                 :            : // ********** BEGIN STANDARD INCLUDES         **********
      29                 :            : // ********** END STANDARD INCLUDES           **********
      30                 :            : 
      31                 :            : // ********** BEGIN MOTIF INCLUDES            **********
      32                 :            : // ********** END MOTIF INCLUDES              **********
      33                 :            : 
      34                 :            : // ********** BEGIN OPEN INVENTOR INCLUDES    **********
      35                 :            : // ********** END OPEN INVENTOR INCLUDES      **********
      36                 :            : 
      37                 :            : // ********** BEGIN CUBIT INCLUDES            **********
      38                 :            : 
      39                 :            : #include "CubitDefines.h"
      40                 :            : #include "CGMGeomConfigure.h"
      41                 :            : 
      42                 :            : #include "DLIList.hpp"
      43                 :            : 
      44                 :            : // ********** END CUBIT INCLUDES              **********
      45                 :            : 
      46                 :            : // ********** BEGIN FORWARD DECLARATIONS      **********
      47                 :            : class TopologyEntity;
      48                 :            : // ********** END FORWARD DECLARATIONS        **********
      49                 :            : 
      50                 :            : // ********** BEGIN MACRO DEFINITIONS         **********
      51                 :            : // ********** END MACRO DEFINITIONS           **********
      52                 :            : 
      53                 :            : // ********** BEGIN ENUM DEFINITIONS          **********
      54                 :            : // ********** END ENUM DEFINITIONS            **********
      55                 :            : 
      56                 :            : class CUBIT_GEOM_EXPORT DAG
      57                 :            : {
      58                 :            : 
      59                 :            : // ********** BEGIN FRIEND CLASS DECLARATIONS **********
      60                 :            : // ********** END FRIEND CLASS DECLARATIONS   **********
      61                 :            : 
      62                 :            : public:
      63                 :            : 
      64                 :            :   static DAG* instance(); 
      65                 :            :     //- Controlled access and creation of the sole instance of this class.
      66                 :            :     //- Singleton pattern
      67                 :            : 
      68                 :            :   ~DAG() ;
      69                 :            :     //- Destructor
      70                 :            :     
      71                 :        322 :   static void delete_instance()
      72                 :            :   {
      73         [ +  + ]:        322 :     if(instance_)
      74         [ +  - ]:        151 :       delete instance_;
      75                 :        322 :     instance_ = NULL;
      76                 :        322 :   };
      77                 :            : 
      78                 :            :   void add_deactivated_DAG_node(TopologyEntity* deactivatedDAGNodePtr) ;
      79                 :            :     //R void
      80                 :            :     //I deactivatedDAGNodePtr
      81                 :            :     //I- A pointer to a deactivated DAG node (TopologyEntity)
      82                 :            :     //- This function takes a pointer to a deactivated DAG node and
      83                 :            :     //- adds it to the list of deactivated DAG nodes.
      84                 :            : 
      85                 :            :   void remove_deactivated_DAG_node(TopologyEntity* deactivatedDAGNodePtr) ;
      86                 :            :     //R void
      87                 :            :     //I deactivatedDAGNodePtr
      88                 :            :     //I- A pointer to a deactivated DAG node
      89                 :            :     //- This function takes a pointer to a deactivated DAG node and
      90                 :            :     //- removes it from the list of deactivated DAG nodes.
      91                 :            : 
      92                 :            :   void cleanout_deactivated_DAG_nodes() ;
      93                 :            :     //R void
      94                 :            :     //- This function deletes all the deactivated DAG nodes and cleans
      95                 :            :     //- the list of deactivated DAG nodes. 
      96                 :            :     //- N.B. deletion of objects connected to the DAGNodes are not
      97                 :            :     //-      done at base class. The classes derived from DAGNode
      98                 :            :     //-      must do that.
      99                 :            :       
     100                 :            :   void remove(TopologyEntity* DAGNodePtr);
     101                 :            :     //R void
     102                 :            :     //I DAGNodePtr
     103                 :            :     //I- The input DAG Node pointer to the DAG Node that initiated
     104                 :            :     //I- the event
     105                 :            :     //I event
     106                 :            :     //I- The type of event that occurred -- enum in CubitDefines
     107                 :            :     //- This function is used to notify the DAG class that an
     108                 :            :     //- event has occurred.  The input object that initiated the
     109                 :            :     //- the event is a DAG Node.
     110                 :            : 
     111                 :            : // Methods added by Jason Kraftcheck on September 16, 1996.
     112                 :            : 
     113                 :            :   CubitStatus get_children_at_level( TopologyEntity* parent, int level,
     114                 :            :                                      DLIList<TopologyEntity*>& result_set );
     115                 :            :     //R CubitStatus
     116                 :            :     //R- CUBIT_SUCCESS/CUBIT_FAILURE
     117                 :            :     //I parent
     118                 :            :     //I- A pointer to the DAG node to get the children of.
     119                 :            :     //I level
     120                 :            :     //I- Levels down to traverse DAG.
     121                 :            :     //O result_set
     122                 :            :     //O- The list of DAGNodes found.
     123                 :            :     //- These methods return the children of a DAG node at the
     124                 :            :     //- specified level down from the passed node.
     125                 :            :     //-
     126                 :            :     //- Note: These methods are implemented here rather than in
     127                 :            :     //-       DAGNode because a breadth-first search will be
     128                 :            :     //- much more efficient than a depth-first search in
     129                 :            :     //- DAGNode.
     130                 :            : 
     131                 :            :   CubitStatus get_parents_at_level( TopologyEntity* child, int level,
     132                 :            :                                     DLIList<TopologyEntity*>& result_set );
     133                 :            :     //R CubitStatus
     134                 :            :     //R- CUBIT_SUCCESS/CUBIT_FAILURE
     135                 :            :     //I child
     136                 :            :     //I- A pointer to the DAG node to get the parents of.
     137                 :            :     //I level
     138                 :            :     //I- Levels up to traverse DAG.
     139                 :            :     //O result_set
     140                 :            :     //O- The list of DAGNodes found.
     141                 :            :     //- These methods return the parents of a DAG node at the
     142                 :            :     //- specified level up from the passed node.
     143                 :            :     //-
     144                 :            :     //- Note: These methods are implemented here rather than in
     145                 :            :     //-       DAGNode because a breadth-first search will be
     146                 :            :     //- much more efficient than a depth-first search in
     147                 :            :     //- DAGNode.
     148                 :            :       
     149                 :            :   CubitStatus get_children_at_level( DLIList<TopologyEntity*>& parents, int level,
     150                 :            :                                      DLIList<TopologyEntity*>& result_set );
     151                 :            :     //R CubitStatus
     152                 :            :     //R- CUBIT_SUCCESS/CUBIT_FAILURE
     153                 :            :     //I parents
     154                 :            :     //I- A list of DAG nodes to get the children of.
     155                 :            :     //I level
     156                 :            :     //I- Levels down to traverse DAG.
     157                 :            :     //O result_set
     158                 :            :     //O- The list of DAGNodes found.
     159                 :            :     //- These methods return the children of a DAG node at the
     160                 :            :     //- specified level down from the passed node.
     161                 :            :     //-
     162                 :            :     //- Note: It is assumed that the parents passed are all at the
     163                 :            :     //- same level in the DAG.  The behavior of this method
     164                 :            :     //- is undefined if this it not the case.
     165                 :            : 
     166                 :            :   CubitStatus get_parents_at_level( DLIList<TopologyEntity*>& children, int level,
     167                 :            :                                     DLIList<TopologyEntity*>& result_set );
     168                 :            :     //R CubitStatus
     169                 :            :     //R- CUBIT_SUCCESS/CUBIT_FAILURE
     170                 :            :     //I child
     171                 :            :     //I- A list of DAG nodes to get the parents of.
     172                 :            :     //I level
     173                 :            :     //I- Levels up to traverse DAG.
     174                 :            :     //O result_set
     175                 :            :     //O- The list of DAGNodes found.
     176                 :            :     //- These methods return the parents of a DAG node at the
     177                 :            :     //- specified level up from the passed node.
     178                 :            :     //-
     179                 :            :     //- Note: It is assumed that the children passed are all at the
     180                 :            :     //- same level in the DAG.  The behavior of this method
     181                 :            :     //- is undefined if this it not the case.
     182                 :            :       
     183                 :            : // End methods added by Jason Kraftcheck on September 16, 1996.
     184                 :            : 
     185                 :            : protected: 
     186                 :            : 
     187                 :            :   DAG() ;
     188                 :            :     //- The default constructor
     189                 :            : 
     190                 :            : private:
     191                 :            : 
     192                 :            :   static DAG* instance_ ;
     193                 :            :     //- Pointer to the only instance of the class
     194                 :            : 
     195                 :            :   DLIList<TopologyEntity*> deactivatedDAGNodeList_ ;
     196                 :            :     //- List of deactivated snodes
     197                 :            : } ;
     198                 :            : 
     199                 :            : 
     200                 :            : // ********** BEGIN INLINE FUNCTIONS          **********
     201                 :            : // ********** END INLINE FUNCTIONS            **********
     202                 :            : 
     203                 :            : // ********** BEGIN FRIEND FUNCTIONS          **********
     204                 :            : // ********** END FRIEND FUNCTIONS            **********
     205                 :            : 
     206                 :            : // ********** BEGIN EXTERN FUNCTIONS          **********
     207                 :            : // ********** END EXTERN FUNCTIONS            **********
     208                 :            : 
     209                 :            : // ********** BEGIN HELPER CLASS DECLARATIONS **********
     210                 :            : // ********** END HELPER CLASS DECLARATIONS   **********
     211                 :            : 
     212                 :            : #endif
     213                 :            : 

Generated by: LCOV version 1.11