请会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 的一个聊天程序,各位帮帮忙吧 谢谢了