Branch data Line data Source code
1 : : /**
2 : : * \file
3 : : *
4 : : * \author Georg Hopp
5 : : *
6 : : * \copyright
7 : : * Copyright © 2012 Georg Hopp
8 : : *
9 : : * This program is free software: you can redistribute it and/or modify
10 : : * it under the terms of the GNU General Public License as published by
11 : : * the Free Software Foundation, either version 3 of the License, or
12 : : * (at your option) any later version.
13 : : *
14 : : * This program is distributed in the hope that it will be useful,
15 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 : : * GNU General Public License for more details.
18 : : *
19 : : * You should have received a copy of the GNU General Public License
20 : : * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 : : */
22 : :
23 : : #include <stdarg.h>
24 : : #include <openssl/ssl.h>
25 : :
26 : : #include "class.h"
27 : : #include "stream/stream.h"
28 : :
29 : :
30 : : static
31 : : int
32 : 1 : streamCtor(void * _this, va_list * params)
33 : : {
34 : 1 : Stream this = _this;
35 : 1 : this->type = va_arg(* params, StreamHandleType);
36 : :
37 : 1 : switch(this->type) {
38 : : case STREAM_FD:
39 : 1 : (this->handle).fd = va_arg(* params, int);
40 : 1 : break;
41 : :
42 : : case STREAM_SSL:
43 : 0 : (this->handle).ssl = va_arg(* params, SSL*);
44 : 0 : break;
45 : :
46 : : default:
47 : 0 : return -1;
48 : : }
49 : :
50 : 1 : return 0;
51 : : }
52 : :
53 : : static
54 : : void
55 : 1 : streamDtor(void * _this)
56 : : {
57 : 1 : }
58 : :
59 : : INIT_IFACE(Class, streamCtor, streamDtor, NULL);
60 : 1 : CREATE_CLASS(Stream, NULL, IFACE(Class));
61 : :
62 : : // vim: set ts=4 sw=4:
|