本文整理汇总了C++中NPT_String::GetChars方法的典型用法代码示例。如果您正苦于以下问题:C++ NPT_String::GetChars方法的具体用法?C++ NPT_String::GetChars怎么用?C++ NPT_String::GetChars使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NPT_String
的用法示例。
在下文中一共展示了NPT_String::GetChars方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
/*----------------------------------------------------------------------
| BLT_DecoderServer::OnSetPropertyCommand
+---------------------------------------------------------------------*/
void
BLT_DecoderServer::OnSetPropertyCommand(BLT_PropertyScope scope,
const NPT_String& /*target*/,
const NPT_String& name,
const ATX_PropertyValue* value)
{
BLT_Result result;
ATX_LOG_FINE_1("[%s]", name.GetChars());
ATX_Properties* properties = NULL;
switch (scope) {
case BLT_PROPERTY_SCOPE_CORE:
result = BLT_Decoder_GetProperties(m_Decoder, &properties);
break;
case BLT_PROPERTY_SCOPE_STREAM:
result = BLT_Decoder_GetStreamProperties(m_Decoder, &properties);
break;
default:
// not handled yet
result = BLT_ERROR_NOT_SUPPORTED;
}
if (ATX_SUCCEEDED(result) && properties != NULL) {
result = ATX_Properties_SetProperty(properties, name.GetChars(), value);
}
SendReply(BLT_DecoderServer_Message::COMMAND_ID_SET_PROPERTY, result);
}
示例2: lock
/*----------------------------------------------------------------------
| PLT_MediaBrowser::OnDeviceAdded
+---------------------------------------------------------------------*/
NPT_Result
PLT_MediaBrowser::OnDeviceAdded(PLT_DeviceDataReference& device)
{
// verify the device implements the function we need
PLT_Service* serviceCDS;
PLT_Service* serviceCMR;
NPT_String type;
if (!device->GetType().StartsWith("urn:schemas-upnp-org:device:MediaServer"))
return NPT_FAILURE;
type = "urn:schemas-upnp-org:service:ContentDirectory:*";
if (NPT_FAILED(device->FindServiceByType(type, serviceCDS))) {
NPT_LOG_WARNING_2("Service %s not found in device \"%s\"",
type.GetChars(),
device->GetFriendlyName().GetChars());
return NPT_FAILURE;
} else {
// in case it's a newer upnp implementation, force to 1
serviceCDS->ForceVersion(1);
}
type = "urn:schemas-upnp-org:service:ConnectionManager:*";
if (NPT_FAILED(device->FindServiceByType(type, serviceCMR))) {
NPT_LOG_WARNING_2("Service %s not found in device \"%s\"",
type.GetChars(),
device->GetFriendlyName().GetChars());
return NPT_FAILURE;
} else {
// in case it's a newer upnp implementation, force to 1
serviceCMR->ForceVersion(1);
}
{
NPT_AutoLock lock(m_MediaServers);
PLT_DeviceDataReference data;
NPT_String uuid = device->GetUUID();
// is it a new device?
if (NPT_SUCCEEDED(NPT_ContainerFind(m_MediaServers, PLT_DeviceDataFinder(uuid), data))) {
NPT_LOG_WARNING_1("Device (%s) is already in our list!", (const char*)uuid);
return NPT_FAILURE;
}
NPT_LOG_FINE_1("Device Found: %s", (const char*)*device);
m_MediaServers.Add(device);
}
if (m_Delegate && m_Delegate->OnMSAdded(device)) {
m_CtrlPoint->Subscribe(serviceCDS);
m_CtrlPoint->Subscribe(serviceCMR);
}
return NPT_SUCCESS;
}
示例3: onDiscoveryListChaned
void JNICore::onDiscoveryListChaned(const NPT_String& ip, const NPT_String& devName, const int type)
{
VMGuard vmguard;
if (JNIEnv *env = vmguard.env()) {
jstring jsIp = env->NewStringUTF(ip.GetChars());
jstring jsDev = env->NewStringUTF(devName.GetChars());
env->CallVoidMethod(m_delegateObj, CG::f_DLNACore_hookDDLC, jsIp, jsDev, type);
env->DeleteLocalRef(jsIp);
env->DeleteLocalRef(jsDev);
}
}
示例4: dmrOpen
void JNICore::dmrOpen(const NPT_String& url, const NPT_String& mimeType, const NPT_String& metaData)
{
VMGuard vmguard;
if (JNIEnv *env = vmguard.env()) {
jstring urlStr = env->NewStringUTF(url.GetChars());
jstring mimeTypeStr = env->NewStringUTF(mimeType.GetChars());
jstring metaDataStr = env->NewStringUTF(metaData.GetChars());
env->CallVoidMethod(m_delegateObj, CG::f_DLNACore_hookDmrOpen, urlStr, mimeTypeStr, metaDataStr);
env->DeleteLocalRef(urlStr);
env->DeleteLocalRef(mimeTypeStr);
env->DeleteLocalRef(metaDataStr);
}
}
示例5:
/*----------------------------------------------------------------------
| PLT_HttpHelper::ParseBody
+---------------------------------------------------------------------*/
NPT_Result
PLT_HttpHelper::ParseBody(const NPT_HttpMessage& message,
NPT_XmlElementNode*& tree)
{
// reset tree
tree = NULL;
// read body
NPT_String body;
NPT_CHECK_WARNING(GetBody(message, body));
// parse body
NPT_XmlParser parser;
NPT_XmlNode* node;
NPT_Result result = parser.Parse(body, node);
if (NPT_FAILED(result)) {
NPT_LOG_FINEST_1("Failed to parse %s", body.IsEmpty()?"(empty string)":body.GetChars());
NPT_CHECK_WARNING(result);
}
tree = node->AsElementNode();
if (!tree) {
delete node;
return NPT_FAILURE;
}
return NPT_SUCCESS;
}
示例6:
/*----------------------------------------------------------------------
| PLT_MediaRenderer::OnSetAVTransportURI
+---------------------------------------------------------------------*/
NPT_Result
PLT_MediaRenderer::OnSetAVTransportURI(PLT_ActionReference& action)
{
/*test*/
PLT_Service* serviceAVT;
NPT_CHECK_WARNING(FindServiceByType("urn:schemas-upnp-org:service:AVTransport:1", serviceAVT));
// update service state variables
//serviceAVT->SetStateVariable("TransportState", "TRANSITIONING");
/*test*/
if (m_Delegate) {
return m_Delegate->OnSetAVTransportURI(action);
}
// default implementation is using state variable
NPT_String uri;
NPT_CHECK_WARNING(action->GetArgumentValue("CurrentURI", uri));
NPT_String metadata;
NPT_CHECK_WARNING(action->GetArgumentValue("CurrentURIMetaData", metadata));
//PLT_Service* serviceAVT;
//NPT_CHECK_WARNING(FindServiceByType("urn:schemas-upnp-org:service:AVTransport:1", serviceAVT));
// update service state variables
serviceAVT->SetStateVariable("AVTransportURI", uri);
serviceAVT->SetStateVariable("AVTransportURIMetaData", metadata);
//serviceAVT->SetStateVariable("TransportState", "PLAYING");//test
OutputDebugString(uri.GetChars());
return NPT_SUCCESS;
}
示例7: Run
void Run() {
do {
// wait for a connection
NPT_Socket* client = NULL;
NPT_LOG_FINE_1("waiting for connection on port %d...", m_Port);
NPT_Result result = m_Socket.WaitForNewClient(client, NPT_TIMEOUT_INFINITE);
if (NPT_FAILED(result) || client == NULL) return;
NPT_SocketInfo client_info;
client->GetInfo(client_info);
NPT_LOG_FINE_2("client connected (%s -> %s)",
client_info.local_address.ToString().GetChars(),
client_info.remote_address.ToString().GetChars());
// get the output stream
NPT_OutputStreamReference output;
client->GetOutputStream(output);
// generate policy based on our current IP
NPT_String policy = "<cross-domain-policy>";
policy += "<allow-access-from domain=\""+client_info.local_address.GetIpAddress().ToString()+"\" to-ports=\""+m_AuthorizedPorts+"\"/>";
policy += "<allow-access-from domain=\""+client_info.remote_address.GetIpAddress().ToString()+"\" to-ports=\""+m_AuthorizedPorts+"\"/>";
policy += "</cross-domain-policy>";
NPT_MemoryStream* mem_input = new NPT_MemoryStream();
mem_input->Write(policy.GetChars(), policy.GetLength());
NPT_InputStreamReference input(mem_input);
NPT_StreamToStreamCopy(*input, *output);
delete client;
} while (!m_Aborted);
}
示例8: while
/*----------------------------------------------------------------------
| NPT_String::Replace
+---------------------------------------------------------------------*/
const NPT_String&
NPT_String::Replace(char a, const char* str)
{
// check args
if (m_Chars == NULL || a == '\0' || str == NULL || str[0] == '\0') return *this;
// optimization
if (NPT_StringLength(str) == 1) return Replace(a, str[0]);
// we are going to create a new string
NPT_String dst;
char* src = m_Chars;
// reserve at least as much as input
dst.Reserve(GetLength());
// process the buffer
while (*src) {
if (*src == a) {
dst += str;
} else {
dst += *src;
}
src++;
}
Assign(dst.GetChars(), dst.GetLength());
return *this;
}
示例9: GetModuleHandle
/*----------------------------------------------------------------------
| NPT_Win32WindowMessageQueue
+---------------------------------------------------------------------*/
NPT_Win32WindowMessageQueue::NPT_Win32WindowMessageQueue()
{
// create a hidden window to process our incoming messages
WNDCLASS wclass;
// compute a unique class name
m_ClassName[0] = 'N';
m_ClassName[1] = 'P';
m_ClassName[2] = 'T';
m_ClassName[3] = 'H';
m_ClassName[4] = 'W';
NPT_String tid = NPT_String::FromInteger(GetCurrentThreadId());
for (unsigned int i=0; i<=tid.GetLength(); i++) {
m_ClassName[5+i] = tid.GetChars()[i];
}
// register a window class
wclass.style = 0;
wclass.lpfnWndProc = NPT_Win32WindowMessageQueue::WindowProcedure;
wclass.cbClsExtra = 0;
wclass.cbWndExtra = 0;
wclass.hInstance = GetModuleHandle(NULL);
wclass.hIcon = NULL;
wclass.hCursor = NULL;
wclass.hbrBackground = NULL;
wclass.lpszMenuName = NULL;
wclass.lpszClassName = m_ClassName;
// register the class and ignore any error because we might
// be registering the class more than once
RegisterClass(&wclass);
// create the hidden window
m_WindowHandle = CreateWindow(
wclass.lpszClassName, // pointer to registered class name
TEXT(""), // pointer to window name
0, // window style
0, // horizontal position of window
0, // vertical position of window
0, // window width
0, // window height
NULL, // handle to parent or owner window
NULL, // handle to menu or child-window identifier
wclass.hInstance, // handle to application instance
NULL);
// set a pointer to ourself as user data */
#if defined(_MSC_VER)
#pragma warning( push )
#pragma warning( disable: 4244) // we have to test for this because SetWindowLongPtr
// is incorrectly defined, so we'll get a C4244 warning
#endif // _MSC_VER
if (m_WindowHandle) {
SetWindowLongPtr(m_WindowHandle, GWLP_USERDATA, NPT_POINTER_TO_LONG(this));
}
#if defined(_MSC_VER)
#pragma warning( pop )
#endif // _MSC_VER
m_hInstance = wclass.hInstance;
}
示例10: GetConfigValue
/*----------------------------------------------------------------------
| NPT_LogManager::ConfigureLogger
+---------------------------------------------------------------------*/
NPT_Result
NPT_LogManager::ConfigureLogger(NPT_Logger* logger)
{
/* configure the level */
NPT_String* level_value = GetConfigValue(logger->m_Name,".level");
if (level_value) {
NPT_Int32 value;
/* try a symbolic name */
value = NPT_Log::GetLogLevel(*level_value);
if (value < 0) {
/* try a numeric value */
if (NPT_FAILED(level_value->ToInteger(value, false))) {
value = -1;
}
}
if (value >= 0) {
logger->m_Level = value;
logger->m_LevelIsInherited = false;
}
}
/* remove any existing handlers */
logger->DeleteHandlers();
/* configure the handlers */
NPT_String* handlers = GetConfigValue(logger->m_Name,".handlers");
if (handlers) {
const char* handlers_list = handlers->GetChars();
const char* cursor = handlers_list;
const char* name_start = handlers_list;
NPT_String handler_name;
NPT_LogHandler* handler;
for (;;) {
if (*cursor == '\0' || *cursor == ',') {
if (cursor != name_start) {
handler_name.Assign(name_start, (NPT_Size)(cursor-name_start));
handler_name.Trim(" \t");
/* create a handler */
if (NPT_SUCCEEDED(
NPT_LogHandler::Create(logger->m_Name, handler_name, handler))) {
logger->AddHandler(handler);
}
}
if (*cursor == '\0') break;
name_start = cursor+1;
}
++cursor;
}
}
/* configure the forwarding */
NPT_String* forward = GetConfigValue(logger->m_Name,".forward");
if (forward && !ConfigValueIsBooleanTrue(*forward)) {
logger->m_ForwardToParent = false;
}
return NPT_SUCCESS;
}
示例11: packet
/*----------------------------------------------------------------------
| UdpServerLoop
+---------------------------------------------------------------------*/
static void
UdpServerLoop(int port)
{
NPT_UdpSocket listener;
// info
if (Options.verbose) {
NPT_Debug("listening on port %d\n", port);
}
NPT_Result result = listener.Bind(NPT_SocketAddress(NPT_IpAddress::Any, port));
if (NPT_FAILED(result)) {
NPT_Debug("ERROR: Bind() failed (%d)\n", result);
}
// packet loop
NPT_DataBuffer packet(32768);
NPT_SocketAddress address;
do {
result = listener.Receive(packet, &address);
if (NPT_SUCCEEDED(result)) {
if (Options.verbose) {
NPT_String ip = address.GetIpAddress().ToString();
NPT_Debug("Received %d bytes from %s:%d\n", packet.GetDataSize(), ip.GetChars(), address.GetPort());
}
listener.Send(packet, &address);
}
} while (NPT_SUCCEEDED(result));
}
示例12:
/*----------------------------------------------------------------------
| NPT_String::NPT_String
+---------------------------------------------------------------------*/
NPT_String::NPT_String(const NPT_String& str)
{
if (str.GetLength() == 0) {
m_Chars = NULL;
} else {
m_Chars = Buffer::Create(str.GetChars(), str.GetLength());
}
}
示例13: buffer
/*----------------------------------------------------------------------
| NPT_LogUdpHandler::Log
+---------------------------------------------------------------------*/
void
NPT_LogUdpHandler::Log(const NPT_LogRecord& record)
{
// format the record
NPT_String msg;
NPT_LogTcpHandler::FormatRecord(record, msg);
// send it in a datagram
NPT_DataBuffer buffer(msg.GetChars(), msg.GetLength()+1, false);
m_Socket.Send(buffer, &m_Target);
}
示例14: NPT_HttpLoggerConfigurator
/*----------------------------------------------------------------------
| NPT_LogManager::ParseConfigSource
+---------------------------------------------------------------------*/
NPT_Result
NPT_LogManager::ParseConfigSource(NPT_String& source)
{
if (source.StartsWith("file:")) {
/* file source */
ParseConfigFile(source.GetChars()+5);
} else if (source.StartsWith("plist:")) {
/* property list source */
ParseConfig(source.GetChars()+6, source.GetLength()-6);
} else if (source.StartsWith("http:port=")) {
/* http configurator */
unsigned int port = 0;
NPT_Result result = NPT_ParseInteger(source.GetChars()+10, port, true);
if (NPT_FAILED(result)) return result;
new NPT_HttpLoggerConfigurator(port);
} else {
return NPT_ERROR_INVALID_SYNTAX;
}
return NPT_SUCCESS;
}
示例15: SendResponseBody
NPT_Result SendResponseBody(const NPT_HttpRequestContext& /*context*/,
NPT_HttpResponse& /*response*/,
NPT_OutputStream& output) {
NPT_HttpChunkedOutputStream chunker(output);
chunker.WriteString("<html><body>\r\n");
for (unsigned int i=0; i<30; i++) {
NPT_String line = "Line ";
line += NPT_String::FromInteger(i).GetChars();
chunker.WriteString(line.GetChars());
chunker.Flush();
NPT_System::Sleep(NPT_TimeInterval(0.2f));
}
chunker.WriteString("</body></html>\r\n");
return NPT_SUCCESS;
}