读书人

请会c++又会java的达人帮助一下把c+

发布时间: 2012-03-14 12:01:12 作者: rapoo

请会c++又会java的达人帮助一下,把c++的程序改成java,谢谢了
请会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 的一个聊天程序,各位帮帮忙吧 谢谢了



[解决办法]
有些多了 ~

楼主找一个 java 现成的不成么?
[解决办法]
这种事情应该没人会帮你做吧,你有什么地方不懂可以直接问,

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()同样的值。
[解决办法]
java.util.Emu**也有相似的便利
[解决办法]
c++ ----- java
map <t,t> java.util.Property
[解决办法]
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);
};
[解决办法]
public bool Register(String name,Current context)

{

if(m_cache_map.isEmpty())

return 0;

else

..?.//m_cache_map[name];

return 1;

}

读书人网 >C++

热点推荐