Class: JIJI::Service::AgentService
- Inherits:
-
Object
- Object
- JIJI::Service::AgentService
- Includes:
- AgentUtil
- Defined in:
- lib/jiji/service/agent_service.rb
Instance Attribute Summary collapse
-
#agent_registry ⇒ Object
Returns the value of attribute agent_registry.
-
#process_manager ⇒ Object
Returns the value of attribute process_manager.
Instance Method Summary collapse
-
#add_agent(process_id, name, class_name, properties) ⇒ Object
プロセスにエージェントを追加する.
-
#delete_files(file_names, type = :agent) ⇒ Object
ファイルを削除する.
-
#get_file(file_name, type = :agent) ⇒ Object
ファイルの内容を取得する.
-
#list_agent(process_id) ⇒ Object
プロセスに登録されているエージェントの一覧を得る.
-
#list_agent_class ⇒ Object
エージェントの一覧を取得する.
-
#list_files(type = :agent) ⇒ Object
ファイルの一覧を取得する.
-
#off(process_id, name) ⇒ Object
プロセスのエージェントを一時的に無効化する.
-
#on(process_id, name) ⇒ Object
プロセスのエージェントの無効化を解除する.
-
#on?(process_id, name) ⇒ Boolean
プロセスのエージェントの無効化状態を取得する.
-
#put_file(file_name, body, type = :agent) ⇒ Object
ファイルを追加/更新する.
-
#remove_agent(process_id, name) ⇒ Object
プロセスのエージェントを削除する.
Methods included from AgentUtil
Instance Attribute Details
#agent_registry ⇒ Object
Returns the value of attribute agent_registry.
117 118 119 |
# File 'lib/jiji/service/agent_service.rb', line 117 def agent_registry @agent_registry end |
#process_manager ⇒ Object
Returns the value of attribute process_manager.
118 119 120 |
# File 'lib/jiji/service/agent_service.rb', line 118 def process_manager @process_manager end |
Instance Method Details
#add_agent(process_id, name, class_name, properties) ⇒ Object
プロセスにエージェントを追加する
80 81 82 83 84 85 |
# File 'lib/jiji/service/agent_service.rb', line 80 def add_agent( process_id, name, class_name, properties ) p = process_manager.get( process_id ) agent = agent_registry.create( class_name, properties ) p.agent_manager.add( name, agent ) :success end |
#delete_files(file_names, type = :agent) ⇒ Object
ファイルを削除する
49 50 51 52 53 54 55 56 57 |
# File 'lib/jiji/service/agent_service.rb', line 49 def delete_files( file_names, type=:agent ) file_names.each {|fn| check_filename( fn ) } file_names.each {|fn| @agent_registry.remove_file( fn, type.to_sym ) } :success end |
#get_file(file_name, type = :agent) ⇒ Object
ファイルの内容を取得する
22 23 24 25 |
# File 'lib/jiji/service/agent_service.rb', line 22 def get_file( file_name, type=:agent ) check_filename( file_name ) @agent_registry.get_file( file_name, type.to_sym ) end |
#list_agent(process_id) ⇒ Object
プロセスに登録されているエージェントの一覧を得る
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/jiji/service/agent_service.rb', line 61 def list_agent( process_id ) p = process_manager.get( process_id ) safe(4) { p.agent_manager.collect.map! {|entry| props = entry[1].agent.properties { "name"=>entry[0], "properties"=>entry[1].agent.property_infos.map! {|info| prop = props.find() {|e| e[0] == info.id.to_s } { "id"=>info.id.to_s, "info"=>info, "value"=> prop ? prop[1] : nil } }, "description"=>entry[1].agent.description, "active"=>entry[1].active } } } end |
#list_agent_class ⇒ Object
エージェントの一覧を取得する
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/jiji/service/agent_service.rb', line 29 def list_agent_class @agent_registry.inject([]) {|list,name| next unless name =~ /([^@]+)@([^@]+)/ list << { "class_name"=>$1, "file_name"=>$2, "properties"=>@agent_registry.get_property_infos(name), "description"=>@agent_registry.get_description(name) } list } end |
#list_files(type = :agent) ⇒ Object
ファイルの一覧を取得する
17 18 19 |
# File 'lib/jiji/service/agent_service.rb', line 17 def list_files( type=:agent ) @agent_registry.files( type.to_sym ) end |
#off(process_id, name) ⇒ Object
プロセスのエージェントを一時的に無効化する
101 102 103 104 105 |
# File 'lib/jiji/service/agent_service.rb', line 101 def off( process_id, name ) p = process_manager.get( process_id ) p.agent_manager.off( name ) :success end |
#on(process_id, name) ⇒ Object
プロセスのエージェントの無効化を解除する
107 108 109 110 111 |
# File 'lib/jiji/service/agent_service.rb', line 107 def on( process_id, name ) p = process_manager.get( process_id ) p.agent_manager.on( name ) :success end |
#on?(process_id, name) ⇒ Boolean
プロセスのエージェントの無効化状態を取得する
113 114 115 116 |
# File 'lib/jiji/service/agent_service.rb', line 113 def on?( process_id, name ) p = process_manager.get( process_id ) p.agent_manager.on?( name ) end |
#put_file(file_name, body, type = :agent) ⇒ Object
ファイルを追加/更新する
43 44 45 46 |
# File 'lib/jiji/service/agent_service.rb', line 43 def put_file( file_name, body, type=:agent ) check_filename( file_name ) @agent_registry.add_file( file_name, body, type.to_sym ) end |
#remove_agent(process_id, name) ⇒ Object
プロセスのエージェントを削除する
88 89 90 91 92 |
# File 'lib/jiji/service/agent_service.rb', line 88 def remove_agent( process_id, name ) p = process_manager.get( process_id ) p.agent_manager.remove( name ) :success end |