当前位置: 首页>>代码示例>>Python>>正文


Python Resource.get_publisher方法代码示例

本文整理汇总了Python中resource.Resource.get_publisher方法的典型用法代码示例。如果您正苦于以下问题:Python Resource.get_publisher方法的具体用法?Python Resource.get_publisher怎么用?Python Resource.get_publisher使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在resource.Resource的用法示例。


在下文中一共展示了Resource.get_publisher方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from resource import Resource [as 别名]
# 或者: from resource.Resource import get_publisher [as 别名]
class CmdHandler:
    def __init__(self):
        """
            Structure of dct_execution
            {"execution_name" : {KEY_FILTERCHAIN : ref, KEY_MEDIA : ref}}
        """
        self.dct_exec = {}
        self.config = Configuration()
        self.resource = Resource()
        # all record history, contains:
        # {"time": ..., "media_name": ..., "path": ...}
        self.lst_record_historic = []
        self.count_keys = defaultdict(int)

        self._is_keep_alive_media = self.config.get_is_keep_alive_media()
        self.old_rec_dir_path = self.config.get_path_save_record()

        # tcp server for output observer
        self.nb_observer_client = 0
        self.server_observer = Server()
        self.server_observer.start("", 5030)
        self.notify_event_client = {}
        self.id_client_notify = 0

        self.publisher = self.resource.get_publisher()

        # launch command on start
        thread.start_new_thread(self.config.get_dct_cmd_on_start(), (self,))

    def get_publisher(self):
        return self.publisher

    def close(self):
        logger.info("Close cmdHandler and close server.")
        for media_name in self.resource.get_media_name_list():
            media = self.resource.get_media(media_name)
            media.close()
            media.destroy()

        self.server_observer.stop()
        self.publisher.stop()
        self.publisher.deregister(keys.get_key_execution_list())
        self.publisher.deregister(keys.get_key_filter_param())
        self.publisher.deregister(keys.get_key_media_param())
        self.publisher.deregister(keys.get_key_lst_rec_historic())
        self.publisher.deregister(keys.get_key_count())

    @staticmethod
    def _post_command_(arg):
        funct_name = inspect.currentframe().f_back.f_code.co_name
        del arg["self"]
        # special case, observer is reference
        if "observer" in arg:
            arg["observer"] = "REF"
        if arg:
            logger.info("Request : %s - %s" % (funct_name, arg))
        else:
            logger.info("Request : %s" % funct_name)

    #
    # CLIENT ##################################
    #
    def is_connected(self):
        self._post_command_(locals())
        return True

    #
    # EXECUTION FILTER ################################
    #
    def start_filterchain_execution(
            self, execution_name, media_name, filterchain_name, file_name,
            is_client_manager):
        self._post_command_(locals())
        execution = self.dct_exec.get(execution_name, None)

        if execution:
            log.print_function(
                logger.error, "The execution %s is already created." %
                execution_name)
            return False

        filterchain = self.resource.get_filterchain(
            filterchain_name,
            force_new_filterchain=True)
        if not filterchain:
            log.print_function(
                logger.error, "Filterchain %s not exist or contain error." %
                filterchain_name)
            return False

        # Exception, if not media_name, we take the default media_name from the
        # filterchain
        if not media_name:
            media_name = filterchain.get_default_media_name()
            if not media_name:
                media_name = self.config.get_default_media_name()

        media = self.resource.get_media(media_name)
        if not media:
            log.print_function(
#.........这里部分代码省略.........
开发者ID:Octets,项目名称:SeaGoatVision,代码行数:103,代码来源:cmdHandler.py


注:本文中的resource.Resource.get_publisher方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。