我正在为游戏实现一个事件系统.它使用事件队列和数据结构来保存给定事件类型的所有已注册事件处理程序.它到目前为止注册处理程序工作得很好,但是当取消注册它们时(例如,当游戏对象被销毁时会发生这种情况)我在模板和转换方面遇到了一些麻烦.
我已经将EventHandler定义为某种函子,部分基于Szymon Gatner在http://www.gamedev.net/reference/programming/features/effeventcpp/上的文章.确切地说,我使用了HandlerFunctionBase和MemberFunctionHandler类定义并提出了:
class BaseEventHandler
{
public:
virtual ~BaseEventHandler(){}
void handleEvent(const EventPtr evt)
{
invoke(evt);
}
private:
virtual void invoke(const EventPtr evt)=0;
};
template <class T, class TEvent>
class EventHandler: public BaseEventHandler
{
public:
typedef void (T::*TMemberFunction)(boost::shared_ptr<TEvent>);
typedef boost::shared_ptr<T> TPtr;
typedef boost::shared_ptr<TEvent> TEventPtr;
EventHandler(TPtr instance, TMemberFunction memFn) : mInstance(instance), mCallback(memFn) {}
void invoke(const EventPtr evt)
{
(mInstance.get()->*mCallback)(boost::dynamic_pointer_cast<TEvent>(evt));
}
TPtr getInstance() const{return mInstance;}
TMemberFunction getCallback() const{return mCallback;}
private:
TPtr mInstance;
TMemberFunction mCallback;
};
Run Code Online (Sandbox Code Playgroud)
然后我想到的EventManager类上的unregisterHandler()方法的初始实现将如下所示:
// EventHandlerPtr is a boost::shared_ptr<BaseEventHandler>. …
Run Code Online (Sandbox Code Playgroud) 我写了很多类似于下面代码的东西.它基本上根据某些条件切换元素.
在下面的组成示例中,条件是"如果agree
选中复选框且name
字段不为空".
$("button").click(function() {
if ($("#agree").is(":checked") && $("#name").val() != "" ) {
$("#mydiv").show();
} else {
$("#mydiv").hide();
}
});
Run Code Online (Sandbox Code Playgroud)
我希望有某种jQuery函数可以像这样工作.
$("button").click(function() {
var condition = $("#agree").is(":checked") && $("#name").val() != "" );
$("#mydiv").toggle(condition);
});
Run Code Online (Sandbox Code Playgroud)
那里有类似的东西吗?或者除了第一个例子之外还有其他方法以更少的if-else-ish
方式做到这一点吗?
我有一个相当大的webapp,我在Media Temple服务器上运行.我们最近决定将其移至Rackspace云.当我运行时get_memory_usage
,每页加载时我使用大约4mb的RAM.所以我想我有几个问题.
我正在为我的wordpress 2.9主题创建一个主题选项页面,我想要包含一个我可以上传不同徽标的字段.到目前为止,我已经添加了textareas,输入和复选框,但我不确定如何上传图像.有没有人知道一个解释如何做到这一点的教程,或者任何人都可以提供一些见解?
谢谢您的帮助.
以下查询在LastModifiedTime列的索引上使用索引搜索.
SELECT
CONVERT(varchar, a.ReadTime, 101) as ReadDate,
a.SubID,
a.PlantID,
a.Unit as UnitID,
a.SubAssembly
FROM dbo.Accepts a WITH (NOLOCK)
WHERE a.LastModifiedTime BETWEEN '3/3/2010' And '3/4/2010'
AND a.SubAssembly = '400'
Run Code Online (Sandbox Code Playgroud)
下面的查询与上述查询几乎完全相同,使用聚簇索引扫描,而不是LastModifiedTime上的索引.谁能告诉我为什么?而且,更重要的是,我可以做些什么来让SQL Server在LastModifiedTime列上使用索引,而不使用索引提示.
Declare @LastModifiedTimeEnd dateTime
Declare @LastModifiedTimeStart dateTime
SELECT
CONVERT(varchar, a.ReadTime, 101) as ReadDate,
a.SubID,
a.PlantID,
a.Unit as UnitID,
a.SubAssembly
FROM dbo.Accepts a WITH (NOLOCK)
WHERE a.LastModifiedTime BETWEEN @LastModifiedTimeStart And @LastModifiedTimeEnd
AND a.SubAssembly = '400'
Run Code Online (Sandbox Code Playgroud) 我是JPA的新手,我遇到了主键值自动生成的问题.
我有以下实体:
package jpatest.entities;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class MyEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
private String someProperty;
public String getSomeProperty() {
return someProperty;
}
public void setSomeProperty(String someProperty) {
this.someProperty = someProperty;
}
public MyEntity() {
}
public MyEntity(String someProperty) {
this.someProperty = …
Run Code Online (Sandbox Code Playgroud) 我有这个字符串: comment_1234
我想1234
从字符串中提取。我怎样才能做到这一点?
更新:我无法得到您的任何答案……我的代码有问题吗?警报永远不会被调用:
var nameValue = dojo.query('#Comments .Comment:last-child > a[name]').attr('name');
alert('name value: ' + nameValue); // comment_1234
var commentId = nameValue.split("_")[1];
// var commentId = nameValue.match(/\d+/)[0];
// var commentId = nameValue.match(/^comment_(\d+)/)[1];
alert('comment id: ' + commentId); //never gets called. Why?
Run Code Online (Sandbox Code Playgroud)
我发现了我的问题......出于某种原因,它看起来像一个字符串,但实际上并不是一个字符串,所以现在我正在转换nameValue
为一个字符串并且它正在工作。
var nameValue = dojo.query('#Comments .Comment:last-child > a[name]').attr('name'); //comment_1234
var string = String(nameValue); //cast nameValue as a string
var id = string.match(/^comment_(\d+)/)[1]; //1234
Run Code Online (Sandbox Code Playgroud) 在本地运行以下内容时,淡入非常平滑,但在远程服务器上,加载到目标div中的内容会立即隐藏,然后再次淡入.
为什么会发生这种情况,我该如何解决?
我的jQuery(在document.ready内部)看起来像这样:
$(".dataclick").click(function()
{
$('.clicktarget').hide().load($(this).attr("href")).fadeIn("slow");
return false;
});
Run Code Online (Sandbox Code Playgroud)
我的HTML看起来像这样:
<ul>
<li><a class="dataclick" href="/data/lameness.html">Lameness Investigations</a></li>
<li><a class="dataclick" href="/data/xrays.html">Xrays & Ultrasonography</a></li>
<li><a class="dataclick" href="/data/shockwave.html">Shockwave Therapy</a></li>
<li><a class="dataclick" href="/data/prepurchase.html">Pre-Purchase Examinations</a></li>
<li><a class="dataclick" href="/data/vettings.html">Vettings</a></li>
<li><a class="dataclick" href="/data/reproduction.html">AI & Full Reproductive Service</a></li>
<li><a class="dataclick" href="/data/endoscopy.html">Endoscopy</a></li>
<li><a class="dataclick" href="/data/acupuncture.html">Acupuncture</a></li>
<li><a class="dataclick" href="/data/dentistry.html">Full Dentistry Service</a></li>
<li><a class="dataclick" href="/data/castration.html">Castrations</a></li>
<li><a class="dataclick" href="/data/gastroscopy.html">Gastroscopy</a></li>
<li><a class="dataclick" href="/data/ridingschool.html">Riding School Inspection</a></li>
<li><a class="dataclick" href="/data/24hremergency.html">24hr Emergency Service</a></li>
</ul>
<p>For more information on each service please click the relevant title/link.</p>
</div>
<div class="clicktarget"> …
Run Code Online (Sandbox Code Playgroud) 我想在我的一个项目上做一些单元测试.这是一个Web项目,除了开发副本之外,只有一个程序副本.
我想写一些将使用的单元测试web.config
.我理解通常情况下,测试人员会将这种外部依赖关系存根,因为他希望在没有测试的情况下测试代码,具体取决于web.config
保持某些值.
但是,web.config
在我的项目中应该始终保持某些值,并且我希望单元测试如果设置为无效值则会失败.例如,其中一个值是SQL连接字符串.
我想编写一个测试来读取连接字符串web.config
.我设想测试可以连接到具有连接字符串的服务器,并且可能执行非常简单的命令SELECT system_user;
.如果命令成功执行并返回测试通过的内容.否则,它失败了.我希望从web.config
我正在测试的项目中读取连接字符串.
当然,ConfigurationManager
通常不会web.config
在另一个项目中寻找.我可以手动将web.config
原始项目复制到测试项目中,但在每次测试之前我都必须这样做,我无法指望其他任何人这样做.
如何让我的测试项目web.config
从另一个项目中读取?
在http://jaxb.java.net/上,它表示JAXB的双重许可证包含CDDL v1.0和GPL v2;
CDDL说:
那么,我不能在没有打开代码的情况下使用JAXB?
--update
"您分发的任何涵盖软件......";
1.3."涵盖软件"是指(a)原始软件,或(b)修改,或(c)包含原始软件的文件与包含修改的文件的组合,在每种情况下包括其中的部分. https://glassfish.dev.java.net/public/CDDL+GPL.html
我开发的软件不被视为"包含原始软件的文件与包含修改的文件的组合"?
javascript ×3
java ×2
jquery ×2
php ×2
asp.net ×1
c++ ×1
casting ×1
html ×1
jaxb ×1
jpa ×1
licensing ×1
regex ×1
sql-server ×1
templates ×1
themes ×1
toggle ×1
toplink ×1
unit-testing ×1
web-config ×1
web-testing ×1
wordpress ×1
xml ×1