Skip to content

Commit 9b88053

Browse files
Forgot to add O_o
1 parent 2ffb6ed commit 9b88053

File tree

2 files changed

+94
-0
lines changed

2 files changed

+94
-0
lines changed

blobstamper/stamp_enumerator.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/******************************************************************************
2+
*
3+
* Copyright 2021 Nikolay Shaplov (Postgres Professional)
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*
17+
******************************************************************************/
18+
19+
#include "stamp_enumerator.h"
20+
21+
#include"galley.h"
22+
#include"stamp.h"
23+
#include"blob.h"
24+
25+
26+
27+
std::string StampStrEnumerator::ExtractStr(Blob &blob)
28+
{
29+
std::vector<std::string> data = ExtractStrVector(blob);
30+
std::string res = "";
31+
32+
for(std::string s : data)
33+
{
34+
if (!res.empty())
35+
{
36+
res+= separator;
37+
}
38+
res+= s;
39+
}
40+
res = left_bracket + res + right_bracket;
41+
return res;
42+
}

blobstamper/stamp_enumerator.h

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/******************************************************************************
2+
*
3+
* Copyright 2021 Nikolay Shaplov (Postgres Professional)
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*
17+
******************************************************************************/
18+
19+
#ifndef STAMP_ENUMERATOR_H
20+
#define STAMP_ENUMERATOR_H
21+
22+
#include"galley.h"
23+
#include"stamp.h"
24+
#include"blob.h"
25+
26+
#include<string>
27+
28+
class StampStrEnumerator: public GalleyVectorStr, public StampBaseStr
29+
{
30+
protected:
31+
StampBaseStr & stamp_str;
32+
const std::string separator;
33+
const std::string left_bracket;
34+
const std::string right_bracket;
35+
public:
36+
StampStrEnumerator(StampBaseStr &arg_stamp,
37+
const std::string arg_sep,
38+
const std::string arg_l,
39+
const std::string arg_r
40+
):
41+
stamp_str(arg_stamp),
42+
separator(arg_sep),
43+
left_bracket(arg_l),
44+
right_bracket(arg_r),
45+
GalleyVectorStr(arg_stamp) {};
46+
47+
virtual std::string ExtractStr(Blob &blob) override;
48+
49+
};
50+
51+
52+
#endif //STAMP_ENUMERATOR_H

0 commit comments

Comments
 (0)