コード例 #1
0
ファイル: NObjectStored.cs プロジェクト: TheByte/sones
 public NObjectStored(ObjectLocation myObjectLocation, String myObjectStream, String myObjectEdition, ObjectRevisionID myObjectRevisionID)
 {
     ObjectLocation      = myObjectLocation;
     ObjectStream        = myObjectStream;
     ObjectEdition       = myObjectEdition;
     ObjectRevisionID    = myObjectRevisionID;
 }
コード例 #2
0
 public GraphFSError_CouldNotOverwriteRevision(ObjectLocation myObjectLocation, String myObjectStream, String myObjectEdition, ObjectRevisionID myObjectRevisionID)
 {
     ObjectLocation      = myObjectLocation;
     ObjectStream        = myObjectStream;
     ObjectEdition       = myObjectEdition;
     ObjectRevisionID    = myObjectRevisionID;
     Message             = String.Format("Could not overwrite object revision '{1}{0}{2}{0}{3}{0}{4}'!", FSPathConstants.PathDelimiter, ObjectLocation, ObjectStream, ObjectEdition, ObjectRevisionID);
 }
コード例 #3
0
 public GraphFSError_AllObjectCopiesFailed(ObjectLocation myObjectLocation, String myObjectStream, String myObjectEdition, ObjectRevisionID myRevisionID)
 {
     ObjectLocation  = myObjectLocation;
     ObjectStream    = myObjectStream;
     ObjectEdition   = myObjectEdition;
     RevisionID      = myRevisionID;
     Message         = String.Format("All object copies at location '{1}{0}{2}{0}{3}{0}{4}' failed!", FSPathConstants.PathDelimiter, ObjectLocation, ObjectStream, ObjectEdition, RevisionID);
 }
コード例 #4
0
ファイル: GraphFSExtensions.cs プロジェクト: TheByte/sones
        //HACK: Remove me!
        public static Exceptional RemoveObjectIfExists(this IGraphFSSession myIGraphFSSession, ObjectLocation myObjectLocation, String myObjectStream, String myObjectEdition = null, ObjectRevisionID myRevisionID = null)
        {
            var objExists = myIGraphFSSession.ObjectStreamExists(myObjectLocation, myObjectStream);

            if (objExists.Failed())
            {
                return new Exceptional(objExists);
            }

            if (objExists.Value == Trinary.TRUE)
            {
                var _RemoveObjectExceptional = myIGraphFSSession.RemoveFSObject(myObjectLocation, myObjectStream, myObjectEdition, myRevisionID);
                return _RemoveObjectExceptional;
            }

            else
                return Exceptional.OK;
        }
コード例 #5
0
ファイル: AFSObject.cs プロジェクト: TheByte/sones
 /// <summary>
 /// Invoke the OnSaved event, called whenever a AFSObject
 /// was successfully saved on disc.
 /// </summary>
 /// <param name="e">EventArgs</param>
 public virtual void OnSavedEvent(ObjectLocator myObjectLocator, AFSObject myAFSObject, ObjectRevisionID myOldObjectRevisionID)
 {
     if (OnSaved != null)
         OnSaved(myObjectLocator, myAFSObject, myOldObjectRevisionID);
 }
コード例 #6
0
ファイル: AFSObject.cs プロジェクト: TheByte/sones
 /// <summary>
 /// Invoke the OnSave event, called whenever a AFSObject
 /// is ready to be removed.
 /// </summary>
 /// <param name="e">EventArgs</param>
 public virtual void OnRemoveEvent(ObjectLocation myObjectLocation, String myObjectStream, String myObjectEdition, ObjectRevisionID myRevisionID)
 {
     if (OnRemove != null)
         OnRemove(myObjectLocation, myObjectStream, myObjectEdition, myRevisionID);
 }
コード例 #7
0
ファイル: NObjectStored.cs プロジェクト: TheByte/sones
 public Arguments(ObjectLocation myObjectLocation, String myObjectStream, String myObjectEdition, ObjectRevisionID myObjectRevisionID)
 {
     ObjectLocation      = myObjectLocation;
     ObjectStream        = myObjectStream;
     ObjectEdition       = myObjectEdition;
     ObjectRevisionID    = myObjectRevisionID;
 }
コード例 #8
0
ファイル: NObjectStored.cs プロジェクト: TheByte/sones
            public void Deserialize(Byte[] mySerializedBytes)
            {
                var _SerializationReader = new SerializationReader(mySerializedBytes);

                ObjectLocation      = new ObjectLocation(_SerializationReader.ReadString());
                ObjectStream        = _SerializationReader.ReadString();
                ObjectEdition       = _SerializationReader.ReadString();
                ObjectRevisionID    = new ObjectRevisionID(_SerializationReader.ReadString());
            }
コード例 #9
0
ファイル: AObjectOntology.cs プロジェクト: ipbi/sones
        public void CloneObjectOntology(AFSObjectOntology myAObjectOntology)
        {
            // Members of AFSObjectStructure
            _ObjectLocatorReference     = myAObjectOntology.ObjectLocatorReference;

            ObjectUUID                  = myAObjectOntology.ObjectUUID;

            // Members of IObjectLocation
            //_ObjectLocation             = myAObjectOntology.ObjectLocation;
            //_ObjectPath                 = myAObjectOntology.ObjectPath;
            //_ObjectName                 = myAObjectOntology.ObjectName;

            // Members of IFSObjectOntology
            _ObjectStream               = myAObjectOntology.ObjectStream;
            _ObjectEdition              = myAObjectOntology.ObjectEdition;
            _ObjectRevisionID           = myAObjectOntology.ObjectRevisionID;

            _ObjectSize                 = myAObjectOntology.ObjectSize;
            _ObjectSizeOnDisc           = myAObjectOntology.ObjectSizeOnDisc;
        }
コード例 #10
0
ファイル: DBObjectRevisionID.cs プロジェクト: TheByte/sones
        public DBObjectRevisionID(ObjectRevisionID myValue)
        {
            _Value = myValue;

            CalcEstimatedSize(this);
        }
コード例 #11
0
ファイル: DBObjectRevisionID.cs プロジェクト: ipbi/sones
 public DBObjectRevisionID()
 {
     _Value = null;
 }
コード例 #12
0
ファイル: DBObjectRevisionID.cs プロジェクト: ipbi/sones
 public override void SetValue(DBObjectInitializeType myDBObjectInitializeType)
 {
     switch (myDBObjectInitializeType)
     {
         case DBObjectInitializeType.Default:
             _Value = null;
             break;
         case DBObjectInitializeType.MinValue:
             _Value = null;
             break;
         case DBObjectInitializeType.MaxValue:
             _Value = null;
             break;
     }
 }
コード例 #13
0
ファイル: GraphDSREST_Service.cs プロジェクト: TheByte/sones
        public void GetObject(String myObjectType, String myObjectName, String myObjectStream, String myObjectEdition, String myObjectRevision)
        {
            ObjectRevisionID _RevisionID = null;
            if (myObjectRevision != null)
                _RevisionID = new ObjectRevisionID(myObjectRevision);

            var _Body   = HTTPServer.HTTPContext.RequestBody;
            var _Header = HTTPServer.HTTPContext.RequestHeader;

            _AGraphDSSharp.GetFSObject<FileObject>(
                                 new ObjectLocation(_AGraphDSSharp.IGraphDBSession.DatabaseRootPath, myObjectType, "Objects", myObjectName),
                                 myObjectStream, myObjectEdition, _RevisionID, 0, false).

                #region Failed!

                FailedAction<FileObject>(e =>
                    {
                        _Header.HttpStatusCode = HTTPStatusCodes.NotFound;
                        _Header.CacheControl   = "no-cache";
                        _Header.ServerName     = _ServerID;
                        _Header.ContentLength  = 0;
                        _Header.ContentType    = new ContentType("text/plain");

                        var HeaderBytes = _Header.ToBytes();
                        HTTPServer.HTTPContext.WriteToResponseStream(HeaderBytes, 0, HeaderBytes.Length);
                        HTTPServer.HTTPContext.WriteToResponseStream(new Byte[0], 0, 0);
                    }).

                #endregion

                #region Success

                SuccessAction<FileObject>(e =>
                    {
                        var content = e.Value.ObjectData;

                        _Header.HttpStatusCode = HTTPStatusCodes.OK;
                        _Header.CacheControl   = "no-cache";
                        _Header.ServerName     = _ServerID;
                        _Header.ContentLength  = content.ULongLength();
                        _Header.ContentType    = new ContentType(e.Value.ContentType);

                        var HeaderBytes = _Header.ToBytes();
                        HTTPServer.HTTPContext.WriteToResponseStream(HeaderBytes, 0, HeaderBytes.Length);
                        HTTPServer.HTTPContext.WriteToResponseStream(content, 0, content.Length);
                    });

                #endregion
        }
コード例 #14
0
ファイル: GraphDSREST_Service.cs プロジェクト: TheByte/sones
        public void StoreObject(String myObjectType, String myObjectName, String myObjectStream, String myObjectEdition, String myObjectRevision)
        {
            #region Parse RevisionID

            ObjectRevisionID _RevisionID = null;

            try
            {

                if (myObjectRevision.IsNullOrEmpty() || myObjectRevision == "null")
                    _RevisionID = new ObjectRevisionID(_AGraphDSSharp.GetFileSystemUUID());
                else
                    _RevisionID = new ObjectRevisionID(myObjectRevision);

            }
            catch (Exception)
            {

                var _Header2 = HTTPServer.HTTPContext.RequestHeader;

                _Header2.HttpStatusCode  = HTTPStatusCodes.PreconditionFailed;
                _Header2.CacheControl    = "no-cache";
                _Header2.ServerName      = "Sones GraphDSREST Connector";
                _Header2.ContentLength   = 0;
                _Header2.ContentType     = new ContentType(MediaTypeNames.Application.Octet);

                var HeaderBytes = _Header2.ToBytes();
                HTTPServer.HTTPContext.WriteToResponseStream(HeaderBytes, 0, HeaderBytes.Length);

                return;

            }

            #endregion

            var _Body   = HTTPServer.HTTPContext.RequestBody;
            var _Header = HTTPServer.HTTPContext.RequestHeader;

            _AGraphDSSharp.StoreFSObject(new FileObject() {
                                               ObjectLocation   = new ObjectLocation(_AGraphDSSharp.IGraphDBSession.DatabaseRootPath, myObjectType, "Objects", myObjectName),
                                               ObjectStream     = myObjectStream,
                                               ObjectEdition    = myObjectEdition,
                                               ObjectRevisionID   = _RevisionID,
                                               ObjectData       = _Body,
                                               ContentType      = _Header.ContentType.ToString()
                                           }, true).

                #region Failed!

                FailedAction(e =>
                    {
                        _Header.HttpStatusCode   = HTTPStatusCodes.PreconditionFailed;
                        _Header.CacheControl     = "no-cache";
                        _Header.ServerName       = _ServerID;
                        _Header.ContentLength    = 0;
                        _Header.ContentType      = new ContentType(MediaTypeNames.Application.Octet);

                        var HeaderBytes = _Header.ToBytes();
                        HTTPServer.HTTPContext.WriteToResponseStream(HeaderBytes, 0, HeaderBytes.Length);
                    }).

                #endregion

                #region Success

                SuccessAction(e =>
                    {
                        _Header.HttpStatusCode   = HTTPStatusCodes.NoContent;
                        _Header.CacheControl     = "no-cache";
                        _Header.ServerName       = _ServerID;
                        _Header.ContentLength    = 0;
                        _Header.ContentType      = new ContentType("text/plain");

                        var HeaderBytes = _Header.ToBytes();
                        HTTPServer.HTTPContext.WriteToResponseStream(HeaderBytes, 0, HeaderBytes.Length);
                    });

                #endregion
        }
コード例 #15
0
ファイル: GraphDSREST_Service.cs プロジェクト: TheByte/sones
        public void DeleteObject(String myObjectType, String myObjectName, String myObjectStream, String myObjectEdition, String myObjectRevision)
        {
            #region Parse RevisionID

            ObjectRevisionID _RevisionID = null;

            try
            {
                _RevisionID = new ObjectRevisionID(myObjectRevision);
            }
            catch (Exception)
            {

                var _Header2 = HTTPServer.HTTPContext.RequestHeader;

                _Header2.HttpStatusCode  = HTTPStatusCodes.PreconditionFailed;
                _Header2.CacheControl    = "no-cache";
                _Header2.ServerName      = "Sones GraphDSREST Connector";
                _Header2.ContentLength   = 0;
                _Header2.ContentType     = new ContentType(MediaTypeNames.Application.Octet);

                var HeaderBytes = _Header2.ToBytes();
                HTTPServer.HTTPContext.WriteToResponseStream(HeaderBytes, 0, HeaderBytes.Length);

                return;

            }

            #endregion

            var _Body   = HTTPServer.HTTPContext.RequestBody;
            var _Header = HTTPServer.HTTPContext.RequestHeader;

            _AGraphDSSharp.RemoveFSObject(
                                new ObjectLocation(_AGraphDSSharp.IGraphDBSession.DatabaseRootPath, myObjectType, "Objects", myObjectName),
                                myObjectStream, myObjectEdition, _RevisionID).

                #region Failed!

                FailedAction(e =>
                {
                    _Header.HttpStatusCode  = HTTPStatusCodes.Unknown;
                    _Header.CacheControl    = "no-cache";
                    _Header.ServerName      = _ServerID;
                    _Header.ContentLength   = 0;
                    _Header.ContentType     = new ContentType(MediaTypeNames.Application.Octet);

                    var HeaderBytes = _Header.ToBytes();
                    HTTPServer.HTTPContext.WriteToResponseStream(HeaderBytes, 0, HeaderBytes.Length);
                }).

                #endregion

                #region Success

                SuccessAction(e =>
                {
                    _Header.HttpStatusCode  = HTTPStatusCodes.NoContent;
                    _Header.CacheControl    = "no-cache";
                    _Header.ServerName      = _ServerID;
                    _Header.ContentLength   = 0;
                    _Header.ContentType     = new ContentType("text/plain");

                    var HeaderBytes = _Header.ToBytes();
                    HTTPServer.HTTPContext.WriteToResponseStream(HeaderBytes, 0, HeaderBytes.Length);
                });

                #endregion
        }
コード例 #16
0
ファイル: AFSObject.cs プロジェクト: TheByte/sones
        public void SaveAs(ObjectLocation myObjectLocation, String myObjectStream, String myObjectEditon, ObjectRevisionID myObjectRevisionID)
        {
            if (myObjectLocation == null || myObjectLocation.Length < FSPathConstants.PathDelimiter.Length)
                throw new ArgumentNullException("myObjectLocation must not be null or its length be zero!");

            if (myObjectStream == null || myObjectStream.Length == 0)
                throw new ArgumentNullException("myObjectStream must not be null or its length be zero!");

            if (myObjectEditon == null || myObjectEditon.Length == 0)
                throw new ArgumentNullException("myObjectEditon must not be null or its length be zero!");

            if (myObjectRevisionID == null)
                throw new ArgumentNullException("myObjectRevisionID must not be null!");

            if (_IGraphFSSessionReference != null && _IGraphFSSessionReference.IsAlive)
            {

                ObjectLocatorReference.ObjectLocationSetter = myObjectLocation;
                _ObjectStream       = myObjectStream;
                _ObjectEdition      = myObjectEditon;
                _ObjectRevisionID   = myObjectRevisionID;

                Save();

            }
        }
コード例 #17
0
ファイル: DBObjectRevisionID.cs プロジェクト: ipbi/sones
 public DBObjectRevisionID(ObjectRevisionID myValue)
 {
     _Value = myValue;
 }
コード例 #18
0
ファイル: DBObjectRevisionID.cs プロジェクト: TheByte/sones
        public DBObjectRevisionID()
        {
            _Value = null;

            //DO NOT ESTIMATE THE SIZE!!! this constructor is for IFastSerializer purpose only
        }