Initial commit

This commit is contained in:
ifish
2017-08-15 16:59:01 +08:00
commit bdc83e07ef
5766 changed files with 423223 additions and 0 deletions
@@ -0,0 +1,26 @@
#import <Foundation/Foundation.h>
#import "UMSocialTaskConfig.h"
@interface UMSocialHttpFactory : NSObject
/**
* 创建一个NSMutableURLRequest的对象
*
* @param method @see UMSocialHttpMethodType
* @param path base path 如: http://www.umeng.com
* @param pathParameters 加入到path后面的键值对
* @param bodyParameters 加入到body的键值对
* @param headers 加入的http的header的键值对
*
* @return @see NSMutableURLRequest
*/
+ (NSMutableURLRequest *)makeRequestWithMethod:(UMSocialHttpMethodType)method
path:(NSString *)path
pathParameters:(NSDictionary *)pathParameters
bodyParameters:(NSDictionary *)bodyParameters
headers:(NSDictionary *)headers;
@end
@@ -0,0 +1,23 @@
//
// UMSocialNetwork.h
// UMSocialNetwork
//
// Created by 张军华 on 16/8/29.
// Copyright © 2016年 张军华. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for UMSocialNetwork.
FOUNDATION_EXPORT double UMSocialNetworkVersionNumber;
//! Project version string for UMSocialNetwork.
FOUNDATION_EXPORT const unsigned char UMSocialNetworkVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <UMSocialNetwork/PublicHeader.h>
#import <UMSocialNetwork/UMSocialHttpFactory.h>
#import <UMSocialNetwork/UMSocialTaskConfig.h>
#import <UMSocialNetwork/UMSocialTask.h>
#import <UMSocialNetwork/UMSocialTaskManager.h>
@@ -0,0 +1,65 @@
//
// UMSocialTask.h
// UMSocialSDK
//
// Created by 张军华 on 16/8/11.
// Copyright © 2016年 dongjianxiong. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "UMSocialTaskConfig.h"
@class UMSocialTaskOperation;
@class UMSocialTask;
NS_ASSUME_NONNULL_BEGIN
/**
* task的回调代理
*/
@protocol UMSocialTaskDelegate <NSObject>
-(void)handleTask:(UMSocialTask*)task withError:(NSError*) error;
@end
/**
* 所有网络请求的基本任务类
*/
@interface UMSocialTask : NSObject<NSCopying,NSCoding>
@property(nonatomic,assign)UMSocialHttpMethodType httpMethodType; //http请求类型
@property(nonatomic,copy)NSString* hostUrlPath;//http请求的host
@property(nonatomic,copy)NSString* relatedUrlPath; //http请求的相对url
@property(nonatomic,strong)NSDictionary* paramDic; //post或者get请求需要的字典
@property(nonatomic,copy)UMSocialTaskCompletion completion;//回调
@property(nonatomic,readonly,assign)NSInteger taskIdentifier; //唯一id
@property(nonatomic,readonly,assign)NSInteger retryCount;//retryCount
@property(nonatomic,readonly,assign)UMSoicalTaskState taskState;//task的状态
#pragma mark - override
/**
* 创建的NSURLRequest
*
* @return @see NSURLRequest
* @discuss 用户可以重载此函数,自己实现makeURLRequest的逻辑,
* 如果不重载此函数会用
* 默认会用httpMethodType,relatedUrlPathparamDic来产生对应的NSURLRequest
*/
-(NSURLRequest*)makeURLRequest;
#pragma mark - private
/**
* 在指定的operationTaskQueue的执行对应task的任务
*
* @param operationTaskQueue @see NSOperationQueue
* @discuss 本函数不需要直接调用,UMSocialNetworkCore会自动调用
* @see UMSocialTaskManager -(void)addAndExcuteSocialTask:(UMSocialTask*)task
*/
-(void)executeTaskWithOperationQueue:(NSOperationQueue*)operationTaskQueue;
@end
NS_ASSUME_NONNULL_END
@@ -0,0 +1,59 @@
//
// UMSocialTaskConfig.h
// UMSocialSDK
//
// Created by 张军华 on 16/8/12.
// Copyright © 2016年 dongjianxiong. All rights reserved.
//
#import <Foundation/Foundation.h>
//task的网络请求
typedef NS_ENUM(NSInteger, UMSocialHttpMethodType)
{
UMSocialHttpMethodTypeGet,
UMSocialHttpMethodTypePut,
UMSocialHttpMethodTypePost,
UMSocialHttpMethodTypeMultipartPost,
UMSocialHttpMethodTypeMultipartPut,
UMSocialHttpMethodTypeDelete
};
//task的状态
typedef NS_ENUM(NSInteger, UMSoicalTaskState)
{
UMSoicalTaskState_Paused = -1,//目前没用
UMSoicalTaskState_Ready = 1,
UMSoicalTaskState_Executing = 2,
UMSoicalTaskState_ExecutingDependency = 3,
UMSoicalTaskState_Finished = 4,
UMSoicalTaskState_Canceled = 5,//目前没有用
UMSoicalTaskState_Error = 6,
};
/**
* task完成的回调
*
* @param result 返回的数据
* @param error @see NSError
*/
typedef void (^UMSocialTaskCompletion)(id result,NSError* error);
/**
* task error
*/
extern NSString* const UMSoicalTaskErrorDomain;
extern NSString* const UMSoicalTaskErrorUserInfoKey;
typedef NS_ENUM(NSInteger, UMSoicalTaskErrorType)
{
UMSoicalTaskErrorType_UnKnown,
UMSoicalTaskErrorType_ParameterError,//参数错误 例如没有设置OperationQueue等
UMSoicalTaskErrorType_CFNetworkErrors, //http的请求的错误 @see CFNetworkErrors,该错误放在UMSoicalTaskErrorUserInfoKey为key的字典中
UMSoicalTaskErrorType_UMSoicalServerCode,//服务器的错误,根据当前UMSocial服务器的错误码文档来区分
};
extern NSError* errorWithSoicalTaskError(UMSoicalTaskErrorType taskErrorType,id userInfo);
@@ -0,0 +1,32 @@
//
// UMSocialTaskManager.h
// UMSocialSDK
//
// Created by 张军华 on 16/8/12.
// Copyright © 2016年 dongjianxiong. All rights reserved.
//
#import <Foundation/Foundation.h>
@class UMSocialTask;
@class UMSocialTaskOperation;
NS_ASSUME_NONNULL_BEGIN
/**
* 所有task的管理类
*/
@interface UMSocialTaskManager : NSObject
+(instancetype)shareManager;
/**
* 创建好task直接执行task
*
* @param task @see UMSocialTask
*/
-(void)addAndExcuteSocialTask:(UMSocialTask*)task;
@end
NS_ASSUME_NONNULL_END