小编los*_*iuk的帖子

具有类型参数的Guice模块

我花了一些时间想知道是否可以编写一个guice模块,它本身是用类型T参数化的,并使用它的类型参数来指定绑定.

就像在这个(不工作)的例子中一样:

interface A<T> {} 
class AImpl<T> implements A<T>{} 
interface B<T> {} 
class BImpl<T> implements B<T> {} 

class MyModule<T> extends AbstractModule { 
    @Override 
    protected void configure() { 
        bind(new TypeLiteral<A<T>>(){}).to(new TypeLiteral<AImpl<T>>(){});
        bind(new TypeLiteral<B<T>>(){}).to(new TypeLiteral<BImpl<T>>(){}); 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的方法,尝试将T传递给MyModule作为Class/TypeLiteral的实例,但它们都没有工作.帮助赞赏.

此致,ŁukaszOsipiuk

java generics guice

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

仅使用boost :: asio basic_stream_socket :: async_read_some处理程序中的部分数据

我是boost :: asio的新手,所以我的问题可能是愚蠢的 - 抱歉,如果是这样的话.我正在使用keepalive编写异步服务器应用程序(可以在单个连接上发送多个请求).

连接处理程序很简单:

在循环中:

  • 使用socket-> async_read_some(buffer,handler)调度读取请求

  • 来自处理程序计划使用async_write写入响应.

我面临的问题是当 传递给async_read_some的处理程序io_service线程调用时,缓冲区实际上可能包含的数据多于单个请求(例如客户端发送的下一个请求的一部分).

我不想(并且不能,如果它只是请求的一部分)此时处理剩余的字节.处理完之前的请求后我想这样做.

如果我有可能将不必要的重新映射数据重新插入套接字,那么很容易解决这个问题.所以它在下一次async_read_some调用时处理.

boost :: asio中是否存在这样的可能性,或者我是否必须将剩余的数据存储在一边,并使用额外的代码自行处理.

c++ boost boost-asio

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

标签 统计

boost ×1

boost-asio ×1

c++ ×1

generics ×1

guice ×1

java ×1