summaryrefslogtreecommitdiff
path: root/server/streamer.h
diff options
context:
space:
mode:
authorschmirl <schmirl>2007-04-02 10:32:34 +0000
committerschmirl <schmirl>2007-04-02 10:32:34 +0000
commit525574f9b01275aaff3e1c923cc91404365d501e (patch)
tree0533e2aaecdd3e7a1fe26176d12895f9bd054bc0 /server/streamer.h
parentcd7d4e3588af2cc36c8366fc8d65d0627a372c32 (diff)
downloadvdr-plugin-streamdev-525574f9b01275aaff3e1c923cc91404365d501e.tar.gz
vdr-plugin-streamdev-525574f9b01275aaff3e1c923cc91404365d501e.tar.bz2
Close connection when client is gone. Fixes high CPU load problem (#201)
Modified Files: server/connection.h server/connectionHTTP.h server/connectionVTP.h server/server.c server/streamer.c server/streamer.h tools/select.c tools/select.h tools/source.c
Diffstat (limited to 'server/streamer.h')
-rw-r--r--server/streamer.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/server/streamer.h b/server/streamer.h
index c27677c..e557d55 100644
--- a/server/streamer.h
+++ b/server/streamer.h
@@ -1,5 +1,5 @@
/*
- * $Id: streamer.h,v 1.7 2005/03/12 12:54:19 lordjaxom Exp $
+ * $Id: streamer.h,v 1.8 2007/04/02 10:32:34 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_STREAMER_H
@@ -29,6 +29,8 @@ protected:
public:
cStreamdevWriter(cTBSocket *Socket, cStreamdevStreamer *Streamer);
virtual ~cStreamdevWriter();
+
+ bool IsActive(void) const { return m_Active; }
};
// --- cStreamdevStreamer -----------------------------------------------------
@@ -52,6 +54,7 @@ public:
virtual void Start(cTBSocket *Socket);
virtual void Stop(void);
+ bool Abort(void) const;
void Activate(bool On);
int Receive(uchar *Data, int Length) { return m_RingBuffer->Put(Data, Length); }
@@ -65,5 +68,10 @@ public:
virtual void Attach(void) {}
};
+inline bool cStreamdevStreamer::Abort(void) const
+{
+ return m_Active && !m_Writer->IsActive();
+}
+
#endif // VDR_STREAMDEV_STREAMER_H