Corba. Нужен urgent help!!!!
Есть 2 маленьких программ сервер и клиент.
Задача сервера:
послать клиенту список обектов
Задача клиента:
получать от сервера этот список и отоброжать значения полученных обьектов!!!
Немогу никак понять мою ошибку
Немогу никак понять мою ошибку.Тоесть когда я пытаюсь отоброжать значения определёного свойство обекта из полученого списка то возбуждаеться исключительная ситуация.
Ниже показан мой код:
My idl file:
//------------------------------------
module Proba
{
interface Persoana
{
void Init(in string n,in string p, in short v);
readonly attribute string name;
readonly attribute string surname;
readonly attribute short age;
};
typedef sequence<Persoana> list_of_persons;
interface Dialog
{
string getmsg(in string msg);
list_of_persons ShowFriends();
};
};
//-------------------------------------------------
My code where i implement c++ class for Dialog interface:
//----------------------------------
Proba::list_of_persons* DialogImpl::ShowFriends()
{
//----Here i define a new person ---------
PersoanaImpl p; p.Init("Sse","r",22);
/*----Here i create a new sequence where i'll store person created above */
Proba::list_of_persons_var list=new Proba::list_of_persons;
list->length(1);
p._add_ref();
CORBA::Object_var ref = _default_POA()->servant_to_reference(&p);
Proba::Persoana_ptr q = Proba::Persoana::_narrow(ref);
list[0]=Proba::Persoana::_duplicate(q);
list[0]->_this();
return Proba::list_of_persons::_duplicate(list);
}
//----------------------------------
Below is my client program code where i try to acces function described above.The code is:
//----------------------------------
CORBA::ORB_var orb = CORBA::ORB_init(__argc, __argv);
PortableServer::ObjectId_var managerId = PortableServer::string_to_ObjectId("DLGManager");
Proba::list_of_persons_var tmp;
Proba::Dialog_var Fdialog;
Proba::Persoana_var Fpersoana;
Fdialog=Proba::Dialog::_bind"/dlg_poa",managerId);
tmp = Fdialog->ShowFriends();
Fpersoana=(Proba::Persoana *)tmp[0];
/* Here is raised an exception when i try to access age property of my Fpersoana object*/
String age = IntToStr(Fpersoana->_this()->age());
//---------------------------------------------------------
If you know what or where is my mistake please send me
your solution.
Or if you don't understand my problem it would great if you send me a simple example how can i send a sequence to client application and how can i access a property of
object stored in sequence!!!!
Спасибо за внимание.