<s> import abc <EOL> import six <EOL> @ six . add_metaclass ( abc . ABCMeta ) <EOL> class DbApi ( object ) : <EOL> @ abc . abstractmethod <EOL> def initialize ( self , db_ip , db_port , ** args ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def support_publish_subscribe ( self ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def get_key ( self , table , key , topic = None ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def set_key ( self , table , key , value , topic = None ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def create_key ( self , table , key , value , topic = None ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def delete_key ( self , table , key , topic = None ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def get_all_entries ( self , table , topic = None ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def get_all_keys ( self , table , topic = None ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def register_notification_callback ( self , callback , topics = None ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def register_topic_for_notification ( self , topic ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def unregister_topic_for_notification ( self , topic ) : <EOL> """<STR_LIT>""" <EOL> @ abc . abstractmethod <EOL> def allocate_unique_key ( self ) : <EOL> """<STR_LIT>""" </s>
