Update of /cvsroot/playerstage/code/player/client_libs/libplayerc
In directory
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25517/client_libs/libplayerc
Modified Files:
client.c dev_blackboard.c playerc.h
Log Message:
fix for peek behaviour in pull mode
updates for the blackboard interface
Index: client.c
===================================================================
RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc/client.c,v
retrieving revision 1.86
retrieving revision 1.87
diff -C2 -d -r1.86 -r1.87
*** client.c 2 Nov 2007 18:09:20 -0000 1.86
--- client.c 26 Nov 2007 22:14:59 -0000 1.87
***************
*** 517,528 ****
}
! // Test to see if there is pending data.
int playerc_client_peek(playerc_client_t *client, int timeout)
{
int count;
struct pollfd fd;
-
playerc_client_item_t *item;
!
if (client->sock < 0)
{
--- 517,538 ----
}
! // Test to see if there is pending data. Send a data request if one has
! // not been sent already.
int playerc_client_peek(playerc_client_t *client, int timeout)
{
+ if (!client->data_requested)
+ {
+ playerc_client_requestdata(client);
+ }
+ return playerc_client_internal_peek(client, timeout);
+ }
+
+ // Test to see if there is pending data. Don't send a data request.
+ int playerc_client_internal_peek(playerc_client_t *client, int timeout)
+ {
int count;
struct pollfd fd;
playerc_client_item_t *item;
!
if (client->sock < 0)
{
***************
*** 531,535 ****
}
-
if (client->qlen > 0)
{
--- 541,544 ----
***************
*** 585,589 ****
nanosleep(&sleeptime,NULL);
}
-
return(ret);
}
--- 594,597 ----
***************
*** 599,603 ****
{
// If there is no queued data, peek at the socket
! if(playerc_client_peek(client,0) <= 0)
return NULL;
// There's data on the socket, so read a packet (blocking).
--- 607,611 ----
{
// If there is no queued data, peek at the socket
! if(playerc_client_internal_peek(client,0) <= 0)
return NULL;
// There's data on the socket, so read a packet (blocking).
***************
*** 605,609 ****
return NULL;
}
!
while (true)
{
--- 613,617 ----
return NULL;
}
!
while (true)
{
***************
*** 653,657 ****
{
// If there is no queued data, peek at the socket
! if(playerc_client_peek(client,0) <= 0)
return NULL;
// There's data on the socket, so read a packet (blocking).
--- 661,665 ----
{
// If there is no queued data, peek at the socket
! if(playerc_client_internal_peek(client,0) <= 0)
return NULL;
// There's data on the socket, so read a packet (blocking).
***************
*** 724,728 ****
int peek;
gettimeofday(&last,NULL);
! peek = playerc_client_peek(client,10);
gettimeofday(&curr,NULL);
t -= ((curr.tv_sec + curr.tv_usec/1e6) -
--- 732,736 ----
int peek;
gettimeofday(&last,NULL);
! peek = playerc_client_internal_peek(client,10);
gettimeofday(&curr,NULL);
t -= ((curr.tv_sec + curr.tv_usec/1e6) -
Index: playerc.h
===================================================================
RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc/playerc.h,v
retrieving revision 1.239
retrieving revision 1.240
diff -C2 -d -r1.239 -r1.240
*** playerc.h 2 Nov 2007 18:09:20 -0000 1.239
--- playerc.h 26 Nov 2007 22:14:59 -0000 1.240
***************
*** 681,685 ****
uint16_t index, uint16_t sequence, uint8_t * resptype, uint8_t *
resp_data, int resp_len);
*/
! /** @brief Test to see if there is pending data.
@param client Pointer to client object.
--- 681,686 ----
uint16_t index, uint16_t sequence, uint8_t * resptype, uint8_t *
resp_data, int resp_len);
*/
! /** @brief Test to see if there is pending data. Send a data request if one
has not been sent already.
! * A data request is necessary to provoke a response from the server.
@param client Pointer to client object.
***************
*** 693,696 ****
--- 694,711 ----
int playerc_client_peek(playerc_client_t *client, int timeout);
+ /** @brief Test to see if there is pending data. Don't send a request for
data.
+ * This function is reliant on a call being made elsewhere to request data
from
+ * the server.
+
+ @param client Pointer to client object.
+
+ @param timeout Timeout value (ms). Set timeout to 0 to check for
+ currently queued data.
+
+ @returns Returns -1 on error, 0 or 1 otherwise.
+
+ */
+ int playerc_client_internal_peek(playerc_client_t *client, int timeout);
+
/** @brief Read data from the server (blocking).
***************
*** 1125,1128 ****
--- 1140,1145 ----
int playerc_blackboard_set_entry(playerc_blackboard_t *device,
player_blackboard_entry_t* entry);
+ player_blackboard_entry_t
playerc_blackboard_subscribe_to_key2(playerc_blackboard_t *device, const char*
key);
+
/** @} */
Index: dev_blackboard.c
===================================================================
RCS file:
/cvsroot/playerstage/code/player/client_libs/libplayerc/dev_blackboard.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** dev_blackboard.c 31 Oct 2007 01:18:42 -0000 1.4
--- dev_blackboard.c 26 Nov 2007 22:14:59 -0000 1.5
***************
*** 53,59 ****
#include <libplayerxdr/playerxdr.h>
! void playerc_blackboard_putmsg(playerc_blackboard_t *device,
! player_msghdr_t *header,
! player_blackboard_entry_t *data, size_t len);
// Create a new blackboard proxy
--- 53,57 ----
#include <libplayerxdr/playerxdr.h>
! void playerc_blackboard_putmsg(playerc_blackboard_t *device, player_msghdr_t
*header, player_blackboard_entry_t *data, size_t len);
// Create a new blackboard proxy
***************
*** 90,95 ****
// Subscribe to a blackboard key
! int playerc_blackboard_subscribe_to_key(playerc_blackboard_t* device, const
char* key,
! player_blackboard_entry_t** entry_out)
{
player_blackboard_entry_t req;
--- 88,92 ----
// Subscribe to a blackboard key
! int playerc_blackboard_subscribe_to_key(playerc_blackboard_t* device, const
char* key, player_blackboard_entry_t** entry_out)
{
player_blackboard_entry_t req;
***************
*** 98,106 ****
req.key_count = strlen(key) + 1;
! if (playerc_client_request(
! device->info.client,
! &device->info,
! PLAYER_BLACKBOARD_REQ_SUBSCRIBE_TO_KEY,
! &req, entry_out) < 0)
{
free(req.key);
--- 95,100 ----
req.key_count = strlen(key) + 1;
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_SUBSCRIBE_TO_KEY, &req, entry_out) < 0)
{
free(req.key);
***************
*** 121,130 ****
req.key_count = strlen(key) + 1;
! if (playerc_client_request(
! device->info.client,
! &device->info,
! PLAYER_BLACKBOARD_REQ_UNSUBSCRIBE_FROM_KEY,
! &req,
! NULL) < 0)
{
free(req.key);
--- 115,120 ----
req.key_count = strlen(key) + 1;
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_UNSUBSCRIBE_FROM_KEY, &req, NULL) < 0)
{
free(req.key);
***************
*** 141,149 ****
int playerc_blackboard_set_entry(playerc_blackboard_t *device,
player_blackboard_entry_t* entry)
{
! if (playerc_client_request(
! device->info.client,
! &device->info,
! PLAYER_BLACKBOARD_REQ_SET_ENTRY,
! entry, NULL) < 0)
{
PLAYERC_ERR("failed to set blackboard key");
--- 131,136 ----
int playerc_blackboard_set_entry(playerc_blackboard_t *device,
player_blackboard_entry_t* entry)
{
! if (playerc_client_request(device->info.client, &device->info,
! PLAYER_BLACKBOARD_REQ_SET_ENTRY, entry, NULL) < 0)
{
PLAYERC_ERR("failed to set blackboard key");
***************
*** 154,160 ****
}
! void playerc_blackboard_putmsg(playerc_blackboard_t *device,
! player_msghdr_t *header,
! player_blackboard_entry_t *data, size_t len)
{
if (device->on_blackboard_event != NULL)
--- 141,146 ----
}
! // Execute callback function
! void playerc_blackboard_putmsg(playerc_blackboard_t *device, player_msghdr_t
*header, player_blackboard_entry_t *data, size_t len)
{
if (device->on_blackboard_event != NULL)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit