From 3e782f02200e4a6061db4c5e8fec2421d0cfdfe8 Mon Sep 17 00:00:00 2001
From: Jeff Hill
When ca_array_put or ca_put are invoked the client will receive no response unless the request can not be fulfilled in the server. If unsuccessful an -exception handler is run on the client side. If a connection is lost and then -resumed outstanding ca_array_put or ca_put requests are not automatically -reissued following reconnect, and no additional notification are provided to -the user for each put request.
+exception handler is run on the client side.When ca_array_put_callback are invoked the user supplied asynchronous call -back is called only after the initiated write operation and all actions -resulting from the initiating write operation complete. If unsuccessful the -call back function is invoked indicating bad status. If the channel disconnects -before a put callback request can be completed, then the client's call back -function is called with bad status, but this does not guarantee that the server -did not receive and process the request before the disconnect.
+back is called only after the initiated write operation, and all actions +resulting from the initiating write operation, complete. + +If unsuccessful the call back function is invoked indicating failure status. +
+ +If the channel disconnects before a put callback request can be completed, +then the client's call back function is called with failure status, but this +does not guarantee that the server did not receive and process the request +before the disconnect. If a connection is lost and then resumed outstanding ca +put requests are not automatically reissued following reconnect.
All of these functions return ECA_DISCONN if the channel is currently disconnected.
@@ -2594,6 +2603,32 @@ disconnected. until one of ca_flush_io, ca_pend_io, ca_pend_event, or ca_sg_pend are called. This allows several requests to be efficiently combined into one message. +A CA put request causes the record to process if the record's SCAN field is +set to passive, and the field being written has it's process passive attribute +set to true. If such a record is already processing when a put request is +initiated the specified field is written immediately, and the record is +scheduled to process again as soon as it finishes processing. Earlier instances +of multiple put requests initiated while the record is being processing may be +discarded, but the last put request initiated is always written and +processed.
+ +A CA put callback request causes +the record to process if the record's SCAN field is set to passive, and the +field being written has it's process passive attribute set to true. For such a +record, the user's put callback function is not called until after the record, +and any records that the record links to, finish processing. If such a record +is already processing when a put callback request is initiated the put callback request is postponed until the +record, and any records it links to, finish processing.
+ +If the record's SCAN field is not set to passive, or the field being written +has it's process passive attribute set to false then the CA put or CA put +callback request cause the specified field to be immediately written, but they +do not cause the record to be processed.
+TYPEca_pend_event()
+ca_sg_array_put()
+ca_get()#include <cadef.h>
int ca_get ( chtype TYPE,
@@ -2668,14 +2705,14 @@ int ca_array_get_callback ( chtype TYPE, unsigned long COUNT,
When ca_get or ca_array_get are invoked the returned channel value cant be
assumed to be stable in the application supplied buffer until after ECA_NORMAL
-is returned from ca_pend_io. If a connection is lost outstanding get requests
-are not automatically reissued following reconnect.
+is returned from ca_pend_io. If a connection is lost outstanding ca get
+requests are not automatically reissued following reconnect.
When ca_get_callback or ca_array_get_callback are invoked a value is read
from the channel and then the user's callback is invoked with a pointer to the
retrieved value. Note that ca_pend_io will not block for the delivery of values
-requested by ca_get_callback. If the channel disconnects before a get callback
-request can be completed, then the clients call back function is called with
-bad status.
+requested by ca_get_callback. If the channel disconnects before a ca get
+callback request can be completed, then the clients call back function is
+called with failure status.
All of these functions return ECA_DISCONN if the channel is currently
disconnected.
@@ -2685,6 +2722,13 @@ until one of ca_flush_io, ca_pend_io, ca_pend_event, or ca_sg_pend are called.
This allows several requests to be efficiently sent over the network in one
message.
+Description (IOC Database Specific)
+
+A CA get or CA get callback request causes the record's field to be read
+immediately independent of whether the record is currently being processed or
+not. There is currently no mechanism in place to cause a record to be processed
+when a CA get request is initiated.
+
Example
See caExample.c in the example application created by makeBaseApp.pl.
@@ -2744,6 +2788,8 @@ ca_pend_io()
ca_pend_event()
+ca_sg_array_get()
+
ca_create_subscription()
#include <cadef.h>
typedef void ( *pCallBack ) (
@@ -3264,7 +3310,7 @@ SEVCHK ( status, "failed to install my printf handler" );
ca_replace_access_rights_event()
#include <cadef.h>
typedef void ( *pCallBack )( struct access_rights_handler_args );
-int ca_replace ( chid CHAN, pCallBack PFUNC );
+int ca_replace_access_rights_event ( chid CHAN, pCallBack PFUNC );
Write a value, or array of values, to a channel and increment the -outstanding request count of a synchronous group.
+outstanding request count of a synchronous group. The ca_sg_array_put +functionality is implemented using ca_array_put_callback.All remote operation requests such as the above are accumulated (buffered) and not forwarded to the server until one of ca_flush_io(), ca_pend_io(), @@ -3898,7 +3945,8 @@ int ca_sg_array_get ( CA_SYNC_GID GID,
Read a value from a channel and increment the outstanding request count of a -synchronous group.
+synchronous group. The ca_sg_array_get functionality is implemented using +ca_array_get_callback.The values written into your program's variables by ca_sg_get should not be referenced by your program until ECA_NORMAL has been received from ca_sg_block