1
/**************************************************************************/
3
/* Copyright (c) 2001, 2007 NoMachine, http://www.nomachine.com/. */
5
/* NXCOMP, NX protocol compression and NX extensions to this software */
6
/* are copyright of NoMachine. Redistribution and use of the present */
7
/* software is allowed according to terms specified in the file LICENSE */
8
/* which comes in the source distribution. */
10
/* Check http://www.nomachine.com/licensing.html for applicability. */
12
/* NX and NoMachine are trademarks of NoMachine S.r.l. */
14
/* All rights reserved. */
16
/**************************************************************************/
24
// Set the verbosity level.
34
// Set default values.
37
#define CREATEGC_ENABLE_CACHE 1
38
#define CREATEGC_ENABLE_DATA 0
39
#define CREATEGC_ENABLE_SPLIT 0
40
#define CREATEGC_ENABLE_COMPRESS 0
42
#define CREATEGC_DATA_LIMIT 144
43
#define CREATEGC_DATA_OFFSET 16
45
#define CREATEGC_CACHE_SLOTS 2000
46
#define CREATEGC_CACHE_THRESHOLD 2
47
#define CREATEGC_CACHE_LOWER_THRESHOLD 1
53
class CreateGCMessage : public Message
55
friend class CreateGCStore;
68
// Put here the fields which constitute
69
// the 'identity' part of the message.
74
unsigned int gcontext;
75
unsigned int drawable;
76
unsigned int value_mask;
79
class CreateGCStore : public MessageStore
82
// Constructors and destructors.
87
CreateGCStore() : MessageStore()
89
enableCache = CREATEGC_ENABLE_CACHE;
90
enableData = CREATEGC_ENABLE_DATA;
91
enableSplit = CREATEGC_ENABLE_SPLIT;
92
enableCompress = CREATEGC_ENABLE_COMPRESS;
94
dataLimit = CREATEGC_DATA_LIMIT;
95
dataOffset = CREATEGC_DATA_OFFSET;
97
cacheSlots = CREATEGC_CACHE_SLOTS;
98
cacheThreshold = CREATEGC_CACHE_THRESHOLD;
99
cacheLowerThreshold = CREATEGC_CACHE_LOWER_THRESHOLD;
101
messages_ -> resize(cacheSlots);
103
for (T_messages::iterator i = messages_ -> begin();
104
i < messages_ -> end(); i++)
112
virtual ~CreateGCStore()
114
for (T_messages::iterator i = messages_ -> begin();
115
i < messages_ -> end(); i++)
123
virtual const char *name() const
128
virtual unsigned char opcode() const
133
virtual unsigned int storage() const
135
return sizeof(CreateGCMessage);
139
// Message handling methods.
144
virtual Message *create() const
146
return new CreateGCMessage();
149
virtual Message *create(const Message &message) const
151
return new CreateGCMessage((const CreateGCMessage &) message);
154
virtual void destroy(Message *message) const
156
delete (CreateGCMessage *) message;
159
virtual int parseIdentity(Message *message, const unsigned char *buffer,
160
unsigned int size, int bigEndian) const;
162
virtual int unparseIdentity(const Message *message, unsigned char *buffer,
163
unsigned int size, int bigEndian) const;
165
virtual void updateIdentity(EncodeBuffer &encodeBuffer, const Message *message,
166
const Message *cachedMessage,
167
ChannelCache *channelCache) const;
169
virtual void updateIdentity(DecodeBuffer &decodeBuffer, const Message *message,
170
ChannelCache *channelCache) const;
172
virtual void identityChecksum(const Message *message, const unsigned char *buffer,
173
unsigned int size, int bigEndian) const;
175
virtual void dumpIdentity(const Message *message) const;
178
#endif /* CreateGC_H */