本文整理汇总了C++中NPT_String::Compare方法的典型用法代码示例。如果您正苦于以下问题:C++ NPT_String::Compare方法的具体用法?C++ NPT_String::Compare怎么用?C++ NPT_String::Compare使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NPT_String
的用法示例。
在下文中一共展示了NPT_String::Compare方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
/*----------------------------------------------------------------------
| PLT_LightSampleDevice::OnAction
+---------------------------------------------------------------------*/
NPT_Result
PLT_LightSampleDevice::OnAction(PLT_ActionReference& action, NPT_SocketInfo* /* info */)
{
/* parse the action name */
NPT_String name = action->GetActionDesc()->GetName();
if (name.Compare("SetTarget") == 0) {
NPT_String value;
action->GetArgumentValue("newTargetValue", value);
PLT_StateVariable* variable = action->GetActionDesc()->GetService()->FindStateVariable("Status");
if (NPT_FAILED(variable->SetValue(value))) {
action->SetError(402, "Invalid Args");
return NPT_FAILURE;
}
return NPT_SUCCESS;
} else if (name.Compare("GetStatus") == 0) {
PLT_StateVariable* variable = action->GetActionDesc()->GetService()->FindStateVariable("Status");
if (variable) {
action->SetArgumentValue("ResultStatus", variable->GetValue());
return NPT_SUCCESS;
}
}
action->SetError(501, "Action Failed");
return NPT_FAILURE;
}
示例2: ServeFile
/*----------------------------------------------------------------------
| PLT_FileMediaServer::ServeFile
+---------------------------------------------------------------------*/
NPT_Result
PLT_FileMediaServer::ServeFile(NPT_HttpRequest& request,
const NPT_HttpRequestContext& context,
NPT_HttpResponse& response,
const NPT_String& uri_path,
const NPT_String& file_path)
{
NPT_COMPILER_UNUSED(context);
// prevent hackers from accessing files outside of our root
if ((file_path.Find("/..") >= 0) || (file_path.Find("\\..") >= 0)) {
return NPT_FAILURE;
}
// File requested
NPT_String path = m_FileBaseUri.GetPath();
if (path.Compare(uri_path.Left(path.GetLength()), true) == 0) {
NPT_Position start, end;
PLT_HttpHelper::GetRange(request, start, end);
return PLT_FileServer::ServeFile(response,
NPT_FilePath::Create(m_Path, file_path),
start,
end,
!request.GetMethod().Compare("HEAD"));
}
// Album Art requested
path = m_AlbumArtBaseUri.GetPath();
if (path.Compare(uri_path.Left(path.GetLength()), true) == 0) {
return OnAlbumArtRequest(response, m_Path + file_path);
}
return NPT_FAILURE;
}
示例3:
/*----------------------------------------------------------------------
| NPT_LogManager::ConfigValueIsBooleanFalse
+---------------------------------------------------------------------*/
bool
NPT_LogManager::ConfigValueIsBooleanFalse(NPT_String& value)
{
return
value.Compare("false", true) == 0 ||
value.Compare("no", true) == 0 ||
value.Compare("off", true) == 0 ||
value.Compare("0", true) == 0;
}
示例4: query
/*----------------------------------------------------------------------
| PLT_FileMediaServer::ProcessFileRequest
+---------------------------------------------------------------------*/
NPT_Result
PLT_FileMediaServer::ProcessFileRequest(NPT_HttpRequest& request,
NPT_HttpResponse& response,
NPT_SocketInfo& client_info)
{
NPT_COMPILER_UNUSED(client_info);
NPT_LOG_FINE("PLT_FileMediaServer::ProcessFileRequest Received Request:");
PLT_LOG_HTTP_MESSAGE(NPT_LOG_LEVEL_FINE, &request);
response.GetHeaders().SetHeader("Accept-Ranges", "bytes");
if (request.GetMethod().Compare("GET") && request.GetMethod().Compare("HEAD")) {
response.SetStatus(500, "Internal Server Error");
return NPT_SUCCESS;
}
// File requested
NPT_String path = m_FileBaseUri.GetPath();
NPT_String strUri = NPT_Uri::PercentDecode(request.GetUrl().GetPath());
NPT_HttpUrlQuery query(request.GetUrl().GetQuery());
NPT_String file_path = query.GetField("path");
// hack for XBMC support for 360, we urlencoded the ? to that the 360 doesn't strip out the query
// but then the query ends being parsed as part of the path
int index = strUri.Find("path=");
if (index>0) file_path = strUri.Right(strUri.GetLength()-index-5);
if (file_path.GetLength() == 0) goto failure;
// HACK for wmp: somehow they inverse our slashes !
// do it only if we're on windows
if (m_DirDelimiter == "\\") {
file_path.Replace('/', '\\');
}
if (path.Compare(strUri.Left(path.GetLength()), true) == 0) {
NPT_Integer start, end;
PLT_HttpHelper::GetRange(&request, start, end);
return PLT_FileServer::ServeFile(m_Path + file_path, &response, start, end, !request.GetMethod().Compare("HEAD"));
}
// Album Art requested
path = m_AlbumArtBaseUri.GetPath();
if (path.Compare(strUri.Left(path.GetLength()), true) == 0) {
return OnAlbumArtRequest(m_Path + file_path, response);
}
failure:
response.SetStatus(404, "File Not Found");
return NPT_SUCCESS;
}
示例5: if
/*----------------------------------------------------------------------
| CUPnPDirectory::GetFriendlyName
+---------------------------------------------------------------------*/
const char*
CUPnPDirectory::GetFriendlyName(const char* url)
{
NPT_String path = url;
if (!path.EndsWith("/")) path += "/";
if (path.Left(7).Compare("upnp://", true) != 0) {
return NULL;
} else if (path.Compare("upnp://", true) == 0) {
return "UPnP Media Servers (Auto-Discover)";
}
// look for nextslash
int next_slash = path.Find('/', 7);
if (next_slash == -1)
return NULL;
NPT_String uuid = path.SubString(7, next_slash-7);
NPT_String object_id = path.SubString(next_slash+1, path.GetLength()-next_slash-2);
// look for device
PLT_DeviceDataReference* device;
const NPT_Lock<PLT_DeviceMap>& devices = CUPnP::GetInstance()->m_MediaBrowser->GetMediaServers();
if (NPT_FAILED(devices.Get(uuid, device)) || device == NULL)
return NULL;
return (const char*)(*device)->GetFriendlyName();
}
示例6: if
/*----------------------------------------------------------------------
| CUPnPDirectory::GetFriendlyName
+---------------------------------------------------------------------*/
const char*
CUPnPDirectory::GetFriendlyName(const char* url)
{
NPT_String path = url;
if (!path.EndsWith("/")) path += "/";
if (path.Left(7).Compare("upnp://", true) != 0) {
return NULL;
} else if (path.Compare("upnp://", true) == 0) {
return "UPnP Media Servers (Auto-Discover)";
}
// look for nextslash
int next_slash = path.Find('/', 7);
if (next_slash == -1)
return NULL;
NPT_String uuid = path.SubString(7, next_slash-7);
NPT_String object_id = path.SubString(next_slash+1, path.GetLength()-next_slash-2);
// look for device
PLT_DeviceDataReference device;
if(!FindDeviceWait(CUPnP::GetInstance(), uuid, device))
return NULL;
return (const char*)device->GetFriendlyName();
}
示例7: while
/*----------------------------------------------------------------------
| PLT_MicroMediaController::PopDirectoryStackToRoot
+---------------------------------------------------------------------*/
void
PLT_MicroMediaController::PopDirectoryStackToRoot(void)
{
NPT_String val;
while (NPT_SUCCEEDED(m_CurBrowseDirectoryStack.Peek(val)) && val.Compare("0")) {
m_CurBrowseDirectoryStack.Pop(val);
}
}
示例8:
/*----------------------------------------------------------------------
| PLT_HttpHelper::IsConnectionKeepAlive
+---------------------------------------------------------------------*/
bool
PLT_HttpHelper::IsConnectionKeepAlive(NPT_HttpMessage* message)
{
NPT_String connection;
message->GetHeaders().GetHeaderValue(NPT_HTTP_HEADER_CONNECTION,
connection);
// if we have the keep-alive header then no matter what protocol version we want keep-alive
// if we are in HTTP 1.1 and we don't have the keep-alive header, make sure we also don't have the Connection: close header.
NPT_String protocol = message->GetProtocol();
if ((!protocol.Compare(NPT_HTTP_PROTOCOL_1_1, true) && connection.Compare("Close", true)) ||
!connection.Compare("keep-alive", true)) {
return true;
}
return false;
}
示例9: OnIsAuthorized
/*----------------------------------------------------------------------
| PLT_MediaConnect::OnAction
+---------------------------------------------------------------------*/
NPT_Result
PLT_MediaConnect::OnAction(PLT_ActionReference& action,
const NPT_HttpRequestContext& context)
{
PLT_MediaConnectInfo* mc_info = NULL;
// /* get MAC address from IP */
// if (info != NULL) {
// NPT_String ip = info->remote_address.GetIpAddress().ToString();
// NPT_String MAC;
// GetMACFromIP(ip, MAC);
//
// if (MAC.GetLength()) {
// NPT_Result res = m_MediaConnectDeviceInfoMap.Get(MAC, mc_info);
// if (NPT_FAILED(res)) {
// m_MediaConnectDeviceInfoMap.Put(MAC, PLT_MediaConnectInfo());
// m_MediaConnectDeviceInfoMap.Get(MAC, mc_info);
//
// // automatically validate for now
// Authorize(mc_info, true);
// }
// }
// }
//
// /* verify device is allowed first */
// if (mc_info == NULL || !mc_info->m_Authorized) {
// action->SetError(801, "Access Denied");
// return NPT_SUCCESS;
// }
/* parse the action name */
NPT_String name = action->GetActionDesc()->GetName();
/* handle X_MS_MediaReceiverRegistrar actions here */
if (name.Compare("IsAuthorized") == 0) {
return OnIsAuthorized(action, mc_info);
}
if (name.Compare("RegisterDevice") == 0) {
return OnRegisterDevice(action, mc_info);
}
if (name.Compare("IsValidated") == 0) {
return OnIsValidated(action, mc_info);
}
return PLT_FileMediaServer::OnAction(action, context);
}
示例10: OnIsAuthorized
/*----------------------------------------------------------------------
| PLT_MediaConnect::OnAction
+---------------------------------------------------------------------*/
NPT_Result
PLT_MediaConnect::OnAction(PLT_ActionReference& action,
const PLT_HttpRequestContext& context)
{
/* parse the action name */
NPT_String name = action->GetActionDesc().GetName();
/* handle X_MS_MediaReceiverRegistrar actions here */
if (name.Compare("IsAuthorized") == 0) {
return OnIsAuthorized(action);
}
if (name.Compare("RegisterDevice") == 0) {
return OnRegisterDevice(action);
}
if (name.Compare("IsValidated") == 0) {
return OnIsValidated(action);
}
return PLT_MediaServer::OnAction(action, context);
}
示例11: OnBrowseResponse
/*----------------------------------------------------------------------
| PLT_MediaBrowser::OnActionResponse
+---------------------------------------------------------------------*/
NPT_Result
PLT_MediaBrowser::OnActionResponse(NPT_Result res,
PLT_ActionReference& action,
void* userdata)
{
NPT_String actionName = action->GetActionDesc().GetName();
// look for device in our list first
PLT_DeviceDataReference device;
NPT_String uuid = action->GetActionDesc().GetService()->GetDevice()->GetUUID();
if (NPT_FAILED(FindServer(uuid, device))) res = NPT_FAILURE;
// Browse action response
if (actionName.Compare("Browse", true) == 0) {
return OnBrowseResponse(res, device, action, userdata);
} else if (actionName.Compare("Search", true) == 0) {
return OnSearchResponse(res, device, action, userdata);
}
return NPT_SUCCESS;
}
示例12: printf
/*----------------------------------------------------------------------
| PLT_MicroMediaController::HandleCmd_cdup
+---------------------------------------------------------------------*/
void
PLT_MicroMediaController::HandleCmd_cdup()
{
// we don't want to pop the root off now....
NPT_String val;
m_CurBrowseDirectoryStack.Peek(val);
if (val.Compare("0")) {
m_CurBrowseDirectoryStack.Pop(val);
} else {
printf("Already at root\n");
}
}
示例13: IsConnectionKeepAlive
//////////////////////////////////////////////////////////////////////////
// CHttpHelper
bool CHttpHelper::IsConnectionKeepAlive(NPT_HttpMessage& message)
{
const NPT_String* connection =
message.GetHeaders().GetHeaderValue(NPT_HTTP_HEADER_CONNECTION);
// the DLNA says that all HTTP 1.0 requests should be closed immediately by the server
NPT_String protocol = message.GetProtocol();
if (protocol.Compare(NPT_HTTP_PROTOCOL_1_0, true) == 0) return false;
// all HTTP 1.1 requests without a Connection header
// or with a keep-alive Connection header should be kept alive if possible
return (!connection || connection->Compare("keep-alive", true) == 0);
}
示例14: OnBrowse
/*----------------------------------------------------------------------
| PLT_MediaServer::OnAction
+---------------------------------------------------------------------*/
NPT_Result
PLT_MediaServer::OnAction(PLT_ActionReference& action,
const PLT_HttpRequestContext& context)
{
/* parse the action name */
NPT_String name = action->GetActionDesc().GetName();
// ContentDirectory
if (name.Compare("Browse", true) == 0) {
return OnBrowse(action, context);
}
if (name.Compare("Search", true) == 0) {
return OnSearch(action, context);
}
if (name.Compare("UpdateObject", true) == 0) {
return OnUpdate(action, context);
}
if (name.Compare("GetSystemUpdateID", true) == 0) {
return OnGetSystemUpdateID(action, context);
}
if (name.Compare("GetSortCapabilities", true) == 0) {
return OnGetSortCapabilities(action, context);
}
if (name.Compare("GetSearchCapabilities", true) == 0) {
return OnGetSearchCapabilities(action, context);
}
// ConnectionMananger
if (name.Compare("GetCurrentConnectionIDs", true) == 0) {
return OnGetCurrentConnectionIDs(action, context);
}
if (name.Compare("GetProtocolInfo", true) == 0) {
return OnGetProtocolInfo(action, context);
}
if (name.Compare("GetCurrentConnectionInfo", true) == 0) {
return OnGetCurrentConnectionInfo(action, context);
}
action->SetError(401,"No Such Action.");
return NPT_SUCCESS;
}
示例15:
/*----------------------------------------------------------------------
| PLT_HttpHelper::IsConnectionKeepAlive
+---------------------------------------------------------------------*/
bool
PLT_HttpHelper::IsConnectionKeepAlive(NPT_HttpMessage& message)
{
const NPT_String* connection =
message.GetHeaders().GetHeaderValue(NPT_HTTP_HEADER_CONNECTION);
// the DLNA says that all HTTP 1.0 requests should be closed immediately by the server
// all HTTP 1.1 requests without a Connection header or with a Connection header
// NOT saying "Close" should be kept alive
NPT_String protocol = message.GetProtocol();
if (!protocol.Compare(NPT_HTTP_PROTOCOL_1_1, true) &&
(!connection || connection->Compare("close", true))) {
return true;
}
return false;
}