クラスをフロントアプリケーションに公開するC++プロトコルスタックdll(シリアル通信用)があります。公開されたクラスは次のようになります。
class ProtocolStack
{
public :
void OpenRequest(Params);
void SendData(Params);
void CloseRequest(Params);
};
ProtocolStack クラスは、以下に示すように、PhysicalLayer のようなさまざまなレイヤーを作成します。
class PhysicalLayer
{
private:
int Baud_rate;
string PortName;
public:
void Send(string);
void Receive();
};
異なるシステムからデータを並行して読み取るために、同じプロトコル スタックを使用したいと考えています。(異なるポートから) 並列読み取り用にプロトコル スタックの単一のオブジェクトを作成した場合、同じ関数が異なるスレッドから同時に呼び出されると、各関数呼び出しに割り当てられるデータ セグメントは異なりますか?
物理層のプライベート変数が破損します。右?
各レイヤーで各チャネル (並列接続) のすべてのデータを維持する必要がありますか?
データを並列処理したい。スタックの別のオブジェクトを作成するか、各レイヤーの接続に関連するすべてのデータを維持する以外に他の方法はありますか?