spice/server
Frediano Ziglio 176970f3f1 red-channel-client: Remove GObject type
Make all RedChannelClient hierarchy a C++ class.
This allows to use virtual methods.
Added a normal contructor instead or properties and g_object_new.

As we remove GObject conversion macros I added a macro XXX_CAST
to create a function to replace the old macro.
They will be removed when more type safety is introduced.

There's a new SPICE_CXX_GLIB_ALLOCATOR macro in red-common.h.
This macro, added to a class define the class allocator allowing
to use, in this case, GLib for allocation. This to avoid C++ library
dependency and to initialize all structure to 0 (not all fields
are manually initialized, will be improved with more encapsulation).

Currently the methods are mainly public, access will be modified
when more encapsulation (all functions in method) are done.

Some classes are now defined in the header, C++ uses access to
limit accessibility but for efficiency and type safety/inline and
other features require types to be defined in the headers.

Some fields were moved from XxxPrivate structure to class, C++
has accessibility.

Many destructors are defined as protected to forbid the use of
stack, this as these objects uses internal reference counting
to have normal pointers. Maybe in the future pointers like
std::shared_ptr could be used instead.

Reference counting is now implemented very easily using atomic
operations.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2020-05-01 06:58:09 +01:00
..
tests red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
.gitignore gitignore: Reuse top-level gitignore 2016-12-14 19:09:21 +00:00
agent-msg-filter.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
agent-msg-filter.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
cache-item.h Unify header guards 2017-03-30 18:17:20 +01:00
cache-item.tmpl.cpp Move all red_channel_client_* functions in header as methods 2020-05-01 06:58:09 +01:00
char-device.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
char-device.h Update header style 2020-05-01 06:58:09 +01:00
common-graphics-channel.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
common-graphics-channel.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
cursor-channel-client.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
cursor-channel-client.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
cursor-channel.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
cursor-channel.h Update header style 2020-05-01 06:58:09 +01:00
dcc-private.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
dcc-send.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
dcc.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
dcc.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
dispatcher.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
dispatcher.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
display-channel-private.h Move all red_channel_* functions in header as methods 2020-05-01 06:58:09 +01:00
display-channel.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
display-channel.h Update header style 2020-05-01 06:58:09 +01:00
display-limits.h Receive the GraphicsDeviceInfo message from the streaming agent 2019-01-29 15:46:54 +01:00
event-loop.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
glz-encode-match.tmpl.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
glz-encode.tmpl.c glz-encode: Remove obsolete reference segment 2019-08-12 10:48:02 +01:00
glz-encoder-dict.c typo: fix the spelling of precede 2019-07-04 10:05:19 +01:00
glz-encoder-dict.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
glz-encoder-priv.h glz-encoder-dict: Remove useless __packed__ attribute 2019-08-02 10:55:20 +01:00
glz-encoder.c glz-encoder: Remove useless __packed__ attribute 2019-08-02 10:55:27 +01:00
glz-encoder.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
gstreamer-encoder.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
image-cache.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
image-cache.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
image-encoders.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
image-encoders.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
inputs-channel-client.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
inputs-channel-client.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
inputs-channel.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
inputs-channel.h Update header style 2020-05-01 06:58:09 +01:00
jpeg-encoder.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
jpeg-encoder.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
lz4-encoder.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
lz4-encoder.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
main-channel-client.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
main-channel-client.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
main-channel.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
main-channel.h Update header style 2020-05-01 06:58:09 +01:00
main-dispatcher.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
main-dispatcher.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
Makefile.am automake: Link with C++ linker 2020-05-01 06:58:09 +01:00
memslot.c Use (u)intptr_t for virtual addresses 2019-08-12 08:16:31 +01:00
memslot.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
meson.build Introduce some utilities for C++ 2020-05-01 06:58:09 +01:00
migration-protocol.h Use start/end-packet.h headers instead of direct GCC attribute 2019-07-22 14:56:00 +01:00
mjpeg-encoder.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
net-utils.c net-utils: Port to Windows 2019-05-07 10:14:08 +01:00
net-utils.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
pixmap-cache.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
pixmap-cache.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
red-channel-capabilities.c Remove conversion warnings 2020-05-01 06:58:08 +01:00
red-channel-capabilities.h Unify header guards 2017-03-30 18:17:20 +01:00
red-channel-client.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
red-channel-client.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
red-channel.cpp Add RedChannel::(un)ref for reference counting and use them 2020-05-01 06:58:09 +01:00
red-channel.h Update header style 2020-05-01 06:58:09 +01:00
red-client.cpp Add RedChannel::(un)ref for reference counting and use them 2020-05-01 06:58:09 +01:00
red-client.h red-client: Automatically set MainChannelClient 2019-12-11 12:47:46 +00:00
red-common.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
red-parse-qxl.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
red-parse-qxl.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
red-pipe-item.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
red-pipe-item.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
red-qxl.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
red-qxl.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
red-record-qxl.c Remove -Wliteral-suffix warnings 2020-05-01 06:58:08 +01:00
red-record-qxl.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
red-replay-qxl.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
red-stream-device.cpp Move all red_channel_* functions in header as methods 2020-05-01 06:58:09 +01:00
red-stream-device.h Update header style 2020-05-01 06:58:09 +01:00
red-stream.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
red-stream.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
red-worker.cpp Move all red_channel_* functions in header as methods 2020-05-01 06:58:09 +01:00
red-worker.h Make sure empty structure are ABI compatible 2020-05-01 06:58:08 +01:00
reds-private.h reds: Remove only assigned "reds" field 2020-03-02 14:24:14 +00:00
reds.cpp Move all red_channel_* functions in header as methods 2020-05-01 06:58:09 +01:00
reds.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
smartcard-channel-client.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
smartcard-channel-client.h red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
smartcard.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
smartcard.h Update header style 2020-05-01 06:58:09 +01:00
sound.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
sound.h Change playback_compression to bool type 2017-04-07 15:08:43 -05:00
spice-audio.h Declare public exported functions as C 2020-05-01 06:58:08 +01:00
spice-bitmap-utils.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
spice-bitmap-utils.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
spice-bitmap-utils.tmpl.c Use local variable to compute gradual score 2020-02-27 07:55:43 +00:00
spice-char.h Declare public exported functions as C 2020-05-01 06:58:08 +01:00
spice-core.h windows: Do not include headers not available on Windows 2019-01-31 10:48:34 +00:00
spice-input.h Declare public exported functions as C 2020-05-01 06:58:08 +01:00
spice-migration.h Declare public exported functions as C 2020-05-01 06:58:08 +01:00
spice-qxl.h Declare public exported functions as C 2020-05-01 06:58:08 +01:00
spice-replay.h Declare public exported functions as C 2020-05-01 06:58:08 +01:00
spice-server-enums.c.tmpl Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
spice-server-enums.h.tmpl build: Rename spice-server-enums.tmpl.[ch] to spice-server-enums.[ch].tmpl 2018-03-07 10:04:04 -03:00
spice-server.h Declare public exported functions as C 2020-05-01 06:58:08 +01:00
spice-server.syms Remove reference to removed ABI 2019-08-15 11:16:42 +01:00
spice-version.h.in build-sys: generate spice-version.h 2014-11-27 14:27:33 +01:00
spice.h Make red-replay-qxl.h a public header 2016-11-10 06:37:15 +00:00
spicevmc.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
stat-file.c stat-file: Use proper macro for container computation 2019-08-22 08:53:23 +01:00
stat-file.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
stat.h Make sure empty structure are ABI compatible 2020-05-01 06:58:08 +01:00
stream-channel.cpp red-channel-client: Remove GObject type 2020-05-01 06:58:09 +01:00
stream-channel.h Update header style 2020-05-01 06:58:09 +01:00
sw-canvas.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
sys-socket.c sys-socket: Add socket_newpair utility 2019-05-07 10:14:05 +01:00
sys-socket.h Avoid conversion warnings calling Windows sockets 2020-05-01 06:58:08 +01:00
tree.cpp Use C++ IS-A relationship for RedChannelClient and RedChannel 2020-05-01 06:58:08 +01:00
tree.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
utils.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
utils.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
utils.hpp Introduce some utilities for C++ 2020-05-01 06:58:09 +01:00
video-encoder.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
video-stream.cpp Move all red_channel_* functions in header as methods 2020-05-01 06:58:09 +01:00
video-stream.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
websocket.c websocket: Handle continuation and 0-size frames 2019-06-26 14:19:13 +01:00
websocket.h Declare exported functions as C 2020-05-01 06:58:08 +01:00
zlib-encoder.c Do not check for HAVE_CONFIG_H 2019-04-30 09:26:55 +01:00
zlib-encoder.h Declare exported functions as C 2020-05-01 06:58:08 +01:00