本文整理汇总了C++中OsConfigDb::remove方法的典型用法代码示例。如果您正苦于以下问题:C++ OsConfigDb::remove方法的具体用法?C++ OsConfigDb::remove怎么用?C++ OsConfigDb::remove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OsConfigDb
的用法示例。
在下文中一共展示了OsConfigDb::remove方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
virtual bool execute(const HttpRequestContext& requestContext, ///< request context
UtlSList& params, ///< request param list
void* userData, ///< user data
XmlRpcResponse& response, ///< request response
ExecutionStatus& status
)
{
UtlString* dbName = dynamic_cast<UtlString*>(params.at(0));
if (dbName && !dbName->isNull())
{
OsReadLock lock(*ConfigRPC::spDatabaseLock);
ConfigRPC* db = ConfigRPC::find(*dbName);
if (db)
{
status = db->mCallback->accessAllowed(requestContext, ConfigRPC_Callback::Set);
if ( XmlRpcMethod::OK == status )
{
// read in the dataset
OsConfigDb dataset;
OsStatus datasetStatus = db->load(dataset);
if ( OS_SUCCESS == datasetStatus )
{
// get the list of names that the request is trying to delete
UtlContainable* secondParam = params.at(1);
if ( secondParam )
{
UtlSList* nameList = dynamic_cast<UtlSList*>(secondParam);
if (nameList)
{
/*
* Iterate over the names
* - For each name found, delete it from the dataset and count it
*/
UtlSListIterator deleteNames(*nameList);
UtlString* deleteName = NULL;
size_t deleted = 0;
while ((deleteName = dynamic_cast<UtlString*>(deleteNames())))
{
if (OS_SUCCESS == dataset.remove(*deleteName))
{
deleted++;
}
}
if (OS_SUCCESS == db->store(dataset))
{
status = XmlRpcMethod::OK;
UtlInt deletedCount(deleted);
response.setResponse(&deletedCount);
}
else
{
response.setFault( ConfigRPC::storeFailed
,"error storing dataset"
);
status = XmlRpcMethod::FAILED;
}
}
else
{
// The second parameter was not a list
response.setFault( ConfigRPC::invalidType
,"namelist parameter is not an array"
);
status = XmlRpcMethod::FAILED;
}
}
else // No second parameter
{
response.setFault( ConfigRPC::invalidType
,"no second parameter list of names to delete"
);
status = XmlRpcMethod::FAILED;
}
}
else
{
UtlString faultMsg("dataset load failed");
response.setFault(ConfigRPC::loadFailed, faultMsg);
status = XmlRpcMethod::FAILED;
}
}
else
{
UtlString faultMsg("Access Denied");
response.setFault(XmlRpcMethod::FAILED, faultMsg.data());
}
}
else
{
UtlString faultMsg;
faultMsg.append("db lookup failed for '");
faultMsg.append(*dbName);
faultMsg.append("'");
response.setFault( XmlRpcResponse::UnregisteredMethod, faultMsg.data());
status = XmlRpcMethod::FAILED;
}
//.........这里部分代码省略.........
示例2: testManipulators
void testManipulators()
{
OsConfigDb *pDb = new OsConfigDb();
pDb->set("Key1", "Value1");
CPPUNIT_ASSERT_MESSAGE("verify that the database is not empty",
!pDb->isEmpty());
CPPUNIT_ASSERT_MESSAGE("has one entry", pDb->numEntries()==1);
// test the remove() method
//
// We put the following block in its own scope so that the UtlString
// reference (stored in "value") is released as a side effect of going
// out of scope. Otherwise, it will look like a memory leak.
{
UtlString value;
pDb->remove("Key1");
CPPUNIT_ASSERT_MESSAGE("verify that it looks empty", pDb->isEmpty());
CPPUNIT_ASSERT_MESSAGE("has zero entries", pDb->numEntries()==0);
pDb->set("Key1", "Value1"); // add the entry back
pDb->set("Key1", "Value1b"); // change the value for an existing entry
CPPUNIT_ASSERT_MESSAGE("verify that the database is not empty",
!pDb->isEmpty());
CPPUNIT_ASSERT_EQUAL_MESSAGE("has one entry", 1, pDb->numEntries());
OsStatus res = pDb->get("Key1", value);
CPPUNIT_ASSERT(res == OS_SUCCESS);
CPPUNIT_ASSERT_MESSAGE("that contains the revised value",
value.compareTo("Value1b") == 0);
pDb->set("Key2", "Value2");
pDb->set("Key3", "Value3");
pDb->set("Key4", "Value4");
CPPUNIT_ASSERT_MESSAGE("check the number of entries",
pDb->numEntries()==4);
value.remove(0);
}
// test the storeToFile() method
pDb->storeToFile("tmpdb"); // store the config db to the file
delete pDb; // delete the database
// test the loadFromFile() method
//
// We put the following block in its own scope so that the UtlString
// reference (stored in "value") is released as a side effect of going
// out of scope. Otherwise, it will look like a memory leak.
{
UtlString value;
pDb = new OsConfigDb(); // create an empty database
pDb->loadFromFile("tmpdb"); // load the data from a file
}
CPPUNIT_ASSERT_MESSAGE("verify the database is not empty",
!pDb->isEmpty());
CPPUNIT_ASSERT_MESSAGE("has four entries", pDb->numEntries()==4);
UtlString value;
OsStatus res = pDb->get("Key1", value);
CPPUNIT_ASSERT_MESSAGE("contains correct data",
res == OS_SUCCESS && value.compareTo("Value1b") == 0);
res = pDb->get("Key2", value);
CPPUNIT_ASSERT_MESSAGE("contains correct data",
res == OS_SUCCESS && value.compareTo("Value2") == 0);
res = pDb->get("Key3", value);
CPPUNIT_ASSERT_MESSAGE("contains correct data",
res == OS_SUCCESS && value.compareTo("Value3") == 0);
res = pDb->get("Key4", value);
CPPUNIT_ASSERT_MESSAGE("contains correct data",
res == OS_SUCCESS && value.compareTo("Value4") == 0);
delete pDb; // delete the database
value.remove(0);
}