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