小编Dan*_*oof的帖子

boost::asio::ip::tcp::resolver::resolve() 永远阻塞

我正在尝试创建与boost.asio 示例中的此代码类似的内容。

套接字.h:

class some_class {
private:
    ...
        boost::asio::io_service io_service;
public:
        some_class() {
             /* This stuff isn't used in the example...
               ...but it doesn't change anything... */
             io_service.run();
        }
};
Run Code Online (Sandbox Code Playgroud)

套接字.cpp:

using boost::asio::ip::tcp;

bool some_class::connect(char* host, char* port) 
{
    printf("Resolving hostname...\n");

    /* Resolve hostname. */
    tcp::resolver resolver(io_service);
    tcp::resolver::query query(tcp::v4(), host, port);
    tcp::resolver::iterator iterator = resolver.resolve(query);

    printf("Connecting to %s:%s... ", host, port);

    /* Connect to resolved hosts. */
    sock->connect(*iterator);

    return true;
}
Run Code Online (Sandbox Code Playgroud)

g++ 构建它没有任何错误,但代码从未使它通过 resolver.resolve() 调用。
我已经为主机尝试了“127.0.0.1”和“localhost”,为端口尝试了“80”。(不要认为它应该重要,但是 apache2 已启动并正在运行) …

c++ boost g++ boost-asio resolver

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

Solr多个方面的日期

根据关于方面Apache Solr文档,我可以使用键,因为:'当使用不同的排除项多次在同一个字段上进行分面时,这可能会有所帮助.

我需要它们,因为我希望有一个方面给我"最后一天","上周","上个月"选项.

但是,当我使用以下选项设置查询时:

http://URL/select?
...unrelated...
facet=true&
facet.date={!key=some_key}created&
f.some_key.facet.date.start=NOW/DAY-1DAY&
f.some_key.facet.date.end=NOW/DAY&
f.some_key.facet.date.gap=NOW/DAY+1DAY
...unrelated...
Run Code Online (Sandbox Code Playgroud)

Solr抱怨:

[exception] => org.apache.solr.common.SolrException:缺少必需参数:f.created.facet.date.start(或默认值:facet.date.start)

当我设置facet.date.start或f.created.facet.date.start时,它们将覆盖我的some_key(开始/结束/间隙)的字段,这是无用的,因为我需要多个键...任何人都可以点我在这方向的正确方向?由于我使用的库的限制,这需要在单个查询中完成.

solr faceted-search

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

Magento,定制产品清单

我根据Mage_Catalog_Block_Product_List创建了自己的产品列表页面:

应用程序/代码/本地/法师/目录/座/产品/ Special.php:

class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_List
{      
    /* Original contents */

    /* Here I call addAttributeToFilter on product collection, and then... */
    return $this->_productCollection; 
}
Run Code Online (Sandbox Code Playgroud)

我将其包含在中心列的CMS页面中:

<reference name="content">
    <block type="catalog/product_special" template="catalog/product/list.phtml" />
</reference>
Run Code Online (Sandbox Code Playgroud)

问题是:产品列表显示正常,但我的左栏没有分层导航.

这很奇怪,因为我使用与普通列表完全相同的模板.

我检查了几件事:

  • Mage_Catalog_Block_Product_Special只是一个代理类.这不起作用.即使我在CMS页面上使用块类型"catalog/product_list",我也不会获得分层导航.
  • 没有任何扩展可以覆盖关键的核心类.
  • 我也尝试创建自己的模块并将其列在例如'mycatalog'下.这导致完全相同的问题.

我有一种感觉,这与尝试在CMS页面上包含产品列表有关,但我无法找到确切的问题.

任何有关这方面的帮助将非常感谢.

php magento faceted-search layered-navigation

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

memset没有填充数组

 u32 iterations = 5;
 u32* ecx = (u32*)malloc(sizeof(u32) * iterations);

 memset(ecx, 0xBAADF00D, sizeof(u32) * iterations);
 printf("%.8X\n", ecx[0]);

 ecx[0] = 0xBAADF00D;
 printf("%.8X\n", ecx[0]);

 free(ecx);
Run Code Online (Sandbox Code Playgroud)

非常简单地说,为什么我的输出如下?

0D0D0D0D
BAADF00D
Run Code Online (Sandbox Code Playgroud)

ps:u32是unsigned int的简单typedef

编辑:

  • 用gcc 4.3.4编译
  • string.h包含在内

c memset

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

如何在mod_rewrite规则中保留现有查询字符串

我正在尝试从以下位置重写网址:

http://domain.com/aa/whatever/whatever.php

http://domain.com/whatever/whatever.php?language=aa

但是,根据现有的$ _GET变量,它必须是?language或&language.

为此,我使用带有[L]标志的2个正则表达式:

RewriteRule ^([a-z]{2})/(.*\.php\?.*) /$2&language=$1 [L]
RewriteRule ^([a-z]{2})/(.*) /$2?language=$1 [L]
Run Code Online (Sandbox Code Playgroud)

第二个按预期工作......然而,第一个没有被击中(它落到第二个正则表达式,确实命中),即使Regex Coach确实告诉我它应该.

编辑:

如果只是读到我需要使用两个反斜杠来逃避问号.如果我这样做,它确实击中了第一个正则表达式但从未找到其他GET变量.

regex .htaccess mod-rewrite

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

具有通用/模板化变量的STL容器

我只想做以下事情:

template <typename T>
class gvar {
private:
    T var;
public:
    gvar(T var) : var(var) {}
};

std::stack<gvar> some_stack;
Run Code Online (Sandbox Code Playgroud)

g ++吐出了关于gvar不是一个类型的各种错误.这可以通过一些相对简单的方式实现吗?我不想使用boost :: any/boost :: variant.

编辑:

澄清我想要的东西:

一个std :: stack,可以保存不同类型的变量(只是原语很好).

c++ generics variables stack templates

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

Socket.IO的原始'this'上下文

我在原型类中包装了(客户端)socket.io:

Chat.Client = Class.create();

Chat.Client.prototype = {

    initialize: function() {
        ...
        this.socket.on('message', this.on_message);
        ...
    },

    on_message: function(data) {
        this.add_chat_message(data.something);
    }

    do_something: function(something) {
        ...
    }
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为on_message中的'this'将是'SocketNamespace'.传统上我会通过将'this'作为附加参数传递给回调来解决这个问题,但因为我使用的是socket.io,所以我不能简单地这样做.

我怎么解决这个问题?

javascript prototype socket.io

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

JNI - GetObjectField返回NULL

我目前正在研究Mangler的 Android实现.

我有一个看起来像这样的java类:

public class VentriloEventData {
 public short type;
 public class _pcm {
  public int   length;
     public short  send_type;
     public int  rate;
     public byte  channels;
 };
 _pcm pcm;
}
Run Code Online (Sandbox Code Playgroud)

我的pcm对象的签名:

$ javap -s -p VentriloEventData
...
org.mangler.VentriloEventData$_pcm pcm;
  Signature: Lorg/mangler/VentriloEventData$_pcm;
Run Code Online (Sandbox Code Playgroud)

我正在实现一个名为getevent的本机JNI函数,它将写入VentriloEventData类实例中的字段.对于它的价值,它是用Java定义和调用的,如下所示:

public static native int getevent(VentriloEventData data);
VentriloEventData data = new VentriloEventData();
getevent(data);
Run Code Online (Sandbox Code Playgroud)

我的JNI实现了getevent:

JNIEXPORT jint JNICALL Java_org_mangler_VentriloInterface_getevent(JNIEnv* env, jobject obj, jobject eventdata) {
 v3_event *ev = v3_get_event(V3_BLOCK);
 if(ev != NULL) {
  jclass event_class = (*env)->GetObjectClass(env, eventdata);

  // …
Run Code Online (Sandbox Code Playgroud)

java java-native-interface android

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

当未达到 EOF 时 feof() 返回 true

我正在尝试从特定偏移量的文件中读取(简化版本):

typedef unsigned char u8;
FILE *data_fp = fopen("C:\\some_file.dat", "r");
fseek(data_fp, 0x004d0a68, SEEK_SET); // move filepointer to offset
u8 *data = new u8[0x3F0];
fread(data, 0x3F0, 1, data_fp);
delete[] data;
fclose(data_fp);
Run Code Online (Sandbox Code Playgroud)

问题是,数据不会包含 1008 个字节,而是 529 个字节(看起来是随机的)。当达到 529 字节时,对 feof(data_fp) 的调用将开始返回 true。

我也尝试过读取较小的块(一次 8 个字节),但它看起来就像是在尚未到达 EOF 时那样。

在十六进制编辑器中简单查看一下就会发现还剩下很多字节

c++ fopen feof

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

IOCP,跨平台库?

我最近在Windows平台上碰到了一个名为IOCP的东西,更精确:输入/输出控制端口.当需要同时容纳数千个用户时,这似乎是服务器软件进行编码最有效方式.(如果我错了,请纠正我,但每个套接字,轮询和异步回调(每个回调上的线程)都不够高效.)

我想知道是否有任何第三方库可以实现这个概念.我知道win32 api为我们提供了CreateIoCompletionPort,FreeBSD有kqueue和linux一般可以使用/ dev/epoll,它的工作方式有点类似......但是不存在处理这些东西的跨平台库(如boost :: thread)为了我?

c++ iocp

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

通过迭代器访问另一个向量内的向量元素?

std::vector< std::vector<coords> >::iterator iter;
for(iter = characters.begin(); iter != characters.end(); iter++) 
{
    std::vector<coords>* cha = iter; // doesn't work.
}

// does work.
std::vector<coords>* character = &characters.at(0);
coords* first = &character->at(0);
Run Code Online (Sandbox Code Playgroud)

我不明白为什么.它不应该是一个指向它的容器应该"包含"的类型元素的指针吗?

有谁愿意阐明这一点?

通过不起作用我的意思是:

error C2440: 'initializing' : cannot convert from 'std::_Vector_iterator<_Ty,_Alloc>' to 'std::vector<_Ty> *'
Run Code Online (Sandbox Code Playgroud)

这对我来说没有多大意义.

c++ iterator vector elements

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

Java:没有接口实现?

今天我收到了邮件中的"Head First Design Patterns"一书.到目前为止相当有趣的东西,但我确实有一个关于它的内容的问题.

我没有Java/C#背景,我现在也不想跳到这些语言(我首先想要专注于C++).在本书中说java没有接口的实现......这意味着对于该接口的每次更改,您都必须修改实现该接口的所有子类.

这是如何在C++中完成的?我错过了什么?

c++ java design-patterns interface

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

模板化赋值运算符:有效的C++?

只是一个快速而简单的问题,但在任何文档中都找不到它.

template <class T>
T* Some_Class<T>::Some_Static_Variable = NULL;
Run Code Online (Sandbox Code Playgroud)

它用g ++编译,但我不确定这是否有效.是吗?

c++ static templates class variable-assignment

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