1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

support show the summary of kafka metadata.

This commit is contained in:
winlin 2015-10-22 13:43:38 +08:00
parent d013374871
commit f0e39cc330
8 changed files with 111 additions and 20 deletions

View file

@ -23,7 +23,7 @@
#include <srs_kafka_stack.hpp>
#include <string>
#include <sstream>
using namespace std;
#include <srs_kernel_error.hpp>
@ -31,6 +31,8 @@ using namespace std;
#include <srs_kernel_log.hpp>
#include <srs_protocol_io.hpp>
#include <srs_protocol_stream.hpp>
#include <srs_kernel_utility.hpp>
#include <srs_protocol_utility.hpp>
#ifdef SRS_AUTO_KAFKA
@ -64,6 +66,15 @@ bool SrsKafkaString::empty()
return _size <= 0;
}
string SrsKafkaString::to_str()
{
string ret;
if (_size > 0) {
ret.append(data, _size);
}
return ret;
}
int SrsKafkaString::nb_bytes()
{
return _size == -1? 2 : 2 + _size;
@ -1077,8 +1088,24 @@ int SrsKafkaClient::fetch_metadata(string topic, SrsKafkaTopicMetadataResponse**
vector<string> srs_kafka_array2vector(SrsKafkaArray<SrsKafkaString>* arr)
{
vector<string> strs;
for (int i = 0; i < arr->nb_bytes(); i++) {
for (int i = 0; i < arr->size(); i++) {
SrsKafkaString* elem = arr->at(i);
strs.push_back(elem->to_str());
}
return strs;
}
vector<string> srs_kafka_array2vector(SrsKafkaArray<int32_t>* arr)
{
vector<string> strs;
for (int i = 0; i < arr->size(); i++) {
int32_t elem = arr->at(i);
strs.push_back(srs_int2str(elem));
}
return strs;
}

View file

@ -77,6 +77,7 @@ public:
public:
virtual bool null();
virtual bool empty();
virtual std::string to_str();
// interface ISrsCodec
public:
virtual int nb_bytes();
@ -147,6 +148,14 @@ public:
length++;
elems.push_back(elem);
}
virtual int size()
{
return length;
}
virtual T* at(int index)
{
return elems.at(index);
}
// interface ISrsCodec
public:
virtual int nb_bytes()
@ -228,6 +237,14 @@ public:
length++;
elems.push_back(elem);
}
virtual int size()
{
return length;
}
virtual int32_t at(int index)
{
return elems.at(index);
}
// interface ISrsCodec
public:
virtual int nb_bytes()
@ -792,6 +809,7 @@ public:
// convert kafka array[string] to vector[string]
extern std::vector<std::string> srs_kafka_array2vector(SrsKafkaArray<SrsKafkaString>* arr);
extern std::vector<std::string> srs_kafka_array2vector(SrsKafkaArray<int32_t>* arr);
#endif

View file

@ -312,3 +312,17 @@ int srs_write_large_iovs(ISrsProtocolReaderWriter* skt, iovec* iovs, int size, s
return ret;
}
string srs_join_vector_string(vector<string>& vs, string separator)
{
string str = "";
for (int i = 0; i < (int)vs.size(); i++) {
str += vs.at(i);
if (i != (int)vs.size() - 1) {
str += separator;
}
}
return str;
}

View file

@ -35,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#endif
#include <string>
#include <vector>
#include <srs_kernel_consts.hpp>
@ -130,5 +131,8 @@ extern int srs_write_large_iovs(
ssize_t* pnwrite = NULL
);
// join string in vector with indicated separator
extern std::string srs_join_vector_string(std::vector<std::string>& vs, std::string separator);
#endif