cameo issueshttps://code.ill.fr/cameo/cameo/-/issues2022-04-22T10:38:48+02:00https://code.ill.fr/cameo/cameo/-/issues/109Default values in server config file2022-04-22T10:38:48+02:00yannick legocDefault values in server config fileDefault values not set with the "default" string but by the absence of the attribute.Default values not set with the "default" string but by the absence of the attribute.https://code.ill.fr/cameo/cameo/-/issues/89Define future C++ and Java API class names in Python API2021-03-25T11:18:46+01:00yannick legocDefine future C++ and Java API class names in Python APIAs Python API is not used yet, we can already define the future names, i.e. App instead of Instance.
We need to fix the names.As Python API is not used yet, we can already define the future names, i.e. App instead of Instance.
We need to fix the names.Python APIhttps://code.ill.fr/cameo/cameo/-/issues/26Define more than one Requester on the same Responder in one instance2017-09-01T10:41:38+02:00yannick legocDefine more than one Requester on the same Responder in one instanceThe Cameo API is limited to the definition of a single Requester for a given Responder.
We can modify the API to enable to have multiple requesters:
RequesterImpl.getRequesterPortName() must have another implementation:
return REQUESTER...The Cameo API is limited to the definition of a single Requester for a given Responder.
We can modify the API to enable to have multiple requesters:
RequesterImpl.getRequesterPortName() must have another implementation:
return REQUESTER_PREFIX + name + "." + responderId + "." + requesterCounter;
With requesterCounter a static integer incremented by concurrent access.
To be implemented in Java and C++.https://code.ill.fr/cameo/cameo/-/issues/113Directory reorganization2022-01-20T16:44:35+01:00yannick legocDirectory reorganization```
cameo/java/server
/api
/console
/cpp/api
/coms
/python/api
...
``````
cameo/java/server
/api
/console
/cpp/api
/coms
/python/api
...
```Mischttps://code.ill.fr/cameo/cameo/-/issues/18Display stream with multiple=yes2020-10-13T14:42:42+02:00yannick legocDisplay stream with multiple=yesImplement multiple stream for multiple applications:
- The cameo server accepts and starts a stream thread.
- The clients must filter the stream message on the application id.
For instance, the class OutputPrintThread.Implement multiple stream for multiple applications:
- The cameo server accepts and starts a stream thread.
- The clients must filter the stream message on the application id.
For instance, the class OutputPrintThread.Server v1 update (1)https://code.ill.fr/cameo/cameo/-/issues/139Finer logs not logged with finest level2022-08-16T17:18:19+02:00yannick legocFiner logs not logged with finest levelhttps://code.ill.fr/cameo/cameo/-/issues/13Fixed publisher port2020-10-01T14:11:08+02:00yannick legocFixed publisher portIt can be interesting to fix the socket port for a publisher so that subscribers are still valid after the termination of the publisher e.g. after unintended crash.
Is it possible? How to ensure the port won't be used by a tier program?
...It can be interesting to fix the socket port for a publisher so that subscribers are still valid after the termination of the publisher e.g. after unintended crash.
Is it possible? How to ensure the port won't be used by a tier program?
We can add a flag:
```xml
<application ...>
<publisher name=""/>
```
Reserves fixed ports in case the application is single instance.https://code.ill.fr/cameo/cameo/-/issues/44Gather name and id to unify syntax in console2020-10-01T14:52:06+02:00yannick legocGather name and id to unify syntax in consoleAllow
```
$ cmo stop ns.1
```Allow
```
$ cmo stop ns.1
```https://code.ill.fr/cameo/cameo/-/issues/35Implement blocking and non blocking responder2020-10-01T14:42:32+02:00yannick legocImplement blocking and non blocking responderCurrent implementation of the responder is non blocking.Current implementation of the responder is non blocking.https://code.ill.fr/cameo/cameo/-/issues/8Implement the Python client API2021-03-25T11:19:48+01:00yannick legocImplement the Python client APILots of scientific users program with Python. Provide a client API can help the integration of the Python scientific software.
- [ ] update w.r.t. most up to date version of the C++ APILots of scientific users program with Python. Provide a client API can help the integration of the Python scientific software.
- [ ] update w.r.t. most up to date version of the C++ APIPython APIShervin NourbakhshShervin Nourbakhsh2020-10-09https://code.ill.fr/cameo/cameo/-/issues/111Implement toString() for all Python classes2022-04-19T11:40:49+02:00yannick legocImplement toString() for all Python classeshttps://code.ill.fr/cameo/cameo/-/issues/90Improve list output in Console2020-10-14T07:54:55+02:00yannick legocImprove list output in ConsoleList command: how to display long names: display until the max length.
Apps: idem: display name until the max length. Add the args.List command: how to display long names: display until the max length.
Apps: idem: display name until the max length. Add the args.Console updatehttps://code.ill.fr/cameo/cameo/-/issues/71Java API impl2022-03-01T15:45:12+01:00yannick legocJava API implReview the implementation classes.
How to manage dependencies:
Request.connectToRequester
depends on InstanceReview the implementation classes.
How to manage dependencies:
Request.connectToRequester
depends on InstanceJava API code reviewhttps://code.ill.fr/cameo/cameo/-/issues/27Keep app in the list with state UNKNOWN2020-10-01T14:26:03+02:00yannick legocKeep app in the list with state UNKNOWNWe keep the app with state UNKNOWN if it is still alive but has not a running state.
For instance, when an app is terminating but the process is still alive.We keep the app with state UNKNOWN if it is still alive but has not a running state.
For instance, when an app is terminating but the process is still alive.https://code.ill.fr/cameo/cameo/-/issues/117Launch server with multiple config files2022-01-18T15:48:56+01:00yannick legocLaunch server with multiple config filesAdd the possibility to provide a list of config files rather than only one.
The endpoint port is the one of the first config file.Add the possibility to provide a list of config files rather than only one.
The endpoint port is the one of the first config file.Server v1 update (2)https://code.ill.fr/cameo/cameo/-/issues/7Linked apps2023-11-03T10:45:42+01:00yannick legocLinked appsAdd the option *LINKED* to start() to the client APIs.
This implies:
- When the app is terminated, the stop request is sent to each linked app (not kill).
A new function is added to the API: connectLinkedApps() : list of Instance
So th...Add the option *LINKED* to start() to the client APIs.
This implies:
- When the app is terminated, the stop request is sent to each linked app (not kill).
A new function is added to the API: connectLinkedApps() : list of Instance
So that a special stop can be made on the linked apps with the stop handler.
The link mechanism can be implemented:
- App sa: the starter
- App la: the linked app
- Server of the starter: ss
- Server of the linked app: ls
Solution:
- The linked attribute is passed to ls.
- An event thread listening to ls is started in ss if it is not already started.
- The event thread must be synchronized.
- When ls receives notification of a terminal state for sa, then la is stopped.
- The event thread has a timeout: when there is no activity on a linked app, the thread terminates.Server v1 update (2)https://code.ill.fr/cameo/cameo/-/issues/33Log messages in cameo.log : level in config2020-10-06T14:20:53+02:00yannick legocLog messages in cameo.log : level in configThe level displayed must be set by its value and not debug="ON" i.e log="FINE"The level displayed must be set by its value and not debug="ON" i.e log="FINE"Server v1 update (1)https://code.ill.fr/cameo/cameo/-/issues/105Log more info when localhost is selected in Cameo server2022-03-01T15:41:53+01:00yannick legocLog more info when localhost is selected in Cameo serverExplain that localhost is a default value.Explain that localhost is a default value.https://code.ill.fr/cameo/cameo/-/issues/37Maven modules and a single project for all the projects2018-11-29T11:22:49+01:00yannick legocMaven modules and a single project for all the projectsInclude c++ into project: create directory cpp-api (next to Java modules).Include c++ into project: create directory cpp-api (next to Java modules).https://code.ill.fr/cameo/cameo/-/issues/140max number of applications2022-10-19T14:13:33+02:00Shervin Nourbakhshmax number of applicationsIt would be nice to have a way to limit the maximum number of applications with a given name.
```
<application name="mcstas_server" stream="yes" max_applications="10" restart="no" starting_time="0" retries="0" stopping_time="1" log_...It would be nice to have a way to limit the maximum number of applications with a given name.
```
<application name="mcstas_server" stream="yes" max_applications="10" restart="no" starting_time="0" retries="0" stopping_time="1" log_directory="default" >
<start executable="/tmp/devel/bin/mcstas_server" args="-d /dev/shm/panosc/prod/"/>
</application>
```yannick legocyannick legoc2022-10-09