path: root/src/lib/evas/cserve2/evas_cs2_private.h (unfollow)
AgeCommit message (Collapse)Author
2018-08-30efl: Remove cserve2 supportChris Michael
Summary: As cserve2 support has not worked (if ever) in a very long time, and it's authors are gone, this series of patches removes cserve2 (and thus cache2) from our codebase to remove cruft and reduce maintainability of unused code. ref T7226 Depends on D6941 Reviewers: raster, cedric, zmike, Hermet Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7226 Differential Revision:
2018-01-18all: Simplify definition of EAPIVincent Torri
This will help in the transition from Autotools to Meson. This has been tested on Windows for which EFL_XXX_BUILD were first introduced.
2015-05-07evas: remove the need to order the header correctly for Windows.Cedric BAIL
2013-10-28evas/cserve2: Use Eina_Refcount instead of intJean-Philippe Andre
Use the refcount macros instead of manually handling integers. Not sure if it really helps since the refcounting in cs2 client is a bit special :)
2013-10-28evas/cserve2: Fix refcount for glyphs & glyph buffersJean-Philippe Andre
Maybe a little overkill on the iterations (ref/unref), but at least we can really track down which glyphs are currently being used.
2013-10-28evas/cserve2: Reconnect to cserve2 in case of server crashJean-Philippe Andre
Try to reconnect to cserve2 if the socket connection was lost. Resend some messages if necessary. Images reload seems to be working. Actually, the images don't change over time, so the clients just keep the previous references to their images. FONT RELOAD IS NOT WORKING: - Crashes - Invalid glyph data - Infinite loop in _glyph_map_remap_check() Root cause: When new glyphs are requested from the server, they are added to the mempool. So it is necessary to remap the font. Unfortunately, in case of server reboot, we did not keep the mempool so the old glyphs that were not requested again will not be valid.
2013-10-28evas/cserve2: Add cache hit count on image dataJean-Philippe Andre
2013-10-28evas/cserve2: Scan glyphs and add to fashJean-Philippe Andre
This will save (just) a few socket waits.
2013-10-28evas/cserve2: Client-side scanning of Font EntriesJean-Philippe Andre
2013-10-28evas/cserve2: Scan shared indexes in client sideJean-Philippe Andre
Read Image descriptors from the shared arrays But, accessing the shared index can be a bit expensive, so try to read from the socket before scanning the index, without blocking.
2013-10-28evas/cserve2: Add _shared_index_remap_check()Jean-Philippe Andre
Check consistency of index header and remap if necessary.
2013-10-28evas/cserve2: Share paths of index tables with clientsJean-Philippe Andre
- Send paths to all connected clients - Send paths upon connection from a new client - Client side: - Fast find opened images - Fast find loaded images - Optimize load by skipping socket wait Also, remap indexes when needed (file size changed) When index file grows, the clients are not notified, so they must constantly check that their mapping matches the current array size.
2013-10-28evas/cserve2: Prepare shared indexes in clientsJean-Philippe Andre
- Move required struct definitions to common evas_cs2.h - Open/close shm and map arrays to memory Pretty stupid for now as it will close & reopen the shm files even when unchanged. - Check shm size and array header consistency - Implement message send - Send messages from server when calling repack()
2013-07-04evas/cserve2: merge SETOPTS into OPENJean-Philippe Andre
When opening an image, OPEN and SETOPTS were always sent consecutively. Merging these two messages may improve the performance a bit (not measured), but also simplify the whole thing. Note: cserve2 debug tools have not been fixed yet.
2013-06-20evas: Keep sane name for public headerSebastian Dransfeld
Evas_Common.h should be used for the public header, and rather rename evas_common.h internal header to another name. Sa: Evas_Common_Header.h -> Evas_Common.h evas_common.h -> evas_common_private.h Shouldn't have both Evas_Common.h and evas_common.h because of case insensitive filesystems.
2013-06-04evas/cserve2: add lots of error checks in the client side.Jean-Philippe Andre
It seems some images are fully loaded even when we request only preload. The load handler will take care of both cases anyway. Signed-off-by: Cedric Bail <>
2013-05-08evas: Make Evas_Loader API public.Cedric Bail
2013-01-09efl/font: Dispatch font load request once sent to serverPaulo Alcantara
Patch by: Paulo Alcantara <> SVN revision: 82482
2012-11-04merge: and now EvasVincent Torri
I've tested make -j 3 install and it works nicely I've tested expedite with software and opengl xlib, and it works. Not tested other engines, so please report any problems (engines or other) on the ML. TODO: examples and tests, I'll add them later ISSUE: Eina_Unicode size check. It indirectly depends on eina_config.h, which is created at the end of the configure script. So its size is always 0. I don't know how that size is used, so I can't do a lot, for now. SVN revision: 78895
2012-06-22evas/cserve2: CServe2 client side lib modifications.Rafael Antognolli
Add the calls to request font loading and glyphs on the client lib. SVN revision: 72700
2012-05-11LEAKS! GONE!Iván Briano
- Cleanup cache2 things on shutdown - Use Eina_File instead of straight shm_open + mmap when loading things from cserve2 - Do free the mapped images when we don't need them SVN revision: 70936
2012-05-03evas/cserve2: fix typo that kept cserve2 disabledIván Briano
now seriously... Introducing Cache Serve 2. This cache server will initially load images for clients connected to it. It starts slave processes to load these images, and share the loaded images through shm with the clients. All the connection done between clients and the server goes through sockets. The cserve2 build option is turned on by default, while the old cserve was disabled, but in order to make clients use it, the environment variable EVAS_CSERVE2 must be set, and a server must be running. Clients will try to find the socket on a specified location using the environment variable EVAS_CSERVE2_SOCKET. If it's not defined, then the XDG_RUNTIME_DIR path should be used, and finally HOME, TMPDIR and /tmp. SVN revision: 70699