本文整理汇总了C++中nsCString::Equals方法的典型用法代码示例。如果您正苦于以下问题:C++ nsCString::Equals方法的具体用法?C++ nsCString::Equals怎么用?C++ nsCString::Equals使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nsCString
的用法示例。
在下文中一共展示了nsCString::Equals方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PurgeExpired
bool
nsPreflightCache::CacheEntry::CheckRequest(const nsCString& aMethod,
const nsTArray<nsCString>& aHeaders)
{
PurgeExpired(TimeStamp::NowLoRes());
if (!aMethod.EqualsLiteral("GET") && !aMethod.EqualsLiteral("POST")) {
uint32_t i;
for (i = 0; i < mMethods.Length(); ++i) {
if (aMethod.Equals(mMethods[i].token))
break;
}
if (i == mMethods.Length()) {
return false;
}
}
for (uint32_t i = 0; i < aHeaders.Length(); ++i) {
uint32_t j;
for (j = 0; j < mHeaders.Length(); ++j) {
if (aHeaders[i].Equals(mHeaders[j].token,
nsCaseInsensitiveCStringComparator())) {
break;
}
}
if (j == mHeaders.Length()) {
return false;
}
}
return true;
}
示例2: ResolveEntries
void nsEudoraAddress::ResolveEntries( nsCString& name, nsVoidArray& list,
nsVoidArray& result, PRBool addResolvedEntries,
PRBool wasResolved, PRInt32& numResolved)
{
/* a safe-guard against recursive entries */
if (result.Count() > m_alias.Count())
return;
PRInt32 max = list.Count();
PRInt32 i;
CAliasData * pData;
CAliasEntry * pEntry;
for (i = 0; i < max; i++) {
pData = (CAliasData *)list.ElementAt( i);
// resolve the email to an existing alias!
if ( !name.Equals(pData->m_email, nsCaseInsensitiveCStringComparator()) &&
((pEntry = ResolveAlias( pData->m_fullEntry)) != nsnull) ) {
// This new entry has all of the entries for this puppie.
// Resolve all of it's entries!
numResolved++; // Track the number of entries resolved
// We pass in PR_TRUE for the 5th parameter so that we know that we're
// calling ourselves recursively.
ResolveEntries( pEntry->m_name, pEntry->m_list, result, addResolvedEntries, PR_TRUE, numResolved);
}
else if (addResolvedEntries || !wasResolved) {
// This is either an ordinary entry (i.e. just contains the info) or we were told
// to add resolved alias entries.
result.AppendElement( pData);
}
}
}
示例3: PurgeExpired
PRBool
nsPreflightCache::CacheEntry::CheckRequest(const nsCString& aMethod,
const nsTArray<nsCString>& aHeaders)
{
PurgeExpired(PR_Now());
if (!aMethod.EqualsLiteral("GET") && !aMethod.EqualsLiteral("POST")) {
PRUint32 i;
for (i = 0; i < mMethods.Length(); ++i) {
if (aMethod.Equals(mMethods[i].token))
break;
}
if (i == mMethods.Length()) {
return PR_FALSE;
}
}
for (PRUint32 i = 0; i < aHeaders.Length(); ++i) {
PRUint32 j;
for (j = 0; j < mHeaders.Length(); ++j) {
if (aHeaders[i].Equals(mHeaders[j].token,
nsCaseInsensitiveCStringComparator())) {
break;
}
}
if (j == mHeaders.Length()) {
return PR_FALSE;
}
}
return PR_TRUE;
}
示例4: ResolveEntries
void nsEudoraAddress::ResolveEntries( nsCString& name, nsVoidArray& list, nsVoidArray& result)
{
/* a safe-guard against recursive entries */
if (result.Count() > m_alias.Count())
return;
PRInt32 max = list.Count();
PRInt32 i;
CAliasData * pData;
CAliasEntry * pEntry;
for (i = 0; i < max; i++) {
pData = (CAliasData *)list.ElementAt( i);
// resolve the email to an existing alias!
if (!name.Equals( pData->m_email,
nsCaseInsensitiveCStringComparator()) &&
((pEntry = ResolveAlias( pData->m_email)) != nsnull)) {
// This new entry has all of the entries for this puppie.
// Resolve all of it's entries!
ResolveEntries( pEntry->m_name, pEntry->m_list, result);
}
else {
result.AppendElement( pData);
}
}
}
示例5: TestGetNodeId_Continuation
void TestGetNodeId_Continuation(nsCString aNodeId1) {
EXPECT_TRUE(IsCDMStorageIsEmpty());
// Once we clear storage, the node ids generated for the same origin-pair
// should be different.
const nsString origin1 = NS_LITERAL_STRING("http://example1.com");
const nsString origin2 = NS_LITERAL_STRING("http://example2.org");
nsCString nodeId3 = GetNodeId(origin1, origin2, false);
EXPECT_TRUE(!aNodeId1.Equals(nodeId3));
SetFinished();
}
示例6: tzset
void
SetTimezone(const nsCString& aTimezoneSpec)
{
if (aTimezoneSpec.Equals(GetTimezone())) {
return;
}
property_set("persist.sys.timezone", aTimezoneSpec.get());
// this function is automatically called by the other time conversion
// functions that depend on the timezone. To be safe, we call it manually.
tzset();
hal::NotifySystemTimeChange(hal::SYS_TIME_CHANGE_TZ);
}
示例7: Read
GMPErr Read(const nsCString& aRecordName,
nsTArray<uint8_t>& aOutBytes) override
{
if (!IsOpen(aRecordName)) {
return GMPClosedErr;
}
Record* record = nullptr;
mRecords.Get(aRecordName, &record);
MOZ_ASSERT(record && !!record->mFileDesc); // IsOpen() guarantees this.
// Our error strategy is to report records with invalid contents as
// containing 0 bytes. Zero length records are considered "deleted" by
// the GMPStorage API.
aOutBytes.SetLength(0);
int32_t recordLength = 0;
nsCString recordName;
nsresult err = ReadRecordMetadata(record->mFileDesc,
recordLength,
recordName);
if (NS_FAILED(err) || recordLength == 0) {
// We failed to read the record metadata. Or the record is 0 length.
// Treat damaged records as empty.
// ReadRecordMetadata() could fail if the GMP opened a new record and
// tried to read it before anything was written to it..
return GMPNoErr;
}
if (!aRecordName.Equals(recordName)) {
NS_WARNING("Record file contains some other record's contents!");
return GMPRecordCorrupted;
}
// After calling ReadRecordMetadata, we should be ready to read the
// record data.
if (PR_Available(record->mFileDesc) != recordLength) {
NS_WARNING("Record file length mismatch!");
return GMPRecordCorrupted;
}
aOutBytes.SetLength(recordLength);
int32_t bytesRead = PR_Read(record->mFileDesc, aOutBytes.Elements(), recordLength);
return (bytesRead == recordLength) ? GMPNoErr : GMPRecordCorrupted;
}
示例8: methodTokens
nsresult
nsCORSPreflightListener::CheckPreflightRequestApproved(nsIRequest* aRequest)
{
nsresult status;
nsresult rv = aRequest->GetStatus(&status);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_SUCCESS(status, status);
// Test that things worked on a HTTP level
nsCOMPtr<nsIHttpChannel> http = do_QueryInterface(aRequest);
nsCOMPtr<nsIHttpChannelInternal> internal = do_QueryInterface(aRequest);
NS_ENSURE_STATE(internal);
bool succeedded;
rv = http->GetRequestSucceeded(&succeedded);
if (NS_FAILED(rv) || !succeedded) {
LogBlockedRequest(aRequest, "CORSPreflightDidNotSucceed", nullptr);
return NS_ERROR_DOM_BAD_URI;
}
nsAutoCString headerVal;
// The "Access-Control-Allow-Methods" header contains a comma separated
// list of method names.
http->GetResponseHeader(NS_LITERAL_CSTRING("Access-Control-Allow-Methods"),
headerVal);
bool foundMethod = mPreflightMethod.EqualsLiteral("GET") ||
mPreflightMethod.EqualsLiteral("HEAD") ||
mPreflightMethod.EqualsLiteral("POST");
nsCCharSeparatedTokenizer methodTokens(headerVal, ',');
while(methodTokens.hasMoreTokens()) {
const nsDependentCSubstring& method = methodTokens.nextToken();
if (method.IsEmpty()) {
continue;
}
if (!NS_IsValidHTTPToken(method)) {
LogBlockedRequest(aRequest, "CORSInvalidAllowMethod",
NS_ConvertUTF8toUTF16(method).get());
return NS_ERROR_DOM_BAD_URI;
}
foundMethod |= mPreflightMethod.Equals(method);
}
if (!foundMethod) {
LogBlockedRequest(aRequest, "CORSMethodNotFound", nullptr);
return NS_ERROR_DOM_BAD_URI;
}
// The "Access-Control-Allow-Headers" header contains a comma separated
// list of header names.
http->GetResponseHeader(NS_LITERAL_CSTRING("Access-Control-Allow-Headers"),
headerVal);
nsTArray<nsCString> headers;
nsCCharSeparatedTokenizer headerTokens(headerVal, ',');
while(headerTokens.hasMoreTokens()) {
const nsDependentCSubstring& header = headerTokens.nextToken();
if (header.IsEmpty()) {
continue;
}
if (!NS_IsValidHTTPToken(header)) {
LogBlockedRequest(aRequest, "CORSInvalidAllowHeader",
NS_ConvertUTF8toUTF16(header).get());
return NS_ERROR_DOM_BAD_URI;
}
headers.AppendElement(header);
}
for (uint32_t i = 0; i < mPreflightHeaders.Length(); ++i) {
if (!headers.Contains(mPreflightHeaders[i],
nsCaseInsensitiveCStringArrayComparator())) {
LogBlockedRequest(aRequest, "CORSMissingAllowHeaderFromPreflight",
NS_ConvertUTF8toUTF16(mPreflightHeaders[i]).get());
return NS_ERROR_DOM_BAD_URI;
}
}
return NS_OK;
}
示例9: StrToBool
bool nsMsgFilterList::StrToBool(nsCString &str)
{
return str.Equals("yes") ;
}
示例10: if
static nsresult
SplitURL(nsIURI *aChromeURI, nsCString& aPackage, nsCString& aProvider, nsCString& aFile,
PRBool *aModified = nsnull)
{
// Splits a "chrome:" URL into its package, provider, and file parts.
// Here are the current portions of a
// chrome: url that make up the chrome-
//
// chrome://global/skin/foo?bar
// \------/ \----/\---/ \-----/
// | | | |
// | | | `-- RemainingPortion
// | | |
// | | `-- Provider
// | |
// | `-- Package
// |
// `-- Always "chrome://"
//
//
nsresult rv;
nsCAutoString str;
rv = aChromeURI->GetSpec(str);
if (NS_FAILED(rv)) return rv;
// We only want to deal with "chrome:" URLs here. We could return
// an error code if the URL isn't properly prefixed here...
if (PL_strncmp(str.get(), kChromePrefix, sizeof(kChromePrefix) - 1) != 0)
return NS_ERROR_INVALID_ARG;
// Cull out the "package" string; e.g., "navigator"
aPackage = str.get() + sizeof(kChromePrefix) - 1;
PRInt32 idx;
idx = aPackage.FindChar('/');
if (idx < 0)
return NS_OK;
// Cull out the "provider" string; e.g., "content"
aPackage.Right(aProvider, aPackage.Length() - (idx + 1));
aPackage.Truncate(idx);
idx = aProvider.FindChar('/');
if (idx < 0) {
// Force the provider to end with a '/'
idx = aProvider.Length();
aProvider.Append('/');
}
// Cull out the "file"; e.g., "navigator.xul"
aProvider.Right(aFile, aProvider.Length() - (idx + 1));
aProvider.Truncate(idx);
PRBool nofile = aFile.IsEmpty();
if (nofile) {
// If there is no file, then construct the default file
aFile = aPackage;
if (aProvider.Equals("content")) {
aFile += ".xul";
}
else if (aProvider.Equals("skin")) {
aFile += ".css";
}
else if (aProvider.Equals("locale")) {
aFile += ".dtd";
}
else {
NS_ERROR("unknown provider");
return NS_ERROR_FAILURE;
}
} else {
// Protect against URIs containing .. that reach up out of the
// chrome directory to grant chrome privileges to non-chrome files.
int depth = 0;
PRBool sawSlash = PR_TRUE; // .. at the beginning is suspect as well as /..
for (const char* p=aFile.get(); *p; p++) {
if (sawSlash) {
if (p[0] == '.' && p[1] == '.'){
depth--; // we have /.., decrement depth.
} else {
static const char escape[] = "%2E%2E";
if (PL_strncasecmp(p, escape, sizeof(escape)-1) == 0)
depth--; // we have the HTML-escaped form of /.., decrement depth.
}
} else if (p[0] != '/') {
depth++; // we have /x for some x that is not /
}
sawSlash = (p[0] == '/');
if (depth < 0) {
return NS_ERROR_FAILURE;
}
}
}
if (aModified)
*aModified = nofile;
return NS_OK;
//.........这里部分代码省略.........
示例11:
static inline bool
IsEndOfMessage(const nsCString &aLine)
{
return aLine.Equals(".");
}
示例12: nsCaseInsensitiveCStringComparator
static
nsresult
UpdateAttendee(calIEvent * e,
ews_calendar_item * item,
const nsCString & ownerEmail,
bool required) {
int c = 0;
ews_attendee ** attendees = NULL;
nsresult rv = NS_OK;
if (required) {
c = item->required_attendees_count;
attendees = item->required_attendees;
} else {
c = item->optional_attendees_count;
attendees = item->optional_attendees;
}
if (c == 0 || !attendees)
return NS_OK;
for(int i=0;i < c;i++) {
nsCOMPtr<calIAttendee> a =
do_CreateInstance(CAL_ATTENDEE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
nsCString id;
if (attendees[i]->email_address.routing_type &&
!strcmp(attendees[i]->email_address.routing_type, "EX")) {
id.AppendLiteral("ldap:");
} else {
id.AppendLiteral("mailto:");
}
id.AppendLiteral(attendees[i]->email_address.email);
rv = a->SetId(id);
NS_ENSURE_SUCCESS(rv, rv);
rv = a->SetRsvp(nsCString("FALSE"));
NS_ENSURE_SUCCESS(rv, rv);
rv = a->SetUserType(nsCString("INDIVIDUAL"));
NS_ENSURE_SUCCESS(rv, rv);
rv = a->SetRole(nsCString(required ? "REQ-PARTICIPANT" : "OPT-PARTICIPANT"));
NS_ENSURE_SUCCESS(rv, rv);
nsCString name;
if (attendees[i]->email_address.name) {
name.AssignLiteral(attendees[i]->email_address.name);
}
rv = a->SetCommonName(name);
NS_ENSURE_SUCCESS(rv, rv);
nsCString status;
if (ownerEmail.Equals(nsCString(attendees[i]->email_address.email),
nsCaseInsensitiveCStringComparator())) {
status.AssignLiteral(participationArray[item->my_response_type]);
} else {
status.AssignLiteral(participationArray[attendees[i]->response_type]);
}
rv = a->SetParticipationStatus(status);
NS_ENSURE_SUCCESS(rv, rv);
rv = e->AddAttendee(a);
NS_ENSURE_SUCCESS(rv, rv);
}
return NS_OK;
}