jp.go.aist.rtm.RTC.port.publisher
Class PublisherNew

java.lang.Object
  extended by jp.go.aist.rtm.RTC.port.publisher.PublisherBase
      extended by jp.go.aist.rtm.RTC.port.publisher.PublisherNew
All Implemented Interfaces:
java.lang.Runnable, ObjectCreator<PublisherBase>, ObjectDestructor

public class PublisherNew
extends PublisherBase
implements java.lang.Runnable, ObjectCreator<PublisherBase>, ObjectDestructor

データ送出タイミングを待つコンシューマを、送出する側とは異なるスレッドで動作させる場合に使用します。

Publisherの駆動は、データ送出のタイミングになるまでブロックされ、送出タイミングの通知を受けると、 即座にコンシューマの送出処理を呼び出します。


Nested Class Summary
protected static class PublisherNew.Policy
           
 
Field Summary
protected  Logbuf rtcout
          
 
Constructor Summary
PublisherNew()
           Constructor
 
Method Summary
 ReturnCode activate()
           activate
protected  ReturnCode convertReturn(ReturnCode status, org.omg.CORBA.portable.OutputStream data)
           convertReturn
protected  boolean createTask(Properties prop)
           Setting Task
 PublisherBase creator_()
           creator_
 ReturnCode deactivate()
           deactivate
 void destructor_(java.lang.Object obj)
           destructor_
 java.lang.String getName()
           getName
 ReturnCode init(Properties prop)
           init
protected  ReturnCode invokeListener(ReturnCode status, org.omg.CORBA.portable.OutputStream data)
           
 boolean isActive()
           write
protected  void onBufferFull(org.omg.CORBA.portable.OutputStream data)
           
protected  void onBufferRead(org.omg.CORBA.portable.OutputStream data)
           
protected  void onBufferWriteOverwrite(org.omg.CORBA.portable.OutputStream data)
           
protected  void onBufferWriteTimeout(org.omg.CORBA.portable.OutputStream data)
           
protected  void onReceived(org.omg.CORBA.portable.OutputStream data)
           
protected  void onReceiverError(org.omg.CORBA.portable.OutputStream data)
           
protected  void onReceiverFull(org.omg.CORBA.portable.OutputStream data)
           
protected  void onReceiverTimeout(org.omg.CORBA.portable.OutputStream data)
           
protected  void onSend(org.omg.CORBA.portable.OutputStream data)
           
protected  void onSenderError()
           Connector listener functions
 int open(java.lang.Object[] args)
          当該Publisherの駆動を開始します。
static void PublisherNewInit()
           PublisherNewInit
protected  ReturnCode pushAll()
           pushAll
protected  ReturnCode pushFifo()
           pushFifo
protected  ReturnCode pushNew()
           pushNew
protected  ReturnCode pushSkip()
           pushSkip
 void release()
          駆動フラグがオフとなり、Publisherの駆動が停止します。
 void run()
          当該Publisherオブジェクトのスレッドコンテキストです。 送出タイミングが通知されるまでブロックします。
 ReturnCode setBuffer(BufferBase<org.omg.CORBA.portable.OutputStream> buffer)
           setBuffer
 ReturnCode setConsumer(InPortConsumer consumer)
           setConsumer
 ReturnCode setListener(ConnectorBase.ConnectorInfo info, ConnectorListeners listeners)
           Setting buffer pointer
protected  void setPushPolicy(Properties prop)
           Setting PushPolicy
 int svc()
          当該Publisherオブジェクトのスレッドコンテキストです。 送出タイミングが通知されるまでブロックします。
 void update()
          送出タイミング時に呼び出します。ブロックしている当該Publisherの駆動が開始され、 コンシューマへの送出処理が行われます。
 ReturnCode write(org.omg.CORBA.portable.OutputStream data)
           
 ReturnCode write(org.omg.CORBA.portable.OutputStream data, int sec, int usec)
           Write data
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rtcout

protected Logbuf rtcout

Constructor Detail

PublisherNew

public PublisherNew()
Constructor

Method Detail

update

public void update()

送出タイミング時に呼び出します。ブロックしている当該Publisherの駆動が開始され、 コンシューマへの送出処理が行われます。


svc

public int svc()

当該Publisherオブジェクトのスレッドコンテキストです。 送出タイミングが通知されるまでブロックします。


pushAll

protected ReturnCode pushAll()

pushAll

push all policy

Returns:
ReturnCode

pushFifo

protected ReturnCode pushFifo()

pushFifo

push "fifo" policy

Returns:
ReturnCode

pushSkip

protected ReturnCode pushSkip()

pushSkip

push "skip" policy

Returns:
ReturnCode

pushNew

protected ReturnCode pushNew()

pushNew

push "new" policy

Returns:
ReturnCode

open

public int open(java.lang.Object[] args)

当該Publisherの駆動を開始します。

Parameters:
args - (本Publisherでは使用されません。)

release

public void release()

駆動フラグがオフとなり、Publisherの駆動が停止します。

ただし、すでに駆動スレッドがブロックされている場合には、 最大1回のみコンシューマの送出処理が呼び出されることがあります。

Overrides:
release in class PublisherBase

run

public void run()

当該Publisherオブジェクトのスレッドコンテキストです。 送出タイミングが通知されるまでブロックします。

Specified by:
run in interface java.lang.Runnable

init

public ReturnCode init(Properties prop)

init

initialization

Specified by:
init in class PublisherBase
Parameters:
prop -
Returns:
ReturnCode

setPushPolicy

protected void setPushPolicy(Properties prop)

Setting PushPolicy

Parameters:
prop - Properties

createTask

protected boolean createTask(Properties prop)

Setting Task

Parameters:
prop - Properties
Returns:
false:Task creation failed

setConsumer

public ReturnCode setConsumer(InPortConsumer consumer)

setConsumer

Store InPort consumer

Specified by:
setConsumer in class PublisherBase
Parameters:
consumer -
Returns:
ReturnCode

setBuffer

public ReturnCode setBuffer(BufferBase<org.omg.CORBA.portable.OutputStream> buffer)

setBuffer

Setting buffer

Specified by:
setBuffer in class PublisherBase
Parameters:
buffer -
Returns:
ReturnCode

setListener

public ReturnCode setListener(ConnectorBase.ConnectorInfo info,
                              ConnectorListeners listeners)

Setting buffer pointer

Specified by:
setListener in class PublisherBase
Returns:
ReturnCode

write

public ReturnCode write(org.omg.CORBA.portable.OutputStream data,
                        int sec,
                        int usec)
Write data

This function writes data into the buffer associated with this Publisher. If a Publisher object calls this function, without initializing correctly such as a consumer, a buffer, listeners, etc., error code PRECONDITION_NOT_MET will be returned and no operation of the writing to a buffer etc. will be performed. Since writing into the buffer and sending data to InPort are performed asynchronously, occasionally this function returns return-codes such as CONNECTION_LOST and BUFFER_FULL that indicate the result of sending data to InPort. In this case, writing data into buffer will not be performed. When publisher writes data to the buffer, if the buffer is filled, returns error, is returned with timeout and returns precondition error, error codes BUFFER_FULL, BUFFER_ERROR, BUFFER_TIMEOUT and PRECONDITION_NOT_MET will be returned respectively. In other cases, PROT_ERROR will be returned.

Specified by:
write in class PublisherBase
Parameters:
data - Data to be wrote to the buffer
sec - Timeout time in unit seconds
usec - Timeout time in unit micor-seconds
Returns:
PORT_OK Normal return PRECONDITION_NO_MET Precondition does not met. A consumer, a buffer, listenes are not set properly. CONNECTION_LOST detected that the connection has been lost BUFFER_FULL The buffer is full status. BUFFER_ERROR Some kind of error occurred in the buffer. NOT_SUPPORTED Some kind of operation that is not supported has been performed. TIMEOUT Timeout occurred when writing to the buffer.

write

public ReturnCode write(org.omg.CORBA.portable.OutputStream data)
Specified by:
write in class PublisherBase

isActive

public boolean isActive()

write

Specified by:
isActive in class PublisherBase
Returns:
boolean

activate

public ReturnCode activate()

activate

Specified by:
activate in class PublisherBase
Returns:
ReturnCode

deactivate

public ReturnCode deactivate()

deactivate

Specified by:
deactivate in class PublisherBase
Returns:
ReturnCode

creator_

public PublisherBase creator_()

creator_

Specified by:
creator_ in interface ObjectCreator<PublisherBase>
Returns:
Object Created instances

destructor_

public void destructor_(java.lang.Object obj)

destructor_

Specified by:
destructor_ in interface ObjectDestructor
Parameters:
obj - The target instances for destruction

PublisherNewInit

public static void PublisherNewInit()

PublisherNewInit


convertReturn

protected ReturnCode convertReturn(ReturnCode status,
                                   org.omg.CORBA.portable.OutputStream data)

convertReturn


invokeListener

protected ReturnCode invokeListener(ReturnCode status,
                                    org.omg.CORBA.portable.OutputStream data)

getName

public java.lang.String getName()

getName

Specified by:
getName in class PublisherBase
Returns:
String

onBufferFull

protected void onBufferFull(org.omg.CORBA.portable.OutputStream data)

onBufferWriteTimeout

protected void onBufferWriteTimeout(org.omg.CORBA.portable.OutputStream data)

onBufferWriteOverwrite

protected void onBufferWriteOverwrite(org.omg.CORBA.portable.OutputStream data)

onBufferRead

protected void onBufferRead(org.omg.CORBA.portable.OutputStream data)

onSend

protected void onSend(org.omg.CORBA.portable.OutputStream data)

onReceived

protected void onReceived(org.omg.CORBA.portable.OutputStream data)

onReceiverFull

protected void onReceiverFull(org.omg.CORBA.portable.OutputStream data)

onReceiverTimeout

protected void onReceiverTimeout(org.omg.CORBA.portable.OutputStream data)

onReceiverError

protected void onReceiverError(org.omg.CORBA.portable.OutputStream data)

onSenderError

protected void onSenderError()

Connector listener functions