Back to index

nordugrid-arc-nox  1.1.0~rc6
Public Member Functions | Protected Attributes | Private Member Functions
ArcSec::ArcAlgFactory Class Reference

Algorithm factory class for Arc. More...

#include <ArcAlgFactory.h>

Inheritance diagram for ArcSec::ArcAlgFactory:
Inheritance graph
[legend]
Collaboration diagram for ArcSec::ArcAlgFactory:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ArcAlgFactory ()
virtual ~ArcAlgFactory ()
virtual CombiningAlgcreateAlg (const std::string &type)
 return a Alg object according to the "CombiningAlg" attribute in the <Policy> node; The ArcAlgFactory itself will release the Alg objects

Protected Attributes

AlgMap algmap

Private Member Functions

void initCombiningAlg (CombiningAlg *alg)
void initCombiningAlgs ()

Detailed Description

Algorithm factory class for Arc.

Definition at line 12 of file ArcAlgFactory.h.


Constructor & Destructor Documentation

Definition at line 66 of file ArcAlgFactory.cpp.

Definition at line 78 of file ArcAlgFactory.cpp.

                             {
  AlgMap::iterator it;
  for(it = algmap.begin(); it != algmap.end(); it = algmap.begin()){
    CombiningAlg * alg = (*it).second;
    algmap.erase(it);
    if(alg) delete alg;;
  }
}

Member Function Documentation

CombiningAlg * ArcSec::ArcAlgFactory::createAlg ( const std::string &  type) [virtual]

return a Alg object according to the "CombiningAlg" attribute in the <Policy> node; The ArcAlgFactory itself will release the Alg objects

Implements ArcSec::AlgFactory.

Definition at line 70 of file ArcAlgFactory.cpp.

                                                           {
  AlgMap::iterator it; 
  if((it=algmap.find(type)) != algmap.end()){
    return (*it).second;
  }
  else return NULL;
}

Definition at line 29 of file ArcAlgFactory.cpp.

                                                      {
  if(alg) algmap[alg->getalgId()]=alg;
}

Here is the call graph for this function:

TODO: other algorithm type.............

Definition at line 33 of file ArcAlgFactory.cpp.

                                     {
  //Some Arc specified algorithm types
  CombiningAlg* alg = NULL;
  initCombiningAlg(new DenyOverridesCombiningAlg);
  initCombiningAlg(new PermitOverridesCombiningAlg);
  initCombiningAlg(new PermitDenyIndeterminateNotApplicableCombiningAlg);
  initCombiningAlg(new PermitDenyNotApplicableIndeterminateCombiningAlg);
  initCombiningAlg(new PermitIndeterminateDenyNotApplicableCombiningAlg);
  initCombiningAlg(new PermitIndeterminateNotApplicableDenyCombiningAlg);
  initCombiningAlg(new PermitNotApplicableDenyIndeterminateCombiningAlg);
  initCombiningAlg(new PermitNotApplicableIndeterminateDenyCombiningAlg);
  initCombiningAlg(new DenyPermitIndeterminateNotApplicableCombiningAlg);
  initCombiningAlg(new DenyPermitNotApplicableIndeterminateCombiningAlg);
  initCombiningAlg(new DenyIndeterminatePermitNotApplicableCombiningAlg);
  initCombiningAlg(new DenyIndeterminateNotApplicablePermitCombiningAlg);
  initCombiningAlg(new DenyNotApplicablePermitIndeterminateCombiningAlg);
  initCombiningAlg(new DenyNotApplicableIndeterminatePermitCombiningAlg);
  initCombiningAlg(new IndeterminatePermitDenyNotApplicableCombiningAlg);
  initCombiningAlg(new IndeterminatePermitNotApplicableDenyCombiningAlg);
  initCombiningAlg(new IndeterminateDenyPermitNotApplicableCombiningAlg);
  initCombiningAlg(new IndeterminateDenyNotApplicablePermitCombiningAlg);
  initCombiningAlg(new IndeterminateNotApplicablePermitDenyCombiningAlg);
  initCombiningAlg(new IndeterminateNotApplicableDenyPermitCombiningAlg);
  initCombiningAlg(new NotApplicablePermitDenyIndeterminateCombiningAlg);
  initCombiningAlg(new NotApplicablePermitIndeterminateDenyCombiningAlg);
  initCombiningAlg(new NotApplicableDenyPermitIndeterminateCombiningAlg);
  initCombiningAlg(new NotApplicableDenyIndeterminatePermitCombiningAlg);
  initCombiningAlg(new NotApplicableIndeterminatePermitDenyCombiningAlg);
  initCombiningAlg(new NotApplicableIndeterminateDenyPermitCombiningAlg);
}

Member Data Documentation

AlgMap ArcSec::AlgFactory::algmap [protected, inherited]

Definition at line 31 of file AlgFactory.h.


The documentation for this class was generated from the following files: