Update of /cvsroot/playerstage/code/player/client_libs/libplayerc
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2884/client_libs/libplayerc

Modified Files:
        dev_blackboard.c playerc.h 
Log Message:
changes to blackboard interface and client proxies


Index: playerc.h
===================================================================
RCS file: /cvsroot/playerstage/code/player/client_libs/libplayerc/playerc.h,v
retrieving revision 1.246
retrieving revision 1.247
diff -C2 -d -r1.246 -r1.247
*** playerc.h   17 Jan 2008 04:37:23 -0000      1.246
--- playerc.h   21 Jan 2008 02:58:45 -0000      1.247
***************
*** 1120,1123 ****
--- 1120,1132 ----
  @{ */
  
+ #define PLAYERC_BLACKBOARD_DATA_TYPE_NONE       0
+ #define PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE     1
+ #define PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX    2
+ 
+ #define PLAYERC_BLACKBOARD_DATA_SUBTYPE_NONE    0
+ #define PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING  1
+ #define PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT     2
+ #define PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE  3
+ 
  /** @brief BlackBoard proxy. */
  typedef struct
***************
*** 1151,1155 ****
  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);
  
  /** @} */
--- 1160,1168 ----
  int playerc_blackboard_set_entry(playerc_blackboard_t *device, 
player_blackboard_entry_t* entry);
  
! int playerc_blackboard_set_string(playerc_blackboard_t *device, const char* 
key, const char* value);
! 
! int playerc_blackboard_set_int(playerc_blackboard_t *device, const char* key, 
const int value);
! 
! int playerc_blackboard_set_double(playerc_blackboard_t *device, const char* 
key, const double value);
  
  /** @} */

Index: dev_blackboard.c
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/client_libs/libplayerc/dev_blackboard.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** dev_blackboard.c    17 Jan 2008 04:37:23 -0000      1.6
--- dev_blackboard.c    21 Jan 2008 02:58:45 -0000      1.7
***************
*** 52,55 ****
--- 52,211 ----
  #include "error.h"
  #include <libplayerxdr/playerxdr.h>
+ #include <sys/time.h>
+ 
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_string(const char* 
key, const char *str);
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_int(const char* key, 
const int i);
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_double(const char* 
key, const double d);
+ 
+ char *playerc_unpack_blackboard_entry_string(const player_blackboard_entry_t 
*entry);
+ int playerc_unpack_blackboard_entry_int(const player_blackboard_entry_t 
*entry);
+ double playerc_unpack_blackboard_entry_double(const player_blackboard_entry_t 
*entry);
+ 
+ int playerc_check_blackboard_entry_is_string(const player_blackboard_entry_t 
*entry);
+ int playerc_check_blackboard_entry_is_int(const player_blackboard_entry_t 
*entry);
+ int playerc_check_blackboard_entry_is_double(const player_blackboard_entry_t 
*entry);
+ 
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_string(const char* 
key, const char *str)
+ {
+   struct timeval tv;
+   player_blackboard_entry_t *entry = 
malloc(sizeof(player_blackboard_entry_t));
+   assert(entry);
+   memset(entry, 0, sizeof(entry));
+ 
+   entry->type = PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX;
+   entry->subtype = PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING;
+ 
+   entry->key_count = strlen(key) + 1;
+   entry->key = malloc(entry->key_count);
+   memcpy(entry->key, key, entry->key_count);
+ 
+   entry->data_count = strlen(str) + 1;
+   entry->data = malloc(sizeof(int)*entry->data_count);
+   memcpy(entry->data, str, entry->data_count);
+ 
+   gettimeofday(&tv, NULL);
+   entry->timestamp_sec = tv.tv_sec;
+   entry->timestamp_usec = tv.tv_usec;
+ 
+   return entry;
+ }
+ 
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_int(const char* key, 
const int i)
+ {
+   struct timeval tv;
+   player_blackboard_entry_t *entry = 
malloc(sizeof(player_blackboard_entry_t));
+   assert(entry);
+   memset(entry, 0, sizeof(entry));
+ 
+   entry->type = PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE;
+   entry->subtype = PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT;
+ 
+   entry->key_count = strlen(key) + 1;
+   entry->key = malloc(entry->key_count);
+   memcpy(entry->key, key, entry->key_count);
+ 
+   entry->data_count = sizeof(int);
+   entry->data = malloc(sizeof(int)*entry->data_count);
+   memcpy(entry->data, &i, entry->data_count);
+ 
+   gettimeofday(&tv, NULL);
+   entry->timestamp_sec = tv.tv_sec;
+   entry->timestamp_usec = tv.tv_usec;
+ 
+   return entry;
+ }
+ 
+ player_blackboard_entry_t *playerc_pack_blackboard_entry_double(const char* 
key, const double d)
+ {
+   struct timeval tv;
+   player_blackboard_entry_t *entry = 
malloc(sizeof(player_blackboard_entry_t));
+   assert(entry);
+   memset(entry, 0, sizeof(entry));
+ 
+   entry->type = PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE;
+   entry->subtype = PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE;
+ 
+   entry->key_count = strlen(key) + 1;
+   entry->key = malloc(entry->key_count);
+   memcpy(entry->key, key, entry->key_count);
+ 
+   entry->data_count = sizeof(double);
+   entry->data = malloc(sizeof(int)*entry->data_count);
+   memcpy(entry->data, &d, entry->data_count);
+ 
+   gettimeofday(&tv, NULL);
+   entry->timestamp_sec = tv.tv_sec;
+   entry->timestamp_usec = tv.tv_usec;
+   return entry;
+ }
+ 
+ char *playerc_unpack_blackboard_entry_string(const player_blackboard_entry_t 
*entry)
+ {
+   assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX);
+   assert(entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING);
+ 
+   char *result = malloc(entry->data_count);
+   assert(result);
+   memcpy(result, entry->data, entry->data_count);
+ 
+   return result;
+ }
+ int playerc_unpack_blackboard_entry_int(const player_blackboard_entry_t 
*entry)
+ {
+   assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE);
+   assert(entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT);
+ 
+   int result = 0;
+   memcpy(&result, entry->data, entry->data_count);
+ 
+   return result;
+ }
+ 
+ double playerc_unpack_blackboard_entry_double(const player_blackboard_entry_t 
*entry)
+ {
+   assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE);
+   assert(entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE);
+ 
+   double result = 0.0;
+   memcpy(&result, entry->data, entry->data_count);
+ 
+   return result;
+ }
+ 
+ int playerc_check_blackboard_entry_is_string(const player_blackboard_entry_t 
*entry)
+ {
+   if (entry != NULL && entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX && 
entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING)
+   {
+     return 0;
+   }
+   else
+   {
+     return -1;
+   }
+ }
+ 
+ int playerc_check_blackboard_entry_is_int(const player_blackboard_entry_t 
*entry)
+ {
+   if (entry != NULL && entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE && 
entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT)
+   {
+     return 0;
+   }
+   else
+   {
+     return -1;
+   }
+ }
+ 
+ int playerc_check_blackboard_entry_is_double(const player_blackboard_entry_t 
*entry)
+ {
+   if (entry != NULL && entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE && 
entry->subtype == PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE)
+   {
+     return 0;
+   }
+   else
+   {
+     return -1;
+   }
+ }
  
  void playerc_blackboard_putmsg(playerc_blackboard_t *device, player_msghdr_t 
*header, player_blackboard_entry_t *data, size_t len);
***************
*** 58,68 ****
  playerc_blackboard_t *playerc_blackboard_create(playerc_client_t *client, int 
index)
  {
!       playerc_blackboard_t *device= NULL;
!       device = malloc(sizeof(playerc_blackboard_t));
!       memset(device, 0, sizeof(playerc_blackboard_t));
  
!       playerc_device_init(&device->info, client, PLAYER_BLACKBOARD_CODE, 
index, (playerc_putmsg_fn_t)playerc_blackboard_putmsg);
  
!       return device;
  }
  
--- 214,224 ----
  playerc_blackboard_t *playerc_blackboard_create(playerc_client_t *client, int 
index)
  {
!   playerc_blackboard_t *device= NULL;
!   device = malloc(sizeof(playerc_blackboard_t));
!   memset(device, 0, sizeof(playerc_blackboard_t));
  
!   playerc_device_init(&device->info, client, PLAYER_BLACKBOARD_CODE, index, 
(playerc_putmsg_fn_t)playerc_blackboard_putmsg);
  
!   return device;
  }
  
***************
*** 70,76 ****
  void playerc_blackboard_destroy(playerc_blackboard_t *device)
  {
!       playerc_device_term(&device->info);
!       //playerc_blackboard_cleanup(device);
!       free(device);
  }
  
--- 226,232 ----
  void playerc_blackboard_destroy(playerc_blackboard_t *device)
  {
!   playerc_device_term(&device->info);
!   //playerc_blackboard_cleanup(device);
!   free(device);
  }
  
***************
*** 78,82 ****
  int playerc_blackboard_subscribe(playerc_blackboard_t *device, int access)
  {
!       return playerc_device_subscribe(&device->info, access);
  }
  
--- 234,238 ----
  int playerc_blackboard_subscribe(playerc_blackboard_t *device, int access)
  {
!   return playerc_device_subscribe(&device->info, access);
  }
  
***************
*** 84,88 ****
  int playerc_blackboard_unsubscribe(playerc_blackboard_t *device)
  {
!       return playerc_device_unsubscribe(&device->info);
  }
  
--- 240,244 ----
  int playerc_blackboard_unsubscribe(playerc_blackboard_t *device)
  {
!   return playerc_device_unsubscribe(&device->info);
  }
  
***************
*** 90,108 ****
  int playerc_blackboard_subscribe_to_key(playerc_blackboard_t* device, const 
char* key, player_blackboard_entry_t** entry_out)
  {
!       player_blackboard_entry_t req;
!       memset(&req, 0, sizeof(req));
!       req.key = strdup(key);
!       req.key_count = strlen(key) + 1;
  
!       if (playerc_client_request(device->info.client, &device->info, 
!       PLAYER_BLACKBOARD_REQ_SUBSCRIBE_TO_KEY, &req, (void**)entry_out) < 0)
!       {
!               free(req.key);
!               PLAYERC_ERR("failed to subscribe to blackboard key");
!               return -1;
!       }
  
!       free(req.key);
!       return 0;
  }
  
--- 246,264 ----
  int playerc_blackboard_subscribe_to_key(playerc_blackboard_t* device, const 
char* key, player_blackboard_entry_t** entry_out)
  {
!   player_blackboard_entry_t req;
!   memset(&req, 0, sizeof(req));
!   req.key = strdup(key);
!   req.key_count = strlen(key) + 1;
  
!   if (playerc_client_request(device->info.client, &device->info, 
!   PLAYER_BLACKBOARD_REQ_SUBSCRIBE_TO_KEY, &req, (void**)entry_out) < 0)
!   {
!     free(req.key);
!     PLAYERC_ERR("failed to subscribe to blackboard key");
!     return -1;
!   }
  
!   free(req.key);
!   return 0;
  }
  
***************
*** 110,128 ****
  int playerc_blackboard_unsubscribe_from_key(playerc_blackboard_t* device, 
const char* key)
  {
!       player_blackboard_entry_t req;
!       memset(&req, 0, sizeof(req));
!       req.key = strdup(key);
!       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);
!               PLAYERC_ERR("failed to unsubscribe to blackboard key");
!               return -1;
!       }
  
!       free(req.key);
!       return 0;
  
  }
--- 266,284 ----
  int playerc_blackboard_unsubscribe_from_key(playerc_blackboard_t* device, 
const char* key)
  {
!   player_blackboard_entry_t req;
!   memset(&req, 0, sizeof(req));
!   req.key = strdup(key);
!   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);
!     PLAYERC_ERR("failed to unsubscribe to blackboard key");
!     return -1;
!   }
  
!   free(req.key);
!   return 0;
  
  }
***************
*** 131,142 ****
  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");
!               return -1;
!       }
  
!       return 0;
  }
  
--- 287,322 ----
  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");
!     return -1;
!   }
  
!   return 0;
! }
! 
! int playerc_blackboard_set_string(playerc_blackboard_t *device, const char* 
key, const char* value)
! {
!   player_blackboard_entry_t *entry = 
playerc_pack_blackboard_entry_string(key, value);
!   int result = playerc_blackboard_set_entry(device, entry);
!   free(entry);
!   return result;
! }
! 
! int playerc_blackboard_set_int(playerc_blackboard_t *device, const char* key, 
const int value)
! {
!   player_blackboard_entry_t *entry = playerc_pack_blackboard_entry_int(key, 
value);
!   int result = playerc_blackboard_set_entry(device, entry);
!   free(entry);
!   return result;
! }
! 
! int playerc_blackboard_set_double(playerc_blackboard_t *device, const char* 
key, const double value)
! {
!   player_blackboard_entry_t *entry = 
playerc_pack_blackboard_entry_double(key, value);
!   int result = playerc_blackboard_set_entry(device, entry);
!   free(entry);
!   return result;
  }
  
***************
*** 144,150 ****
  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)
!       {
!               device->on_blackboard_event(*data);
!       }
  }
--- 324,330 ----
  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)
!   {
!     device->on_blackboard_event(*data);
!   }
  }


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to