version 3.9.0, add PIEthernet::NoDelay parameter

This commit is contained in:
2023-03-21 10:14:05 +03:00
parent df82102798
commit 0cd1206f94
3 changed files with 22 additions and 7 deletions

View File

@@ -60,7 +60,8 @@ public:
= 0x4,
MulticastLoop /** Enable receiving multicast packets from same host. Enabled by default */ = 0x8,
KeepConnection /** Automatic reconnect TCP connection on disconnect. Enabled by default */ = 0x10,
DisonnectOnTimeout /** Disconnect TCP connection on read timeout expired. Disabled by default */ = 0x20
DisonnectOnTimeout /** Disconnect TCP connection on read timeout expired. Disabled by default */ = 0x20,
NoDelay /** Use NO_DELAY option. Disabled by default */ = 0x40
};
typedef ::PINetworkAddress Address DEPRECATEDM("use PINetworkAddress instead");
@@ -152,10 +153,16 @@ public:
//! Set parameters to "parameters_". You should to reopen %PIEthernet to apply them
void setParameters(PIFlags<PIEthernet::Parameters> parameters_) { params = parameters_; }
void setParameters(PIFlags<PIEthernet::Parameters> parameters_) {
params = parameters_;
applyParameters();
}
//! Set parameter "parameter" to state "on". You should to reopen %PIEthernet to apply this
void setParameter(PIEthernet::Parameters parameter, bool on = true) { params.setFlag(parameter, on); }
void setParameter(PIEthernet::Parameters parameter, bool on = true) {
params.setFlag(parameter, on);
applyParameters();
}
//! Returns if parameter "parameter" is set
bool isParameterSet(PIEthernet::Parameters parameter) const { return params[parameter]; }
@@ -457,6 +464,7 @@ protected:
ssize_t readDevice(void * read_to, ssize_t max_size) override;
ssize_t writeDevice(const void * data, ssize_t max_size) override;
DeviceInfoFlags deviceInfoFlags() const override;
void applyParameters();
//! Executes when any read function was successful. Default implementation does nothing
virtual void received(const void * data, int size) { ; }