OpenSDN source code
TFDTransport.h
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one
3
* or more contributor license agreements. See the NOTICE file
4
* distributed with this work for additional information
5
* regarding copyright ownership. The ASF licenses this file
6
* to you under the Apache License, Version 2.0 (the
7
* "License"); you may not use this file except in compliance
8
* with the License. You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing,
13
* software distributed under the License is distributed on an
14
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
* KIND, either express or implied. See the License for the
16
* specific language governing permissions and limitations
17
* under the License.
18
*/
19
20
#ifndef _SANDESH_TRANSPORT_TFDTRANSPORT_H_
21
#define _SANDESH_TRANSPORT_TFDTRANSPORT_H_ 1
22
23
#include <string>
24
#ifdef HAVE_SYS_TIME_H
25
#include <sys/time.h>
26
#endif
27
28
#include "
TTransport.h
"
29
#include "
TVirtualTransport.h
"
30
31
namespace
contrail
{
namespace
sandesh
{
namespace
transport {
32
37
class
TFDTransport
:
public
TVirtualTransport
<TFDTransport> {
38
public
:
39
enum
ClosePolicy
40
{
NO_CLOSE_ON_DESTROY
= 0
41
,
CLOSE_ON_DESTROY
= 1
42
};
43
44
TFDTransport
(
int
fd,
ClosePolicy
close_policy =
NO_CLOSE_ON_DESTROY
)
45
:
fd_
(fd)
46
,
close_policy_
(close_policy)
47
{}
48
49
~TFDTransport
() {
50
if
(
close_policy_
==
CLOSE_ON_DESTROY
) {
51
close
();
52
}
53
}
54
55
bool
isOpen
() {
return
fd_
>= 0; }
56
57
void
open
() {}
58
59
void
close
();
60
61
int32_t
read
(uint8_t* buf, uint32_t len);
62
63
int32_t
write
(
const
uint8_t* buf, uint32_t len);
64
65
void
setFD
(
int
fd) {
fd_
= fd; }
66
int
getFD
() {
return
fd_
; }
67
68
protected
:
69
int
fd_
;
70
ClosePolicy
close_policy_
;
71
};
72
73
}}}
// contrail::sandesh::transport
74
75
#endif
// #ifndef _SANDESH_TRANSPORT_TFDTRANSPORT_H_
TTransport.h
TVirtualTransport.h
contrail::sandesh::transport::TFDTransport
Definition:
TFDTransport.h:37
contrail::sandesh::transport::TFDTransport::~TFDTransport
~TFDTransport()
Definition:
TFDTransport.h:49
contrail::sandesh::transport::TFDTransport::setFD
void setFD(int fd)
Definition:
TFDTransport.h:65
contrail::sandesh::transport::TFDTransport::open
void open()
Definition:
TFDTransport.h:57
contrail::sandesh::transport::TFDTransport::fd_
int fd_
Definition:
TFDTransport.h:69
contrail::sandesh::transport::TFDTransport::isOpen
bool isOpen()
Definition:
TFDTransport.h:55
contrail::sandesh::transport::TFDTransport::read
int32_t read(uint8_t *buf, uint32_t len)
contrail::sandesh::transport::TFDTransport::ClosePolicy
ClosePolicy
Definition:
TFDTransport.h:40
contrail::sandesh::transport::TFDTransport::NO_CLOSE_ON_DESTROY
@ NO_CLOSE_ON_DESTROY
Definition:
TFDTransport.h:40
contrail::sandesh::transport::TFDTransport::CLOSE_ON_DESTROY
@ CLOSE_ON_DESTROY
Definition:
TFDTransport.h:41
contrail::sandesh::transport::TFDTransport::write
int32_t write(const uint8_t *buf, uint32_t len)
contrail::sandesh::transport::TFDTransport::TFDTransport
TFDTransport(int fd, ClosePolicy close_policy=NO_CLOSE_ON_DESTROY)
Definition:
TFDTransport.h:44
contrail::sandesh::transport::TFDTransport::close_policy_
ClosePolicy close_policy_
Definition:
TFDTransport.h:70
contrail::sandesh::transport::TFDTransport::close
void close()
contrail::sandesh::transport::TFDTransport::getFD
int getFD()
Definition:
TFDTransport.h:66
contrail::sandesh::transport::TVirtualTransport
Definition:
TVirtualTransport.h:88
contrail
Definition:
regex.h:10
sandesh
Definition:
sandesh_options.cc:12
contrail
src
contrail-common
sandesh
library
cpp
transport
TFDTransport.h
Generated by
1.9.1