Red de conocimiento informático - Material del sitio web - Código fuente sobre cómo ejecutar un esquema de protocolo en NS2

Código fuente sobre cómo ejecutar un esquema de protocolo en NS2

Si queremos agregar nuestro propio módulo en NS2, necesitamos implementar al menos dos clases:

Primero, necesitamos tener una clase que herede de la clase TclObject o su subclase. Por ejemplo, la herencia. La relación de la clase Mac802_16 es la siguiente: TclObject/NsObject/Mac/Mac802_16. Esta clase implementa la relación vinculante entre las variables de la clase C y las variables de la clase Otcl, así como una serie de algoritmos que se implementarán en nuestro módulo. Esta clase es responsable de la implementación del protocolo.

En términos generales, esta clase necesita tener un constructor para realizar la vinculación de variables y usar la función bind() para vincular variables Otcl a variables miembro de C.

La función comando() declarada como protegida proporciona a la clase Otcl una forma de traducir y ejecutar métodos de clase en Otcl para comandos que no se consideran o no se pueden analizar, el método de comando de la clase C principal; se llama. Al llamar a un método en la clase Otcl, el primer paso es encontrar el método en la clase Otcl y ejecutarlo si la búsqueda falla, buscar el método de comando en la clase C correspondiente a la clase Otcl; , busca la clase principal de la clase Otcl e intenta llamar a sus métodos de comando. Si no se pueden resolver los métodos de comando de todas las clases principales, se informa que el comando no se puede ejecutar.

Se utilizan otras variables miembro y funciones miembro para implementar sus propios módulos de algoritmo.

En segundo lugar, debemos definir una clase declarada como estática, que hereda de la clase TclClass, que implementa la asociación entre las clases en el entorno C y las clases en el entorno Otcl. En pocas palabras, la clase. es responsable de la vinculación con el entorno de Otcl. Tome el código al principio como ejemplo:

clase estática Mac802_16Class: public Tclass

{

public:

Mac802_16Class() : TclClass( "Mac/802_16") {}

TclObject* create(int, const char*const*)

{

return (nuevo Mac802_16( ));

}

} class_mac802_16;

Este código contiene un constructor que pasa el nombre de la clase Otcl como parámetro a la clase principal; que crea una instancia de una clase C y la devuelve. La clase de retorno del método se define como TclObject*. El tipo de clase C está contenido en el método de creación y el tipo de clase Otcl está contenido en el constructor de la clase TclClass, lo que hace posible la conexión entre la clase C y la clase Otcl.