Ada_Ru форум

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

GNAT.sockets

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

Сообщения

pkursovs
GNAT.sockets
2004-03-29 11:30:15

Возможно ли в Ada с помощью сокетов пересылать объекты? (подозреваю, что можно, но незнаю как правильно). А объекты вида stack или

iterator? Может есть к-л примеры?

pkursovs wrote:

Возможно ли в Ada с помощью сокетов пересылать объекты? (подозреваю, что можно, но незнаю как правильно). А объекты вида stack или iterator? Может есть к-л примеры?

 

Стандарт языка работу с сокетами не определяет. :)

 

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

 

 

-- Vadim Godunko

pkursovs wrote:

Возможно ли в Ada с помощью сокетов пересылать объекты? (подозреваю, что можно, но незнаю как правильно). А объекты вида stack или iterator? Может есть к-л примеры?

 

Стандарт языка работу с сокетами не определяет. :)

 

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

 

 

-- Vadim Godunko

pkursovs wrote:

 

Возможно ли в Ada с помощью сокетов пересылать объекты? (подозреваю, что можно, но незнаю как правильно). А объекты вида stack или iterator? Может есть к-л примеры?

Я бы порекомендовал не передавать объекты по сокету "как есть".

Думаю лучше передавать данные содержащиеся в сложных объектах пользуясь

форматом XML. Можно поверх HTTP.

 

Или воспользоваться протоколами удаленного вызова процедур, либо встроенным в Ада,

Annex E (normative): Distributed Systems

(реализация для GNAT называется GLADE.)

 

Или COBRA, реализации для Ада тоже есть (не помню где).

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

Dmitriy Anisimkov wrote:

 

Или воспользоваться протоколами удаленного вызова процедур, либо встроенным в Ада,

Annex E (normative): Distributed Systems

(реализация для GNAT называется GLADE.)

 

Или COBRA, реализации для Ада тоже есть (не помню где).

http:\\libre.act-europe.fr\polyorb

 

;)

 

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

 

Там же.

 

 

-- Vadim Godunko

Vasiliy Fofanov wrote:

Стандарт языка работу с сокетами не определяет. :)

 

 

В стандарте 0Y будет :)

 

oops... А какой AI?

 

 

-- Vadim Godunko

Стандарт языка работу с сокетами не определяет. :)

 

В стандарте 0Y будет :)

oops... А какой AI?

 

Пока не утверждено, но прототип предложено разработать именно нам, поэтому есть основания думать что он будет аналогичен GNAT.Sockets.

Vasiliy Fofanov wrote:

oops... А какой AI?

 

 

Пока не утверждено, но прототип предложено разработать именно нам, поэтому

есть основания думать что он будет аналогичен GNAT.Sockets.

 

Тогда не забудьте, пожалуйста, придумать интерфейс для рассматриваемого случая.

 

 

-- Vadim Godunko

--- In ada_ru@yahoogroups.com, 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 ?!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

äÕÍÁÀ ÌÕÞÛÅ ÐÅÒÅÄÁ×ÁÔØ ÄÁÎÎÙÅ ÓÏÄÅÒÖÁÝÉÅÓÑ × ÓÌÏÖÎÙÈ ÏÂßÅËÔÁÈ

ÐÏÌØÚÕÑÓØ

ÆÏÒÍÁÔÏÍ XML. íÏÖÎÏ ÐÏ×ÅÒÈ HTTP.

 

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

 

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

 

á ÞÔÏ, × Ada É ÔÁËÏÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ. äÁÊÔÅ ÉÎÆÕ ÐÏÖÁÌÕÊÓÔÁ.

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

pkursovs wrote:

 

Или воспользоваться протоколами удаленного вызова процедур, либо

 

А что, в Ada и такое поддерживается. Дайте инфу пожалуйста.

RM95 Annex E Distributed Systems

 

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

 

 

-- Vadim Godunko

Тогда не забудьте, пожалуйста, придумать интерфейс для рассматриваемого случая.

 

Ну я в рабочей группе участия не принимаю, если что нужно - давай сам лоббируй :)

--- In ada_ru@yahoogroups.com, 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

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