agent-list.cc
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. // Author: Satish Kumar, kkumar@isi.edu
  2. extern "C" {
  3. #include <stdarg.h>
  4. #include <float.h>
  5. };
  6. #include "agent-list.h"
  7. AgentList* AgentList::instance_;
  8. static class AgentListClass:public TclClass
  9. {
  10.   public:
  11.   AgentListClass ():TclClass ("AgentList")
  12.   {
  13.   }
  14.   TclObject *create (int, const char *const *)
  15.   {
  16.     return (new AgentList ());
  17.   }
  18. } class_agent_list;
  19. int 
  20. AgentList::command (int argc, const char *const *argv)
  21. {
  22.   if(argc == 3) {
  23.     if (strcasecmp(argv[1], "num_agents") == 0) {
  24.       assert(num_agents_ == 0);
  25.       num_agents_ = atoi(argv[2]);
  26.       
  27.       agents_ = new void*[num_agents_];
  28.       bzero((char*) agents_, sizeof(void*) * num_agents_);
  29.       
  30.       instance_ = this;
  31.       
  32.       return TCL_OK;
  33.     }
  34.   }
  35.   return (TclObject::command(argc, argv));
  36. }
  37. void
  38. AgentList::AddAgent(nsaddr_t node_addr, void *a) {
  39.   assert(agents_);
  40.   assert(node_addr < num_agents_);
  41.   agents_[node_addr] = a;
  42. }