diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-06-30 20:13:51 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-07-26 10:12:43 +0200 |
commit | f76c82403888bb498973ec974dbfd20e4edb02fe (patch) | |
tree | be0cb6c112d9d9fb46387fbd114727510197ddec /nxcomp/Agent.h | |
parent | 9193d11eeeea933e293acd5e0f03fa4e9887186b (diff) | |
download | nx-libs-f76c82403888bb498973ec974dbfd20e4edb02fe.tar.gz nx-libs-f76c82403888bb498973ec974dbfd20e4edb02fe.tar.bz2 nx-libs-f76c82403888bb498973ec974dbfd20e4edb02fe.zip |
nxcomp: Switch to autoreconf.
Diffstat (limited to 'nxcomp/Agent.h')
-rw-r--r-- | nxcomp/Agent.h | 263 |
1 files changed, 0 insertions, 263 deletions
diff --git a/nxcomp/Agent.h b/nxcomp/Agent.h deleted file mode 100644 index 3e1a50ae5..000000000 --- a/nxcomp/Agent.h +++ /dev/null @@ -1,263 +0,0 @@ -/**************************************************************************/ -/* */ -/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */ -/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */ -/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de> */ -/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de> */ -/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/ -/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */ -/* */ -/* NXCOMP, NX protocol compression and NX extensions to this software */ -/* are copyright of the aforementioned persons and companies. */ -/* */ -/* Redistribution and use of the present software is allowed according */ -/* to terms specified in the file LICENSE.nxcomp which comes in the */ -/* source distribution. */ -/* */ -/* All rights reserved. */ -/* */ -/* NOTE: This software has received contributions from various other */ -/* contributors, only the core maintainers and supporters are listed as */ -/* copyright holders. Please contact us, if you feel you should be listed */ -/* as copyright holder, as well. */ -/* */ -/**************************************************************************/ - -#ifndef Agent_H -#define Agent_H - -#include <unistd.h> - -#include <sys/time.h> -#include <sys/types.h> -#include <sys/select.h> - -#include "Misc.h" -#include "Transport.h" -#include "Proxy.h" - -extern Proxy *proxy; - -#define PANIC -#define WARNING -#undef TEST -#undef DEBUG - -class Agent -{ - public: - - // - // Must be created by passing the fake descriptor that - // will be used for simulating socket communication - // betwen the agent and the proxy. I/O will take place - // by copying data to the agent's read and write buf- - // fers. - // - - Agent(int fd[2]); - - ~Agent(); - - AgentTransport *getTransport() const - { - return transport_; - } - - void saveReadMask(fd_set *readSet) - { - saveRead_ = *readSet; - } - - void saveWriteMask(fd_set *writeSet) - { - saveWrite_ = *writeSet; - } - - void clearReadMask(fd_set *readSet) - { - FD_CLR(remoteFd_, readSet); - FD_CLR(localFd_, readSet); - } - - void clearWriteMask(fd_set *writeSet) - { - FD_CLR(remoteFd_, writeSet); - FD_CLR(localFd_, writeSet); - } - - void setLocalRead(fd_set *readSet, int *result) - { - (*result)++; - - FD_SET(localFd_, readSet); - } - - void setRemoteRead(fd_set *readSet, int *result) - { - (*result)++; - - FD_SET(remoteFd_, readSet); - } - - void setRemoteWrite(fd_set *writeSet, int *result) - { - (*result)++; - - FD_SET(remoteFd_, writeSet); - } - - fd_set *getSavedReadMask() - { - return &saveRead_; - } - - fd_set *getSavedWriteMask() - { - return &saveWrite_; - } - - int getRemoteFd() const - { - return remoteFd_; - } - - int getLocalFd() const - { - return localFd_; - } - - int getProxyFd() const - { - return proxy -> getFd(); - } - - int isValid() const - { - return (transport_ != NULL); - } - - int localReadable() - { - return (transport_ -> readable() != 0); - } - - // - // Check if we can process more data from - // the agent descriptor and cache the result - // to avoid multiple calls. This must be - // always called before querying the other - // functions. - // - - void saveChannelState() - { - canRead_ = (proxy != NULL ? proxy -> canRead(localFd_) : 0); - } - - int remoteCanRead(const fd_set * const readSet) - { - // OS X 10.5 requires the second argument to be non-const, so copy readSet. - // It's safe though, as FD_ISSET does not operate on it. - fd_set readWorkSet = *readSet; - - #if defined(TEST) || defined(INFO) - *logofs << "Agent: remoteCanRead() is " << - (FD_ISSET(remoteFd_, &readWorkSet) && transport_ -> dequeuable() != 0) - << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, &readWorkSet) - << " and dequeuable " << transport_ -> dequeuable() - << ".\n" << logofs_flush; - #endif - - return (FD_ISSET(remoteFd_, &readWorkSet) && - transport_ -> dequeuable() != 0); - } - - int remoteCanWrite(const fd_set * const writeSet) - { - // OS X 10.5 requires the second argument to be non-const, so copy writeSet. - // It's safe though, as FD_ISSET does not operate on it. - fd_set writeWorkSet = *writeSet; - - #if defined(TEST) || defined(INFO) - *logofs << "Agent: remoteCanWrite() is " << - (FD_ISSET(remoteFd_, &writeWorkSet) && transport_ -> - queuable() != 0 && canRead_ == 1) << " with FD_ISSET() " - << (int) FD_ISSET(remoteFd_, &writeWorkSet) << " queueable " - << transport_ -> queuable() << " channel can read " - << canRead_ << ".\n" << logofs_flush; - #endif - - return (FD_ISSET(remoteFd_, &writeWorkSet) && - transport_ -> queuable() != 0 && - canRead_ == 1); - } - - int localCanRead() - { - #if defined(TEST) || defined(INFO) - *logofs << "Agent: localCanRead() is " << - (transport_ -> readable() != 0 && canRead_ == 1) - << " with readable " << transport_ -> readable() - << " channel can read " << canRead_ << ".\n" - << logofs_flush; - #endif - - return (transport_ -> readable() != 0 && - canRead_ == 1); - } - - int proxyCanRead() - { - #if defined(TEST) || defined(INFO) - *logofs << "Agent: proxyCanRead() is " << proxy -> canRead() - << ".\n" << logofs_flush; - #endif - - return (proxy -> canRead()); - } - - int proxyCanRead(const fd_set * const readSet) - { - // OS X 10.5 requires the second argument to be non-const, so copy readSet. - // It's safe though, as FD_ISSET does not operate on it. - fd_set readWorkSet = *readSet; - - #if defined(TEST) || defined(INFO) - *logofs << "Agent: proxyCanRead() is " - << ((int) FD_ISSET(proxy -> getFd(), &readWorkSet)) - << ".\n" << logofs_flush; - #endif - - return (FD_ISSET(proxy -> getFd(), &readWorkSet)); - } - - int enqueueData(const char *data, const int size) const - { - return transport_ -> enqueue(data, size); - } - - int dequeueData(char *data, int size) const - { - return transport_ -> dequeue(data, size); - } - - int dequeuableData() const - { - return transport_ -> dequeuable(); - } - - private: - - int remoteFd_; - int localFd_; - - fd_set saveRead_; - fd_set saveWrite_; - - int canRead_; - - AgentTransport *transport_; -}; - -#endif /* Agent_H */ |