Revision: 8861
http://playerstage.svn.sourceforge.net/playerstage/?rev=8861&view=rev
Author: jpgr87
Date: 2010-08-29 00:59:36 +0000 (Sun, 29 Aug 2010)
Log Message:
-----------
Applied patch #3055165: Player SVN: request forwarding for imgcmp and imgsave
Modified Paths:
--------------
code/player/trunk/server/drivers/camera/imgcmp/imgcmp.cc
code/player/trunk/server/drivers/camera/imgsave/imgsave.cc
Modified: code/player/trunk/server/drivers/camera/imgcmp/imgcmp.cc
===================================================================
--- code/player/trunk/server/drivers/camera/imgcmp/imgcmp.cc 2010-08-29
00:55:55 UTC (rev 8860)
+++ code/player/trunk/server/drivers/camera/imgcmp/imgcmp.cc 2010-08-29
00:59:36 UTC (rev 8861)
@@ -402,6 +402,8 @@
player_dio_cmd_t dio_cmd;
double t;
int d;
+ Message * msg;
+ player_msghdr newhdr;
assert(hdr);
if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_DATA, -1, this->dio_id))
@@ -621,6 +623,20 @@
}
}
return 0;
+ } else if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_REQ, -1,
this->camera_provided_addr))
+ {
+ hdr->addr = this->camera_id;
+ msg = this->camera->Request(this->InQueue, hdr->type, hdr->subtype, data,
0, NULL, true); // threaded = true
+ if (!msg)
+ {
+ PLAYER_WARN("failed to forward request");
+ return -1;
+ }
+ newhdr = *(msg->GetHeader());
+ newhdr.addr = this->camera_provided_addr;
+ this->Publish(resp_queue, &newhdr, msg->GetPayload(), true); // copy =
true, do not dispose published data as we're disposing whole source message in
the next line
+ delete msg;
+ return 0;
}
return -1;
}
Modified: code/player/trunk/server/drivers/camera/imgsave/imgsave.cc
===================================================================
--- code/player/trunk/server/drivers/camera/imgsave/imgsave.cc 2010-08-29
00:55:55 UTC (rev 8860)
+++ code/player/trunk/server/drivers/camera/imgsave/imgsave.cc 2010-08-29
00:59:36 UTC (rev 8861)
@@ -312,6 +312,8 @@
FILE * f;
struct tm t;
time_t tt = time(NULL);
+ Message * msg;
+ player_msghdr newhdr;
assert(hdr);
if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_DATA,
PLAYER_CAMERA_DATA_STATE, this->camera_id))
@@ -529,6 +531,20 @@
output = NULL;
}
return 0;
+ } else if (Message::MatchMessage(hdr, PLAYER_MSGTYPE_REQ, -1,
this->camera_provided_addr))
+ {
+ hdr->addr = this->camera_id;
+ msg = this->camera->Request(this->InQueue, hdr->type, hdr->subtype, data,
0, NULL, true); // threaded = true
+ if (!msg)
+ {
+ PLAYER_WARN("failed to forward request");
+ return -1;
+ }
+ newhdr = *(msg->GetHeader());
+ newhdr.addr = this->camera_provided_addr;
+ this->Publish(resp_queue, &newhdr, msg->GetPayload(), true); // copy =
true, do not dispose published data as we're disposing whole source message in
the next line
+ delete msg;
+ return 0;
}
return -1;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users
worldwide. Take advantage of special opportunities to increase revenue and
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit