00001 // Author: Satish Kumar, kkumar@isi.edu 00002 00003 extern "C" { 00004 #include <stdarg.h> 00005 #include <float.h> 00006 }; 00007 00008 #include "agent-list.h" 00009 00010 AgentList* AgentList::instance_; 00011 00012 static class AgentListClass:public TclClass 00013 { 00014 public: 00015 AgentListClass ():TclClass ("AgentList") 00016 { 00017 } 00018 TclObject *create (int, const char *const *) 00019 { 00020 return (new AgentList ()); 00021 } 00022 } class_agent_list; 00023 00024 00025 00026 00027 int 00028 AgentList::command (int argc, const char *const *argv) 00029 { 00030 if(argc == 3) { 00031 if (strcasecmp(argv[1], "num_agents") == 0) { 00032 assert(num_agents_ == 0); 00033 00034 num_agents_ = atoi(argv[2]); 00035 00036 agents_ = new void*[num_agents_]; 00037 bzero((char*) agents_, sizeof(void*) * num_agents_); 00038 00039 instance_ = this; 00040 00041 return TCL_OK; 00042 } 00043 } 00044 return (TclObject::command(argc, argv)); 00045 } 00046 00047 00048 00049 00050 00051 void 00052 AgentList::AddAgent(nsaddr_t node_addr, void *a) { 00053 assert(agents_); 00054 assert(node_addr < num_agents_); 00055 agents_[node_addr] = a; 00056 } 00057 00058
1.4.6