c Message void set Nameconst char name void
- Slides: 23
Сообщение • • выводится из класса c. Message Некоторые функции void set. Name(const char *name); void set. Kind(short k); void set. Timestamp(simtime_t t); void set. Scheduling. Priority(short p); 7
Пример: клиент-источник запросов class Client : public c. Simple. Module{ c. Message *msg_start = new c. Message( “start”, K_START); c. Message *msg_req = new c. Message( “req”, K_REQ); msg_req->add. Par(“time”); }; void Client : : initialize() { schedule. At(0, msg_start) } 8
Клиент (2) void Gen: : handle. Message(c. Message *m){ msg_req>par(“time”). set. Long. Value(get_req_time(); // время вып. задания send(msg_req, out); schedule. At (Sim. Time()+get_pause_time(), msg_start); } // номер генератора запросов не учтён! 9
Модель процесса обработки (без планировщика) - 2 case message End: if ( queue. empty() )state = IDLE; else {message Req = queue. get(); schedule. At (Sim. Time(), message Req ); break; } // case } // handle. Message // написанное курсивом надо доработать!!! 10
Процесс обработки с планировщиком (2) case message cont: if (state == RUN) break; if(state == IDLE) if(time_left > 0) {schedule. At( Sim. Time()+time_left, message End); state = RUN; } break; 12
NED: описание простого компонента simple App { parameters: int dest. Address; . . . @display("i=block/browser"); gates: input in; output out; } 17
NED: описание составного компонента network Network { submodules: node 1: Node; node 2: Node; node 3: Node; connections: node 1. port++ <--> {datarate=100 Mbps; } <--> node 2. port++; node 2. port++ <--> {datarate=100 Mbps; } <--> node 4. port++; node 4. port++ <--> {datarate=100 Mbps; } <--> node 6. port++; } 18
Процесс обработки с планировщиком • Добавляем вход от планировщика • Сообщения: pause, cont • Переменная состояния: time_left = 0; • В handle. Message() { case msg_pause: if (state == IDLE) break /* из case */; if( state == RUN){ time_left = msg_end. get. Timestamp()-Sim. Time(); cancel. Event(msg_end); 21 state = IDLE}
Процесс обработки с планировщиком (2) case msg_cont: if (state == RUN) break; if(state == IDLE) if(time_left > 0) {schedule. At( Sim. Time()+time_left, msg_end; state = RUN; } break; 22
- Const char * vs char * const
- Auto break case char
- Total set awareness set consideration set
- Training set validation set test set
- Int ival char cval
- Bool 1
- Void loop(void)
- Void main(void)
- Void main(void)
- Struct char name 25 charlanguage 10
- Char name
- Char* name
- Char name[20]
- Struct student char *name
- Struct student char *name
- Char name 20
- Name a point that is collinear with the given points
- Public void int
- Void set
- Bounded set vs centered set
- Crisp set vs fuzzy set
- Crisp set vs fuzzy set
- Crisp set vs fuzzy set
- What is the overlap of data set 1 and data set 2?