git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Portable mkdir.
[stg.git]
/
include
/
stg
/
user_traff.h
diff --git
a/include/stg/user_traff.h
b/include/stg/user_traff.h
index 133cb54c9fca665877baf49855cf7bcbf955a799..8ef8e2608f8d3f2f569a7bb8cd4800e57a739b7b 100644
(file)
--- a/
include/stg/user_traff.h
+++ b/
include/stg/user_traff.h
@@
-27,12
+27,13
@@
#ifndef USER_TRAFF_H
#define USER_TRAFF_H
#ifndef USER_TRAFF_H
#define USER_TRAFF_H
-#include <iostream>
-#include <vector>
-
+#include "resetable.h"
#include "const.h"
#include "os_int.h"
#include "const.h"
#include "os_int.h"
+#include <iostream>
+#include <vector>
+
enum TRAFF_DIRECTION {TRAFF_UPLOAD, TRAFF_DOWNLOAD};
class DIR_TRAFF
enum TRAFF_DIRECTION {TRAFF_UPLOAD, TRAFF_DOWNLOAD};
class DIR_TRAFF
@@
-50,6
+51,12
@@
public:
uint64_t & operator[](IndexType idx) { return traff[idx]; }
IndexType size() const { return traff.size(); }
uint64_t & operator[](IndexType idx) { return traff[idx]; }
IndexType size() const { return traff.size(); }
+ void Reset()
+ {
+ for (IndexType i = 0; i < traff.size(); ++i)
+ traff[i] = 0;
+ }
+
private:
ContainerType traff;
};
private:
ContainerType traff;
};
@@
-73,6
+80,7
@@
return o;
class DIR_TRAFF_RES
{
public:
class DIR_TRAFF_RES
{
public:
+ typedef RESETABLE<uint64_t> value_type;
typedef RESETABLE<uint64_t> ValueType;
typedef std::vector<ValueType> ContainerType;
typedef ContainerType::size_type IndexType;
typedef RESETABLE<uint64_t> ValueType;
typedef std::vector<ValueType> ContainerType;
typedef ContainerType::size_type IndexType;
@@
-86,6
+94,15
@@
public:
}
const ValueType & operator[](IndexType idx) const { return traff[idx]; }
ValueType & operator[](IndexType idx) { return traff[idx]; }
}
const ValueType & operator[](IndexType idx) const { return traff[idx]; }
ValueType & operator[](IndexType idx) { return traff[idx]; }
+ IndexType size() const { return traff.size(); }
+ DIR_TRAFF GetData() const
+ {
+ DIR_TRAFF res;
+ for (IndexType i = 0; i < traff.size(); ++i)
+ if (!traff[i].empty())
+ res[i] = traff[i].data();
+ return res;
+ }
private:
ContainerType traff;
private:
ContainerType traff;