Line data Source code
1 : /* 2 : * Copyright (c) 2017 Juniper Networks, Inc. All rights reserved. 3 : * Copyright Contributors to the OpenSDN project 4 : */ 5 : #ifndef SRC_VNSW_AGENT_MAC_LEARNING_MAC_LEARNING_INIT_H_ 6 : #define SRC_VNSW_AGENT_MAC_LEARNING_MAC_LEARNING_INIT_H_ 7 : #include "mac_learning/mac_learning_proto.h" 8 : #include "mac_learning/mac_learning.h" 9 : #include "mac_learning/mac_learning_mgmt.h" 10 : #include "mac_learning/mac_learning_db_client.h" 11 : #include "mac_learning/mac_learning_types.h" 12 : 13 : extern SandeshTraceBufferPtr MacLearningTraceBuf; 14 : class MacLearningModule { 15 : public: 16 : MacLearningModule(Agent *agent); 17 4 : virtual ~MacLearningModule() {} 18 : 19 : void Init(); 20 : void Shutdown(); 21 : 22 2740 : MacLearningMgmtManager* mac_learning_mgmt() const { 23 2740 : return mac_learning_mgmt_.get(); 24 : } 25 : 26 736 : MacLearningDBClient* mac_learning_db_client() const { 27 736 : return mac_learning_db_client_.get(); 28 : } 29 : 30 : MacLearningProto* mac_learning_proto() const { 31 : return mac_learning_proto_.get(); 32 : } 33 : private: 34 : Agent *agent_; 35 : boost::scoped_ptr<MacLearningProto> mac_learning_proto_; 36 : boost::scoped_ptr<MacLearningMgmtManager> mac_learning_mgmt_; 37 : boost::scoped_ptr<MacLearningDBClient> mac_learning_db_client_; 38 : }; 39 : #endif