public ChoFixedLengthRecordWriter(Type recordType, ChoFixedLengthRecordConfiguration configuration) : base(recordType)
        {
            ChoGuard.ArgumentNotNull(configuration, "Configuration");
            Configuration = configuration;

            _callbackFileHeaderArrange = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyFileHeaderArrange>(recordType);
            _callbackFileHeaderWrite   = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyFileHeaderWrite>(recordType);
            _callbackRecordWrite       = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyRecordWrite>(recordType);
            _callbackFileWrite         = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyFileWrite>(recordType);
            _callbackRecordFieldWrite  = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyRecordFieldWrite>(recordType);

            _recBuffer = new Lazy <List <object> >(() =>
            {
                if (Writer != null)
                {
                    var b = Writer.Context.RecBuffer;
                    if (b == null)
                    {
                        Writer.Context.RecBuffer = new List <object>();
                    }

                    return(Writer.Context.RecBuffer);
                }
                else
                {
                    return(new List <object>());
                }
            });

            //Configuration.Validate();
        }
Example #2
0
        public ChoAvroRecordWriter(Type recordType, ChoAvroRecordConfiguration configuration) : base(recordType)
        {
            ChoGuard.ArgumentNotNull(configuration, "Configuration");
            Configuration = configuration;

            _callbackFileHeaderArrange = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyFileHeaderArrange>(recordType);
            _callbackRecordWrite       = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyRecordWrite>(recordType);
            _callbackFileWrite         = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyFileWrite>(recordType);
            _callbackRecordFieldWrite  = ChoMetadataObjectCache.CreateMetadataObject <IChoNotifyRecordFieldWrite>(recordType);
            System.Threading.Thread.CurrentThread.CurrentCulture = Configuration.Culture;

            _recBuffer = new Lazy <List <object> >(() =>
            {
                if (Writer != null)
                {
                    var b = Writer.Context.ContainsKey("RecBuffer") ? Writer.Context.RecBuffer : null;
                    if (b == null)
                    {
                        Writer.Context.RecBuffer = new List <object>();
                    }

                    return(Writer.Context.RecBuffer);
                }
                else
                {
                    return(new List <object>());
                }
            }, true);

            BeginWrite = new Lazy <bool>(() =>
            {
                if (_sw != null)
                {
                    return(RaiseBeginWrite(_sw));
                }
                if (_avroWriter != null)
                {
                    return(RaiseBeginWrite(_avroWriter));
                }

                return(false);
            });
            //Configuration.Validate();
        }