aboutsummaryrefslogtreecommitdiff
path: root/xmlrpc++/src/XmlRpcSource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xmlrpc++/src/XmlRpcSource.cpp')
-rw-r--r--xmlrpc++/src/XmlRpcSource.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/xmlrpc++/src/XmlRpcSource.cpp b/xmlrpc++/src/XmlRpcSource.cpp
new file mode 100644
index 0000000..99203b0
--- /dev/null
+++ b/xmlrpc++/src/XmlRpcSource.cpp
@@ -0,0 +1,35 @@
+
+#include "XmlRpcSource.h"
+#include "XmlRpcSocket.h"
+#include "XmlRpcUtil.h"
+
+namespace XmlRpc {
+
+
+ XmlRpcSource::XmlRpcSource(int fd /*= -1*/, bool deleteOnClose /*= false*/)
+ : _fd(fd), _deleteOnClose(deleteOnClose), _keepOpen(false)
+ {
+ }
+
+ XmlRpcSource::~XmlRpcSource()
+ {
+ }
+
+
+ void
+ XmlRpcSource::close()
+ {
+ if (_fd != -1) {
+ XmlRpcUtil::log(2,"XmlRpcSource::close: closing socket %d.", _fd);
+ XmlRpcSocket::close(_fd);
+ XmlRpcUtil::log(2,"XmlRpcSource::close: done closing socket %d.", _fd);
+ _fd = -1;
+ }
+ if (_deleteOnClose) {
+ XmlRpcUtil::log(2,"XmlRpcSource::close: deleting this");
+ _deleteOnClose = false;
+ delete this;
+ }
+ }
+
+} // namespace XmlRpc