Statistics
| Branch: | Tag: | Revision:

dvbd / controlledconnection.h @ bfdb7446

History | View | Annotate | Download (1.48 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
private:
43
  void writeControl(const std::string &str);
44

    
45
  int controlFD;
46
  OutputBuffer *controlOutput;
47
  Scheduler *scheduler;
48
  InputBuffer *controlInput;
49
  ConnectionManager *cm;
50
};
51

    
52
#endif // __CONTROLLEDCONNECTION_H