Pagina Principale   Moduli   Lista dei namespaces   Gerarchia delle classi   Lista in ordine alfabetico   Lista dei composti   Lista dei files   Membri dei namespaces   Membri dei composti   Membri dei files   Esempi  

Riferimenti per la classe fbfs::Rule

#include <Rule.h>

Lista di tutti i membri.

Tipi pubblici

enum  evalresult { FALSE, TRUE, OK, NOTFOUND }
enum  commands {
  COM_MATCH, COM_RESOLV, COM_NOTFOUND, COM_TRUE,
  COM_OK, COM_FALSE, COM_LOG, COM_RANDOM,
  COM_EXTERN, COM_UNKNOWN
}

Membri pubblici

 Rule (int level, const string &command, const string &arv)
evalresult eval (const string &id, string &result, const CORBA::ORB_ptr &o)

Attributi pubblici

int level
int command
string arg


Documentazione dei tipi enumerati (enum)

enum fbfs::Rule::commands
 

Valori dei tipi enumerati:
COM_MATCH  
COM_RESOLV  
COM_NOTFOUND  
COM_TRUE  
COM_OK  
COM_FALSE  
COM_LOG  
COM_RANDOM  
COM_EXTERN  
COM_UNKNOWN  

Definizione alla linea 41 del file Rule.h.

00041                   {COM_MATCH, COM_RESOLV, COM_NOTFOUND, COM_TRUE, COM_OK, COM_FALSE, COM_LOG, COM_RANDOM, COM_EXTERN, COM_UNKNOWN}

enum fbfs::Rule::evalresult
 

Valori dei tipi enumerati:
FALSE  
TRUE  
OK  
NOTFOUND  

Definizione alla linea 40 del file Rule.h.

00040                     {FALSE, TRUE, OK, NOTFOUND}


Documentazione dei costruttori e dei distruttori

fbfs::Rule::Rule ( int l,
const string & com,
const string & a )
 

Definizione alla linea 35 del file Rule.cc.

00035                                                          : level(l), arg(a) {
00036     if(com.compare("MATCH") == 0)       command = COM_MATCH;
00037     else if(com.compare("RESOLV") == 0) command = COM_RESOLV;
00038     else if(com.compare("OK") == 0)     command = COM_OK;
00039     else if(com.compare("NOTFOUND") == 0) command = COM_NOTFOUND;
00040     else if(com.compare("FALSE") == 0)  command = COM_FALSE;
00041     else if(com.compare("TRUE") == 0)   command = COM_TRUE;
00042     else if(com.compare("LOG") == 0)    command = COM_LOG;
00043     else if(com.compare("RANDOM") == 0) command = COM_RANDOM;
00044     else if(com.compare("EXTERN") == 0) command = COM_EXTERN;
00045     else                                command = COM_UNKNOWN;
00046 }


Documentazione delle funzioni membro

fbfs::Rule::evalresult fbfs::Rule::eval ( const string & id,
string & result,
const CORBA::ORB_ptr & orb )
 

Definizione alla linea 48 del file Rule.cc.

00048                                                                                              {
00049     //cout << "Eval:: command:" << command << " arg:" << arg << " level:" << level << "\n";
00050     switch(command) {
00051         case COM_FALSE:
00052             return FALSE;
00053         case COM_NOTFOUND:
00054             return NOTFOUND;
00055         case COM_OK:
00056             result = arg;
00057             return OK;
00058         case COM_LOG:
00059             cerr << "Log: [Name=" << id << "] " << arg << "\n";
00060             return TRUE;
00061         case COM_TRUE:
00062             return TRUE;
00063         case COM_RANDOM:
00064             if( (atof(arg.c_str()) * rand()) / RAND_MAX <= 1 )
00065                 return TRUE;
00066             return FALSE;
00067         case COM_MATCH:
00068             regex_t rex;
00069             if(regcomp(&rex, arg.c_str(), 0)!=0) {
00070                 cerr << "Log: [Name=" << id << "] Regular Expression error\n";
00071                 return FALSE;
00072             }
00073             if( regexec(&rex, id.c_str(), 0, NULL,0) == 0 ) {
00074                 regfree(&rex);
00075                 return TRUE;
00076             }
00077             regfree(&rex);
00078             return FALSE;
00079         case COM_RESOLV:
00080             try {
00081                 utils::URI uri(arg);
00082                 CORBA::Object_var obj = utils::NameServer::get_object(orb, uri);
00083                 NameServer_var nameserver = NameServer::_narrow(obj);
00084                 Obj_id ident;
00085                 ident.name = CORBA::string_dup(id.c_str());
00086                 Security cert;
00087                 CORBA::String_var value = nameserver->lookup(cert, ident);
00088                 result = string(value);
00089                 return OK;
00090             } catch (...) {}
00091             return FALSE;
00092         case COM_EXTERN:
00093             // Migliorare affinché sia possibile passare il parametro id e
00094             // leggere la stringa di risultato in caso di OK.
00095             if(!system(arg.c_str()))
00096                 return TRUE;
00097             return FALSE;
00098         default:
00099             cerr << "Log: [Name=" << id << "] Unknown Command Executed\n";
00100             return FALSE;
00101     };
00102 }


Documentazione dei dati membri

string fbfs::Rule::arg
 

Definizione alla linea 45 del file Rule.h.

int fbfs::Rule::command
 

Definizione alla linea 44 del file Rule.h.

int fbfs::Rule::level
 

Definizione alla linea 43 del file Rule.h.


La documentazione per questa classe è stata generata a partire dai seguenti files:
Generato il Thu Feb 15 13:25:09 2001 per A Simple Distributed Object Repository with CORBA & C++. da doxygen1.2.3 scritto da Dimitri van Heesch, © 1997-2000