Skip to content
This repository was archived by the owner on Jun 20, 2025. It is now read-only.

Commit 1ac518e

Browse files
ajinkyaghongefacebook-github-bot
authored andcommitted
Create pc_translator library.
Differential Revision: D44617759 fbshipit-source-id: a0df04dff0c43d957d78f9a147bbe6e86b3f1d11
1 parent 9516d0c commit 1ac518e

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
#include "fbpcs/pc_translator/PCTranslator.h"
9+
10+
namespace pc_translator {
11+
12+
std::string PCTranslator::encode(const std::string& /* inputDataset */) {
13+
throw std::runtime_error("Unimplemented");
14+
}
15+
16+
std::string PCTranslator::decode(
17+
const std::string& /* aggregatedOutputDataset */) {
18+
throw std::runtime_error("Unimplemented");
19+
}
20+
21+
void PCTranslator::retrieveInstructionSets(
22+
std::vector<std::string>& /* instructionSetNames */) {
23+
throw std::runtime_error("Unimplemented");
24+
}
25+
26+
std::vector<std::string> PCTranslator::retrieveInstructionSetNamesForRun(
27+
const std::string& /* pcsFeatures */) {
28+
throw std::runtime_error("Unimplemented");
29+
}
30+
31+
void PCTranslator::transformDataset(const std::string& /* input */) {
32+
throw std::runtime_error("Unimplemented");
33+
}
34+
35+
void PCTranslator::parseInstructionSet(
36+
const std::string& /* instructionSet */) {
37+
throw std::runtime_error("Unimplemented");
38+
}
39+
} // namespace pc_translator

fbpcs/pc_translator/PCTranslator.h

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
#pragma once
9+
10+
#include <cstdint>
11+
#include <memory>
12+
#include <string>
13+
#include <vector>
14+
15+
namespace pc_translator {
16+
17+
/*
18+
* This class contains functions required for PC Translator during actual run
19+
* i.e. retrieving the PC instruction sets, filtering the set per active GK for
20+
* run, encoding and decoding the dataset files input as per the instruction
21+
* set.
22+
*/
23+
class PCTranslator {
24+
public:
25+
explicit PCTranslator(const std::string& pcsFeatures)
26+
: pcsfeatures_(pcsFeatures) {}
27+
28+
/*
29+
* Method to encode the configurable fields in input dataset as per the active
30+
* pc instruction sets for the run. This method will output the path of
31+
* transformed input dataset, which can be used in further PC run.
32+
*/
33+
std::string encode(const std::string& inputDataset);
34+
35+
/*
36+
* Method to decode final aggregated output with the encoded breakdown Ids as
37+
* the keys. This method will decode the breakdown Ids to original group Id
38+
* values and format the aggregated output as per the new keys. Output of this
39+
* method would be the path of the decoded aggregated output.
40+
*/
41+
std::string decode(const std::string& aggregatedOutputDataset);
42+
43+
private:
44+
std::string pcsfeatures_;
45+
void retrieveInstructionSets(std::vector<std::string>& instructionSetNames);
46+
std::vector<std::string> retrieveInstructionSetNamesForRun(
47+
const std::string& pcsfeatures);
48+
void parseInstructionSet(const std::string& instructionSet);
49+
void transformDataset(const std::string& input);
50+
};
51+
52+
} // namespace pc_translator

0 commit comments

Comments
 (0)