我希望我的代码在模拟器上运行时的运行方式与在设备上运行时的运行方式略有不同.(例如,使用10.0.2.2而不是公共URL自动针对开发服务器运行.)检测Android应用程序何时在模拟器中运行的最佳方法是什么?
我boost:shared_ptr
在我的代码中广泛使用.实际上,堆上分配的大多数对象都是由a保存的shared_ptr
.不幸的是,这意味着我无法传递this
任何需要的函数shared_ptr
.考虑以下代码:
void bar(boost::shared_ptr<Foo> pFoo)
{
...
}
void Foo::someFunction()
{
bar(this);
}
Run Code Online (Sandbox Code Playgroud)
这里有两个问题.首先,这不会编译,因为T*构造函数shared_ptr
是显式的.其次,如果我强制它构建,bar(boost::shared_ptr<Foo>(this))
我将创建第二个指向我的对象的共享指针,最终将导致双删除.
这让我想到了一个问题:是否有任何标准模式可以从其中一个对象的方法中获取您知道的现有共享指针的副本?使用侵入式引用计数是我唯一的选择吗?
我有一个HttpResponse对象用于我刚刚制作的Web请求.响应采用JSON格式,因此我需要解析它.我可以以荒谬复杂的方式做到这一点,但似乎必须有更好的方法.
这真的是我能做的最好的吗?
HttpResponse response; // some response object
Reader in = new BufferedReader(
new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuilder builder= new StringBuilder();
char[] buf = new char[1000];
int l = 0;
while (l >= 0) {
builder.append(buf, 0, l);
l = in.read(buf);
}
JSONTokener tokener = new JSONTokener( builder.toString() );
JSONArray finalResult = new JSONArray( tokener );
Run Code Online (Sandbox Code Playgroud)
我在Android上,如果这有任何区别.
我总是发现checkin(commit)邮件非常有用,可以跟踪其他人在代码库/存储库中的工作.如何设置SVN以在每次提交时通过电子邮件发送通讯组列表?
我在Windows上运行客户端,在Linux上运行Apache Subversion服务器.以下针对各种平台的答案可能对其他人有用.
我试图使用boost :: asio从串口上的设备读取和写入.当没有任何东西要读时,boost :: asio:read()和boost :: asio :: serial_port :: read_some()都会阻塞.相反,我想检测这种情况并向端口写一个命令以启动设备.
如何检测到没有可用数据?
如果有必要,我可以异步地做所有事情,如果可以的话,我宁愿避免额外的复杂性.
我正在使用SetCursor将系统光标设置为我自己的图像.代码看起来像这样:
// member on some class
HCURSOR _cursor;
// at init time
_cursor = LoadCursorFromFile("somefilename.cur");
// in some function
SetCursor(_cursor);
Run Code Online (Sandbox Code Playgroud)
当我这样做时,光标确实会改变,但在第一个鼠标移动消息时,它会变回默认的系统箭头光标.这是项目中设置光标的唯一代码.我需要做什么才能使光标保持原样?
我有一个AppEngine应用程序,它使用blobstore存储用户提供的图像数据.当我从Chrome中的表单上传图像到该应用程序时,它工作正常.当我尝试从Android应用程序上传图像时,它会失败.如果我在开发服务器上运行,这两种方法都可以正常工作,但Android上传对现场服务不起作用.
这是Chrome的请求:
POST /_ah/upload/?userToken=11001/AMmfu6ZCyMQQ9YdiXal3SmSXIRTQIuSRXkNc-i3JmU0fqx_kJbUJ2OMLcS2lXhVJSK4qs7regViTKzOPz5ejoZYi0nAD5o8vNltiOViQw6DZO7_byZz3Ut0/ALBNUaYAAAAAS_lusgPMAGmpPrg0BuNsJyymX-57ob4i/ HTTP/1.1
Host: photohuntservice.appspot.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1064 Safari/532.5
Referer: http://photohuntservice.appspot.com/debug_newpuzzle?userToken=11001
Content-Length: 60360
Cache-Control: max-age=0
Origin: http://photohuntservice.appspot.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarybl05YLmLbFRf2MzN
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
------WebKitFormBoundarybl05YLmLbFRf2MzN
Content-Disposition: form-data; name="userToken"
11001
------WebKitFormBoundarybl05YLmLbFRf2MzN
Content-Disposition: form-data; name="img"; filename="Photo_020908_001.jpg"
Content-Type: image/jpeg
<image data>
------WebKitFormBoundarybl05YLmLbFRf2MzN
Content-Disposition: form-data; name="longitude"
-122.084095
------WebKitFormBoundarybl05YLmLbFRf2MzN
Content-Disposition: form-data; name="latitude"
37.422006
------WebKitFormBoundarybl05YLmLbFRf2MzN--
Run Code Online (Sandbox Code Playgroud)
这是我的客户端的请求(在Android上用Java编写,但我不认为这是相关的):
POST /_ah/upload/?userToken=11001/AMmfu6Zf9an6AU4lT9UuhIpxOZyOYb1LMwimFpeSh8zr6J1sX9F2ddJW3Qlsw0kwV3oALv-TNPWRQ6g4_Dgwk0UTwF47bbc78Yl44kDeV69MydTuR3N46S4/ALBNUaYAAAAAS_mMr3CYqTg3aVBDjhRxP0DyyRdvotyG/ HTTP/1.1
Content-Type: multipart/form-data;boundary=----WebKitFormBoundaryhdyNAhmOouRDGErG
Cache-Control: max-age=0
Accept: */*
Origin: http://photohuntservice.appspot.com
Connection: …
Run Code Online (Sandbox Code Playgroud) 我希望在我的开发环境中运行查询时,index.yaml文件会使用必要的索引进行更新.它声称它正在dev服务器日志中更新此文件,但该文件实际上并未更改.知道可能会发生什么吗?
这是整个index.yaml文件:
indexes:
# AUTOGENERATED
# This index.yaml is automatically updated whenever the dev_appserver
# detects that a new type of query is run. If you want to manage the
# index.yaml file manually, remove the above marker line (the line
# saying "# AUTOGENERATED"). If you want to manage some indexes
# manually, move them above the marker line. The index.yaml file is
# automatically uploaded to the admin console when you next deploy
# your application using appcfg.py. …
Run Code Online (Sandbox Code Playgroud) 我有一个串行 (COM) 端口的文件句柄。我需要立即读取可用的任何数据,而不是等待发送其他数据。
如何确定有多少数据可用?我可以打电话SetCommMask(myHandle, EV_RXCHAR)
,然后等待一个事件来告诉我一些数据可用,但这不会告诉我现在可以在不阻塞的情况下读取多少数据。
目前,我正在使用 CreateFile() 和重叠 I/O 来执行读取,因此它们是异步的,但它们仍然会等到缓冲区填满后报告 I/O 已完成。
android ×2
boost ×2
serial-port ×2
windows ×2
boost-asio ×1
c++ ×1
hook ×1
java ×1
json ×1
post-commit ×1
python ×1
svn ×1
yaml ×1