def recv(self, sock, bufsize, dispatcher, threaded=False): """receive some data from **sock**, - **bufsize** is the max size for the buffer. - **dispatecher** is a function handler that will manipulate the data - **threaded** if it is true a new thread wiill be created to avoid blocking the main process. Only real node suppport this. in sim Node and netns3 node, threading is not allowed. """ abstract_method()
def stop_app(self, sock, app_name): """stop the app run on **sock** with app_name""" abstract_method()
def send(self, sock, data): """set **data** from sock.""" abstract_method()
def bind(self, sock, port): """bind **sock** to **port**""" abstract_method()
def now(self): """get current time, either simulation time or real time.""" abstract_method()
def ping(self, sock, data, threaded=False): """send ping traffic using **sock** and the server information is stored in **data**. A new thread will be created if the **threaded** is true """ abstract_method()
def behave(): abstract_method() from random import expovariate as exponential
def stop_app(self, sock, app_name): abstract_method()
def accept(self, sock): """accept from the **sock**, will return the accepted socket""" abstract_method()
def listen(self, sock, backlog): """listen to the **sock**. **backlog** is the max number of connection it can maintain""" abstract_method()
def create_sock(self, desc): """create_sock with parameter specified by **desc**, **desc** can be the address and port it tries to connect and the type of the connection""" abstract_method()
def sleep(self, t, call_back=None): """sleep the node for a **t** seconds, if **call_back** is specified, it will be called after node wake from sleep""" abstract_method()
def start(self): """start the node""" abstract_method()
def connect(self, sock, addr_port): abstract_method()
def close_sock(self, sock): abstract_method()
def node_num(self): abstract_method()
def connect(self, sock, addr_port): """connect the **sock** to the server with address and port specfied by **addr_port** """ abstract_method()
def stage(): abstract_method() def behave(): abstract_method()
def sendto(self, sock, data, addr, port): """send **data** from **sock** to **addr** and **port**, use UDP protocol""" abstract_method()
def create_timer(self, t, call_back): abstract_method()
def create_timer(self, t, call_back): abstract_method() ################################# ### Network Related ### ################################# def set_master_sock(self, sock): abstract_method()
def set_master_sock(self, sock): abstract_method() @property
def client_socks(self): abstract_method() #### Socket API #### def create_sock(self, desc):
def send(self, sock, data): abstract_method()
def recv(self, sock, bufsize, dispatcher, threaded=False): abstract_method() def send(self, sock, data): abstract_method()
def sendto(self, sock, data, addr, port): abstract_method()
def connect(self, sock, addr_port): abstract_method() def sendto(self, sock, data, addr, port): abstract_method()
def http(self, sock, data, threaded=False): abstract_method()
def sendto(self, sock, data, addr, port): abstract_method() def close_sock(self, sock): abstract_method()
def get_node(self, i): """get ith nodes""" abstract_method()
def close_sock(self, sock): abstract_method() ################################# ### Application Layer ####### ################################# def ping(self, sock, data, threaded=False): abstract_method()
def recv_ack(self): abstract_method() def echo(self, sock, data):
def ftp(self, sock, data, threaded=False): abstract_method() def icmp(self, sock, data, threaded=False): abstract_method()
def stage(self): abstract_method()
def http(self, sock, data, threaded=False): abstract_method() def stop_app(self, sock, app_name): abstract_method()
def stage(): abstract_method()
def start(self): abstract_method() ################################# ### Some Utility Function ### ################################# @property
def start(self): abstract_method()
def set_master_sock(self, sock): abstract_method()
def client_socks(self): abstract_method()
def recv(self, sock, bufsize, dispatcher, threaded=False): abstract_method()
def close(self, sock): """close the **sock**""" abstract_method()