Skip to content

Commit 1c3352d

Browse files
authored
SMAGENT-1396 - Async Protobuf Serialization (#1346)
* SMAGENT-1396 - Async Protobuf Serialization * Incremental update * Change copyright header * Address Nathan's comment * s/this intention/the intention/
1 parent cdbff30 commit 1c3352d

File tree

2 files changed

+53
-2
lines changed

2 files changed

+53
-2
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
Copyright (C) 2019 Sysdig Inc.
3+
4+
This file is part of sysdig.
5+
6+
Licensed under the Apache License, Version 2.0 (the "License");
7+
you may not use this file except in compliance with the License.
8+
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, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
18+
*/
19+
#pragma once
20+
21+
#include "sinsp_public.h"
22+
23+
class scap_stats;
24+
25+
/**
26+
* Interface to an object that can provide capture statistics.
27+
*
28+
* Note that the intention here is to apply the Interface Segregation
29+
* Principle (ISP) to class sinsp. Some clients of sinsp need only the
30+
* get_capture_stats() API, and this interface exposes only that API. Do
31+
* not add additional APIs here. If some client of sinsp needs a different
32+
* set of APIs, introduce a new interface.
33+
*/
34+
class SINSP_PUBLIC capture_stats_source
35+
{
36+
public:
37+
virtual ~capture_stats_source() = default;
38+
39+
/**
40+
* Fill the given structure with statistics about the currently
41+
* open capture.
42+
*
43+
* @note This may not work for a file-based capture source.
44+
*
45+
* @param[out] stats The capture statistics
46+
*/
47+
virtual void get_capture_stats(scap_stats* stats) = 0;
48+
};

userspace/libsinsp/sinsp.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ limitations under the License.
4242
*/
4343

4444
#pragma once
45+
46+
#include "capture_stats_source.h"
47+
4548
#ifdef _WIN32
4649
#pragma warning(disable: 4251 4200 4221 4190)
4750
#endif
@@ -226,7 +229,7 @@ class sinsp_proc_metainfo
226229
- event retrieval
227230
- setting capture filters
228231
*/
229-
class SINSP_PUBLIC sinsp
232+
class SINSP_PUBLIC sinsp : public capture_stats_source
230233
{
231234
public:
232235
typedef std::shared_ptr<sinsp> ptr;
@@ -542,7 +545,7 @@ class SINSP_PUBLIC sinsp
542545
543546
\note this call won't work on file captures.
544547
*/
545-
virtual void get_capture_stats(scap_stats *stats);
548+
void get_capture_stats(scap_stats* stats) override;
546549

547550
void set_max_thread_table_size(uint32_t value);
548551

0 commit comments

Comments
 (0)