Ada_Ru форум

Обсуждение языка Ада

GNAT.sockets

Оставить новое сообщение

Сообщения

pkursovs
GNAT.sockets
2004-03-29 11:30:15
Возможно ли в Ada с помощью сокетов пересылать объекты? (подозреваю, 
что можно, но незнаю как правильно). А объекты вида stack или 
iterator? Может есть к-л примеры?
Vadim Godunko
Re: [ada_ru] GNAT.sockets
2004-03-29 11:54:48
pkursovs wrote:
> Возможно ли в Ada с помощью сокетов пересылать объекты? (подозреваю, 
> что можно, но незнаю как правильно). А объекты вида stack или 
> iterator? Может есть к-л примеры?
> 
Стандарт языка работу с сокетами не определяет. :)

Но если представить сокет как поток, то переопределяяя при необходимости 
атрибуты 'Read, 'Write, 'Input, 'Output можно передавить любой объект.


-- 
Vadim Godunko
Vadim Godunko
Re: [ada_ru] GNAT.sockets
2004-03-29 11:54:58
pkursovs wrote:
> Возможно ли в Ada с помощью сокетов пересылать объекты? (подозреваю, 
> что можно, но незнаю как правильно). А объекты вида stack или 
> iterator? Может есть к-л примеры?
> 
Стандарт языка работу с сокетами не определяет. :)

Но если представить сокет как поток, то переопределяя при необходимости 
атрибуты 'Read, 'Write, 'Input, 'Output можно передавить любой объект.


-- 
Vadim Godunko
Dmitriy Anisimkov
Re: [ada_ru] GNAT.sockets
2004-03-29 12:21:31
pkursovs wrote:

>>Возможно ли в Ada с помощью сокетов пересылать объекты? (подозреваю, 
>>что можно, но незнаю как правильно). А объекты вида stack или 
>>iterator? Может есть к-л примеры?
>>    
>>
Я бы порекомендовал не передавать объекты по сокету "как есть".
Думаю лучше передавать данные содержащиеся в сложных объектах пользуясь
форматом XML. Можно поверх HTTP.

Или воспользоваться протоколами удаленного вызова процедур, либо 
встроенным в Ада,
Annex E (normative): Distributed Systems
(реализация для GNAT называется GLADE.)

Или COBRA, реализации для Ада тоже есть (не помню где).
Или есть реализация SOAP протокола в AWS (Ada Web Server)
Vadim Godunko
Re: [ada_ru] GNAT.sockets
2004-03-29 12:39:11
Dmitriy Anisimkov wrote:

> Или воспользоваться протоколами удаленного вызова процедур, либо 
> встроенным в Ада,
> Annex E (normative): Distributed Systems
> (реализация для GNAT называется GLADE.)
> 
> Или COBRA, реализации для Ада тоже есть (не помню где).
http:\\libre.act-europe.fr\polyorb

;)

> Или есть реализация SOAP протокола в AWS (Ada Web Server)
>
Там же.


-- 
Vadim Godunko
Vadim Godunko
Re: [ada_ru] GNAT.sockets
2004-03-29 12:42:22
Vasiliy Fofanov wrote:
>>Стандарт языка работу с сокетами не определяет. :)
> 
> 
> В стандарте 0Y будет :)
> 
oops... А какой AI?


-- 
Vadim Godunko
Vasiliy Fofanov
Re: [ada_ru] GNAT.sockets
2004-03-29 12:43:49
> Стандарт языка работу с сокетами не определяет. :)

В стандарте 0Y будет :)
Vasiliy Fofanov
Re: [ada_ru] GNAT.sockets
2004-03-29 12:52:10
> oops... А какой AI?

Пока не утверждено, но прототип предложено разработать именно нам, поэтому
есть основания думать что он будет аналогичен GNAT.Sockets.
Vadim Godunko
Re: [ada_ru] GNAT.sockets
2004-03-29 13:17:03
Vasiliy Fofanov wrote:
>>oops... А какой AI?
> 
> 
> Пока не утверждено, но прототип предложено разработать именно нам, поэтому
> есть основания думать что он будет аналогичен GNAT.Sockets.
> 
Тогда не забудьте, пожалуйста, придумать интерфейс для рассматриваемого 
случая.


-- 
Vadim Godunko
pkursovs
Re: GNAT.sockets
2004-03-29 13:22:51
--- In [email protected], Vadim Godunko <vgodunko@r...> wrote:
> pkursovs wrote:
> > ÷ÏÚÍÏÖÎÏ ÌÉ × Ada Ó ÐÏÍÏÝØÀ ÓÏËÅÔÏ× ÐÅÒÅÓÙÌÁÔØ ÏÂßÅËÔÙ? 
(ÐÏÄÏÚÒÅ×ÁÀ, 
> > ÞÔÏ ÍÏÖÎÏ, ÎÏ ÎÅÚÎÁÀ ËÁË ÐÒÁ×ÉÌØÎÏ). á ÏÂßÅËÔÙ ×ÉÄÁ stack ÉÌÉ 
> > iterator? íÏÖÅÔ ÅÓÔØ Ë-Ì ÐÒÉÍÅÒÙ?
> > 
> óÔÁÎÄÁÒÔ ÑÚÙËÁ ÒÁÂÏÔÕ Ó ÓÏËÅÔÁÍÉ ÎÅ ÏÐÒÅÄÅÌÑÅÔ. :)
> 
> îÏ ÅÓÌÉ ÐÒÅÄÓÔÁ×ÉÔØ ÓÏËÅÔ ËÁË ÐÏÔÏË, ÔÏ ÐÅÒÅÏÐÒÅÄÅÌÑÑÑ ÐÒÉ 
ÎÅÏÂÈÏÄÉÍÏÓÔÉ 
> ÁÔÒÉÂÕÔÙ 'Read, 'Write, 'Input, 'Output ÍÏÖÎÏ ÐÅÒÅÄÁ×ÉÔØ ÌÀÂÏÊ 
ÏÂßÅËÔ.
> 
> 
> -- 
> Vadim Godunko

þÔÏ Ñ ÂÅÚÕÓÐÅÛÎÏ É ÐÙÔÁÀÓØ ÓÄÅÌÁÔØ. ÷ ËÌÁÓÓÅ ÏÐÒÅÄÅÌÑÀ Ä×Á ÍÅÔÏÄÁ 
Write É Read, ÔÁË ËÁË ÜÔÏ ÏÐÉÓÁÎÏ ÚÄÅÓØ http://www.ada-ru.org/V-0.
3w/part_1/ch_11.html#s11.3 É ÐÏÓÙÌÁÀ ÏÂßÅËÔ × ÐÏÔÏË

...
Channel := Stream (Socket);
...
Empl:=New_Employee(1, name);
Cemployee'Write(Channel, Empl);
...

îÏ ÎÁ ÄÒÕÇÏÍ ËÏÎÃÅ ÎÉÞÅÇÏ ÎÉ ÞÉÔÁÅÔÓÑ
...
Empl : Cemployee;..
Channel := Stream (Socket);
...
Cemployee'Read(Channel,  Empl);

Why ?!















 
pkursovs
Re: GNAT.sockets
2004-03-29 13:34:24
> äÕÍÁÀ ÌÕÞÛÅ ÐÅÒÅÄÁ×ÁÔØ ÄÁÎÎÙÅ ÓÏÄÅÒÖÁÝÉÅÓÑ × ÓÌÏÖÎÙÈ ÏÂßÅËÔÁÈ 
ÐÏÌØÚÕÑÓØ
> ÆÏÒÍÁÔÏÍ XML. íÏÖÎÏ ÐÏ×ÅÒÈ HTTP.

åÓÔØ ÞÔÏ ÐÏÞÉÔÁÔØ ÎÁ ÜÔÕ ÔÅÍÕ? (ÐÒÉÍÅÎÉÔÅÌØÎÏ Ë áÄÅ)

> éÌÉ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ ÐÒÏÔÏËÏÌÁÍÉ ÕÄÁÌÅÎÎÏÇÏ ×ÙÚÏ×Á ÐÒÏÃÅÄÕÒ, ÌÉÂÏ 

á ÞÔÏ, × Ada É ÔÁËÏÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ. äÁÊÔÅ ÉÎÆÕ ÐÏÖÁÌÕÊÓÔÁ. 
Vadim Godunko
Re: [ada_ru] Re: GNAT.sockets
2004-03-29 13:55:47
pkursovs wrote:
> 
> Что я безуспешно и пытаюсь сделать. В классе определяю два метода 
> Write и Read, так как это описано здесь http://www.ada-ru.org/V-0.
> 3w/part_1/ch_11.html#s11.3 и посылаю объект в поток
> 
Выглядеть это должно где-то так:

    type A is ...

    procedure Read ...
    procedure Write ...

    for A'Read use Read;
    for A'Write use Write;

А ещё лучше вышли свои исходники, дабы не гадать в чём дело.


-- 
Vadim Godunko
Vadim Godunko
Re: [ada_ru] Re: GNAT.sockets
2004-03-29 13:57:33
pkursovs wrote:
> 
>>Или воспользоваться протоколами удаленного вызова процедур, либо 
> 
> 
> А что, в Ada и такое поддерживается. Дайте инфу пожалуйста. 
> 
RM95 Annex E Distributed Systems

Применительно к GNAT-3.15p см. GLADE-3.15p.


-- 
Vadim Godunko
Vasiliy Fofanov
Re: [ada_ru] GNAT.sockets
2004-03-29 16:23:30
> Тогда не забудьте, пожалуйста, придумать интерфейс для рассматриваемого
> случая.

Ну я в рабочей группе участия не принимаю, если что нужно - давай сам
лоббируй :)
pkursovs
Re: GNAT.sockets
2004-03-30 08:04:59
--- In [email protected], Vadim Godunko <vgodunko@r...> wrote:
> pkursovs wrote:
> > 
> > þÔÏ Ñ ÂÅÚÕÓÐÅÛÎÏ É ÐÙÔÁÀÓØ ÓÄÅÌÁÔØ. ÷ ËÌÁÓÓÅ ÏÐÒÅÄÅÌÑÀ Ä×Á ÍÅÔÏÄÁ 
> > Write É Read, ÔÁË ËÁË ÜÔÏ ÏÐÉÓÁÎÏ ÚÄÅÓØ http://www.ada-ru.org/V-0.
> > 3w/part_1/ch_11.html#s11.3 É ÐÏÓÙÌÁÀ ÏÂßÅËÔ × ÐÏÔÏË
> > 
> ÷ÙÇÌÑÄÅÔØ ÜÔÏ ÄÏÌÖÎÏ ÇÄÅ-ÔÏ ÔÁË:
> 
>     type A is ...
> 
>     procedure Read ...
>     procedure Write ...
> 
>     for A'Read use Read;
>     for A'Write use Write;
> 
> á ÅÝ£ ÌÕÞÛÅ ×ÙÛÌÉ Ó×ÏÉ ÉÓÈÏÄÎÉËÉ, ÄÁÂÙ ÎÅ ÇÁÄÁÔØ × Þ£Í ÄÅÌÏ.
> 
> 

äÁÊÔÅ ÁÄÒÅÓÓ, ÐÏÖÁÌÕÊÓÔÁ.
Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти