Statistics
| Branch: | Tag: | Revision:

dvbd / src / controlledconnection.h @ 0cc9ce5f

History | View | Annotate | Download (1.53 KB)

1
// -*- c++ -*-
2
/*
3
  Copyright 2003 John Knottenbelt
4
  
5
  This program is free software; you can redistribute it and/or modify
6
  it under the terms of the GNU General Public License as published by
7
  the Free Software Foundation; either version 2 of the License, or
8
  (at your option) any later version.
9
 
10
  This program is distributed in the hope that it will be useful,
11
  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
  GNU General Public License for more details.
14
 
15
  You should have received a copy of the GNU General Public License
16
  along with this program; if not, write to the Free Software
17
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
18
*/
19

    
20
#if !defined __CONTROLLEDCONNECTION_H
21
#define __CONTROLLEDCONNECTION_H
22

    
23
#include "connection.h"
24

    
25
class ConnectionManager;
26

    
27
class ControlledConnection : public Connection {
28
public:
29
  ControlledConnection(TunerManager *tm, Scheduler *scheduler, 
30
                       ConnectionManager *cm,
31
                       int controlFD, int dataFD);
32

    
33
  virtual ~ControlledConnection();
34

    
35
  virtual void addSelectFDs(Select &) const;
36
  virtual bool isReady(const Select &) const;
37

    
38
  virtual bool processReady(const Select &s);
39

    
40
  virtual void notifyUnsubscribe(Source *s);
41

    
42
protected:
43
  virtual std::string getType() const;
44

    
45
private:
46
  void writeControl(const std::string &str);
47

    
48
  int controlFD;
49
  OutputBuffer *controlOutput;
50
  Scheduler *scheduler;
51
  InputBuffer *controlInput;
52
  ConnectionManager *cm;
53
};
54

    
55
#endif // __CONTROLLEDCONNECTION_H