cameo issueshttps://code.ill.fr/cameo/cameo/-/issues2020-10-09T07:43:13+02:00https://code.ill.fr/cameo/cameo/-/issues/79Windows compilation with CMake2020-10-09T07:43:13+02:00yannick legocWindows compilation with CMakeCMakehttps://code.ill.fr/cameo/cameo/-/issues/88Use delete on copy and assignment constructors2020-10-13T14:53:43+02:00yannick legocUse delete on copy and assignment constructorsTo provide more security on the classes.To provide more security on the classes.Mischttps://code.ill.fr/cameo/cameo/-/issues/63Thread-safety to be checked2020-02-14T08:27:26+01:00yannick legocThread-safety to be checkedCheck the classes: Server, etc. See if they can be thread-safe: unique_ptr is used to limit the risk of using in parallel.Check the classes: Server, etc. See if they can be thread-safe: unique_ptr is used to limit the risk of using in parallel.https://code.ill.fr/cameo/cameo/-/issues/135Synchronize the methods and functions in API2022-04-22T09:08:56+02:00yannick legocSynchronize the methods and functions in APIAlso use atomic values.Also use atomic values.https://code.ill.fr/cameo/cameo/-/issues/152Switch to version 3.0.02024-01-24T10:49:09+01:00yannick legocSwitch to version 3.0.0Next release to 3.0.0Next release to 3.0.0https://code.ill.fr/cameo/cameo/-/issues/143Subscriber can subscribe to many endpoints2022-10-25T17:01:02+02:00yannick legocSubscriber can subscribe to many endpointshttps://code.ill.fr/cameo/cameo/-/issues/126Stream optimization2022-02-11T09:39:17+01:00yannick legocStream optimizationCurrently the stream topic is applicationName:stream so that the subscriber client receives the messages from all the instances of the same application.
It is possible to use the topic applicationId:stream but it implies to:
- Separate t...Currently the stream topic is applicationName:stream so that the subscriber client receives the messages from all the instances of the same application.
It is possible to use the topic applicationId:stream but it implies to:
- Separate the start request into two requests: request start which gives a new id and then start with this id so that the client can sync with the publisher on topic id:stream before starting the app.https://code.ill.fr/cameo/cameo/-/issues/29States in objects2020-10-01T14:27:54+02:00yannick legocStates in objectsEach connected object must have a clear state.Each connected object must have a clear state.New version of APIshttps://code.ill.fr/cameo/cameo/-/issues/148Start cameo server from main program2023-09-22T09:13:25+02:00yannick legocStart cameo server from main programIn case the cameo server cannot be installed as service, it would be interested to attach to one process: started and stopped automatically.In case the cameo server cannot be installed as service, it would be interested to attach to one process: started and stopped automatically.https://code.ill.fr/cameo/cameo/-/issues/85Socket linger crash2020-10-10T10:48:38+02:00yannick legocSocket linger crash- Encountered on PN1
- Null pointer: timeout causes a reset (pointer becomes null) and then crash
Why is there no init after reset?
The O2 flag could be at the origin? No destructor called?
Tests on gamma36 without request->...- Encountered on PN1
- Null pointer: timeout causes a reset (pointer becomes null) and then crash
Why is there no init after reset?
The O2 flag could be at the origin? No destructor called?
Tests on gamma36 without request->connectToRequester() in DatabaseResponder: no problem (timeouts forced)
Some crashes happen by ConnectionTimeout in DatabaseResponder: ok, exception not caught.
Why then it does not happen when socket is null? Remove virtual ~
Try:
- Sleep at the end of Server() to see if the event thread has an influence.Bugs to be checkedhttps://code.ill.fr/cameo/cameo/-/issues/61Review unique_ptr vs shared_ptr2020-10-01T15:00:36+02:00yannick legocReview unique_ptr vs shared_ptrRequest::getServer() should return a shared_ptr because it can be called many times.Request::getServer() should return a shared_ptr because it can be called many times.New version of APIshttps://code.ill.fr/cameo/cameo/-/issues/92Review server code2020-11-02T10:26:25+01:00yannick legocReview server codeReview all the server code:
- Format the code
- Document the methods
- Document the request processReview all the server code:
- Format the code
- Document the methods
- Document the request processServer v1 update (2)https://code.ill.fr/cameo/cameo/-/issues/72Review LifecycleApplicationThread2020-10-01T21:54:35+02:00yannick legocReview LifecycleApplicationThreadDefine clearly the state graph with all the concepts:
- starting time
- etc.
The error state should only happen when the process returns an error code.Define clearly the state graph with all the concepts:
- starting time
- etc.
The error state should only happen when the process returns an error code.Mischttps://code.ill.fr/cameo/cameo/-/issues/137Review connectTo functions2022-07-13T09:27:09+02:00yannick legocReview connectTo functionsIt is possible to separate the Server creation from the connect:
- Request::createRequesterServer()
- Request::connectToRequester(server) with server previously created
So that it is possible to share the server.It is possible to separate the Server creation from the connect:
- Request::createRequesterServer()
- Request::connectToRequester(server) with server previously created
So that it is possible to share the server.https://code.ill.fr/cameo/cameo/-/issues/97Remove server instances from API2020-10-26T21:56:44+01:00yannick legocRemove server instances from APIThe server instances are not easy to manage and in fact not very important.
We can imagine that the server instances are a pool managed implicitly.
This would help to have only one server instance per server and solve the server inst...The server instances are not easy to manage and in fact not very important.
We can imagine that the server instances are a pool managed implicitly.
This would help to have only one server instance per server and solve the server instance problem for connectToRequester().
We could imagine:
```
App app(name, endpoint)
App app(id, endpoint)
app.start()
app.connect()
app.stop();
app.waitFor();
Apps apps(name, endpoint) => the set of App
apps.kill();
apps.waitFor();
for (App app in apps) { use of key values to discriminate }
```
Q: Is it still interesting to be able to wait for a non-terminal state? A state handler would be more convenient.
Q: However, what to do with a server that has no application instances anymore? Wait before terminating it (cf strategy for linked apps)New version of APIshttps://code.ill.fr/cameo/cameo/-/issues/154Prepare binaries for Windows2024-01-25T10:43:31+01:00yannick legocPrepare binaries for WindowsIncluding the proxy routersIncluding the proxy routershttps://code.ill.fr/cameo/cameo/-/issues/151Option values in API2024-01-24T10:48:28+01:00yannick legocOption values in APIHave a dedicated namespace i.e. cameo::options::UNLINKED, etc.Have a dedicated namespace i.e. cameo::options::UNLINKED, etc.https://code.ill.fr/cameo/cameo/-/issues/132Objects ZMQ management2022-03-03T11:07:15+01:00yannick legocObjects ZMQ managementIt is possible to automatically terminate created objects e.g. OutputStreamSocket, etc.It is possible to automatically terminate created objects e.g. OutputStreamSocket, etc.Mischttps://code.ill.fr/cameo/cameo/-/issues/150Multiple configuration files2023-11-08T16:01:10+01:00yannick legocMultiple configuration filesAdd the possibility to give multiple configuration files: a directory or a list of filesAdd the possibility to give multiple configuration files: a directory or a list of fileshttps://code.ill.fr/cameo/cameo/-/issues/130Merge init requests2022-02-28T10:37:34+01:00yannick legocMerge init requestsMerge Server API init requests: version, proxy ports, etc.Merge Server API init requests: version, proxy ports, etc.Misc