72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								// Copyright (c) 2022 Sentry. All Rights Reserved.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "SentryAttachment.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "Interface/SentryAttachmentInterface.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if PLATFORM_ANDROID
							 | 
						||
| 
								 | 
							
								#include "Android/SentryAttachmentAndroid.h"
							 | 
						||
| 
								 | 
							
								#elif PLATFORM_IOS || PLATFORM_MAC
							 | 
						||
| 
								 | 
							
								#include "Apple/SentryAttachmentApple.h"
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void USentryAttachment::InitializeWithData(const TArray<uint8>& Data, const FString& Filename, const FString& ContentType)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								#if PLATFORM_ANDROID
							 | 
						||
| 
								 | 
							
									AttachmentNativeImpl = MakeShareable(new SentryAttachmentAndroid(Data, Filename, ContentType));
							 | 
						||
| 
								 | 
							
								#elif PLATFORM_IOS || PLATFORM_MAC
							 | 
						||
| 
								 | 
							
									AttachmentNativeImpl = MakeShareable(new SentryAttachmentApple(Data, Filename, ContentType));
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void USentryAttachment::InitializeWithPath(const FString& Path, const FString& Filename, const FString& ContentType)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								#if PLATFORM_ANDROID
							 | 
						||
| 
								 | 
							
									AttachmentNativeImpl = MakeShareable(new SentryAttachmentAndroid(Path, Filename, ContentType));
							 | 
						||
| 
								 | 
							
								#elif PLATFORM_IOS || PLATFORM_MAC
							 | 
						||
| 
								 | 
							
									AttachmentNativeImpl = MakeShareable(new SentryAttachmentApple(Path, Filename, ContentType));
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								TArray<uint8> USentryAttachment::GetData() const
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									if(!AttachmentNativeImpl)
							 | 
						||
| 
								 | 
							
										return TArray<uint8>();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return AttachmentNativeImpl->GetData();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								FString USentryAttachment::GetPath() const
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									if(!AttachmentNativeImpl)
							 | 
						||
| 
								 | 
							
										return FString();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return AttachmentNativeImpl->GetPath();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								FString USentryAttachment::GetFilename() const
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									if(!AttachmentNativeImpl)
							 | 
						||
| 
								 | 
							
										return FString();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return AttachmentNativeImpl->GetFilename();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								FString USentryAttachment::GetContentType() const
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									if(!AttachmentNativeImpl)
							 | 
						||
| 
								 | 
							
										return FString();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return AttachmentNativeImpl->GetContentType();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void USentryAttachment::InitWithNativeImpl(TSharedPtr<ISentryAttachment> attachmentImpl)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									AttachmentNativeImpl = attachmentImpl;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								TSharedPtr<ISentryAttachment> USentryAttachment::GetNativeImpl()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									return AttachmentNativeImpl;
							 | 
						||
| 
								 | 
							
								}
							 |