Update of /cvsroot/playerstage/code/player/server/drivers/blackboard/localbb
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2884/server/drivers/blackboard/localbb

Modified Files:
        localbb.cpp 
Log Message:
changes to blackboard interface and client proxies


Index: localbb.cpp
===================================================================
RCS file: 
/cvsroot/playerstage/code/player/server/drivers/blackboard/localbb/localbb.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** localbb.cpp 6 Dec 2007 00:20:28 -0000       1.4
--- localbb.cpp 21 Jan 2008 02:58:45 -0000      1.5
***************
*** 76,92 ****
  #include <iostream>
  
! /[EMAIL PROTECTED] Custom blackboard-entry data representation used 
internally by the driver. */
  typedef struct EntryData
  {
        /** Constructor. Sets all members to 0 or NULL. */
!   EntryData() { interf = 0; type = 0; subtype = 0; data_count = 0; data = 
NULL; timestamp_sec = 0; timestamp_usec = 0; }
    //~EntryData() { if (data != NULL) delete [] data; } Why doesn't it like 
this?
!   
!   /** Player interface */
!   uint16_t interf;
    /** Message type */
!   uint8_t type;
    /** Message sub-type */
!   uint8_t subtype;
  
    /** Data size */
--- 76,91 ----
  #include <iostream>
  
! /[EMAIL PROTECTED] EntryData
!  * @brief Custom blackboard-entry data representation used internally by the 
driver. */
  typedef struct EntryData
  {
        /** Constructor. Sets all members to 0 or NULL. */
!   EntryData() { type = 0; subtype = 0; data_count = 0; data = NULL; 
timestamp_sec = 0; timestamp_usec = 0; }
    //~EntryData() { if (data != NULL) delete [] data; } Why doesn't it like 
this?
! 
    /** Message type */
!   uint16_t type;
    /** Message sub-type */
!   uint16_t subtype;
  
    /** Data size */
***************
*** 94,103 ****
    /** Data */
    uint8_t* data;
!   /** Time entry created */
    uint32_t timestamp_sec;
    uint32_t timestamp_usec;
  } EntryData;
  
! /[EMAIL PROTECTED] Custom blackboard entry representation used internally by 
the driver.*/
  typedef struct BlackBoardEntry
  {
--- 93,104 ----
    /** Data */
    uint8_t* data;
!   /** Time entry created. Seconds since epoch. */
    uint32_t timestamp_sec;
+   /** Time entry created. Microseconds field. */
    uint32_t timestamp_usec;
  } EntryData;
  
! /[EMAIL PROTECTED] BlackBoardEntry
!  * @brief Custom blackboard entry representation used internally by the 
driver.*/
  typedef struct BlackBoardEntry
  {
***************
*** 113,128 ****
  
  // Function prototypes
! /** Convienience function to convert from the internal blackboard entry 
representation to the player format. The user must clean-up the player 
blackboard entry. */
  player_blackboard_entry_t ToPlayerBlackBoardEntry(const BlackBoardEntry 
&entry);
  
! /** Convienience function to convert from the player blackboard entry to the 
internal representation. */
  BlackBoardEntry FromPlayerBlackBoardEntry(const player_blackboard_entry_t 
&entry);
  
- // Remember to clean-up the entry afterwards. Delete the key and data.
  player_blackboard_entry_t ToPlayerBlackBoardEntry(const BlackBoardEntry 
&entry)
  {
    player_blackboard_entry_t result;
    memset(&result, 0, sizeof(player_blackboard_entry_t));
-   result.interf = entry.data.interf;
    result.type = entry.data.type;
    result.subtype = entry.data.subtype;
--- 114,127 ----
  
  // Function prototypes
! /** @brief Convienience function to convert from the internal blackboard 
entry representation to the player format. The user must clean-up the player 
blackboard entry. Delete the key and data. */
  player_blackboard_entry_t ToPlayerBlackBoardEntry(const BlackBoardEntry 
&entry);
  
! /** @brief Convienience function to convert from the player blackboard entry 
to the internal representation. This entry will be cleaned-up automatically by 
the destructor.*/
  BlackBoardEntry FromPlayerBlackBoardEntry(const player_blackboard_entry_t 
&entry);
  
  player_blackboard_entry_t ToPlayerBlackBoardEntry(const BlackBoardEntry 
&entry)
  {
    player_blackboard_entry_t result;
    memset(&result, 0, sizeof(player_blackboard_entry_t));
    result.type = entry.data.type;
    result.subtype = entry.data.subtype;
***************
*** 137,146 ****
    return result;
  }
! 
! // This entry will be cleaned-up automatically by the destructor.
  BlackBoardEntry FromPlayerBlackBoardEntry(const player_blackboard_entry_t 
&entry)
  {
    BlackBoardEntry result;
-   result.data.interf = entry.interf;
    result.data.type = entry.type;
    result.data.subtype = entry.subtype;
--- 136,143 ----
    return result;
  }
!  
  BlackBoardEntry FromPlayerBlackBoardEntry(const player_blackboard_entry_t 
&entry)
  {
    BlackBoardEntry result;
    result.data.type = entry.type;
    result.data.subtype = entry.subtype;
***************
*** 156,194 ****
  
  
////////////////////////////////////////////////////////////////////////////////
! /** Local memory blackboard driver. Stores entries in a hash-map in local 
memory. */
  class LocalBB : public Driver
  {
        public:
!               /** Default constructor. */
                LocalBB(ConfigFile* cf, int section);
!               /** Default destructor. */
                ~LocalBB();
!               /** Driver initialisation. */
                int Setup();
!               /** Driver de-initialisation. */
                int Shutdown();
  
                // MessageHandler
!               /** Process incoming messages. */
                int ProcessMessage(QueuePointer &resp_queue, player_msghdr * 
hdr, void * data);
        private:
                // Message subhandlers
!               /** Process a subscribe to key message. */
                int ProcessSubscribeKeyMessage(QueuePointer &resp_queue, 
player_msghdr * hdr, void * data);
!               /** Process an unsubscribe from key message. */
                int ProcessUnsubscribeKeyMessage(QueuePointer &resp_queue, 
player_msghdr * hdr, void * data);
!               /** Process a set entry message. */
                int ProcessSetEntryMessage(QueuePointer &resp_queue, 
player_msghdr * hdr, void * data);
  
                // Blackboard handler functions
!               /** Add the key and queue combination to the listeners hash-map 
and return the entry for the key. */
                BlackBoardEntry SubscribeKey(const string &key, const 
QueuePointer &resp_queue);
!               /** Remove the key and queue combination from the listeners 
hash-map. */
                void UnsubscribeKey(const string &key, const QueuePointer &qp);
!               /** Set the entry in the entries hashmap. */
                void SetEntry(const BlackBoardEntry &entry);
                
                // Helper functions
!               /** Check that the message has a valid size. */
                bool CheckHeader(player_msghdr * hdr);
  
--- 153,234 ----
  
  
////////////////////////////////////////////////////////////////////////////////
! /[EMAIL PROTECTED] LocalBB
!  * @brief Local memory blackboard driver. Stores entries in a hash-map in 
local memory. */
  class LocalBB : public Driver
  {
        public:
!               /**
!                * @brief Default constructor. 
!                * @param cf ConfigFile, the player configuration file 
information
!                * @param section The section of the configuration file
!                */
                LocalBB(ConfigFile* cf, int section);
!               /** @brief Default destructor. */
                ~LocalBB();
!               /** @brief Driver initialisation. */
                int Setup();
!               /** @brief Driver de-initialisation. */
                int Shutdown();
  
                // MessageHandler
!               /** @brief Process incoming messages.
!                * Check the incoming message types. If the message type is 
PLAYER_BLACKBOARD_REQ_SUBSCRIBE_TO_KEY, 
PLAYER_BLACKBOARD_REQ_UNSUBSCRIBE_FROM_KEY or PLAYER_BLACKBOARD_REQ_SET_ENTRY, 
call
!                * the appropriate private method to process it. Otherwise it 
is an unknown message.
!                * @param resp_queue Player response queue.
!                * @param hdr Message header.
!                * @param data Message data.
!                * @return 0 for success, -1 on error.
!                */
                int ProcessMessage(QueuePointer &resp_queue, player_msghdr * 
hdr, void * data);
        private:
                // Message subhandlers
!               /** @brief Process a subscribe to key message.
!                * Adds the response queue to the list of devices listening to 
that key in the map.
!                * Retrieves the entry for the given key.
!                * Publishes the entry. 
!                * @param resp_queue Player response queue.
!                * @param hdr Message header.
!                * @param data Message data.
!                * @return 0 for success, -1 on error.
!                */
                int ProcessSubscribeKeyMessage(QueuePointer &resp_queue, 
player_msghdr * hdr, void * data);
!               /** @brief Process an unsubscribe from key message.
!                * Removes the response queue from the list of devices 
listening to that key in the map.
!                * @param resp_queue Player response queue.
!                * @param hdr Message header.
!                * @param data Message data.
!                * @return 0 for success, -1 on error.
!                * */
                int ProcessUnsubscribeKeyMessage(QueuePointer &resp_queue, 
player_msghdr * hdr, void * data);
!               /** @brief Process a set entry message.
!                * Set the entry message in the local hashmap.
!                * Send out update events to other listening devices.
!                * Send back an empty ack.
!                * @param resp_queue Player response queue.
!                * @param hdr Message header.
!                * @return 0 for success, -1 on error.
!                */
                int ProcessSetEntryMessage(QueuePointer &resp_queue, 
player_msghdr * hdr, void * data);
  
                // Blackboard handler functions
!               /** @brief Add the key and queue combination to the listeners 
hash-map and return the entry for the key.
!                * @param key Entry key.
!                * @param resp_queue Player response queue of the subscriber. 
!                */
                BlackBoardEntry SubscribeKey(const string &key, const 
QueuePointer &resp_queue);
!               /** @brief Remove the key and queue combination from the 
listeners hash-map.
!                * @param key Entry key.
!                * @param qp Player response queue of the subscriber. 
!                */
                void UnsubscribeKey(const string &key, const QueuePointer &qp);
!               /** @brief Set the entry in the entries hashmap. *
!                * @param entry BlackBoardEntry that must be put in the hashmap.
!                */
                void SetEntry(const BlackBoardEntry &entry);
                
                // Helper functions
!               /** @brief Check that the message has a valid size.
!                * @param hdr Header of the message to check. 
!                */
                bool CheckHeader(player_msghdr * hdr);
  


-------------------------------------------------------------------------
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