本文整理汇总了C++中CItemData::GetTitle方法的典型用法代码示例。如果您正苦于以下问题:C++ CItemData::GetTitle方法的具体用法?C++ CItemData::GetTitle怎么用?C++ CItemData::GetTitle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItemData
的用法示例。
在下文中一共展示了CItemData::GetTitle方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetAutoTypeString
StringX PWSAuxParse::GetAutoTypeString(const CItemData &ci,
const PWScore &core,
std::vector<size_t> &vactionverboffsets)
{
// Set up all the data (a shortcut entry will change all of them!)
StringX sxgroup = ci.GetGroup();
StringX sxtitle = ci.GetTitle();
StringX sxuser = ci.GetUser();
StringX sxpwd = ci.GetPassword();
StringX sxnotes = ci.GetNotes();
StringX sxurl = ci.GetURL();
StringX sxemail = ci.GetEmail();
StringX sxautotype = ci.GetAutoType();
if (ci.IsAlias()) {
const CItemData *pbci = core.GetBaseEntry(&ci);
if (pbci != NULL) {
sxpwd = pbci->GetPassword();
} else { // Problem - alias entry without a base!
ASSERT(0);
}
} else if (ci.IsShortcut()) {
const CItemData *pbci = core.GetBaseEntry(&ci);
if (pbci != NULL) {
sxgroup = pbci->GetGroup();
sxtitle = pbci->GetTitle();
sxuser = pbci->GetUser();
sxpwd = pbci->GetPassword();
sxnotes = pbci->GetNotes();
sxurl = pbci->GetURL();
sxemail = pbci->GetEmail();
sxautotype = pbci->GetAutoType();
} else { // Problem - shortcut entry without a base!
ASSERT(0);
}
} // ci.IsShortcut()
// If empty, try the database default
if (sxautotype.empty()) {
sxautotype = PWSprefs::GetInstance()->
GetPref(PWSprefs::DefaultAutotypeString);
// If still empty, take this default
if (sxautotype.empty()) {
// checking for user and password for default settings
if (!sxpwd.empty()){
if (!sxuser.empty())
sxautotype = DEFAULT_AUTOTYPE;
else
sxautotype = _T("\\p\\n");
}
}
}
return PWSAuxParse::GetAutoTypeString(sxautotype, sxgroup,
sxtitle, sxuser, sxpwd,
sxnotes, sxurl, sxemail,
vactionverboffsets);
}
示例2: MakeTreeDisplayString
CSecString CCWTreeCtrl::MakeTreeDisplayString(const CItemData &ci) const
{
CSecString treeDispString = ci.GetTitle();
treeDispString += L" [";
treeDispString += ci.GetUser();
treeDispString += L"]";
if (ci.IsProtected())
treeDispString += L" #";
if (ci.HasAttRef())
treeDispString += L" +";
return treeDispString;
}
示例3:
TEST_F(AliasShortcutTest, Alias)
{
CItemData al;
al.CreateUUID();
al.SetTitle(L"alias");
al.SetPassword(L"alias-password-not-used");
al.SetUser(L"alias-user");
al.SetNotes(L"alias-notes");
al.SetGroup(L"Galias");
al.SetURL(L"http://alias-url.com");
al.SetAutoType(L"alias-autotype");
al.SetEmail(L"[email protected]");
al.SetRunCommand(L"Run alias, run");
al.SetAlias();
const pws_os::CUUID base_uuid = base.GetUUID();
MultiCommands *pmulticmds = MultiCommands::Create(&core);
pmulticmds->Add(AddEntryCommand::Create(&core, base));
pmulticmds->Add(AddEntryCommand::Create(&core, al, base_uuid));
core.Execute(pmulticmds);
EXPECT_EQ(2, core.GetNumEntries());
const CItemData al2 = core.GetEntry(core.Find(al.GetUUID()));
StringX sx_group, sx_title, sx_user, sx_pswd, sx_lastpswd, sx_notes, sx_url, sx_email, sx_autotype, sx_runcmd;
bool status = PWSAuxParse::GetEffectiveValues(&al2, &base,
sx_group, sx_title, sx_user, sx_pswd, sx_lastpswd, sx_notes,
sx_url, sx_email, sx_autotype, sx_runcmd);
EXPECT_TRUE(status);
// Password should be from base:
EXPECT_EQ(sx_pswd, base.GetPassword());
// All the rest should be from alias:
EXPECT_EQ(sx_group, al.GetGroup());
EXPECT_EQ(sx_title, al.GetTitle());
EXPECT_EQ(sx_user, al.GetUser());
EXPECT_EQ(sx_lastpswd, L"");
EXPECT_EQ(sx_notes, al.GetNotes());
EXPECT_EQ(sx_url, al.GetURL());
EXPECT_EQ(sx_email, al.GetEmail());
EXPECT_EQ(sx_autotype, al.GetAutoType());
EXPECT_EQ(sx_runcmd, al.GetRunCommand());
}
示例4: ItemDisplayString
wxString PWSTreeCtrl::ItemDisplayString(const CItemData &item) const
{
PWSprefs *prefs = PWSprefs::GetInstance();
const wxString title = item.GetTitle().c_str();
wxString disp = title;
if (prefs->GetPref(PWSprefs::ShowUsernameInTree)) {
const wxString user = item.GetUser().c_str();
if (!user.empty())
disp += wxT(" [") + user + wxT("]");
}
if (prefs->GetPref(PWSprefs::ShowPasswordInTree)) {
const wxString passwd = item.GetPassword().c_str();
if (!passwd.empty())
disp += wxT(" {") + passwd + wxT("}");
}
return disp;
}
示例5: CPWDialog
// CExpPWListDlg dialog
CExpPWListDlg::CExpPWListDlg(CWnd* pParent,
ExpiredList &expPWList,
const CString& a_filespec)
: CPWDialog(CExpPWListDlg::IDD, pParent), m_expPWList(expPWList)
{
m_message = a_filespec; // Path Ellipsis=true, no length woes
m_iSortedColumn = 4;
m_bSortAscending = FALSE;
m_idays = PWSprefs::GetInstance()->GetPref(PWSprefs::PreExpiryWarnDays);
// Get all entries using core vector
for (size_t i = 0; i < m_expPWList.size(); i++) {
st_ExpLocalListEntry elle;
// Find entry
ItemListIter iter = GetMainDlg()->Find(m_expPWList[i].uuid);
ASSERT(iter != GetMainDlg()->End());
CItemData *pci = &iter->second;
ASSERT(pci != NULL);
// Get group/title/user values
elle.sx_group = pci->GetGroup();
elle.sx_title = pci->GetTitle();
elle.sx_user = pci->GetUser();
if (pci->IsProtected())
elle.sx_title += L" #";
// Get XTime and string versions
elle.expirytttXTime = m_expPWList[i].expirytttXTime;
elle.sx_expirylocdate = PWSUtil::ConvertToDateTimeString(elle.expirytttXTime, PWSUtil::TMC_LOCALE);
// Get entrytype (used for selecting image)
elle.et = pci->GetEntryType();
elle.uuid = m_expPWList[i].uuid;
// Save in local vector
m_vExpLocalListEntries.push_back(elle);
}
}
示例6: OnTrayBrowse
void DboxMain::OnTrayBrowse(UINT nID)
{
ASSERT(((nID >= ID_MENUITEM_TRAYBROWSE1) && (nID <= ID_MENUITEM_TRAYBROWSEMAX)) ||
((nID >= ID_MENUITEM_TRAYBROWSEPLUS1) && (nID <= ID_MENUITEM_TRAYBROWSEPLUSMAX)));
CItemData ci;
const bool bDoAutotype = (nID >= ID_MENUITEM_TRAYBROWSEPLUS1) &&
(nID <= ID_MENUITEM_TRAYBROWSEPLUSMAX);
if (!bDoAutotype) {
if (!GetRUEntry(m_RUEList, nID - ID_MENUITEM_TRAYBROWSE1, ci))
return;
} else {
if (!GetRUEntry(m_RUEList, nID - ID_MENUITEM_TRAYBROWSEPLUS1, ci))
return;
}
if (ci.IsShortcut()) {
if (!SafeGetBaseEntry(ci, ci))
return;
}
if (!ci.IsURLEmpty()) {
std::vector<size_t> vactionverboffsets;
StringX sxAutotype = PWSAuxParse::GetAutoTypeString(ci.GetAutoType(),
ci.GetGroup(), ci.GetTitle(),
ci.GetUser(),
ci.GetPassword(), ci.GetPreviousPassword(),
ci.GetNotes(), ci.GetURL(), ci.GetEmail(),
vactionverboffsets);
LaunchBrowser(ci.GetURL().c_str(), sxAutotype, vactionverboffsets, bDoAutotype);
if (PWSprefs::GetInstance()->GetPref(PWSprefs::CopyPasswordWhenBrowseToURL)) {
SetClipboardData(ci.GetPassword());
UpdateLastClipboardAction(CItemData::PASSWORD);
}
}
UpdateAccessTime(ci.GetUUID());
}
示例7: ASSERT
int PWSfileV1V2::WriteRecord(const CItemData &item)
{
ASSERT(m_fd != NULL);
ASSERT(m_curversion != UNKNOWN_VERSION);
int status = SUCCESS;
switch (m_curversion) {
case V17:
{
// 1.x programs totally ignore the type byte, hence safe to write it
// (no need for two WriteCBC functions)
// Note that 2.0 format still requires that the header be in this format,
// So that old programs reading new databases won't crash,
// This introduces a small security issue, in that the header is known text,
// making the password susceptible to a dictionary attack on the first block,
// rather than the hash^n in the beginning of the file.
// we can help minimize this here by writing a random byte in the "type"
// byte of the first block.
StringX name = item.GetName();
// If name field already exists - use it. This is for the 2.0 header, as well as for files
// that were imported and re-exported.
if (name.empty()) {
// The name in 1.7 consists of title + SPLTCHR + username
// DEFUSERNAME was used in previous versions, but 2.0 converts this upon import
// so it is not an issue here.
// Prepend 2.0 group field to name, if not empty
// i.e. group "finances" name "broker" -> "finances.broker"
StringX group = item.GetGroup();
StringX title = item.GetTitle();
if (!group.empty()) {
group += _T(".");
group += title;
title = group;
}
name = title;
name += SPLTCHR;
name += item.GetUser();
}
unsigned char dummy_type;
PWSrand::GetInstance()->GetRandomData(&dummy_type, 1);
WriteCBC(dummy_type, name);
WriteCBC(CItemData::PASSWORD, item.GetPassword());
WriteCBC(CItemData::NOTES, ReMergeNotes(item));
break;
}
case V20:
{
{
uuid_array_t uuid_array;
item.GetUUID(uuid_array);
PWSfile::WriteCBC(CItemData::UUID, uuid_array, sizeof(uuid_array_t));
}
WriteCBC(CItemData::GROUP, item.GetGroup());
WriteCBC(CItemData::TITLE, item.GetTitle());
WriteCBC(CItemData::USER, item.GetUser());
WriteCBC(CItemData::PASSWORD, item.GetPassword());
WriteCBC(CItemData::NOTES, ReMergeNotes(item));
WriteCBC(CItemData::END, _T(""));
break;
}
default:
ASSERT(0);
status = UNSUPPORTED_VERSION;
}
return status;
}
示例8: Synchronize
void PWScore::Synchronize(PWScore *pothercore,
const CItemData::FieldBits &bsFields, const bool &subgroup_bset,
const stringT &subgroup_name,
const int &subgroup_object, const int &subgroup_function,
int &numUpdated, CReport *pRpt, bool *pbCancel)
{
/*
Purpose:
Synchronize entries from otherCore to m_core
Algorithm:
Foreach entry in otherCore
Find in m_core
if find a match
update requested fields
*/
std::vector<StringX> vs_updated;
numUpdated = 0;
MultiCommands *pmulticmds = MultiCommands::Create(this);
Command *pcmd1 = UpdateGUICommand::Create(this, UpdateGUICommand::WN_UNDO,
UpdateGUICommand::GUI_UNDO_MERGESYNC);
pmulticmds->Add(pcmd1);
// Make sure we don't add it multiple times
std::map<StringX, StringX> mapRenamedPolicies;
std::vector<StringX> vs_PoliciesAdded;
const StringX sxSync_DateTime = PWSUtil::GetTimeStamp(true).c_str();
ItemListConstIter otherPos;
for (otherPos = pothercore->GetEntryIter();
otherPos != pothercore->GetEntryEndIter();
otherPos++) {
// See if user has cancelled
if (pbCancel != NULL && *pbCancel) {
delete pmulticmds;
return;
}
CItemData otherItem = pothercore->GetEntry(otherPos);
CItemData::EntryType et = otherItem.GetEntryType();
// Do not process Aliases and Shortcuts
if (et == CItemData::ET_ALIAS || et == CItemData::ET_SHORTCUT)
continue;
if (subgroup_bset &&
!otherItem.Matches(subgroup_name, subgroup_object, subgroup_function))
continue;
const StringX sx_otherGroup = otherItem.GetGroup();
const StringX sx_otherTitle = otherItem.GetTitle();
const StringX sx_otherUser = otherItem.GetUser();
StringX sx_mergedentry;
Format(sx_mergedentry, GROUPTITLEUSERINCHEVRONS,
sx_otherGroup.c_str(), sx_otherTitle.c_str(), sx_otherUser.c_str());
ItemListConstIter foundPos = Find(sx_otherGroup, sx_otherTitle, sx_otherUser);
if (foundPos != GetEntryEndIter()) {
// found a match
CItemData curItem = GetEntry(foundPos);
// Don't update if entry is protected
if (curItem.IsProtected())
continue;
CItemData updItem(curItem);
updItem.SetDisplayInfo(NULL);
if (curItem.GetUUID() != otherItem.GetUUID()) {
pws_os::Trace(_T("Synchronize: Mis-match UUIDs for [%ls:%ls:%ls]\n"),
sx_otherGroup.c_str(), sx_otherTitle.c_str(), sx_otherUser.c_str());
}
bool bUpdated(false);
// Do not try and change GROUPTITLE = 0x00 (use GROUP & TITLE separately) or UUID = 0x01
for (size_t i = 2; i < bsFields.size(); i++) {
if (bsFields.test(i)) {
StringX sxValue = otherItem.GetFieldValue(static_cast<CItemData::FieldType>(i));
// Special processing for password policies (default & named)
if (static_cast<CItemData::FieldType>(i) == CItemData::POLICYNAME) {
Command *pPolicyCmd = ProcessPolicyName(pothercore, updItem,
mapRenamedPolicies, vs_PoliciesAdded,
sxValue, bUpdated,
sxSync_DateTime, IDSC_SYNCPOLICY);
if (pPolicyCmd != NULL)
pmulticmds->Add(pPolicyCmd);
} else {
if (sxValue != updItem.GetFieldValue(static_cast<CItemData::FieldType>(i))) {
bUpdated = true;
updItem.SetFieldValue(static_cast<CItemData::FieldType>(i), sxValue);
}
}
}
}
//.........这里部分代码省略.........
示例9: Compare
void PWScore::Compare(PWScore *pothercore,
const CItemData::FieldBits &bsFields, const bool &subgroup_bset,
const bool &bTreatWhiteSpaceasEmpty, const stringT &subgroup_name,
const int &subgroup_object, const int &subgroup_function,
CompareData &list_OnlyInCurrent, CompareData &list_OnlyInComp,
CompareData &list_Conflicts, CompareData &list_Identical,
bool *pbCancel)
{
/*
Purpose:
Compare entries from comparison database (compCore) with current database (m_core)
Algorithm:
Foreach entry in current database {
Find in comparison database - subject to subgroup checking
if found {
Compare
if match
OK
else
There are conflicts; note them & increment numConflicts
} else {
save & increment numOnlyInCurrent
}
}
Foreach entry in comparison database {
Find in current database - subject to subgroup checking
if not found
save & increment numOnlyInComp
}
*/
CItemData::FieldBits bsConflicts(0);
st_CompareData st_data;
int numOnlyInCurrent(0), numOnlyInComp(0), numConflicts(0), numIdentical(0);
ItemListIter currentPos;
for (currentPos = GetEntryIter();
currentPos != GetEntryEndIter();
currentPos++) {
// See if user has cancelled
if (pbCancel != NULL && *pbCancel) {
return;
}
st_data.Empty();
const CItemData ¤tItem = GetEntry(currentPos);
if (!subgroup_bset ||
currentItem.Matches(std::wstring(subgroup_name), subgroup_object,
subgroup_function)) {
st_data.group = currentItem.GetGroup();
st_data.title = currentItem.GetTitle();
st_data.user = currentItem.GetUser();
StringX sx_original;
Format(sx_original, GROUPTITLEUSERINCHEVRONS,
st_data.group.c_str(), st_data.title.c_str(), st_data.user.c_str());
// Update the Wizard page
UpdateWizard(sx_original.c_str());
ItemListIter foundPos = pothercore->Find(st_data.group,
st_data.title, st_data.user);
if (foundPos != pothercore->GetEntryEndIter()) {
// found a match, see if all other fields also match
// Difference flags:
/*
First byte (values in square brackets taken from ItemData.h)
1... .... NAME [0x00] - n/a - depreciated
.1.. .... UUID [0x01] - n/a - unique
..1. .... GROUP [0x02] - not checked - must be identical
...1 .... TITLE [0x03] - not checked - must be identical
.... 1... USER [0x04] - not checked - must be identical
.... .1.. NOTES [0x05]
.... ..1. PASSWORD [0x06]
.... ...1 CTIME [0x07] - not checked by default
Second byte
1... .... PMTIME [0x08] - not checked by default
.1.. .... ATIME [0x09] - not checked by default
..1. .... XTIME [0x0a] - not checked by default
...1 .... RESERVED [0x0b] - not used
.... 1... RMTIME [0x0c] - not checked by default
.... .1.. URL [0x0d]
.... ..1. AUTOTYPE [0x0e]
.... ...1 PWHIST [0x0f]
Third byte
1... .... POLICY [0x10] - not checked by default
.1.. .... XTIME_INT [0x11] - not checked by default
..1. .... RUNCMD [0x12]
...1 .... DCA [0x13]
.... 1... EMAIL [0x14]
.... .1.. PROTECTED [0x15]
.... ..1. SYMBOLS [0x16]
.... ...1 SHIFTDCA [0x17]
Fourth byte
//.........这里部分代码省略.........
示例10: Merge
stringT PWScore::Merge(PWScore *pothercore,
const bool &subgroup_bset,
const stringT &subgroup_name,
const int &subgroup_object, const int &subgroup_function,
CReport *pRpt, bool *pbCancel)
{
std::vector<StringX> vs_added;
std::vector<StringX> vs_AliasesAdded;
std::vector<StringX> vs_ShortcutsAdded;
std::vector<StringX> vs_PoliciesAdded;
std::map<StringX, StringX> mapRenamedPolicies;
const StringX sxMerge_DateTime = PWSUtil::GetTimeStamp(true).c_str();
stringT str_timestring; // To append to title if already in current database
str_timestring = sxMerge_DateTime.c_str();
Remove(str_timestring, _T('/'));
Remove(str_timestring, _T(':'));
/*
Purpose:
Merge entries from otherCore to m_core
Algorithm:
Foreach entry in otherCore
Find in m_core based on group/title/username
if match found {
if all other fields match {
no merge
} else {
add to m_core with new title suffixed with -merged-YYYYMMDD-HHMMSS
}
} else {
add to m_core directly
}
*/
int numAdded = 0;
int numConflicts = 0;
int numAliasesAdded = 0;
int numShortcutsAdded = 0;
uuid_array_t base_uuid, new_base_uuid;
bool bTitleRenamed(false);
StringX sx_merged;
LoadAString(sx_merged, IDSC_MERGED);
MultiCommands *pmulticmds = MultiCommands::Create(this);
Command *pcmd1 = UpdateGUICommand::Create(this, UpdateGUICommand::WN_UNDO,
UpdateGUICommand::GUI_UNDO_MERGESYNC);
pmulticmds->Add(pcmd1);
ItemListConstIter otherPos;
for (otherPos = pothercore->GetEntryIter();
otherPos != pothercore->GetEntryEndIter();
otherPos++) {
// See if user has cancelled
if (pbCancel != NULL && *pbCancel) {
delete pmulticmds;
return _T("");
}
CItemData otherItem = pothercore->GetEntry(otherPos);
CItemData::EntryType et = otherItem.GetEntryType();
// Need to check that entry keyboard shortcut not already in use!
int32 iKBShortcut;
otherItem.GetKBShortcut(iKBShortcut);
CUUID kbshortcut_uuid = GetKBShortcut(iKBShortcut);
bool bKBShortcutInUse = (iKBShortcut != 0&& kbshortcut_uuid != CUUID::NullUUID());
// Handle Aliases and Shortcuts when processing their base entries
if (otherItem.IsDependent())
continue;
if (subgroup_bset &&
!otherItem.Matches(subgroup_name, subgroup_object, subgroup_function))
continue;
const StringX sx_otherGroup = otherItem.GetGroup();
const StringX sx_otherTitle = otherItem.GetTitle();
const StringX sx_otherUser = otherItem.GetUser();
StringX sxMergedEntry;
Format(sxMergedEntry, GROUPTITLEUSERINCHEVRONS,
sx_otherGroup.c_str(), sx_otherTitle.c_str(), sx_otherUser.c_str());
ItemListConstIter foundPos = Find(sx_otherGroup, sx_otherTitle, sx_otherUser);
otherItem.GetUUID(base_uuid);
memcpy(new_base_uuid, base_uuid, sizeof(new_base_uuid));
bTitleRenamed = false;
if (foundPos != GetEntryEndIter()) {
// Found a match, see if other fields also match
CItemData curItem = GetEntry(foundPos);
// Can't merge into a protected entry. If we were going to - add instead
unsigned char ucprotected;
curItem.GetProtected(ucprotected);
//.........这里部分代码省略.........
示例11: OnDuplicateEntry
// Duplicate selected entry but make title unique
void PasswordSafeFrame::OnDuplicateEntry(wxCommandEvent& WXUNUSED(event))
{
if (m_core.IsReadOnly()) // disable in read-only mode
return;
// if (SelItemOk() == TRUE) {
CItemData *pci = GetSelectedEntry();
ASSERT(pci != NULL);
// DisplayInfo *pdi = (DisplayInfo *)pci->GetDisplayInfo();
// ASSERT(pdi != NULL);
// Get information from current selected entry
const StringX ci2_group = pci->GetGroup();
const StringX ci2_user = pci->GetUser();
const StringX ci2_title0 = pci->GetTitle();
StringX ci2_title;
// Find a unique "Title"
ItemListConstIter listpos;
int i = 0;
wxString s_copy;
do {
s_copy.clear();
i++;
s_copy << _(" Copy # ") << i;
ci2_title = ci2_title0 + tostringx(s_copy);
listpos = m_core.Find(ci2_group, ci2_title, ci2_user);
} while (listpos != m_core.GetEntryEndIter());
// Set up new entry
CItemData ci2(*pci);
ci2.SetDisplayInfo(NULL);
ci2.CreateUUID();
ci2.SetGroup(ci2_group);
ci2.SetTitle(ci2_title);
ci2.SetUser(ci2_user);
ci2.SetStatus(CItemData::ES_ADDED);
Command *pcmd = NULL;
if (pci->IsDependent()) {
if (pci->IsAlias()) {
ci2.SetAlias();
} else {
ci2.SetShortcut();
}
const CItemData *pbci = m_core.GetBaseEntry(pci);
if (pbci != NULL) {
CUUID base_uuid = pbci->GetUUID();
StringX cs_tmp;
cs_tmp = wxT("[") +
pbci->GetGroup() + wxT(":") +
pbci->GetTitle() + wxT(":") +
pbci->GetUser() + wxT("]");
ci2.SetPassword(cs_tmp);
pcmd = AddEntryCommand::Create(&m_core, ci2, base_uuid);
}
} else { // not alias or shortcut
ci2.SetNormal();
pcmd = AddEntryCommand::Create(&m_core, ci2);
}
Execute(pcmd);
// pdi->list_index = -1; // so that InsertItemIntoGUITreeList will set new values
CUUID uuid = ci2.GetUUID();
ItemListIter iter = m_core.Find(uuid);
ASSERT(iter != m_core.GetEntryEndIter());
wxUnusedVar(iter); // used in assert only
// InsertItemIntoGUITreeList(m_core.GetEntry(iter));
// FixListIndexes();
SetChanged(Data);
// int rc = SelectEntry(pdi->list_index);
// if (rc == 0) {
// SelectEntry(m_ctlItemList.GetItemCount() - 1);
// }
// ChangeOkUpdate();
m_RUEList.AddRUEntry(uuid);
// }
}