10 DistServer::DistServer(
unsigned int nInputs,
unsigned int nOutputs,
unsigned int nInterleaving)
11 : nInputs_(nInputs), nOutputs_(nOutputs), nInterleaving_(nInterleaving), inputs_(nInputs_) {
12 for (
unsigned int iInput = 0; iInput < this->
nInputs(); ++iInput) {
14 for (
unsigned int iInterleave = 0; iInterleave < this->
nInterleaving(); ++iInterleave) {
15 addr_[iInput][iInterleave] = iInterleave;
21 for (
unsigned int iInput = 0; iInput <
nInputs(); ++iInput) {
22 if (
data[iInput]->dataValid()) {
31 std::vector<std::vector<unsigned int> >&
addr = this->
addr();
33 for (
unsigned int iInput = 0; iInput <
nInputs(); ++iInput) {
34 unsigned int lAddr =
addr[iInput][0];
35 if (lAddr <
inputs()[iInput].size()) {
36 lInputs[iInput] =
inputs()[iInput][lAddr];
37 lMap[iInput][lInputs[iInput]->sortKey()] =
true;
41 for (
unsigned int iInput = 0; iInput <
nInputs(); ++iInput) {
42 vector<unsigned int>& toRotate =
addr[iInput];
43 rotate(toRotate.begin(), toRotate.begin() + 1, toRotate.end());
48 for (
unsigned int iOutput = 0; iOutput < lOutputs.size(); ++iOutput) {
49 for (
unsigned int iInput = 0; iInput <
nInputs(); ++iInput) {
50 if (lMap[iInput][iOutput]) {
51 lOutputs[iOutput] = lInputs[iInput];
std::vector< std::vector< unsigned int > > & addr()
unsigned int nInputs() const
std::vector< TrackKFOutSAPtr > TrackKFOutSAPtrCollection
TrackKFOutSAPtrCollection clock(TrackKFOutSAPtrCollection &inputs)
std::vector< std::vector< unsigned int > > addr_
char data[epos_bytes_allocation]
TrackKFOutSAPtrCollections & inputs()
def rotate(angle, cx=0, cy=0)
unsigned int nInterleaving() const
unsigned int nOutputs() const