请会c++又会java的达人帮助一下,把c++的程序改成java,谢谢了

bjd14 2007-04-16 09:35:10
请会c++又会java的达人帮助一下,把c++的程序改成java,谢谢了,我不会c++……
各位帮帮忙吧

Floor.h文件中的

class FloorI:virtual public Floor

{

virtual bool Register(const string & name,const Current & context);

virtual void SetInput(const string & content,const Current & context);

virtual void Unregister(const Current & context);

virtual void SetupCallback(const CallBackPrx & prx,const Current & context);

CacheMap m_cache_map;

};

class CallBackI:virtual public CallBack

{

public:

virtual void GetInput(const string & content,const Current & context);

};



FloorI.CPP中的
bool FloorI::Register(const string & name,const Current & context)

{

if(m_cache_map.find(name)!=m_cache_map.end())

return 0;

else

m_cache_map[name];

return 1;

}

void FloorI::Unregister(const Current & context)

{

Context::const_iterator q=context.ctx.find("user_name");

if(q!=context.ctx.end())

{

CacheMap::iterator p;

if((p=m_cache_map.find(q->second))!=m_cache_map.end())

m_cache_map.erase(p);

}

}

void FloorI::SetupCallback(const CallBackPrx & prx,const Current & context)

{

Context::const_iterator p=context.ctx.find("user_name");

if(p!=context.ctx.end())

{

m_cache_map[p->second]=prx;

}

}

void FloorI::SetInput(const string & content,const Current & context)

{

Context::const_iterator q=context.ctx.find("user_name");

if(q!=context.ctx.end())

{

CacheMap::iterator p;

for(p=m_cache_map.begin();p!=m_cache_map.end();++p)

{

if(p->first!=q->second)

{

Context ctx;

ctx["user_name"]=q->second;

try

{

p->second->GetInput(content,ctx);

}

catch(ConnectionRefusedException e)

{

m_cache_map.erase(p);

cout<<" 挂了"<<endl;

}

catch(NullHandleException e)

{

m_cache_map.erase(p);

cout<<" 没有诚意"<<endl;

}

}

}

}

}



CALLBACK.CPP中的

void CallBackI::GetInput(const string & content,const Current & context)

{

Context::const_iterator q=context.ctx.find("user_name");

if(q!=context.ctx.end())

{

cout<<"["<<q->second<<" say]"<<content<<endl;

}

}

这是相关 ICE 的一个聊天程序,各位帮帮忙吧 谢谢了

...全文
266 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bjd14 2007-04-17
  • 打赏
  • 举报
回复
有没有相关讨论ice的论坛?

CacheMap m_cache_map;

CacheMap 好象是.ice文件中有这么一个定义dictionary<string,CallBack *> CacheMap;
proxiaobai 2007-04-16
  • 打赏
  • 举报
回复
java.util.Emu**也有相似的便利
adverse 2007-04-16
  • 打赏
  • 举报
回复
这个好象不是光改就行的java和c++有很多接口都是不一样的
oyd 2007-04-16
  • 打赏
  • 举报
回复
这种事情应该没人会帮你做吧,你有什么地方不懂可以直接问,

CacheMap 是一个由string 到 bool的映射类型
Current 应该是一个由string 映射到string的类型
映射又称map、字典等等。
至于iterator是用来遍历一个映射类型的。
常用法
XX::iterator i;
for (i = xx.begin(); i != xx.end() i++)
{
i->first;//这是映射的键
i->second;//这是映射的值
}
find方法返回一个iterator,如果找不到,就会返回一个和xx.end()同样的值。
jixingzhong 2007-04-16
  • 打赏
  • 举报
回复
有些多了 ~

楼主找一个 java 现成的不成么?
missilery 2007-04-16
  • 打赏
  • 举报
回复
public bool Register(String name,Current context)

{

if(m_cache_map.isEmpty())

return 0;

else

..?.//m_cache_map[name];

return 1;

}
missilery 2007-04-16
  • 打赏
  • 举报
回复
class FloorI implements Floor

{
public bool Register(String name, Current context);

public void SetInput(String content,Current context);

public void Unregister(Current context);

public void SetupCallback(CallBackPrx prx,Current context);

public CacheMap m_cache_map;

};

java中可是没有callback函数的

class CallBackI implements CallBack
{
public void GetInput(string content,Current context);
};
missilery 2007-04-16
  • 打赏
  • 举报
回复
c++ ----- java
map<t,t> java.util.Property

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧