Skip to content

Commit cc5ab4c

Browse files
committed
Move joinFieldValues to libsaimeta
1 parent 638ca82 commit cc5ab4c

File tree

7 files changed

+49
-78
lines changed

7 files changed

+49
-78
lines changed

lib/src/ClientSai.cpp

+3-6
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ using namespace std::placeholders;
2828

2929
// TODO how to tell if current SAI is in init view or apply view ?
3030

31-
std::string joinFieldValues(
32-
_In_ const std::vector<swss::FieldValueTuple> &values);
33-
3431
std::vector<swss::FieldValueTuple> serialize_counter_id_list(
3532
_In_ const sai_enum_metadata_t *stats_enum,
3633
_In_ uint32_t count,
@@ -646,7 +643,7 @@ sai_status_t ClientSai::objectTypeGetAvailability(
646643
SWSS_LOG_DEBUG(
647644
"Query arguments: switch: %s, attributes: %s",
648645
strSwitchId.c_str(),
649-
joinFieldValues(entry).c_str());
646+
Globals::joinFieldValues(entry).c_str());
650647

651648
// Syncd will pop this argument off before trying to deserialize the attribute list
652649

@@ -1241,7 +1238,7 @@ sai_status_t ClientSai::bulkCreate(
12411238
entry.push_back(null);
12421239
}
12431240

1244-
std::string str_attr = joinFieldValues(entry);
1241+
std::string str_attr = Globals::joinFieldValues(entry);
12451242

12461243
swss::FieldValueTuple fvtNoStatus(serialized_object_ids[idx] , str_attr);
12471244

@@ -1537,7 +1534,7 @@ sai_status_t ClientSai::bulkSet(
15371534
{
15381535
auto entry = SaiAttributeList::serialize_attr_list(object_type, 1, &attr_list[idx], false);
15391536

1540-
std::string str_attr = joinFieldValues(entry);
1537+
std::string str_attr = Globals::joinFieldValues(entry);
15411538

15421539
swss::FieldValueTuple value(serialized_object_ids[idx], str_attr);
15431540

lib/src/Recorder.cpp

+16-18
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include "meta/sai_serialize.h"
44
#include "meta/SaiAttributeList.h"
5+
#include "meta/Globals.h"
56

67
#include <unistd.h>
78
#include <inttypes.h>
@@ -13,9 +14,6 @@
1314
using namespace sairedis;
1415
using namespace saimeta;
1516

16-
std::string joinFieldValues(
17-
_In_ const std::vector<swss::FieldValueTuple> &values);
18-
1917
std::vector<swss::FieldValueTuple> serialize_counter_id_list(
2018
_In_ const sai_enum_metadata_t *stats_enum,
2119
_In_ uint32_t count,
@@ -307,7 +305,7 @@ void Recorder::recordFlushFdbEntries(
307305
{
308306
SWSS_LOG_ENTER();
309307

310-
recordLine("f|" + key + "|" + joinFieldValues(arguments));
308+
recordLine("f|" + key + "|" + Globals::joinFieldValues(arguments));
311309
}
312310

313311
void Recorder::recordFlushFdbEntriesResponse(
@@ -324,7 +322,7 @@ void Recorder::recordQueryAttributeCapability(
324322
{
325323
SWSS_LOG_ENTER();
326324

327-
recordLine("q|attribute_capability|" + key + "|" + joinFieldValues(arguments));
325+
recordLine("q|attribute_capability|" + key + "|" + Globals::joinFieldValues(arguments));
328326
}
329327

330328
void Recorder::recordQueryAttributeCapabilityResponse(
@@ -333,7 +331,7 @@ void Recorder::recordQueryAttributeCapabilityResponse(
333331
{
334332
SWSS_LOG_ENTER();
335333

336-
recordLine("Q|attribute_capability|" + sai_serialize_status(status) + "|" + joinFieldValues(arguments));
334+
recordLine("Q|attribute_capability|" + sai_serialize_status(status) + "|" + Globals::joinFieldValues(arguments));
337335
}
338336

339337
void Recorder::recordQueryAttributeEnumValuesCapability(
@@ -342,7 +340,7 @@ void Recorder::recordQueryAttributeEnumValuesCapability(
342340
{
343341
SWSS_LOG_ENTER();
344342

345-
recordLine("q|attribute_enum_values_capability|" + key + "|" + joinFieldValues(arguments));
343+
recordLine("q|attribute_enum_values_capability|" + key + "|" + Globals::joinFieldValues(arguments));
346344
}
347345

348346
void Recorder::recordQueryAttributeEnumValuesCapabilityResponse(
@@ -351,7 +349,7 @@ void Recorder::recordQueryAttributeEnumValuesCapabilityResponse(
351349
{
352350
SWSS_LOG_ENTER();
353351

354-
recordLine("Q|attribute_enum_values_capability|" + sai_serialize_status(status) + "|" + joinFieldValues(arguments));
352+
recordLine("Q|attribute_enum_values_capability|" + sai_serialize_status(status) + "|" + Globals::joinFieldValues(arguments));
355353
}
356354

357355
void Recorder::recordObjectTypeGetAvailability(
@@ -360,7 +358,7 @@ void Recorder::recordObjectTypeGetAvailability(
360358
{
361359
SWSS_LOG_ENTER();
362360

363-
recordLine("q|object_type_get_availability|" + key + "|" + joinFieldValues(arguments));
361+
recordLine("q|object_type_get_availability|" + key + "|" + Globals::joinFieldValues(arguments));
364362
}
365363

366364
void Recorder::recordObjectTypeGetAvailabilityResponse(
@@ -369,7 +367,7 @@ void Recorder::recordObjectTypeGetAvailabilityResponse(
369367
{
370368
SWSS_LOG_ENTER();
371369

372-
recordLine("Q|object_type_get_availability|" + sai_serialize_status(status) + "|" + joinFieldValues(arguments));
370+
recordLine("Q|object_type_get_availability|" + sai_serialize_status(status) + "|" + Globals::joinFieldValues(arguments));
373371
}
374372

375373
void Recorder::recordNotifySyncd(
@@ -400,7 +398,7 @@ void Recorder::recordGenericCreate(
400398

401399
// lower case 'c' stands for create api
402400

403-
recordLine("c|" + key + "|" + joinFieldValues(arguments));
401+
recordLine("c|" + key + "|" + Globals::joinFieldValues(arguments));
404402
}
405403

406404
void Recorder::recordGenericCreateResponse(
@@ -534,7 +532,7 @@ void Recorder::recordGenericSet(
534532

535533
// lower case 's' stands for SET api
536534

537-
recordLine("s|" + key + "|" + joinFieldValues(arguments));
535+
recordLine("s|" + key + "|" + Globals::joinFieldValues(arguments));
538536
}
539537

540538
void Recorder::recordGenericSetResponse(
@@ -600,7 +598,7 @@ void Recorder::recordGenericGet(
600598

601599
// lower case 'g' stands for GET api
602600

603-
recordLine("g|" + key + "|" + joinFieldValues(arguments));
601+
recordLine("g|" + key + "|" + Globals::joinFieldValues(arguments));
604602
}
605603

606604
void Recorder::recordGenericGetResponse(
@@ -611,7 +609,7 @@ void Recorder::recordGenericGetResponse(
611609

612610
// capital 'G' stands for GET api response
613611

614-
recordLine("G|" + sai_serialize_status(status) + "|" + joinFieldValues(arguments));
612+
recordLine("G|" + sai_serialize_status(status) + "|" + Globals::joinFieldValues(arguments));
615613
}
616614

617615
void Recorder::recordGenericGetStats(
@@ -647,7 +645,7 @@ void Recorder::recordGenericGetStats(
647645
if (!m_recordStats)
648646
return;
649647

650-
recordLine("q|get_stats|" + key + "|" + joinFieldValues(arguments));
648+
recordLine("q|get_stats|" + key + "|" + Globals::joinFieldValues(arguments));
651649
}
652650

653651
void Recorder::recordGenericGetStatsResponse(
@@ -702,7 +700,7 @@ void Recorder::recordGenericClearStats(
702700
if (!m_recordStats)
703701
return;
704702

705-
recordLine("q|clear_stats|" + key + "|" + joinFieldValues(arguments));
703+
recordLine("q|clear_stats|" + key + "|" + Globals::joinFieldValues(arguments));
706704
}
707705

708706
void Recorder::recordGenericClearStatsResponse(
@@ -723,7 +721,7 @@ void Recorder::recordNotification(
723721
{
724722
SWSS_LOG_ENTER();
725723

726-
recordLine("n|" + name + "|" + serializedNotification + "|" + joinFieldValues(values));
724+
recordLine("n|" + name + "|" + serializedNotification + "|" + Globals::joinFieldValues(values));
727725
}
728726

729727
void Recorder::recordRemove(
@@ -937,7 +935,7 @@ void Recorder::recordObjectTypeGetAvailability(
937935
attrList,
938936
false);
939937

940-
SWSS_LOG_DEBUG("Query arguments: switch: %s, attributes: %s", key.c_str(), joinFieldValues(values).c_str());
938+
SWSS_LOG_DEBUG("Query arguments: switch: %s, attributes: %s", key.c_str(), Globals::joinFieldValues(values).c_str());
941939

942940
recordObjectTypeGetAvailability(key, values);
943941
}

lib/src/RedisRemoteSaiInterface.cpp

+3-6
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ using namespace saimeta;
2121
using namespace sairediscommon;
2222
using namespace std::placeholders;
2323

24-
std::string joinFieldValues(
25-
_In_ const std::vector<swss::FieldValueTuple> &values);
26-
2724
std::vector<swss::FieldValueTuple> serialize_counter_id_list(
2825
_In_ const sai_enum_metadata_t *stats_enum,
2926
_In_ uint32_t count,
@@ -887,7 +884,7 @@ sai_status_t RedisRemoteSaiInterface::objectTypeGetAvailability(
887884
SWSS_LOG_DEBUG(
888885
"Query arguments: switch: %s, attributes: %s",
889886
strSwitchId.c_str(),
890-
joinFieldValues(entry).c_str());
887+
Globals::joinFieldValues(entry).c_str());
891888

892889
// Syncd will pop this argument off before trying to deserialize the attribute list
893890

@@ -1534,7 +1531,7 @@ sai_status_t RedisRemoteSaiInterface::bulkSet(
15341531
{
15351532
auto entry = SaiAttributeList::serialize_attr_list(object_type, 1, &attr_list[idx], false);
15361533

1537-
std::string str_attr = joinFieldValues(entry);
1534+
std::string str_attr = Globals::joinFieldValues(entry);
15381535

15391536
swss::FieldValueTuple value(serialized_object_ids[idx], str_attr);
15401537

@@ -1632,7 +1629,7 @@ sai_status_t RedisRemoteSaiInterface::bulkCreate(
16321629
entry.push_back(null);
16331630
}
16341631

1635-
std::string str_attr = joinFieldValues(entry);
1632+
std::string str_attr = Globals::joinFieldValues(entry);
16361633

16371634
swss::FieldValueTuple fvtNoStatus(serialized_object_ids[idx] , str_attr);
16381635

lib/src/Sai.cpp

-23
Original file line numberDiff line numberDiff line change
@@ -730,29 +730,6 @@ std::shared_ptr<Context> Sai::getContext(
730730
return it->second;
731731
}
732732

733-
std::string joinFieldValues(
734-
_In_ const std::vector<swss::FieldValueTuple> &values)
735-
{
736-
SWSS_LOG_ENTER();
737-
738-
std::stringstream ss;
739-
740-
for (size_t i = 0; i < values.size(); ++i)
741-
{
742-
const std::string &str_attr_id = fvField(values[i]);
743-
const std::string &str_attr_value = fvValue(values[i]);
744-
745-
if (i != 0)
746-
{
747-
ss << "|";
748-
}
749-
750-
ss << str_attr_id << "=" << str_attr_value;
751-
}
752-
753-
return ss.str();
754-
}
755-
756733
std::vector<swss::FieldValueTuple> serialize_counter_id_list(
757734
_In_ const sai_enum_metadata_t *stats_enum,
758735
_In_ uint32_t count,

lib/src/tests.cpp

+3-25
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ extern "C" {
1212

1313
#include "meta/sai_serialize.h"
1414
#include "meta/SaiAttributeList.h"
15+
#include "meta/Globals.h"
1516

1617
#include <unistd.h>
1718

@@ -578,29 +579,6 @@ void test_serialize_create_oid(int n)
578579
std::cout << "ms: " << (double)us.count()/1000 << " / " << n << std::endl;
579580
}
580581

581-
std::string joinFieldValues(
582-
_In_ const std::vector<swss::FieldValueTuple> &values)
583-
{
584-
SWSS_LOG_ENTER();
585-
586-
std::stringstream ss;
587-
588-
for (size_t i = 0; i < values.size(); ++i)
589-
{
590-
const std::string &str_attr_id = fvField(values[i]);
591-
const std::string &str_attr_value = fvValue(values[i]);
592-
593-
if (i != 0)
594-
{
595-
ss << "|";
596-
}
597-
598-
ss << str_attr_id << "=" << str_attr_value;
599-
}
600-
601-
return ss.str();
602-
}
603-
604582
std::string serialize_bulk_create_route_entry(int per)
605583
{
606584
SWSS_LOG_ENTER();
@@ -618,7 +596,7 @@ std::string serialize_bulk_create_route_entry(int per)
618596
std::vector<swss::FieldValueTuple> entry =
619597
SaiAttributeList::serialize_attr_list(SAI_OBJECT_TYPE_ROUTE_ENTRY, list->get_attr_count(), list->get_attr_list(), false);
620598

621-
std::string str_attr = joinFieldValues(entry);
599+
std::string str_attr = Globals::joinFieldValues(entry);
622600

623601
std::string str_status = sai_serialize_status(SAI_STATUS_NOT_EXECUTED);
624602

@@ -678,7 +656,7 @@ std::string serialize_bulk_create_oid(int per)
678656
std::vector<swss::FieldValueTuple> entry =
679657
SaiAttributeList::serialize_attr_list(SAI_OBJECT_TYPE_VLAN, list->get_attr_count(), list->get_attr_list(), false);
680658

681-
std::string str_attr = joinFieldValues(entry);
659+
std::string str_attr = Globals::joinFieldValues(entry);
682660

683661
std::string str_status = sai_serialize_status(SAI_STATUS_NOT_EXECUTED);
684662

meta/Globals.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,23 @@ std::string Globals::getHardwareInfo(
6868

6969
return std::string((const char*)s8list.list, actualLength);
7070
}
71+
72+
std::string Globals::joinFieldValues(
73+
_In_ const std::vector<swss::FieldValueTuple>& values)
74+
{
75+
SWSS_LOG_ENTER();
76+
77+
std::stringstream ss;
78+
79+
for (size_t i = 0; i < values.size(); ++i)
80+
{
81+
if (i != 0)
82+
{
83+
ss << "|";
84+
}
85+
86+
ss << fvField(values[i]) << "=" << fvValue(values[i]);
87+
}
88+
89+
return ss.str();
90+
}

meta/Globals.h

+4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ extern "C" {
55
}
66

77
#include "swss/logger.h"
8+
#include "swss/table.h"
89

910
#include <string>
1011

@@ -34,6 +35,9 @@ namespace saimeta
3435
static std::string getHardwareInfo(
3536
_In_ uint32_t attrCount,
3637
_In_ const sai_attribute_t *attrList);
38+
39+
static std::string joinFieldValues(
40+
_In_ const std::vector<swss::FieldValueTuple>& values);
3741
};
3842
}
3943

0 commit comments

Comments
 (0)