00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <config.h>
00018
00019 #include "IPAnnounce.h"
00020 #include "BluetoothAnnounce.h"
00021 #include "Announce.h"
00022
00023 namespace dtn {
00024
00025 Announce*
00026 Announce::create_announce(const std::string& name, ConvergenceLayer* cl,
00027 int argc, const char* argv[])
00028 {
00029 ASSERT(cl!=NULL);
00030 (void)name;
00031 (void)cl;
00032 (void)argc;
00033 (void)argv;
00034 Announce* announce = NULL;
00035 if ((strncmp(cl->name(),"tcp",3) == 0) ||
00036 (strncmp(cl->name(),"udp",3) == 0))
00037 {
00038 announce = new IPAnnounce();
00039 }
00040 #ifdef OASYS_BLUETOOTH_ENABLED
00041 else
00042 if (strncmp(cl->name(),"bt",2) == 0)
00043 {
00044 announce = new BluetoothAnnounce();
00045 }
00046 #endif
00047 else
00048 {
00049
00050 return NULL;
00051 }
00052
00053 if (announce->configure(name,cl,argc-1,argv+1))
00054 {
00055 return announce;
00056 }
00057
00058 delete announce;
00059 return NULL;
00060 }
00061
00062 }