]> git.stg.codes - ssmd.git/blob - include/acl.h
468671f00c0af9762e61fb95060046aa3267af74
[ssmd.git] / include / acl.h
1 #ifndef __GTS_ACL_H__
2 #define __GTS_ACL_H__
3
4 #include <string>
5
6 class Pdu;
7
8 namespace GTS {
9
10 class ACL {
11     public:
12         ACL(unsigned id,
13             unsigned profileId,
14             const std::string & mac,
15             unsigned port,
16             unsigned shape,
17             unsigned burst,
18             bool isUpload);
19         ACL(const ACL & rvalue);
20         ~ACL();
21
22         ACL & operator=(const ACL & rvalue);
23
24         unsigned getId() const { return _id; }
25         unsigned getProfileId() const { return _profileId; }
26         const std::string & getMAC() const { return _mac; }
27         std::string getPort() const { return _port; }
28         unsigned getShape() const { return _shape; }
29         unsigned getBurst() const { return _burst; }
30
31         bool isUpload() const { return _isUpload; }
32
33         void appendPdu(Pdu & pdu) const;
34
35     private:
36         unsigned _id;
37         unsigned _profileId;
38         std::string _mac;
39         std::string _port;
40         unsigned _shape;
41         unsigned _burst;
42
43         bool _isUpload;
44
45         std::string getSuffix() const;
46 };
47
48 }
49
50 #endif