Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • May 15 23:22

    lganzzzo on enforce_standard_compliance_on_msvc

    (compare)

  • May 15 23:22

    lganzzzo on v1.3.0

    Fix #324 (#395) * Attempt to p… Add hints and advice to the thr… Merge pull request #396 from ba… and 28 more (compare)

  • May 15 23:22
    lganzzzo closed #430
  • May 15 12:19
    azure-pipelines[bot] commented #424
  • May 15 12:19
    MHaselmaier commented #424
  • May 15 12:02
    MHaselmaier synchronize #424
  • May 15 10:30
    MHaselmaier synchronize #424
  • May 15 10:13
    MHaselmaier synchronize #424
  • May 15 09:29
    lganzzzo commented #430
  • May 15 09:23
    MHaselmaier commented #430
  • May 15 09:21
    MHaselmaier edited #430
  • May 15 09:05
    lganzzzo commented #430
  • May 15 09:02
    MHaselmaier commented #430
  • May 15 09:00
    lganzzzo commented #430
  • May 15 08:00
    MHaselmaier opened #430
  • May 15 07:59

    MHaselmaier on enforce_standard_compliance_on_msvc

    Added /permissive- flag on MSVC… (compare)

  • May 15 01:03
    azure-pipelines[bot] commented #424
  • May 15 01:03
    lganzzzo commented #424
  • May 14 18:49
    MHaselmaier synchronize #424
  • May 14 18:39
    MHaselmaier synchronize #424
Bob Tolbert
@rwtolbert
@oatpp_io_twitter Looks good. I put in a small PR for warnings from Clang on Mac
I'm now looking at warnings on Windows. They are almost all conversion warnings, for example:
oatpp::String BufferOutputStream::toString() {
  return oatpp::String((const char*)m_data, m_position, true);
}
m_position is v_io_size (ie v_int64) but the String ctor takes a v_int32
not sure a simple cast to silence the warning is a good idea, for example
oat++
@oatpp_io_twitter
@rwtolbert , yes, I was actually thinking of moving String size to v_int64
Bob Tolbert
@rwtolbert
makes sense
Bob Tolbert
@rwtolbert
a number of the other warnings can be fixed but require careful thought as well, not just casts. I will make a PR and you can have a look
oat++
@oatpp_io_twitter
Sounds great!
Bob Tolbert
@rwtolbert
i might do it in a few pieces, since there are a couple of classes of these. Do you want me to also make the String ctor to v_int64 change in this PR?
oat++
@oatpp_io_twitter

Do you want me to also make the String ctor to v_int64 change in this PR?

Yes, it would be cool!
Also, there are some pleases where explicit casts were applied to silent warnings... those should be deleted as well.
Unfortunately, I don't remember where exactly :)

It would be great to move all classed that use buffers to v_int64. Like MemoryLabel for example.

So I guess we can make it step-by-step. Because once you move String yo int64 to silence one bunch of warnings - others will pop up :))

... just like with any refactoring :))

oat++
@oatpp_io_twitter

@/all ,
Update :bell:

Oat++ version was increased to 0.19.10, and the new release tag is added.
Please find the release with changes made in October here 0.19.10

Release summary

  • ApiController. Add router prefix.
  • Introduce LazyStringMap to store headers and query parameters.
  • Introduce ConnectionPool. You may find usage example here. Used to increase performance and, in order to prevent ephemeral ports exhaustion on the client during high load.
  • Refactor. Rename ADDCORS --> ADD_CORS macro.
  • Optimization. Use BufferOutputStream in RequestHeadersReader.
  • Fix thread sanitizer warnings. - Special thanks to @rwtolbert !
  • Fix some compiler warnings.

Cheers :tada:
Leonid

Hey @ke9 , please find the oatpp/oatpp#149 I've added to track the progress on vcpkg support.
oat++
@oatpp_io_twitter
@/all - one more update. FYI - I started to work on oatpp/oatpp#150 - support for retires in RequestExecutor for ApiClient.
pooya
@pouyapanahandeh
Hi, I have some basic questions, the most important one is: how we can create the project, is it like Django, has any command line to create a project or not? I check the website but couldn't find anything, it would be great if someone explains it to me.
oat++
@oatpp_io_twitter
Hello @pouyapanahandeh , please checkout the starter project https://github.com/oatpp/oatpp-starter
This is a basic project with hello world endpoint
All you need is install oatpp. Checkout the starter and modify it to your needs
Please let me know if you have more questions
pooya
@pouyapanahandeh
@oatpp_io_twitter thanks for your help,
For example in Django we have the following command to create a project:
django-admin startproject mysite
How we can create the project with oatpp, I checked the link but I didn't get it well. you mean we have to clone the repo and use it as a starter project or it's an example of how the project looks like in oatpp?
oat++
@oatpp_io_twitter
Yes, you are right - just clone the stater and modify it to your needs.
Currently there is no oatpp-admin like in django. But it is a good idea to have one in future
@pouyapanahandeh
Starter is just a boilerplate precreated for you to start easier
pooya
@pouyapanahandeh
now I got it, one more question, do you have any doc how to set up the web app that written in oatpp on AWS or Azure?
oat++
@oatpp_io_twitter
Yes, there is no specific env setup for clouds. You can find some info here https://oatpp.io/docs/installation/unix-linux/
Basically you have to install c++ compiler and oatpp
Build your app and its done
However there might be some additional things depending on the OS you choose
pooya
@pouyapanahandeh
I got it, Thanks a lot for your help and time
oat++
@oatpp_io_twitter
Just text me if you face any problems. It would be helpfull for the project to know all the potential issues
pooya
@pouyapanahandeh
Sure, I will
Panda805
@Panda805
Hi ,there.
Can you tell me your por in detail?
oat++
@oatpp_io_twitter
Hello @Panda805 ,
Please specify what exactly you want to know?
I'll be happy to share the info
Marco Leclerc
@ke9
hi, anyone familiar with oatpp-consul?
oat++
@oatpp_io_twitter
Hello @ke9 what do you need a help with ?
Marco Leclerc
@ke9
hi, wondering if the deserializer in the Client class should allow unknown fields instead of not allowing them
new fields added to an API would break "older" DTO code
I'm working on adding support for sessions in the Client
Marco Leclerc
@ke9
oat++
@oatpp_io_twitter

@ke9 ,

I think that you are right. It is better to have allowUnknownFields == true for better compatibility with Consul API.

RES
@madkote
hello here, is there a recommendation which async redis client can be used (or better fits into) in aot++ framework?
and a usage example would be also very helpful... Thanks in advance!
oat++
@oatpp_io_twitter

Hello @madkote ,

I don't have any direct recommendations, but there are some points to consider:

  • If you are using oatpp Simple API - then it should be very easy to use any Redis client, and the process of integration should be straight forward.
  • If you are using oatpp Async API - then things become more complicated because, in oatpp-coroutines, you have to user oatpp-coroutines based API. It also depends on what kind of Redis API you are planning to use...
    • Redis Key-Value - you'll need to do additional synchronization code. All Redis read/write should be done in the separate thread, and coroutine should wait asynchronously for the result from that thread.
    • Pub/Sub - should be comparably easy to implement. You publish from a separate thread. If there is a message for subscriber, you spawn new oatpp-coroutine to handle that message.

Something like that...
Please let me know if you have more questions.

RES
@madkote
@oatpp_io_twitter thx for reply.
Simple API is clear. regarding async - I would like to avoid running redis commands in threads, therfore my question if there is any recommendation for native async redis lib.
I will look around.. thx
MJLHThomassen-Sorama
@MJLHThomassen-Sorama
Hello, i have a question regarding DTO's and inheritance.
I have 2 DTO's, one "Base" and one that inherits from this. As i udnerstand it, i need to pass the class name that gets inherited from to DTO_EXTENDS like this
DTO_INIT(ChildDto, BaseDto)
instead of
DTO_INIT(ChildDto, Object)