Line data Source code
1 : /* 2 : * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. 3 : * Copyright Contributors to the OpenSDN project 4 : */ 5 : 6 : #include "bgp/message_builder.h" 7 : #include "bgp/bgp_message_builder.h" 8 : #include "bgp/xmpp_message_builder.h" 9 : #include "bgp/bgp_factory.h" 10 : 11 : BgpMessageBuilder *MessageBuilder::bgp_message_builder_; 12 : BgpXmppMessageBuilder *MessageBuilder::xmpp_message_builder_; 13 : 14 298 : MessageBuilder *MessageBuilder::GetInstance( 15 : RibExportPolicy::Encoding encoding) { 16 298 : if (encoding == RibExportPolicy::BGP) { 17 154 : if (bgp_message_builder_ == NULL) { 18 57 : bgp_message_builder_ = 19 57 : BgpStaticObjectFactory::Create<BgpMessageBuilder>(); 20 : } 21 154 : return bgp_message_builder_; 22 144 : } else if (encoding == RibExportPolicy::XMPP) { 23 144 : if (xmpp_message_builder_ == NULL) { 24 50 : xmpp_message_builder_= 25 50 : BgpStaticObjectFactory::Create<BgpXmppMessageBuilder>(); 26 : } 27 144 : return xmpp_message_builder_; 28 : } 29 0 : return NULL; 30 : }