| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| /** |
| * \file TestParameters.cpp |
| */ |
| |
| #include "tests/storePerftools/common/TestParameters.h" |
| |
| #include <cstdlib> // std::atoi, std::atol |
| |
| namespace tests { |
| namespace storePerftools { |
| namespace common { |
| |
| // static declarations |
| uint32_t TestParameters::s_defaultNumMsgs = 1024; |
| uint32_t TestParameters::s_defaultMsgSize = 1024; |
| uint16_t TestParameters::s_defaultNumQueues = 1; |
| uint16_t TestParameters::s_defaultEnqThreadsPerQueue = 1; |
| uint16_t TestParameters::s_defaultDeqThreadsPerQueue = 1; |
| |
| TestParameters::TestParameters(): |
| Parameters(), |
| m_numMsgs(s_defaultNumMsgs), |
| m_msgSize(s_defaultMsgSize), |
| m_numQueues(s_defaultNumQueues), |
| m_numEnqThreadsPerQueue(s_defaultEnqThreadsPerQueue), |
| m_numDeqThreadsPerQueue(s_defaultDeqThreadsPerQueue)//, |
| {} |
| |
| TestParameters::TestParameters(const uint32_t numMsgs, |
| const uint32_t msgSize, |
| const uint16_t numQueues, |
| const uint16_t numEnqThreadsPerQueue, |
| const uint16_t numDeqThreadsPerQueue) : |
| Parameters(), |
| m_numMsgs(numMsgs), |
| m_msgSize(msgSize), |
| m_numQueues(numQueues), |
| m_numEnqThreadsPerQueue(numEnqThreadsPerQueue), |
| m_numDeqThreadsPerQueue(numDeqThreadsPerQueue) |
| {} |
| |
| TestParameters::TestParameters(const TestParameters& tp): |
| Parameters(), |
| m_numMsgs(tp.m_numMsgs), |
| m_msgSize(tp.m_msgSize), |
| m_numQueues(tp.m_numQueues), |
| m_numEnqThreadsPerQueue(tp.m_numEnqThreadsPerQueue), |
| m_numDeqThreadsPerQueue(tp.m_numDeqThreadsPerQueue) |
| {} |
| |
| TestParameters::~TestParameters() {} |
| |
| void |
| TestParameters::toStream(std::ostream& os) const { |
| os << "Test Parameters:" << std::endl; |
| os << " num_msgs = " << m_numMsgs << std::endl; |
| os << " msg_size = " << m_msgSize << std::endl; |
| os << " num_queues = " << m_numQueues << std::endl; |
| os << " num_enq_threads_per_queue = " << m_numEnqThreadsPerQueue << std::endl; |
| os << " num_deq_threads_per_queue = " << m_numDeqThreadsPerQueue << std::endl; |
| } |
| |
| bool |
| TestParameters::parseArg(const int arg, |
| const char* optarg) { |
| switch(arg) { |
| case 'm': |
| m_numMsgs = uint32_t(std::atol(optarg)); |
| break; |
| case 'S': |
| m_msgSize = uint32_t(std::atol(optarg)); |
| break; |
| case 'q': |
| m_numQueues = uint16_t(std::atoi(optarg)); |
| break; |
| case 'e': |
| m_numEnqThreadsPerQueue = uint16_t(std::atoi(optarg)); |
| break; |
| case 'd': |
| m_numDeqThreadsPerQueue = uint16_t(std::atoi(optarg)); |
| break; |
| default: |
| return false; |
| } |
| return true; |
| } |
| |
| // static |
| void |
| TestParameters::printArgs(std::ostream& os) { |
| os << "Test parameters:" << std::endl; |
| os << " -m --num_msgs: Number of messages to send per enqueue thread [" |
| << TestParameters::s_defaultNumMsgs << "]" << std::endl; |
| os << " -S --msg_size: Size of each message to be sent [" |
| << TestParameters::s_defaultMsgSize << "]" << std::endl; |
| os << " -q --num_queues: Number of simultaneous queues [" |
| << TestParameters::s_defaultNumQueues << "]" << std::endl; |
| os << " -e --num_enq_threads_per_queue: Number of enqueue threads per queue [" |
| << TestParameters::s_defaultEnqThreadsPerQueue << "]" << std::endl; |
| os << " -d --num_deq_threads_per_queue: Number of dequeue threads per queue [" |
| << TestParameters::s_defaultDeqThreadsPerQueue << "]" << std::endl; |
| os << std::endl; |
| } |
| |
| // static |
| std::string |
| TestParameters::shortArgs() { |
| return "m:S:q:e:d:"; |
| } |
| |
| }}} // namespace tests::storePerftools::common |