@ProCxx

Страница 2030 из 2477
Igor
05.05.2018
16:13:08
3) boost

Oleg
05.05.2018
16:13:40
4) мобильное приложение

Хотя, там хидер-онли, емнип. МОжно было просто код взять

Igor
05.05.2018
16:13:54
5) самопальный optional 6) singleheader optional из интернетов, десяток их

Google
Xessao
05.05.2018
16:14:01
7) кумыс

Nik
05.05.2018
18:43:06
Есть имеющие опыт по resiprocate? Что происходит внутри SipStack::send(), отсылает ли он на самом деле сообщения или это очередная абстракция и нужно делать что-то еще? По докам непонятно (их почти нет). По коду сообщения просто по очередям гоняются, где доступ реальная работа с сокетами и отправка сообщений и есть ли она вообще - не пойму.

Nik
05.05.2018
19:03:39
я не пойму твой вопрос
Например SipStack stack; stack.addTransport(TCP, 5060); NameAddr from("<sip:foo@192.168.64.100>"); NameAddr to("<sip:foo@172.217.16.46>"); auto registerMessage = *Helper::makeRegister(from, to); stack.send(registerMessage); После выполнения этого кода действительно выполняется попытка отправки сообщения с моего 5060 тср порта на адрес указанный в request-uri/to ?

Потому что если да, то мне tcpdump говорит что ничего не отправляется и я не знаю в чем проблема

Oleg
05.05.2018
19:04:41
Посмотри пример, который я скинул

Nik
05.05.2018
19:09:32
Там пример отправки на уровне DUM, для отправки отдельного сообщения на уровне транзакции он разве обязателен? Или там что-то очевидное чего я не вижу/понимаю?

Radio
05.05.2018
19:13:49
мне надо такое: class A{ B b; } class B { A a; }
Если тебе такое надо, то имеет место хуевый дизайн. Линейкой по пальцам автору оного:)

Google
Anatoly
05.05.2018
19:24:09
мне надо такое: class A{ B b; } class B { A a; }
а ты в голове представляешь layout этих классов?

Oleg
05.05.2018
19:28:22
А тете что мало?
да, потому что я хотел избежать использования указателей для этих объектов. Мало-ли придумали какое-то решение для этого вопроса. Вот я и поинтересовался

Oleg
05.05.2018
19:30:44
У меня есть чемодан, полный всякого хлама. Туда я могу засунуть еще один чемодан. В этот чемодан я могу положить такой же чемодан, как и первый, но если он будет загружен в половину меньше

Ilia
05.05.2018
19:32:24
Такой же уже нет, не влезет...

Alex Фэils?︙
05.05.2018
19:32:33
можно попробовать std::optional

Anatoly
05.05.2018
19:33:10
можно попробовать std::optional
std::optional<T> выделяет статически sizeof(T)+1

Ilia
05.05.2018
19:33:21
Ты уже опоздал, предлагали

Alex Фэils?︙
05.05.2018
19:33:28
да, вроде было выше

Igor
05.05.2018
19:33:33
У меня есть чемодан, полный всякого хлама. Туда я могу засунуть еще один чемодан. В этот чемодан я могу положить такой же чемодан, как и первый, но если он будет загружен в половину меньше
это optional<Briefcase> или vector<Briefcase> из твоего же "в А есть Б, а в Б есть А" получается "в чемодане всегда есть сумка, а в сумке всегда есть чемодан"

Oleg
05.05.2018
19:33:54
но я про него не додумался. А когда мне подсказали - я уже половину переписал на указатели

Alex Фэils?︙
05.05.2018
19:34:16
в общем ,для такого юзкейса нужно отношение агрегации, а class A {class B b; }; - это отношение композиции

Igor
05.05.2018
19:35:12
но я про него не додумался. А когда мне подсказали - я уже половину переписал на указатели
переписывай обратно при случае, лучше раньше чем позже ;) https://github.com/martinmoene/optional-lite https://github.com/akrzemi1/Optional

Anatoly
05.05.2018
19:35:51
По семантике optional равносилен указателю.
но не по реализации, ему нужен полный тип

Oleg
05.05.2018
19:36:52
Я думаю, что в этом случае нет особого смысла переписывать на optional. Тем более еще и свой optional придется писать(взять готовый)

Ilia
05.05.2018
19:36:54
Если бы тебе подошёл optional, подошёл бы и указатель

Google
Igor
05.05.2018
19:37:50
взять готовый != писать свой, особенно когда готовый уже поимел много звёзд на гитхабе и публикаций на реддите

Ilia
05.05.2018
19:38:03
Я думаю, что в этом случае нет особого смысла переписывать на optional. Тем более еще и свой optional придется писать(взять готовый)
Я думаю что ты просто напросто не осознаешь до конца, что ты хочешь . Просто если бы ты осознавал, ты бы этого не хотел

Oleg
05.05.2018
19:38:38
По логике мне не сильно важно использовать там optional или указатель

Igor
05.05.2018
19:38:45
other people's code is beautiful, not always in quality, but in terms that it is already there and covers things you might forgot in hurry (c)

Oleg
05.05.2018
19:38:51
Даже более того - мне это вообще все равно

Хм, а как optional расчитывает sizeof, если там рекурсия получается и sizeof не расчитать же?

Anatoly
05.05.2018
19:40:32
Oleg
05.05.2018
19:40:56
ааа, я просто немного не уловил суть вашего разговора.

Alex Фэils?︙
05.05.2018
19:41:19
std::optional<T> выделяет статически sizeof(T)+1
хм, мб через него попробовать сделать Stack pimpl...

Anatoly
05.05.2018
19:41:45
Alex Фэils?︙
05.05.2018
19:42:16
ага, ок, понял

Ilia
05.05.2018
19:42:34
Ну, самое главное, идея не ясна

Ilia
05.05.2018
19:42:53
Такого просто быть не может

Igor
05.05.2018
19:42:57
так об этом и толковали всем, предлагавшим optional
к слову, sizeof+1 на стеке - это ведь и в бусте и в стд так? помню что принятые в стандарт куски буста отличаются от своей бустовой реализации, но плохо помню в чём

Ilia
05.05.2018
19:43:50
В чемодан нельзя положить другой такой же чемодан

Oleg
05.05.2018
19:44:24
Такого просто быть не может
ну смотри. У меня есть объект Book. У него может быть объект Review(а может и не быть). Есть объект Review - у него всегда есть объект Book, но этот Book всегда меньше по количеству полей, чем первый объект Book. Можно было ввести еще один ShortBook, но это была бы ебала.

Igor
05.05.2018
19:44:35
В чемодан нельзя положить другой такой же чемодан
если у чемодана есть 3DSize габариты - то условно можно)

Oleg
05.05.2018
19:45:15
Вот я думал, что может придумали какой-нибудь воркэраунд для такого, что-то типа: Review { Book b:15байт }

Google
Ilia
05.05.2018
19:48:10
Вот я думал, что может придумали какой-нибудь воркэраунд для такого, что-то типа: Review { Book b:15байт }
Это ты упёрся рогом в чистый воздух перед собой, а не воркэроунд нужен.

Агрегация не то что тебе нужно

Oleg
05.05.2018
19:56:16
Агрегация не то что тебе нужно
мне она больше всего подходит, потому что в таком виде приходят данные, а эти данные не нужны на длительном временном отрезке.

Ilia
05.05.2018
19:59:05
ну смотри. У меня есть объект Book. У него может быть объект Review(а может и не быть). Есть объект Review - у него всегда есть объект Book, но этот Book всегда меньше по количеству полей, чем первый объект Book. Можно было ввести еще один ShortBook, но это была бы ебала.
Книга не является частью рецензии на книгу, также как и рецензия не является составной частью книги (если только это не встроенная в книгу рецензия, но это должен был бы быть уже женой класс рецензии) При этом, заметь, ни одна, ни другая связи никак не влияют на время жизни этих объектов, они не управляют объектами.

Oleg
05.05.2018
19:59:26
Учитывая контекст - еще как являются

Но рецензия без книги - не нужна. А вот Книга без рецензии - обычное дело

Admin
ERROR: S client not available

Ilia
05.05.2018
20:00:01
Книга может быть без рецензии? Может.

Ilia
05.05.2018
20:01:01
Рецензия без книги? Не может. Но книга не является частью рецензии поскольку на одну книгу может быть несколько рецензий

Oleg
05.05.2018
20:01:28
Книга ее может содержать или нет, но если есть рецензия - то всегда на определенную книгу

Я вообще не понимаю, что мы тут обсуждаем

Ilia
05.05.2018
20:03:05
Твою предметную область

Ты её явно неверно понимаешь

нет, рецензия будет только одна - моя.
Почему нельзя написать вторую?

Oleg
05.05.2018
20:04:17
Нет, я ее верно понимаю, потому что мне ее такой отдают. Мне нет никакой необходимости городить ненужные конструкции, когда у меня уже есть готовый сформированный тип

Почему нельзя написать вторую?
потому что я пишу мобильное приложение для сервиса. Там ты не можешь написать более одной рецензии на книгу.

Google
Oleg
05.05.2018
20:05:39
Alex Фэils?︙
05.05.2018
20:05:49
тип есть юзер, у него есть рецензии

Oleg
05.05.2018
20:05:54
точнее могут, но я не могу получить чужую рецензию. Я получаю книгу и свою рецензию на ее

Alex Фэils?︙
05.05.2018
20:06:01
рецензии имеют в себе ID книги, текст

вот и реляционная модель данных прям на полочке получается

Oleg
05.05.2018
20:06:32
Это все круто, когда это надо хранить где-то

Alex Фэils?︙
05.05.2018
20:06:39
т.е. надо хранить не саму книгу, а ее идентификатор

Oleg
05.05.2018
20:06:41
тогда имеет смысл сложные связи строить

Alex Фэils?︙
05.05.2018
20:06:46
и надо просто сделать пул книжек, на которые есть рецензии

Oleg
05.05.2018
20:07:03
Но я не храню, по сути, ничего

запрос-ответ-показ-удаление

Alex Фэils?︙
05.05.2018
20:07:52
ну, тебе только метаинфу надо хранить тогда: Книги ID, название Рецензии ID книги, текст рецензии

Ilia
05.05.2018
20:08:00
Ладно удачи подумай ещё

Anatoly
05.05.2018
20:13:20
точнее могут, но я не могу получить чужую рецензию. Я получаю книгу и свою рецензию на ее
а это косяк в дизайне, рано или поздно другие заходят почитать не только свои рецензии

Oleg
05.05.2018
20:13:38
это не мне решать

Anatoly
05.05.2018
20:14:00
мало того, своя рецензия меня меньше всего интересует

Oleg
05.05.2018
20:14:11
ну, сириосли

Anatoly
05.05.2018
20:14:25
ладно, привет постановщику задачи

Страница 2030 из 2477