Skip to content

Commit

Permalink
fix ci
Browse files Browse the repository at this point in the history
  • Loading branch information
nivi-apple committed Oct 1, 2023
1 parent 0dddcdb commit c3d4530
Show file tree
Hide file tree
Showing 4 changed files with 473 additions and 25 deletions.
89 changes: 89 additions & 0 deletions src/darwin/Framework/CHIP/#MTRDiagnosticLogsTransferHandler.h#
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
/**
*
* Copyright (c) 2023 Project CHIP Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#include <protocols/bdx/AsyncTransferFacilitator.h>

//#include <lib/core/OTAImageHeader.h>
//#include <platform/CHIPDeviceLayer.h>
//#include <platform/OTAImageProcessor.h>

#include <fstream>

static char kDiagnosticLogsDownloadPath[] = "/tmp/diagnostic_logs.txt";

NS_ASSUME_NONNULL_BEGIN

/**
* This class inherits from the AsyncResponder class and handles the BDX messages for a BDX transfer session.
* It overrides the HandleTransferSessionOutput virtual method and provides an implementation for it to handle
* the OutputEvents that are generated by the BDX transfer session state machine.
*
* An MTRDiagnosticLogsTransferHandler will be associated with a specific BDX transfer session.
*
* The lifecycle of this class is managed by the AsyncFacilitator class which calls the virtual CleanUp method
* that is implemented by this class to clean up and destroy itself and the AsyncFacilitator instances.
* Note: An object of this class can't be used after CleanUp has been called.
*/
class MTRDiagnosticLogsTransferHandler : public chip::bdx::AsyncResponder
{
public:
MTRDiagnosticLogsTransferHandler();
~MTRDiagnosticLogsTransferHandler();

void HandleTransferSessionOutput(chip::bdx::TransferSession::OutputEvent & event) override;
void CleanUp() override;

protected:
CHIP_ERROR OnMessageReceived(chip::Messaging::ExchangeContext * ec, const chip::PayloadHeader & payloadHeader,
chip::System::PacketBufferHandle && payload) override;

private:
CHIP_ERROR PrepareForTransfer(chip::Messaging::ExchangeContext * exchangeCtx, chip::FabricIndex fabricIndex,
chip::NodeId nodeId);

CHIP_ERROR ConfigureState(chip::FabricIndex fabricIndex, chip::NodeId nodeId);

CHIP_ERROR OnMessageToSend(chip::bdx::TransferSession::OutputEvent & event);

CHIP_ERROR OnTransferSessionBegin(chip::bdx::TransferSession::OutputEvent & event);

CHIP_ERROR OnTransferSessionEnd(chip::bdx::TransferSession::OutputEvent & event);

CHIP_ERROR OnBlockReceived(chip::bdx::TransferSession::OutputEvent & event);

// The fabric index of the node with which the BDX session is established.
chip::Optional<chip::FabricIndex> mFabricIndex;

// The node id of the node with which the BDX session is established.
chip::Optional<chip::NodeId> mNodeId;

// The OTA provider delegate used by the controller.
id<MTROTAProviderDelegate> mDelegate = nil;

// The OTA provider delegate queue used by the controller.
dispatch_queue_t mDelegateNotificationQueue = nil;

// write to a file temporarily
// std::ofstream mOfs;
//MutableByteSpan mBlock;
//OTAImageHeaderParser mHeaderParser;

uint64_t downloadedBytes = 0;
uint64_t totalFileBytes = 0;
};

NS_ASSUME_NONNULL_END
Loading

0 comments on commit c3d4530

Please sign in to comment.