27 #ifndef NIDAS_CORE_IOCHANNEL_H
28 #define NIDAS_CORE_IOCHANNEL_H
44 namespace nidas {
namespace core {
75 *(DOMable*)
this = rhs;
88 virtual void setName(
const std::string& val) = 0;
90 virtual const std::string& getName()
const = 0;
119 throw(nidas::util::IOException) = 0;
121 virtual
int getReconnectDelaySecs()
const
126 virtual void setNonBlocking(
bool val)
129 virtual bool isNonBlocking()
const
130 throw(nidas::util::IOException) = 0;
137 throw(nidas::util::IOException,nidas::util::UnknownHostException) = 0;
173 virtual size_t write(
const void* buf,
size_t len)
181 virtual size_t write(
const struct iovec* iov,
int iovcnt)
187 virtual void flush() throw(nidas::util::IOException) {}
189 virtual void close() throw(nidas::util::IOException) = 0;
191 virtual
int getFd() const = 0;
193 static
IOChannel* createIOChannel(const xercesc::DOMElement* node)
194 throw(nidas::util::InvalidParameterException);
211 throw(nidas::util::IOException)
214 return LONG_LONG_MAX;
virtual void flush()
Default flush implementation does nothing.
Definition: IOChannel.h:187
McSocketRequest
Definition: Datagrams.h:34
virtual IOChannelRequester * connected(IOChannel *)=0
long long dsm_time_t
Posix time in microseconds, the number of non-leap microseconds since 1970 Jan 1 00:00 UTC...
Definition: Sample.h:61
virtual bool isNewInput() const
Some IOChannels, namely FileSet, which opens successive files, need to indicate when a read is from t...
Definition: IOChannel.h:106
Class that should include all that is configurable about a DSM.
Definition: DSMConfig.h:55
virtual const DSMConfig * getDSMConfig() const
What DSM is this IOChannel connected to? May be NULL.
Definition: IOChannel.h:235
virtual dsm_time_t createFile(dsm_time_t t, bool exact)
Request that an IOChannel open a new file, with a name based on a time.
Definition: IOChannel.h:207
Interface of an object that can be instantiated from a DOM element, via the fromDOMElement method...
Definition: DOMable.h:51
Extra information associated with an IOChannel concerning the connection.
Definition: ConnectionInfo.h:38
ConnectionInfo _conInfo
Definition: IOChannel.h:244
virtual ~IOChannelRequester()
Definition: IOChannel.h:57
A channel for Input or Output of data.
Definition: IOChannel.h:64
virtual void setRequestType(enum McSocketRequest)
Definition: IOChannel.h:96
virtual void setDSMConfig(const DSMConfig *val)
What DSM is this IOChannel connected to?
Definition: IOChannel.h:227
virtual void setConnectionInfo(const ConnectionInfo &val)
Definition: IOChannel.h:151
IOChannel(const IOChannel &x)
Definition: IOChannel.h:70
int len
Definition: sing.cc:934
virtual bool writeNidasHeader() const
Should the NIDAS header be written to this IOChannel? NIDAS headers are not written to DatagramSocket...
Definition: IOChannel.h:222
Definition: IOException.h:37
IOChannel & operator=(const IOChannel &rhs)
Definition: IOChannel.h:72
virtual ~IOChannel()
Definition: IOChannel.h:81
virtual size_t getBufferSize() const
Return suggested buffer length.
Definition: IOChannel.h:159
const DSMConfig * _dsm
Definition: IOChannel.h:242
Interface for an object that requests connections to Inputs or Outputs.
Definition: IOChannel.h:54