小编rah*_*hul的帖子

ACE vs Boost vs POCO

我已经使用Boost C++库很长一段时间了.我非常喜欢用于网络编程的Boost Asio C++库.然而,我被介绍到另外两个库:POCO自适应通信环境(ACE)框架.我想知道每个人的好坏.

c++ boost ace poco-libraries

91
推荐指数
7
解决办法
6万
查看次数

在Play 2.0中无法理解Iteratee,Enumerator,Enumeratee

我刚刚开始学习Play 2.0 Framework.我无法理解的一件事是游戏教程中描述的Iteratee,Enumerator和Enumeratee模式.我对函数式语言的经验很少.

这种模式有什么作用?

它如何帮助我编写非阻塞/反应代码?

一些简单的例子会有帮助.

scala playframework iterate playframework-2.0

26
推荐指数
1
解决办法
7060
查看次数

在clang中矢量化一个函数

我正在尝试使用clang根据此clang参考向量化以下函数.它需要一个字节数组的向量,并根据此RFC应用掩码.

static void apply_mask(vector<uint8_t> &payload, uint8_t (&masking_key)[4]) {
  #pragma clang loop vectorize(enable) interleave(enable)
  for (size_t i = 0; i < payload.size(); i++) {
    payload[i] = payload[i] ^ masking_key[i % 4];
  }
}
Run Code Online (Sandbox Code Playgroud)

以下标志传递给clang:

-O3
-Rpass=loop-vectorize
-Rpass-analysis=loop-vectorize
Run Code Online (Sandbox Code Playgroud)

但是,矢量化失败并出现以下错误:

WebSocket.cpp:5:
WebSocket.h:14:
In file included from boost/asio/io_service.hpp:767:
In file included from boost/asio/impl/io_service.hpp:19:
In file included from boost/asio/detail/service_registry.hpp:143:
In file included from boost/asio/detail/impl/service_registry.ipp:19:
c++/v1/vector:1498:18: remark: loop not vectorized: could not determine number
      of loop iterations [-Rpass-analysis]
    return this->__begin_[__n];
                 ^
c++/v1/vector:1498:18: …
Run Code Online (Sandbox Code Playgroud)

c++ vector simd clang++

11
推荐指数
1
解决办法
2948
查看次数

什么是List [String~Int]?

在浏览play框架的scala文档(Play Docs)时,我看到了一种我从未见过的语法.

val populations:List[String~Int] = {
  SQL("select * from Country").as( str("name") ~ int("population") * ) 
}
Run Code Online (Sandbox Code Playgroud)

可能有人请告诉我这是什么"〜"List[String~Int]意思吗?

scala playframework playframework-2.0

8
推荐指数
1
解决办法
1041
查看次数

有条件地连接到数据库

要访问数据库,必须在conf文件中指定数据库详细信息.

如果数据库已启动,一切正常.

如果数据库关闭,Play会抛出一个我无法控制的异常.

我想有条件地连接到数据库.让我们说如果在某处设置了标志,我只想连接到数据库.是否有更多手动方式连接到Play中的数据库?

更新:我想我还不是很清楚.

如果数据库关闭并从其他备用源获取数据,我希望应用程序不会失败.我怎样才能在PLAY中完成这个任务?

scala playframework playframework-2.0

6
推荐指数
1
解决办法
303
查看次数

Google帐户所需的可同步功能

我正在查看JumpNotes的代码,有一件事我无法理解. JumpNotes:AccountList.java

public static final String[] GOOGLE_ACCOUNT_REQUIRED_SYNCABILITY_FEATURES =
        new String[]{ "service_ah" };
Run Code Online (Sandbox Code Playgroud)

这用于获取谷歌帐户,如下所示:

mAccountManager.getAccountsByTypeAndFeatures(SyncAdapter.GOOGLE_ACCOUNT_TYPE,
            SyncAdapter.GOOGLE_ACCOUNT_REQUIRED_SYNCABILITY_FEATURES,
Run Code Online (Sandbox Code Playgroud)

这个功能是什么"service_ah"?这是什么意思?有什么方法可以获得Android上谷歌帐户的身份验证服务的来源吗?

android google-authentication google-account android-syncadapter

5
推荐指数
1
解决办法
366
查看次数

如何从ansible_env获取sudoed用户的主目录?

当我作为用户sudo时,ansible_env没有正确的HOME变量集 - "/ root".但是,如果我回显HOME env变量,它是正确的 - "/ var/lib/pgsql".有没有其他方法来获得sudo'ed用户的主目录?

另外,我已经在ansible.cfg中设置了"sudo_flags = -H",我无法以postgres用户身份登录.

- name: ansible_env->HOME
  sudo: yes
  sudo_user: postgres
  debug: msg="{{ ansible_env.HOME }}"

- name: echo $HOME
  sudo: yes
  sudo_user: postgres
  shell: "echo $HOME"
  register: postgres_homedir

- name: postgres_homedir.stdout
  sudo: yes
  sudo_user: postgres
  debug: msg="{{ postgres_homedir.stdout }}"
Run Code Online (Sandbox Code Playgroud)

结果:

TASK: [PostgreSQL | ansible_env->HOME] **************************************** 
ok: [postgres] => {
    "msg": "/root"
}

TASK: [PostgreSQL | echo $HOME] *********************************************** 
changed: [postgres]

TASK: [PostgreSQL | postgres_homedir.stdout] ********************************** 
ok: [postgres] …
Run Code Online (Sandbox Code Playgroud)

ansible

5
推荐指数
1
解决办法
5128
查看次数

提升 ASIO 和线程之间的消息传递

我正在设计一个接收消息并将其保存到嵌入式数据库websocket服务器。为了阅读我正在使用的消息boost asio。要将消息保存到嵌入式数据库,我会在我面前看到几个选项:

  1. 一旦我在同一线程上收到消息,就同步保存它们。
  2. 在单独的线程上异步保存消息。

我很确定第二个答案是我想要的。但是,我不确定如何将消息从套接字线程传递到 IO 线程。我看到以下选项:

  1. 每个线程使用一个 io 服务,并使用post 函数在线程之间进行通信。这里我要担心锁争用。我是不是该?
  2. 使用 Linux 域套接字在线程之间传递消息。据我所知,没有锁争用。在这里我可能可以使用 BOOST_ASIO_DISABLE_THREADS 宏来获得一些性能提升。

此外,我相信拥有多个 IO 线程会有所帮助,这些线程将以循环方式接收消息以保存到嵌入式数据库。

哪种架构的性能最好?除了我提到的那些,还有其他选择吗?

需要注意的几点:

  • 消息的长度正好是 8 个字节
  • 不能使用外部数据库。数据库必须嵌入到正在运行的进程中。
  • 我正在考虑使用RocksDB作为嵌入式数据库。

c++ sockets multithreading boost

5
推荐指数
1
解决办法
2731
查看次数

使用boost spirit将字符串转换为int

我听说精神在将字符串转换为int时非常快.

但是我无法创建一个可以这样做的简单函数.就像是

int string_to_int(string&s){/*?????*/}

任何人都可以使用提升精神来填补这个功能.

顺便说一句,我正在使用boost 1.34而不是最新版本.

c++ boost-spirit

3
推荐指数
1
解决办法
2659
查看次数

无需在Android中打开手机应用即可拨打USSD号码

我试图从我的应用程序中调用USSD号码,如下所示:

Uri u = Uri.fromParts("tel", "*110#", "");
Intent i = new Intent(Intent.ACTION_CALL, u);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

这使手机应用程序启动并拨打该号码.

我想要的是在不打开手机应用程序的情况下拨打USSD号码,或者在后台打开它.

如果用户正在做某事,那么他不应该被打扰.只能生成通知.

有什么建议?

android ussd

2
推荐指数
2
解决办法
3079
查看次数

存在外键时违反外键约束

我是PostgreSQL和数据库的新手,并且试图弄清楚为什么即使存在外键时也会收到外键冲突。

我跑的查询

insert into analytics_url_redirect
(source, news_item_id, access_date)
select 'n',id,CURRENT_TIMESTAMP from entry_entry_master
where id=43068778;
Run Code Online (Sandbox Code Playgroud)

这失败了

ERROR: insert or update on table "analytics_url_redirect" violates foreign key constraint "news_item_id_refs_id_15ddd78c"
SQL state: 23503
Detail: Key (news_item_id)=(43068778) is not present in table "entry_entry_master".
Run Code Online (Sandbox Code Playgroud)

以下选择查询也可以正常工作并返回43068778:

select id  from entry_entry_master where id=43068778;
Run Code Online (Sandbox Code Playgroud)

整个create table命令-django sqlall的输出是

BEGIN;
CREATE TABLE "analytics_url_redirect" (
    "id" serial NOT NULL PRIMARY KEY,
    "newsletter_id" integer REFERENCES "nlc_newsletter" ("newslettercore_ptr_id") DEFERRABLE INITIALLY DEFERRED,
    "alert_id" integer REFERENCES "alerts_emailtracker" ("id") DEFERRABLE INITIALLY DEFERRED,
    "source" varchar(1) NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql foreign-key-relationship

1
推荐指数
1
解决办法
1793
查看次数