本文整理汇总了C++中FWObject::setId方法的典型用法代码示例。如果您正苦于以下问题:C++ FWObject::setId方法的具体用法?C++ FWObject::setId怎么用?C++ FWObject::setId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FWObject
的用法示例。
在下文中一共展示了FWObject::setId方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createTableObject
FWObject* TableFactory::createTableObject(const string &tblname,
const string &tblid)
{
FWObject *tblgrp = dbroot->createObjectGroup();
tblgrp->setName( tblname );
tblgrp->setId(FWObjectDatabase::generateUniqueId()); // "id_" + tblname );
persistent_tables->add(tblgrp, false);
dbroot->addToIndex(tblgrp);
tblgrp->setBool("pf_table", true);
tblgrp->setStr("pf_table_id", tblid);
registerTable(tblname, tblid, tblgrp);
return tblgrp;
}
示例2: loadLibrary
/**
* Load library or several libraries from an external file. Return
* pointer to the last new imported library.
*/
FWObject* ProjectPanel::loadLibrary(const string &libfpath)
{
MessageBoxUpgradePredicate upgrade_predicate(mainW);
FWObject *last_new_lib = nullptr;
try
{
FWObjectDatabase *ndb = new FWObjectDatabase();
ndb->load(libfpath, &upgrade_predicate, Constants::getDTDDirectory());
FWObject *dobj = ndb->findInIndex(FWObjectDatabase::DELETED_OBJECTS_ID);
if (dobj) ndb->remove(dobj, false);
set<int> duplicate_ids;
db()->findDuplicateIds(ndb, duplicate_ids);
map<int, int> id_mapping;
for (set<int>::iterator it=duplicate_ids.begin(); it!=duplicate_ids.end();
++it)
{
FWObject *obj = ndb->findInIndex(*it);
assert(obj!=nullptr);
int new_id = FWObjectDatabase::generateUniqueId();
obj->setId(new_id);
id_mapping[*it] = new_id;
// cerr << "Duplicate ID: " << *it
// << " " << FWObjectDatabase::getStringId(*it)
// << obj->getPath()
// << endl;
}
ndb->fixReferences(ndb, id_mapping);
int new_lib_id = -1;
// check for duplicate library names
FWObjectTypedChildIterator it2 = ndb->findByType(Library::TYPENAME);
for (; it2!=it2.end(); ++it2)
{
QString new_name = m_panel->om->makeNameUnique(
db(), QString::fromUtf8((*it2)->getName().c_str()), Library::TYPENAME);
(*it2)->setName(string(new_name.toUtf8()));
if ((*it2)->getId() != FWObjectDatabase::STANDARD_LIB_ID)
new_lib_id = (*it2)->getId();
}
MergeConflictRes mcr(this);
db()->merge(ndb, &mcr);
delete ndb;
last_new_lib = db()->findInIndex(new_lib_id);
} catch(FWException &ex)
{
QString error_txt = ex.toString().c_str();
if (error_txt.length() > LONG_ERROR_CUTOFF)
{
error_txt.truncate(LONG_ERROR_CUTOFF);
error_txt += "\n\n" + tr("(Long error message was truncated)");
}
QMessageBox::critical(
this,"Firewall Builder",
tr("The program encountered error trying to load file %1.\n"
"The file has not been loaded. Error:\n%2").
arg(libfpath.c_str()).arg(error_txt),
tr("&Continue"), QString::null,QString::null,
0, 1 );
}
return last_new_lib;
}
示例3: deleteObject
void ObjectManipulator::deleteObject(FWObject *obj, QUndoCommand* macro)
{
bool firstAction = true ;
if (fwbdebug)
qDebug() << "ObjectManipulator::deleteObject"
<< "obj=" << obj
<< "name=" << obj->getName().c_str();
FWObject *object_library = obj->getLibrary();
FWObject *parent = obj->getParent();
FWObject *deleted_objects_lib = m_project->db()->findInIndex(
FWObjectDatabase::DELETED_OBJECTS_ID );
if (deleted_objects_lib == NULL)
{
FWObject *dobj = m_project->db()->createLibrary();
dobj->setId(FWObjectDatabase::DELETED_OBJECTS_ID);
dobj->setName("Deleted Objects");
dobj->setReadOnly(false);
m_project->db()->add(dobj);
deleted_objects_lib = dobj;
}
if (object_library->getId() == FWObjectDatabase::STANDARD_LIB_ID)
return;
if (obj->isReadOnly()) return;
if (obj->getId() == FWObjectDatabase::STANDARD_LIB_ID ||
obj->getId() == FWObjectDatabase::DELETED_OBJECTS_ID) return;
bool is_library = Library::isA(obj);
bool is_firewall = Firewall::cast(obj) != NULL; // includes Cluster too
bool is_deleted_object = (deleted_objects_lib!=NULL && obj->isChildOf(deleted_objects_lib));
// ruleset_visible == true if 1) we delete firewall object and one of its
// rulesets is visible in the project panel, or 2) we delete ruleset object
// which is visible in the project panel
bool ruleset_visible = (
(is_firewall && m_project->getCurrentRuleSet()->isChildOf(obj)) ||
(m_project->getCurrentRuleSet() == obj));
mw->findObjectWidget->reset();
QCoreApplication::postEvent(
mw, new closeObjectEvent(m_project->getFileName(), obj->getId()));
#if 0
// Remove object we are about to delete from the clipboard.
// Sequence "delete then paste" is risky if the object is pasted into
// a group or rule where only reference is added
FWObjectClipboard::obj_clipboard->remove(obj);
#endif
try
{
if (fwbdebug)
qDebug() << "ObjectManipulator::deleteObject"
<< "is_library=" << is_library
<< "is_firewall= " << is_firewall
<< "ruleset_visible=" << ruleset_visible
<< "is_deleted_object="<< is_deleted_object;
if (is_deleted_object)
{
unselect();
FWCmdDeleteObject *cmd = new FWCmdDeleteObject(
m_project,
obj,
QString("Delete object"),
macro);
if (macro==0)
m_project->undoStack->push(cmd);
return;
}
if (is_library && obj->isReadOnly()) obj->setReadOnly(false);
if (is_library) parent = m_project->db()->getFirstByType(Library::TYPENAME);
actuallyDeleteObject(obj, macro);
if (ruleset_visible) m_project->closeRuleSetPanel();
}
catch (FWException &ex)
{
if (fwbdebug)
qDebug() << "ObjectManipulator::deleteObject:"
<< "catch: restoreOverrideCursor";
QApplication::restoreOverrideCursor();
QMessageBox::warning(
this,"Firewall Builder",
ex.toString().c_str(),
"&Continue", QString::null,QString::null,
0, 1 );
throw(ex);
}
if (fwbdebug) qDebug("ObjectManipulator::deleteObject done");
//.........这里部分代码省略.........
示例4:
FWObject* create_ASA8ObjectGroup(int id)
{
FWObject *nobj = new ASA8ObjectGroup();
if (id > -1) nobj->setId(id);
return nobj;
}
示例5: create_combinedAddress
FWObject* create_combinedAddress(int id)
{
FWObject *nobj = new combinedAddress();
if (id > -1) nobj->setId(id);
return nobj;
}