반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- UNIX
- 함수포인터
- getopts
- 포인터
- kernel
- OS 커널
- SQLite
- 약어
- 구조와 원리
- TiKV
- DBMS 개발
- DBMS
- Windows via c/c++
- bash
- TiDB
- Golang
- Programming
- FreeBSD
- 긴옵션
- Preprocessor
- 포인터변수
- 커널
- Symbol
- 전처리기
- Pointer
- go
- UNIX Internals
- newSQL
- 한빛미디어
- 컴퓨터 강좌
Archives
- Today
- Total
sonumb
ns2 - How to get routing agent (AODV agent) 본문
3가지 방법이 있다.
1. agent 간에 패킷에 해당 객체의 주소를 넣어 주고 받는다.
(high complexity)
2. cc 코드 상에서 실행.
MyAgent.cc
class MyAgent: public Agent{..void get_aodv( void );};
void MyAgent::get_aodv( void ){Tcl& tcl=Tcl::instance();sprintf( tcl.buffer(),"$node_(%d) set ragent_",addr() );// TCL 코드상에서 $node_(번호)라는 변수가 선언이 되어야 한다.tcl.eval();AODV* agent = (AODV*)TclObject::lookup(tcl.result());agent->hello();}
Tcl 스크립트상에서 $node_(번호)라는 변수와 위의 함수내에 굵게 처리한 부분과 일치해야하며,
변수의 %d 부분과 자신의 주소(addr())이 동일해야 동작한다.
(한마디로 low scalability이다. -_-;)
3. Tcl 스크립트와 연동하여 사용. (Recommendable)
Myagent.cc
class MyAgent: public Agent{..AODV* agent_;};
void MyAgent::command(int argc, ...... ){Tcl& tcl=Tcl::instance();...if( argc == 2 ) {if( strcasecmp(argv[1], "start" ) == 0) {....}}else if( argc == 3) {if( strcasecmp(argv[1], "get-aodv" ) == 0){agent = (AODV*)TclObject::lookup(argv[2]);return TCL_OK;}else if (.........}...}
...set var(rp) AODV...$ns_ node-config -adhocRouting $val(rp) \...for {set i 0} {$i < 5 } {incr i} {set node_($i) [$ns node_]set p_($i) [new Agent/Protoname]$ns_ attach-agent $node_($i) $p_($i)}
for {set i 0} {$i < 5 } {incr i} {set ra [$node_($i) set ragent_] ;#1$ns_ at 4.5 "$p_($i) get-aodv $ra" ;#2
$ns_ at 5.0 "$p_($i) start";}....
#1.
Tcl 문법에서 클래스의 멤버변수에 값을 할당하기 위해 <인스턴스 set 변수 세팅할_값> 순서로 스크립팅한다. 세팅할_값 을 생략하면 그 변수가 가지고 있는 값을 리턴하는 것이 Tcl 문법인것 같다.(추측 ;)
#2
<#1>실행으로 획득한 Tcl 변수 ra의 값은 특정 TclObject를 간접적으로 가리키는 유일한 스트링 값이다. (포인터 처럼 직접적으로 가리키진 않음)
언더바+문자+숫자, 예를 들어 _o17 이런식으로 이루어져있다.
반응형