GB2492243A - Clipboard cut/copy and paste functionality - Google Patents

Clipboard cut/copy and paste functionality Download PDF

Info

Publication number
GB2492243A
GB2492243A GB1211235.5A GB201211235A GB2492243A GB 2492243 A GB2492243 A GB 2492243A GB 201211235 A GB201211235 A GB 201211235A GB 2492243 A GB2492243 A GB 2492243A
Authority
GB
United Kingdom
Prior art keywords
data
metadata
clipboard
operated
requested
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB1211235.5A
Other versions
GB201211235D0 (en
Inventor
Paul Keith Branton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AppSense Ltd
Original Assignee
AppSense Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AppSense Ltd filed Critical AppSense Ltd
Publication of GB201211235D0 publication Critical patent/GB201211235D0/en
Publication of GB2492243A publication Critical patent/GB2492243A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]

Abstract

An apparatus comprises a clipboard monitor 10 at a first device 2. The clipboard monitor 10 is operatively coupled to a data management module 21. The clipboard monitor 10 is configured to receive metadata (e.g. format, source of the data) associated with data acquired in an acquire operation at the first device 2. The clipboard monitor 10 is configured to send the metadata to the data management module 21 in response to the acquire operation. The clipboard monitor 10 is configured to receive a request associated with a paste operation at a second device 12. The clipboard monitor 10 is configured to provide the data to the second device 12 in response to the request via the data management module 21. The clipboard monitor 10 may be configured to send location information associated with clipboard monitor 10 to the data management module during initialisation of the clIpboard monitor. There are number of other embodiments disclosed some of which include maintaining an index of metadata by the data management module 21.

Description

I
IMPROVEMENTS IN AND RELATING TO CUT/COPY AND PASTE
FUNCTIONALITY
Field of the Invention
[1001] The present invention relates to devices, systems and methods for use in cut/copy and paste operations.
Background
[1002] Cut and paste or copy and paste have become ubiquitous features of many applications, including, but not limited to, many spreadsheet, word processing, presentation and publishing applications. For purposes of the embodiments described herein, there is no particular difference between the handling of a copy operation and a cut operation; hence they will collectively be referred to herein as an "acquire" operation.
[1003] It would be desirable to have a system and method suitable to achieve an acquire and paste operation between devices, real or virtual, with minimal computational effort and impact to users.
[1004] A need exists for an improved acquire and paste system and method.
Summary
[1005] In some embodiments, a first device and a second device can be used in an acquire and paste operation between the first device and the second device. The first device comprises a clipboard monitor configured to obtain metadata regarding data acquired in the acquire operation at the first device. The first device can be configured to send the metadata to a data management module at a third device. Furthermore, the first device can be configured to provide the data associated with the metadata upon a request associated with the paste operation at the second device.
[1006] According to the present invention in a first aspect, there is provided a first device for use in an acquire and paste operation between a first device and a second device, the first device comprising a clipboard monitor configured to obtain metadata regarding the data acquired in the acquire operation, is configured to transfer the acquired metadata to a data management module at a third device and upon request is configured to provide the data associated with the metadata.; wherein the clipboard is configured to provide the data to the third device.
[1007] Suitably, the clipboard monitor is configured to provide the data to the third device.
[1008] Suitably, the clipboard monitor is configured to provide the data upon receipt of a request from the second device.
[1009] Suitably, the metadata comprises metadata identifying the format or formats in which the data is available. Suitably, the clipboard monitor is configured to provide the data in a format requested.
[1010] Suitably, the clipboard monitor acquires the data from the clipboard of the first device.
[1011] Suitably, the metadata comprises metadata identifying the source of the data. Suitably, the metadata identifying the source of the data is an IP address of the first device.
[1012] Suitably, the metadata comprises an identifying code generated uniquely for each instance of the clipboard monitor and for each format in which the data is available. This is implemented as a guide for each available format state.
[1013] Suitably, the clipboard monitor is configured to send location information to the data management module at the third device at initialisation of the clipboard monitor.
[1014] According to the present invention in a second aspect, there is provided a second device for use in an acquire and paste operation between a first device and a second device, the second device comprising a clipboard monitor configured to detect a paste operation for a given data item, to send a request for the data associated with the requested paste operation to the first device, the second device being configured to receive data associated with the paste request.
[1015] Suitably, wherein the clipboard monitor is configured to determine from the metadata whether the data is available from a third device and to request the data from the third device if the metadata indicates that the data is at the third device. Alternatively, the device is configured whereby if the data is not available from the third device, the second device requests the data from the first device. The first device provides the data from the first device to the third device which transfers the data to the second device.
[1016] Suitably, the clipboard monitor receives the data and provides the data to a clipboard of the second device.
[1017] Suitably, the clipboard monitor is also configured to amend the data in the clipboard of the second device. Suitably, the clipboard monitor is configured to amend the data in the clipboard of the second device by: monitoring any new data being added to the clipboard; determining whether a modifier is active or not, wherein the modifier is active if a modifier input is received prior to or during the paste operation; if the modifier is active, storing the new data to a cache or a storage medium; retrieving previous data added to the clipboard from the cache or the storage medium on the second device; performing an amendment operation on the previous data and the new data to create an operated data as part of the paste operation; storing the operated data to the cache or the storage medium; and adding the operated data to the clipboard.
[1018] Suitably, the clipboard monitor is configured to monitor any new data being added to the clipboard. Suitably, the monitoring comprises a message being sent to the clipboard monitor whenever a new data is added to the clipboard. Alternatively, the device is configured whereby the monitoring comprises detecting a change in a clipboard count wherein the clipboard count is maintained by the clipboard and the clipboard count changes each time data is added to the clipboard.
[1019] Suitably, the device is configured whereby when the new data is added, the clipboard monitor stores the new data added to the clipboard to a cache or a storage medium so that the stored data is usable as a previous data when the next new data is added to the clipboard. Alternatively, the device is configured whereby when the new data is about to be added, the clipboard monitor stores the previous data in the clipboard to a cache or a storage medium.
[1020] Suitably, the clipboard monitor is configured to determine whether a modifier is active or not. The modifier is determined to be active if a modifier input is received prior to or during the paste operation. Suitably, the modifier input is a signal generated from depressing of a modifier key or detection of a modifier gesture such as shaking of the second device. Suitably, the modifier key or modifier gesture is configurable by a user. Alternatively, the modifier input is a signal generated from a click or a movement of a mouse.
[1021] The device is configured whereby if the modifier is determined to be inactive, the new data remains as it is in the clipboard. Suitably, the device is configured whereby the paste operation resumes as normal after such determination of inactive modifier. Alternatively, the device is configured whereby the paste operation terminates after such determination of inactive modifier. The device is configured whereby if the modifier is determined to be active, the clipboard monitor stores the new data to a cache or a storage medium. The clipboard monitor is configured to then retrieve the stored previous data and the new data from the cache or the storage medium and to perform an amendment operation to create an operated data. Suitably, the clipboard monitor is configured to store the operated data to a cache or a storage medium.
[1022] Suitably, once the modifier is determined to be active, the clipboard monitor is configured to set an operation marker in the cache or the storage medium of the second device, wherein the operation marker indicates whether an amendment operation has been performed on the new data or not, whereby when the operated data is added to the clipboard after the amendment operation the modifier is determined to be inactive regardless of the modifier input.
[1023] Alternatively, the clipboard monitor is also configured to determine if the new data comprises an operation marker, wherein the operation marker indicates whether an amendment operation has been performed on the new data or not.
[1024] Suitably, the device is configured whereby the operation marker presence determination takes place before the modifier activation determination. Suitably, if the operation marker indicates the amendment operation has not been performed on the new data, the clipboard monitor is configured to proceed to determining if the modifier is active or not.
[1025] Alternatively, the device is configured whereby the operation marker presence determination takes place after the modifier activation determination.
Suitably, if the operation marker indicates the amendment operation has not been performed on the new data, the clipboard monitor is configured to proceed to the next step in amending the data in the clipboard of the second device.
[1026] Suitably, the clipboard monitor is also configured to add the operation marker to the operated data after the amendment operation.
[1027] Suitably, the clipboard monitor is configured to store the new data added to the clipboard to a cache or a storage medium when the new data is added so that the stored data is usable as a previous data when the next new data is added to the clipboard, and if the operation marker is present, the device is configured whereby the new data remains as it is in the clipboard thereafter. Suitably, the device is configured whereby the paste operation resumes as normal after such determination of presence of the operation marker. Alternatively, the device is configured whereby the paste operation terminates after such determination of presence of the operation marker.
[1028] Alternatively, the clipboard monitor is configured to store the previous data in the clipboard to the cache or the storage medium when the new data is about to be added, and if the operation marker is present, the device is configured whereby the new data is added to the clipboard replacing the previous data thereafter. Suitably, the device is configured whereby the replacement of the previous data comprises removing of the previous data from the clipboard, then adding the new data to the clipboard.
[1029] Suitably, the clipboard monitor is also configured to add the operation marker to the operated data after the amendment operation. As the operated data comprises the operation marker, this addition of the operated data to the clipboard does not trigger the clipboard monitor to perform another amendment operation. Therefore the operated data is in the clipboard, available for the next paste operation.
[1030] Suitably, the clipboard monitor is also configured to: obtain metadata regarding the operated data; transmit the metadata to a data management module at a third device; and provide the operated data associated with the metadata wherein the clipboard provides the operated data to the third device upon request. Suitably, the device is configured whereby the amendment and the paste operation terminate thereafter.
[1031] Suitably, the clipboard monitor is configured to provide the operated data upon receipt of a request from a device. Suitably, the request is from the first device. Suitably, the request is from any device comprising a clipboard monitor configured to obtain the metadata regarding the operated data from the data management module.
[1032] Suitably, the metadata comprises metadata identifying the format or formats in which the operated data is available. Suitably, the clipboard monitor is configured to provide the operated data in a format requested.
[1033] Suitably, the clipboard monitor is configured to acquire the operated data from the clipboard of the second device.
[1034] Suitably, the metadata comprises metadata identifying the source of the operated data. Suitably, the metadata identifying the source of the operated data is an IP address of the second device.
[1035] Suitably, the metadata comprises an identifying code generated uniquely for each instance of the clipboard monitor and for each format in which the operated data is available. This is implemented as a guide for each available format state.
[1036] Suitably, the paste operation comprises the amendment operation.
Suitably, the amendment operation is an append operation whereby the new data and the previous data are appended to generate the operated data.
[1037] Suitably, the device is configured whereby when the append operation is performed, the paste operation terminates once the append operation has terminated without the actual pasting of the amended data outside the clipboard.
[1038] Suitably, the clipboard monitor is configured to send location information to the data management module at initialisation of the clipboard monitor.
[1039] According to the present invention in a third aspect, there is provided a third device for use in an acquire and paste operation between a first device and a second device, the third device comprising a data management module configured to maintain and manage an index of metadata of data that has been subjected to an acquire operation on the first device and provided to the third device by a clipboard monitor of the first device, wherein the third device is configured to transmit the index of metadata to the second device.
[1040] Suitably, the data management module is configured to store cached versions of data in the third device, to update the metadata for a given data item to update the index of metadata with the updated metadata and to transmit the updated index to the second device. Suitably, upon receipt of a request from the second device, cached data is provided to the second device.
[1041] Suitably, the data management module is also configured to perform an amendment operation by: when the request from the second device is received, determining whether a modifier is active on the second device from the request, wherein the modifier on the second device is active if a modifier input is received prior to or during the paste operation; if the modifier is active, retrieving previous data requested by the second device from the cached previously requested data or using the index of metadata; performing an amendment operation on the previously requested data and the requested data to create an operated data as part of the paste operation; storing the operated data to the cache; updating the metadata of the operated data and the index of metadata; and transmitting the updated index to the first and second devices.
[1042] Suitably, the data management module is also configured to provide the operated data to the second device when the cached data of the requested and the previously requested data become available. Suitably, the data management module is configured to update the metadata for the operated data to update the index of metadata with the updated metadata and to transmit the updated index to the second device. Suitably, the third device is configured whereby upon receipt of a request from the second device, cached operated data is provided to the second device.
[1043] Suitably, once the modifier is determined to be active, the data management module is configured to set an operation marker in the metadata of the operated data, update the index of metadata accordingly and transmit the updated index to the second device, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not, whereby when the operated data is added to the clipboard of the second device after the amendment operation, the second device is configured to store the operation marker in a cache or a storage medium of the second device and determine the modifier to be inactive regardless of the modifier input.
[1044] Alternatively, the data management module is also configured to determine whether the cached requested data or the metadata of the requested data comprises an operation marker, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not.
[1045] Suitably, the third device is configured whereby the operation marker presence determination takes place before the modifier activation determination. Suitably, if the operation marker indicates the amendment operation has not been performed on the requested data, the data management module is configured to proceed to determining if the modifier is active or not.
[1046] Alternatively, the third device is configured whereby the operation marker presence determination takes place after the modifier activation determination. Suitably, if the operation marker indicates the amendment operation has not been performed on the requested data, the data management module is configured to proceed to next step of the amendment operation.
[1047] Suitably, if the cached requested data or the metadata of the requested data comprises the operation marker, the third device is configured whereby the amendment operation is not performed on the requested data.
Suitably, the third device is configured whereby the paste operation resumes as normal after such determination of presence of the operation marker.
Alternatively, the third device is configured whereby the paste operation terminates after such determination of presence of the operation marker.
[1048] Suitably, the data management module is also configured to add the operation marker to the operated data or the metadata of the operated data after the amendment operation.
[1049] Suitably, the metadata comprises an operation marker where added.
Alternatively, the cached data comprises an operation marker where added.
Suitably, the request from the second device comprises information on determination of whether a modifier is active on the second device. Suitably, the data management module is configured to perform the amendment operation to generate a metadata for an operated data and to cache the operated data, if cached versions of the data were available, using the operation marker presence determination from the metadata or the cached data and the modifier activation determination from the second device.
[1050] Suitably, the modifier input is a signal generated from depressing of a modifier key or detection of a modifier gesture such as shaking of the second device. Suitably, the modifier key or modifier gesture is configurable by a user.
Alternatively, the modifier input is a signal generated from a click or a movement of a mouse.
[1051] Suitably, the metadata comprises metadata identifying the format or formats in which the operated data is available. Suitably, the device or the clipboard monitor is configured to provide the operated data in a format requested.
[1052] Suitably, the metadata comprises metadata identifying the source of the previously requested data or the requested data if not available from the cache or storage medium of the third device.
[1053] Suitably, the metadata comprises an identifying code generated uniquely for each instance of the clipboard monitor and for each format in which the operated data is available. This is implemented as a guide for each available format state.
[1054] Suitably, the paste operation comprises the amendment operation.
Suitably, the amendment operation is an append operation whereby the requested data and the previously requested data are appended to generate the operated data when the cached data thereof are available and when the cached data thereof are not yet available amending the metadata of the operated data to the same effect by providing for the append operation to be performed when the requested data and the previously requested data become available.
[1055] Suitably, the clipboard monitor is configured to send location information to the data management module at initialisation of the clipboard monitor.
[1056] According to the present invention in a fourth aspect, there is provided a system for use in an acquire and paste operation between a first device and a second device, the system comprising a first device comprising a first clipboard monitor configured to obtain metadata regarding the data acquired in the acquire operation, is configured to transfer the acquired metadata to a third device and upon request is configured to provide the data associated with the metadata, the second device comprising a second clipboard monitor configured to detect a paste operation for a given data item, to send a request for data associated with the requested paste operation, the second device being configured to receive data associated with the paste request, and the third device comprising a data management module configured to maintain and manage an index of metadata of data that has been subjected to an acquire operation on the first device and wherein the third device is configured to transmit the index of metadata to the second device.; wherein the first clipboard monitor is configured to provide the data to the third device.
[1057] Suitably, the system is configured whereby when the received data associated with the requested paste operation is added to the clipboard, the second clipboard monitor is also configured to: determine whether a modifier is active, wherein the modifier is active if a modifier input is received prior to or during the paste operation; if the modifier is active, retrieve previously requested data added to the clipboard from a cache or a storage medium of the second device; perform an amendment operation on the previously requested data and the received requested data to create an operated data as part of the paste operation; store the operated data to the cache or storage medium; add the operated data to the clipboard; obtain metadata regarding the operated data; transmit the metadata to the data management module; and upon request from another device, provide the operated data associated with the metadata, wherein the clipboard is configured to provide the operated data to the third device.
[1058] Suitably, once the modifier is determined to be active, the clipboard monitor is configured to set an operation marker in the cache or the storage medium of the second device, wherein the operation marker indicates whether an amendment operation has been performed on the received requested data or not, whereby when the operated data is added to the clipboard after the amendment operation the modifier is determined to be inactive regardless of the modifier input.
[1059] Alternatively, the second clipboard monitor is also configured to determine whether the received requested data comprises an operation marker, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not.
[1060] Suitably, the system is configured whereby the operation marker presence determination takes place before the modifier activation determination. Suitably, if the received requested data does not comprise the operation marker, the system is configured whereby the modifier activation determination takes place thereafter.
[1061] Alternatively, the system is configured whereby the operation marker presence determination takes place after the modifier activation determination.
Suitably, if the received requested data does not comprise the operation marker, the second clipboard monitor is configured to proceed to the next step in amending the requested data.
[1062] Suitably, if the received requested data comprises the operation marker, the system is configured whereby the amendment operation is not performed on the requested data. Suitably, the system is configured whereby the paste operation resumes as normal after such determination of presence of the operation marker. Alternatively, the system is configured whereby the paste operation terminates after such determination of presence of the operation marker.
[1063] Suitably, the second clipboard monitor is also configured to add the operation marker to the operated data after the amendment operation.
[1064] Suitably, the data management module is also configured to perform an amendment operation by: when the request from the second device is received, determining whether a modifier is active on the second device from the request, wherein the modifier on the second device is active if a modifier input is received prior to or during the paste operation; if the modifier is active, retrieving previous data requested by the second device from the cached previously requested data or using the index of metadata; performing an amendment operation on the previously requested data and the requested data to create an operated data as part of the paste operation; storing the operated data to the cache; updating the metadata of the operated data and the index of metadata; transmitting the updated index to the first and second devices; and providing the operated data to the second device when the cached data of the requested and the previously requested data become available.
[1065] Suitably, once the modifier is determined to be active, the data management module is configured to set an operation marker in the metadata of the operated data, update the index of metadata accordingly and transmit the updated index to the second device, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not, whereby when the operated data is added to the clipboard of the second device after the amendment operation, the second device is configured to store the operation marker in a cache or a storage medium of the second device and determine the modifier to be inactive regardless of the modifier input.
[1066] Alternatively, the data management module is also configured to determine whether the cached requested data or the metadata of the requested data comprises an operation marker, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not.
[1067] Suitably, the system is configured whereby the operation marker presence determination takes place before the modifier activation determination. Suitably, if the cached requested data or the metadata of the requested data does not comprise the operation marker, the system is configured whereby the modifier activation determination takes place thereafter.
[1068] Alternatively, the system is configured whereby the operation marker presence determination takes place after the modifier activation determination.
Suitably, if the cached requested data or the metadata of the requested data does not comprise the operation marker, the data management module is configured to proceed to the next step in amending the requested data.
[1069] Suitably, if the cached requested data or the metadata of the requested data comprises the operation marker, the system is configured whereby the amendment operation is not performed on the requested data.
Suitably, the system is configured whereby the paste operation resumes as normal after such determination of presence of the operation marker.
Alternatively, the system is configured whereby the paste operation terminates after such determination of presence of the operation marker.
[1070] Suitably, the data management module is also configured to add the operation marker to the operated data or the metadata of the operated data after the amendment operation.
[1071] According to the present invention in a fifth aspect, there is provided a method of operating an acquire and paste operation between a first device and a second device, the method comprising the steps of a first device comprising a first clipboard monitor obtaining metadata regarding the data acquired in the acquire operation, transferring the acquired metadata to a third device and upon request providing the data associated with the metadata, the second device comprising a second clipboard monitor to detect a paste operation for a given data item, to send a request for data associated with the requested paste operation, the second device receiving the data associated with the paste request, and the third device comprising a data management module configured to maintain and manage an index of metadata of data that has been subjected to an acquire operation on the first device and wherein the third device transmits the index of metadata to the second device.; wherein the first clipboard monitor provides the data to the third device.
[1072] Suitably, when the received data associated with the requested paste operation is added to the clipboard, the method further comprises steps of: determining whether a modifier is active, wherein the modifier is active if a modifier input is received prior to or during the paste operation; if the modifier is active, retrieving previously requested data added to the clipboard from a cache or a storage medium of the second device; performing an amendment operation on the previously requested data and the requested data to create an operated data as part of the paste operation; storing the operated data to the cache or storage medium; adding the operated data to the clipboard; obtaining metadata regarding the operated data; transmitting the metadata to the data management module; and upon request from another device, providing the operated data associated with the metadata, wherein the clipboard is configured to provide the operated data to the third device; wherein the second clipboard monitor is configured to perform these steps.
[1073] Suitably, once the modifier is determined to be active, an operation marker is set in the cache or the storage medium of the second device, wherein the operation marker indicates whether an amendment operation has been performed on the received requested data or not, whereby when the operated data is added to the clipboard after the amendment operation the modifier is determined to be inactive regardless of the modifier input.
[1074] Alternatively, the method further comprises a step of determining whether the received requested data comprises an operation marker, wherein the operation marker indicates whether an operation has been performed on the requested data or not.
[1075] Suitably, the operation marker presence determination takes place before the modifier activation determination. Suitably, if the received requested data does not comprise the operation marker, the modifier activation determination takes place thereafter.
[1076] Alternatively, the operation marker presence determination takes place after the modifier activation determination. Suitably, if the received requested data does not comprise the operation marker, the next step in amending the requested data is performed.
[1077] Suitably, if the received requested data comprises the operation marker, the amendment operation is not performed on the requested data.
Suitably, the paste operation resumes as normal after such determination of presence of the operation marker. Alternatively, the paste operation terminates after such determination of presence of the operation marker.
[1078] Suitably, the method further comprises a step of adding the operation marker to the operated data after the amendment operation.
[1079] Suitably, when the request from the second device is received, the method further comprises steps of: determining whether a modifier is active on the second device from the request, wherein the modifier on the second device is active if a modifier input is received prior to or during the paste operation; retrieving previous data requested by the second device from the cached previously requested data or using the index of metadata; performing an amendment operation on the previously requested data and the requested data to create an operated data as part of the paste operation; storing the operated data to the cache; updating the metadata of the operated data and the index of metadata; transmitting the updated index to the first and second devices; and providing the operated data to the second device when the cached data of the requested and the previously requested data become available; wherein the third device comprises a data management module configured to perform these steps.
[1080] Suitably, once the modifier is determined to be active, an operation marker is set in the metadata of the operated data, the index of metadata is updated accordingly and the updated index is transmitted to the second device, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not, whereby when the operated data is added to the clipboard of the second device after the amendment operation, the second device is configured to store the operation marker in a cache or a storage medium of the second device and determine the modifier to be inactive regardless of the modifier input.
[1081] Alternatively, the method further comprises steps of: determining whether the cached requested data or the metadata of the requested data comprises an operation marker, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not.
[1082] Suitably, the operation marker presence determination takes place before the modifier activation determination. Suitably, if the cached requested data or the metadata of the requested data does not comprise the operation marker, the modifier activation determination takes place thereafter.
[1083] Alternatively, the operation marker presence determination takes place after the modifier activation determination. Suitably, if the cached requested data or the metadata of the requested data does not comprise the operation marker, the data management module is configured to proceed to the next step in amending the requested data.
[1084] Suitably, if the cached requested data or the metadata of the requested data comprises the operation marker, the amendment operation is not performed on the requested data. Suitably, the paste operation resumes as normal after such determination of presence of the operation marker.
Alternatively, the paste operation terminates after such determination of presence of the operation marker.
[1085] Suitably, the method further comprises a step of adding the operation marker to the operated data or the metadata of the operated data after the amendment operation.
[1086] According to the present invention, there is provided the system of the fourth aspect or the method of the fifth aspect, wherein the modifier input is a signal generated from depressing of a modifier key or detection of a modifier gesture such as shaking of the second device. Suitably, the modifier key or modifier gesture is configurable by a user. Suitably, the modifier input is a signal generated from a click or a movement of a mouse.
[1087] Suitably, the metadata of the operated data comprises metadata identifying the source of the previously requested data or the requested data if not available from the cache or storage medium of the third device. Suitably, the metadata comprises an identifying code generated uniquely for each instance of a clipboard monitor and for each format in which the operated data is available.
[1088] Suitably, the paste operation comprises the amendment operation.
Suitably, the amendment operation is an append operation whereby the requested data and the previously requested data are appended to generate the operated data when the cached data thereof are available and when the cached data thereof are not yet available amending the metadata of the operated data to the same effect by providing for the append operation to be performed when the requested data and the previously requested data become available.
[1089] Suitably, the operated data replaces the received data in the clipboard when added. Suitably, the second clipboard monitor is configured to provide the operated data upon receipt of a request from a device. Suitably, the request is from the first device. Suitably, the request is from any device comprising a clipboard monitor configured to access the metadata regarding the operated data from the data management module.
[1090] Advantages of embodiments of the present invention are that only formats requested to be pasted are transferred from the first device and that the data transfer as part of the acquire step (i.e. the metadata) is minimal.
Furthermore, any cached data is persisted even if the first and/or second devices are restarted and an append operation is performable when a modifier is set to be active.
Brief Description of the Drawings
[1091] FIG. 1 is a schematic illustration of a system configured to execute an acquire and paste operation, according to an embodiment.
[1092] FIG. 2A is a schematic illustration of an initialization operation performed by the system of FIG. 1, according to an embodiment.
[1093] FIG. 2B is a schematic illustration of an acquire operation performed by the system of FIG. 1, according to an embodiment.
[1094] FIG. 2C is a schematic illustration of a paste operation performed by the system of FIG. 1, according to an embodiment.
[1095] Figure 3 illustrates part of the method of operation of the system of Figure 1, in this case the append operation phase.
Detailed Description
[1096] Various aspects and features according to exemplary embodiments are described hereinafter with reference to sequence illustrations of user interfaces, methods, and computer program products. It will be understood that each sequence and combinations of sequences in the illustrations can be implemented by, for example, computer program instructions. These computer program instructions can be provided to, for example, a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which are executed at the processor of the computer or other programmable data processing apparatus, can create means for implementing the functions specified in the sequence.
[1097] These computer program instructions may also be stored in, for example, a computer usable or computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer usable or computer-readable memory can produce an article of manufacture including instructions that can be used to implement the function specified in the sequence.
[1098] The computer program instructions may also be loaded onto, for example, a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process, such that the instructions executed at the computer or other programmable apparatus can provide steps for implementing the functions specified in the sequence.
[1099] Furthermore, each sequence may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the sequence may occur out of the order described herein. For example, two sequences shown in succession herein may in fact be executed substantially concurrently or the two sequences may sometimes be executed in the reverse order, depending upon the functionality involved.
[1100] FIG. 1 is a schematic illustration of a system configured to execute an acquire and paste operation, according to an embodiment. Specifically, the system can be configured to operate a data transfer operation between a first device 2 (identified as "Device 1" in FIG. 1) and a second device 12 (identified as "Device 2" in FIG. 1). The system comprises the first device 2, which can be in the form of, for example, a computational apparatus running a first application 4 (identified as "App 1" in FIG. 1) and a second application 6 (identified as "App 2" in FIG. 1). The first device 2 also comprises a clipboard 8 and a clipboard monitor 10.
[1101] The system also comprises the second device 12, which can be in the form of, for example, a computational apparatus running a third application 14 (identified as "App 3" in FIG. 1). The second device 12 further comprises a clipboard 16 and a clipboard monitor 18.
[1102] In some embodiments, the first application 4, the second application 6 and the third application 14 can be any application that enables an acquire and/or paste operation, such as, for example, Microsoft WORD (trade mark), Microsoft EXCEL (trade mark), Notepad (trade mark), a web browser application, and/or the like. In some embodiments, instructions associated with the first application 4, the second application 6 and/or the clipboard monitor 10 can be stored in a memory (not shown in FIG. 1) of the first device 2 and/or executed at a processor (not shown in FIG. 1) of the first device 2.
The clipboard 8 can be included within a portion of a memory at the first device 2. Similarly, in some embodiments, instructions associated with the third application 14 and/or the clipboard monitor 18 can be stored in a memory (not shown in FIG. 1) of the second device 12 and/or executed at a processor (not shown in FIG. 1) of the second device 12. The clipboard 16 can be included within a portion of a memory at the second device 12.
[1103] The system further comprises a third device 20 in the form of, for example, a computational apparatus comprising a data management module 21. The data management module 21 is configured to maintain and manage an index file and a cache (stored in a database 22) at the third device. In some embodiments, the data management module can be executed within a memory (not shown in FIG. 1) and/or a processor (not shown in FIG. 1) of the third device 20. For example, in some embodiments, instructions associated with the data management module 21 can be stored in a memory and/or executed at a processor of the third device 20. In some embodiments, the third device 20 can be, for example, a cloud-based server device, as indicated schematically by the cloud-based device 26 in FIG. 1.
[1104] The first device 2, the second device 12 and the third device 20 are operatively coupled to each other, as indicated schematically by arrows 24 in FIG. 1. In some embodiments, the first device 2, the second device 12 and the third device 20 can be interconnected via one or more networks such as, for example, the Internet, a wireless area network (WAN), a local area network (LAN), a cellular network, a Wi-Fi network, and/or any other suitable networks.
[1105] In some embodiments, each device that can operate an acquire or paste operation in the system (e.g., the first device 2, the second device 12) comprises a clipboard monitor (e.g., the clipboard monitor 10 for the first device 2, the clipboard monitor 18 for the second device 12). Such a clipboard monitor (10 or 18) of a device (2 or 12) functions as a single application to monitor operations at a corresponding clipboard (8 or 16) of that device (2 or 12). Each clipboard monitor (8 or 16) is also configured to store the location of the third device 20, which functions as a shared data store in the system and is available to each device (2 or 12) that shares its clipboard (8 or 16) with the remaining devices in the system. The third device 20 is used to store the index of available formats and/or cached copies of data as described below.
[1106] The operations of the system shown and described with respect to FIG. 1 are shown in FIGs. 2A, 2B and 2C, and described in detail below.
[1107] FIG. 2A is a schematic illustration of an initialization operation performed by the system of FIG. 1, according to an embodiment. Specifically, when the clipboard monitor 10 is initialized, the clipboard monitor 10 is configured to send its location information (e.g., an IP address, a domain name system (DNS) name, etc.) to the index file at the data management module 21 on the third device 20. Any other devices using the same index file (which have previously sent their location information to the index file) are notified by the clipboard monitor 10 that the clipboard monitor 10 at the first device 2 has been added to the index file. Thus, each clipboard monitor (e.g. the clipboard monitor 18 on the second device 12) is aware of each remaining clipboard monitor using the same index file and cache at the third device 20.
[1108] In some embodiments, deferred data markers are used in the system as metadata to indicate the location information and the format(s) of data available for a paste operation from a device in the system. Such metadata (e.g., deferred data markers) is stored at the third device 20 that is accessible to other devices (e.g., the first device 2, the second device 12) that are sharing their clipboard in the system. Thus, the metadata can be shared by those other devices. For example, metadata indicating the location information of the first device 2 and the format(s) of data available at the first device 2 can be stored at the data management module 21 of the third device 20. When a paste operation is instructed on the second device 12, the clipboard monitor 18 is configured to check whether the data to be pasted is available in the requested format at the third device 20 (the data may have been stored in the cache at the third device 20 as a result of an earlier paste operation for the second device 12 or another device). If the data is available in the requested format at the third device 20, the data management module 21 is configured to send the data to the second device 12. Otherwise, if the data is not available in the requested format at the third device 20, the clipboard monitor 18 of the second device 12 is configured to request the data from the first device 2. In response to the request, the clipboard monitor 10 of the first device 2 is configured to provide the data in the requested format from the first device 2 to the third device 20, which is then configured to transfer the data in the requested format to the second device 12. Additionally, any new data fetched in this way is stored in the cache of the third device 20, and the index file at the data management module 21 is updated accordingly to show that the data is cached.
[1109] FIG. 2B is a schematic illustration of an acquire operation performed by the system of FIG. 1, according to an embodiment. Specifically, a user operating the first device 2 initiates an acquire operation to acquire (e.g., copy, cut) a portion of data (e.g., text, pictures, formulae, etc.) that is captured by the clipboard 8. The acquire operation is then detected by the clipboard monitor 10, which recognizes an update of the clipboard 8. The clipboard monitor 10 is configured to identify the format(s) in which the data is available for pasting from the clipboard 8. In some embodiments, for example, the clipboard monitor 10 uses a Win32 application programming interface (API) call to enumerate the available format(s) present on the clipboard 10. In other embodiments, the clipboard monitor 10 can use any other suitable interface mechanisms to obtain information associated with the available format(s) at the clipboard 10. Additionally, in some embodiments, the clipboard monitor 10 can be configured to perform a self-feeding check to ensure that the clipboard monitor 10 has not itself added any data to the clipboard 8 or where the clipboard monitor 10 has added any data, the source of this addition of data is recognised as the clipboard monitor 10. This can be done by, for example, adding an operation marker such as an additional custom registered format to the format(s) of data identified at the clipboard monitor 10.
[1110] The clipboard monitor 10 is then configured to communicate (e.g., over the network connecting the first device 2 and the third device 20) with the data management module 21 of the third device 20 to send the metadata regarding the acquired data to the data management module 21. The data management module 21 is configured to update the index file at the data management module 21 with the metadata.
[1111] In some embodiments, the metadata can be stored in two sections, formats and sources, in the index file at the data management module 21. In some embodiments, the formats section contains a list of entries (e.g., "ClipDatum") that each contains a name (e.g., "UnicodeText", "OEMText", etc.) and/or a state of a format. In some embodiments, each entry of the format section can comprise, for example, a globally unique identifier (GUID). The GUID can uniquely identify a source of the data (i.e., the device that added the format to the index file). In some embodiments, an empty GUID, a GUID with all zeros, or a GUID in some other predetermined format can be used to indicate the data is stored in the cache at the data management module 21 of the third device 20. In some embodiments, the index file at the data management module 21 may also store the operation marker.
[1112] The sources section contains a list of entries (e.g., "UDPGuid") that each contains an address (e.g., an IF address) and the GUID associated with a source of the data (e.g., the device that added the metadata of the data to the index file). The GUID contained in the sources section matches at least one GUID contained in the formats section. Additionally, each GUID can be uniquely associated with a particular device. In some embodiments, for example, the GUID for a particular device is created once when the initialization operation for the clipboard monitor of that device starts, and is not changed afterwards.
[1113] For example, the index file stored in the data management module 21 can be in the format of extensible markup language (XML) as follows.
[1114] <ClipData xmlns:xsi="http://www.w3.org/2001 /XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Formats> <ClipDatum> cName>UnicodeTextc/Name> cState>6577b7d7-504c-4432-8791 -3a354ed3fa1 9</State> </ClipDatum> <ClipDatum> cName>Localec/Name> <State>6577b7d7-504c-4432-8791 -3a354ed3fa 19</State> </ClipDatum> <ClipDatum> cName>Textc/Name> cState>6577b7d7-504c-4432-8791 -3a354ed3fa1 9</State> c/ClipDatum> cClipDatum> cName>OEMText'c/Name> cState>00000000-0000-0000-0000-000000000000'c/State> </ClipDatum> </Formats> <Sources> <UDPGuid> cIP>1 O.O.8.87c/IP> cOwner>6577b7d7-504c-4432-879 1- 3a354ed3fa1 9</Owner> c/UDPGuid> </Sou rces> [1115] In the example above, the data is available at the first device 2 in the formats of "UnicodeText", "Locale", "Text" and "OEMText"; the data is stored in the format of "OEMText", but not any other format, in the cache at the data management module 21 (because the state for the format "OEMText" is in the form of all zeros); the source of the data has a GUID "6577b7d7-504c-4432- 8791 -3a354ed3fa19" and an IP address "10.0.8.87".
[1116] After the index file at the data management module 21 is updated with the metadata, the data management module 21 can be configured to broadcast the updated index file to the devices known to data management module 21 that are using the index file (e.g., the first device 2, the second device 12). Alternatively, the data management module 21 can be configured to broadcast an indication that the index file is updated to those devices. In response to receiving such an indication, each of the devices can be configured to read the updated index file from the data management module 21 at the third device 20.
[1117] After the updated index file is received at the second device 12, the clipboard monitor 18 of the second device 12 can be configured to update the clipboard 16 of the second device 12 with the metadata (e.g., the deferred render markers) associated with the acquire operation.
[1118] FIG. 2C is a schematic illustration of a paste operation performed by the system of FIG. 1, according to an embodiment. Specifically, when a user (typically but not necessarily the same user initiates the acquire operation) operating the second device 12 instructs a paste operation in a given format (e.g. pasting text from WORD (trade mark) into an EXCEL (trade mark) spreadsheet) at the second device 12, the clipboard monitor 18 of the second device 12 detects the requested paste operation and then checks whether the data is cached in the requested format at the data management module 21 of the third device 20. For example, the clipboard monitor 18 can be configured to check whether the state of the requested format stored in the index file is empty (or all zeros). If the state of the requested format is empty, the data is known to be cached at the data management module 21 on the third device 20. In such a case, the clipboard monitor 18 is configured to send a request for the cached data to the data management module 21. In response to the request, the data management module 21 is configured to send the data in the requested format to the clipboard monitor 18, which can be configured to send the data to the clipboard 16. The paste operation can be completed using the clipboard 16.
[1119] In some embodiments, the clipboard monitor 18 can be configured to determine the requested format based on information of the settings associated with the application in which the paste operation is being carried out.
[1120] In an embodiment of the present invention, there is also provided a method and a device configured to perform an append operation whereby requested data and previously requested data are appended to generate new operated data when a paste operation is requested at the second device 12.
In this embodiment, the append operation is provided as a form of the paste operation. The user may instruct an append operation by setting a modifier to be active then instructing the paste operation. The modifier is set active by holding down a modifier key assigned by the user. The modifier key might be a right control key or a function key. Although not described in this embodiment, any other input devices or methods and combinations or sequences of keys are usable for setting the modifier as active.
[1121] Referring to Figure 3 of the accompanying drawings, the append operation of the system will now be explained.
[1122] The clipboard monitor 18 of the second device 12 is configured to amend the data copied to the clipboard 16 of the second device 12 when requested. In this embodiment the amendment to the data is an append operation. However any other data to data manipulation may be implemented using the same method of operation described herein. The paste operation comprises the append operation and the append operation is instructed by setting the modifier to be active before instructing the paste operation. In another embodiment, the append operation may be separate from the paste operation but the method of operation will still be similar to what is described herein.
[1123] In this embodiment, when the append operation is performed the paste operation terminates once the append operation has terminated without the actual pasting of the amended data outside the clipboard 16 of the second device 12.
[1124] The clipboard monitor 18 of the second device 12 monitors any new data being copied to the clipboard 16 of the second device 12. The monitoring may comprise a message being sent to the clipboard monitor 18 whenever a new data is copied to the clipboard 16 or detecting a change in a clipboard count wherein the clipboard count is maintained by the clipboard 16 and the clipboard count changes each time data is copied to the clipboard 16. It is expected that the former method will be compatible with standard clipboard 16 running on Windows (trade mark) and the latter on iOS (trade mark) or Mac OS (trade mark).
[1125] When the new data is copied, the clipboard monitor 18 stores the new data copied to the clipboard 16 to a cache or a storage medium on the second device 12 SO that the stored data is usable as a previous data for the next new data to be copied. The clipboard monitor 18 determines whether this is the first paste operation or not (531) by checking the cache, the storage medium or the clipboard 16 for any previous data. If there is no previous data, this is the first paste operation and hence the append operation is deemed not possible and the normal paste operation continues. If there is previous data, the clipboard monitor 18 also determines if the new data comprises an operation marker (S32). If the operation marker is present, the new data remains as it is in the clipboard 16 and the clipboard monitor 18 recognises the new data as an already operated data which may have been added by the clipboard monitor 18 itself.
[1126] In another embodiment, when the new data is about to be copied, the clipboard monitor 18 determines whether this is the first paste operation or not (S31) and, if it is not, stores the previous data in the clipboard 16 to a cache or a storage medium of the second device 12 and determines if the new data comprises an operation marker (S32). If the operation marker is present, the new data is copied to the clipboard 16 replacing the previous data. The replacement of the previous data may comprise removing of the previous data from the clipboard 16, then copying the new data to the clipboard 16 in the case of the clipboard 16 running on iOS® or Mac®.
[1127] If the operation marker is not present, the clipboard monitor 18 determines whether the modifier is active or not (S33). The modifier is determined to be active if the modifier input is received prior to or during the paste operation.
[1128] If the modifier is determined to be inactive, the new data remains as it is in the clipboard 16 and the operation is determined to be a normal paste operation and the normal paste operation continues. If the modifier is determined to be active, the operation is determined to be an append operation and the clipboard monitor 18 stores the new data to the cache or the storage medium of the second device 12. The clipboard monitor 18 then retrieves the previously stored previous data and the new data from the cache, the storage medium or the clipboard 16 and performs an append operation to create an operated data (S34). The append operation comprises appending the new data and the previous data to generate the operated data. The clipboard monitor 18 may also add the operation marker to the operated data thereafter (S35).
[1129] The clipboard monitor 18 stores the operated data to the cache or the storage medium on the second device 12 so that the previous data is replaced with the operated data. This ensures that the operated data is available as the previous data for the next append operation if there is one.
The clipboard monitor 18 also copies the operated data to the clipboard 16. As the operated data comprises the operation marker, this addition of the operated data does not trigger the clipboard monitor 18 to perform another operation. Therefore the operated data is in the clipboard 16, available for the next paste operation.
[1130] In an alternative embodiment, the clipboard monitor 18 does not determine the presence of the operation marker (S32) and proceeds to determining whether the modifier is active or not (S33). In such embodiment, if the modifier is determined to be active, the clipboard monitor 18 sets an operation marker in the cache or the storage medium of the second device 12 so that when the operated data generated from the append operation is copied to the clipboard 16, the modifier is determined to be inactive regardless of the modifier input whereby the addition of the operated data is prevented from triggering the clipboard monitor 18 to perform another operation.
[1131] The clipboard monitor 18 also obtains metadata regarding the operated data and transmits the metadata to a third device 20. Upon request the clipboard monitor 18 provides the operated data associated with the metadata to the third device 20.
[1132] The clipboard monitor 18 may also provide the operated data upon receipt of a request from any device. The request may be from the first device 2 or from any other device comprising a clipboard monitor configured to obtain the metadata regarding the operated data from the data management module 21 of the third device 20.
[1133] The append and paste operations may terminate thereafter until a new request is made by the user.
[1134] In another embodiment, the third device 20 is also configured to perform the append operation as described above. In this embodiment, the data management module 21 is configured to perform some of the functions of the second clipboard monitor 18 of the second device 12 described above.
The metadata stored in the index 22 at the data management module 21 of the third device 20 may also comprise an operation marker where added. Where the cached data is available on the index and cache 22 of the third device 20, an operation marker may be added to the cached data.
[1135] On receiving a paste request from the second device 12, the data management module 21 determines whether this is the first paste operation on the requested data or not (S31) and, if it is not, determines if the requested data's metadata, or cached data if available, comprises an operation marker (S32). The data management module 21 may make the first paste operation determination by determining if the metadata or the cached data is available or by just searching through the index 22.
[1136] The request from the second device 12 comprises information on the determination of whether a modifier is active on the second device 12 (S33).
Using the operation marker determination from the metadata or the cached data and the modifier determination from the second device 12, the data management module 21 determines whether an append operation has been instructed by the user (S32 and S33). If the append operation has been instructed, the data management module 21 performs the append operation to generate a metadata for an operated data and caches the operated data if cached versions of the data were also available (S34). The data management module 21 also adds the operation marker to the operated data thereafter (S35). As the operated data comprises the operation marker, any copying of the operated data to other clipboards such as the clipboard 16 on the second device 12 does not trigger the device's clipboard monitor 18 to perform another operation. Therefore the operated data is copyable to the clipboard 16 of the requested second device 12, available for the next paste operation, without any additional unwanted triggering of further append operations.
[1137] In an alternative embodiment, the data management module 21 does not determine the presence of the operation marker (S32) and proceeds to determining whether the modifier is active or not (S33). In such embodiment, if the modifier is determined to be active, the data management module 21 sets an operation marker in the metadata of the operated data after the append operation, updates the index of metadata accordingly and transmits the updated index to the second device 12. The second device 12 then stores the operation marker in a cache or a storage medium of the second device 12 and when copying the operated data to the clipboard 16, the clipboard monitor 18 of the second device 12 determines the modifier to be inactive regardless of the modifier input, whereby the addition of the operated data is prevented from triggering the clipboard monitor 18 of the second device 12 to perform any further append operations.
[1138] The third device 20 is also configured to update the metadata for the operated data to update the index 22 of metadata with the updated metadata and to transmit the updated index 22 to the second device 12. The third device 20 is configured to transmit the updated index to any other device with access to the index 22 stored in the third device 20. The third device 20 then sends the operated data in the requested format to the clipboard monitor 18 of the second device 12 which copies the operated data to the clipboard 16. The append and paste operations terminate thereafter until a new request is made by the user.
[1139] Referring to Figures 2A, 2B, 2C, and 2D of the accompanying drawings, the operation of the system described above will now be explained further.
[1140] If the state of the requested format is not empty (e.g., a valid GUID), the data is known to not have been cached at the data management module 21 on the third device 20. In such a case, the clipboard monitor 18 is configured to determine the address (e.g., IF address) of the source of the data (the first device 2 in the example described herein) from the index file.
The clipboard monitor 18 is then configured to send a request to the first device 2 based on the address. In response to the request, the clipboard monitor 10 of the first device 2 is configured to retrieve the data from the clipboard 8 in the requested format, and then send the data in the requested format to the third device 20. After the data is received at the third device 20, the data management module 21 is configured to store the data in the cache of the third device 20 and update the index file accordingly. For example, the data management module 21 is configured to change the state for the requested format from a valid GUID to empty (or all zeros) in the index file.
The data management module 21 is then configured to broadcast the updated index file to those devices that use the index file, comprising the second device 12.
[1141] In some embodiments, the clipboard monitor 18 receives a delayed render request from the clipboard 16 of the second device 12. In response to the delayed render request, the clipboard monitor 18 is configured to send a direct communication message (e.g., a user datagram protocol (UDP) message) to the first device 2 (i.e., the source of the data). The clipboard monitor 18 then waits for a direct acknowledgement from the first device 2 to indicate that the data is ready to read from the third device 20.
[1142] In some embodiments, cached data is stored in the native clipboard format in the cache at the data management module 21. For example, text data can be stored in a text format; bitmap data can be stored in a binary format; etc. In some embodiments, no additional processing or translation is required on the cached data. In some other embodiments, cached data can be processed or translated. For example, to enable cut and paste of files (e.g., in a format of "FileDrop"), the path names stored in the associated format (e.g., the format of "FileDrop") are required to be converted from local paths to shared paths pointing to the shared data store, such that the files can be accessible to a remote device that requests those files. Additionally, the file data can be copied from the local machine to the shared areas for the files whose file paths are converted from local paths to shared paths.
[1143] After the clipboard monitor 18 of the second device 12 receives a message indicating the requested data is ready for read at the third device 20, the clipboard monitor 18 is configured to read the data in the requested format from the data management module 21 of the third device 20. In some embodiments, the clipboard monitor 18 is configured to read the updated index file from the data management module 21 as well. The clipboard monitor 18 is then configured to copy the data in the requested format to the clipboard 16, which can paste the data in the requested format when the data is ready.
[1144] In some embodiments, when a new clipboard monitor joins the group of clipboard monitors (e.g., a new device is coupled to the third device 20 and thus included in the system), an available format recorded in the index file can be added as a deferred render marker to a clipboard associated with the new clipboard monitor (e.g., in the new device), even if the index file indicates that data is stored in the cache in that available format. In such embodiments, the data in the available format is marked as deferred and will only be processed if a user requests the data in the available format via an explicit paste command.
[1145] In some embodiments, the data to be pasted can be stored in and retrieved from a last-in, first-out (LIFO) cache or a pick list based on a history cache at the third device 20. In some other embodiments, the data can be stored in a first-in, first-out (FIFO) cache or any other type of cache at the third device 20.
[1146] While shown and described above with respect to FIG. 1 as the third device 20 being a separate device from the first device 2 and the second device 12, in other embodiments, the functionality of the third device 20 comprising the data management module 21, the index file and the cache can be incorporated into either of the first device 2 or the second device 12.
[1147] While shown and described with respect to FIG. I as the third device being coupled to two devices (i.e., the first device 2 and the second device 12) running clipboard monitors, in other embodiments, the system can comprise any number of devices (real or virtual) operatively coupled to a shared device (e.g., the third device 20) and collectively configured to perform the acquire and paste operation as described herein.
[1148] It will be appreciated that connectivity between the first, second and third devices, although described as being over the internet could be network connection between the three remote devices. Furthermore, although described above as a separate device, the functionality of the third device could be incorporated into either of the first or second devices.
[1149] It will also be appreciated that although described by an embodiment with a clipboard monitor or a data management module configured to perform an append operation, any clipboard monitors on any devices can perform the same functionality. Furthermore, although only an append operation is described above, other operations such as remove operation or any other form of data manipulation wherein a comparison of a pair of data can be used may be performed using the devices, clipboard monitors, data management modules, system or method described herein. Together, the append and other operations are refereed to as "amendment" operations.
[1150] Advantages of the system described herein includes that data is only transferred on demand, existing clipboard logic is used, clipboard data can be cached and persisted independent of the state of the user's machine and clipboards can be shared between any number of local, virtual and remote machines.
[1151] Although a few embodiments have been shown and described, it will be appreciated by those skilled in the art that various changes and modifications might be made. without departing from the scope of the invention, as defined in the appended claims.
[1152] All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
[1153] Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.
[1154] Some embodiments described herein relate to a computer storage product with a non-transitory computer-readable medium (also can be referred to as a non-transitory processor-readable medium) having instructions or computer code thereon for performing various computer-implemented operations. The computer-readable medium (or processor-readable medium) is non-transitory in the sense that it does not comprise transitory propagating signals (e.g., a propagating electromagnetic wave carrying information on a transmission medium such as space or a cable). The media and computer code (also referred to herein as code) may be those designed and constructed for the specific purpose or purposes. Examples of non-transitory computer-readable media include, but are not limited to: magnetic storage media such as hard disks, optical storage media such as Compact Disc/Digital Video Discs (CD/DVD5), Compact Disc-Read Only Memories (CD-ROM5), magneto-optical storage media such as optical disks, carrier wave signal processing modules, and hardware devices that are specially configured to store and execute program code, such as Application-Specific Integrated Circuits (ASIC5), Programmable Logic Devices (PLD5), Read-Only Memory (ROM) and Random-Access Memory (RAM) devices.
[1155] Examples of computer code include, but are not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, code used to produce a web service, and files containing higher-level instructions that are executed by a computer using an interpreter. For example, embodiments may be implemented using Java, C++, or other programming languages and/or other development tools.
[1156] While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation, and as such, various changes in form and/or detail may be made.
Any portion of the apparatus and/or methods described herein may be combined in any suitable combination, unless explicitly expressed otherwise.
Where methods and/or schematics described above indicate certain events and/or flow patterns occurring in certain order, the ordering of certain events and/or flow patterns may be modified. Additionally certain events may be performed concurrently in parallel processes when possible, as well as performed sequentially.

Claims (62)

  1. What is claimed is: 1. An apparatus, comprising: a clipboard monitor at a first device operatively coupled to a data management module, the clipboard monitor configured to receive metadata associated with data acquired in an acquire operation at the first device, the clipboard monitor configured to send the rnetadata to the data management module in response to the acquire operation, the clipboard monitor configured to receive a request associated with a paste operation at a second device, the clipboard monitor configured to provide the data to the second device in response to the request.
  2. 2. The apparatus of claim 1, wherein the clipboard monitor is configured to provide the data to the second device via the data management module in response to the request.
  3. 3. The apparatus of claim 1, wherein the data management module is at a third device different from the first device.
  4. 4. The apparatus of claim 1, wherein the metadata identifies at least one of a source of the data or a format associated with the data.
  5. 5. The apparatus of claim 1, wherein the metadata identifies a format associated with the data, the clipboard monitor configured to provide the data in a format requested in the request.
  6. 6. The apparatus of claim 1, wherein the clipboard monitor is configured to receive the data from a clipboard at the first device.
  7. 7. The apparatus of claim 1, wherein the metadata comprises an Internet Protocol (IP) address identifying a source of the data.
  8. 8. The apparatus of claim 1, wherein the metadata comprises an identifying code uniquely associated with a source of the data.
  9. 9. The apparatus of claim 1, wherein the clipboard monitor is configured to send location information associated with the clipboard monitor to the data management module during initialization of the clipboard monitor.
  10. 10. An apparatus, comprising: a clipboard monitor at a first device operatively coupled to a data management module, the clipboard monitor configured to receive, from the data management module, metadata associated with data acquired in an acquire operation at a second device, the clipboard monitor configured to detect a paste operation associated with the data at the second device, the clipboard monitor configured to send a request for the data to the second device based on the metadata associated with the data, the clipboard monitor configured to receive the data in response to sending the request.
  11. 11. The apparatus of claim 10, wherein the clipboard monitor is configured to determine, based on the metadata, that the data is stored in a cache at the data management module, the clipboard monitor configured to receive the data stored in the cache.
  12. 12. The apparatus of claim 10, wherein the clipboard monitor is configured to determine, based on the metadata, that the data is not stored in a cache at the data management module, the clipboard monitor configured to receive the data from the second device via the data management module.
  13. 13. The apparatus of claim 10, wherein the data management module is at a third device different from the first device.
  14. 14. The apparatus of claim 10, wherein the metadata identifies a format associated with the data, the clipboard monitor configured to receive the data in a format requested in the request.
  15. 15. The apparatus of claim 10, wherein the metadata identifies a source of the data, the clipboard monitor configured to send the request for the data to the first device based on the source of the data.
  16. 16. The apparatus of claim 10, wherein the metadata comprises an Internet Protocol (IP) address identifying a source of the data, the clipboard monitor configured to send the request for the data to the second device based on the IP address.
  17. 17. The apparatus of claim 10, wherein the metadata identifies an identifying code uniquely associated with a source of the data, the clipboard monitor configured to send the request for the data to the second device based on the identifying code.
  18. 18. The apparatus of claim 10, wherein the clipboard monitor is configured to send location information associated with the clipboard monitor to the data management module during initialization of the clipboard monitor.
  19. 19. The apparatus of claim 10, wherein the clipboard monitor is configured to amend the data in the clipboard of the first device by: monitoring any new data being added to the clipboard; determining whether a modifier is active or not wherein the modifier is active if a modifier input is received prior to or during the paste operation; if the modifier is active, storing the new data to a cache or a storage medium; retrieving previous data added to the clipboard from a cache or a storage medium on the second device; performing an amendment operation on the previous data and the new data to create an operated data as part of the paste operation; storing the operated data to the cache or the storage medium; and adding the operated data to the clipboard.
  20. 20. The apparatus of claim 19, wherein when the modifier is determined to be active the clipboard monitor is also configured to set an operation marker in the cache or the storage medium of the second device, wherein the operation marker indicates whether an amendment operation has been performed on the new data or not, whereby when the operated data is added to the clipboard after the amendment operation the modifier is determined to be inactive.
  21. 21. The apparatus of claim 19, wherein the clipboard monitor is also configured to: determine if the new data comprises an operation marker, wherein the operation marker indicates whether an operation has been performed on the new data or not; if the operation marker indicates the operation has not been performed on the new data, to proceed to the next step in amending the data in the clipboard of the second device; and add the operation marker to the operated data after the amendment operation.
  22. 22. The apparatus of claim 19, wherein the clipboard monitor is also configured to: determine if the new data comprises an operation marker, wherein the operation marker indicates whether an operation has been performed on the new data or not; if the operation marker indicates the operation has not been performed on the new data, to proceed to the next step in amending the data in the clipboard of the second device; and add the operation marker to the operated data after the amendment operation.
  23. 23. The apparatus of claim 19, wherein the clipboard monitor is also configured to: obtain metadata regarding the operated data; transmit the metadata to a data management module; and provide the operated data associated with the metadata wherein the clipboard provides the operated data to the third device upon request.
  24. 24. The apparatus of claim 23, wherein the request is from any device comprising a clipboard monitor configured to obtain the metadata regarding the operated data from the data management module.
  25. 25. The apparatus of claim 19, wherein the amendment operation is an append operation performed by appending the new data to the previous data.
  26. 26. An apparatus, comprising: a data management module operatively coupled to a first clipboard monitor at a first device and a second clipboard monitor at a second device, the data management module configured to receive, from the first clipboard monitor, metadata associated with data acquired in an acquire operation at the first device, the data management module configured to update an index of metadata to produce an updated index of metadata in response to receiving the metadata, the data management module configured to send the updated index of metadata to the second clipboard monitor.
  27. 27. The apparatus of claim 26, wherein the data management module is configured to receive the data acquired in the acquire operation from the first clipboard monitor, the data management module configured to store the data in a cache, the data management module configured to send the data stored in the cache to the second clipboard monitor in response to a request associated with a paste operation at the second device.
  28. 28. The apparatus of claim 26, wherein the metadata identifies at least one of a source of the data or a format associated with the data.
  29. 29. The apparatus of claim 26, wherein the metadata comprises an identifying code uniquely associated with a source of the data.
  30. 30. The apparatus of claim 26, wherein the data management module is configured to receive location information associated with the first clipboard monitor during initialization of the first clipboard monitor, the data management module configured to receive location information associated with the second clipboard monitor during initialization of the second clipboard monitor.
  31. 31. The apparatus of claim 26, wherein the metadata comprises metadata indicating the data is stored in a cache.
  32. 32. The apparatus of claim 26, wherein the data management module is also configured to perform an amendment operation by: when a request from the second device is received, determining whether a modifier is active on the second device from the request, wherein the modifier on the second device is active if a modifier input is received prior to or during the paste operation; retrieving previous data requested by the second device from cached previously requested data or using the index of metadata; performing an amendment operation on the previously requested data and the requested data to create an operated data as part of the paste operation; storing the operated data to the cache; updating the metadata of the operated data and the index of metadata; and transmitting the updated index to the first and second devices.
  33. 33. The apparatus of claim 32, wherein the data management module is also configured to provide the operated data to the second device when the cached data of the requested and the previously requested data become available.
  34. 34. The apparatus of claim 32, wherein when the modifier is determined to be active the data management module is configured to set an operation marker in the metadata of the operated data, update the index of metadata accordingly and transmit the updated index to the second device, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not, whereby when the operated data is added to the clipboard of the second device after the amendment operation, the second device is configured to store the operation marker in a cache or a storage medium of the second device whereby the modifier is determined to be inactive.
  35. 35. The apparatus of claim 32, wherein the data management module is also configured to: determine whether cached requested data or metadata of the requested data comprises an operation marker, wherein the operation marker indicates whether an operation has been performed on the requested data or not; if the operation marker indicates the operation has not been performed on the requested data, proceed to next step of the amendment operation; and add the operation marker to the operated data or the metadata of the operated data after the amendment operation.
  36. 36. The apparatus of claim 32, wherein the metadata of the operated data comprises metadata identifying the source of the previously requested data or the requested data if not available from the cache or storage medium of the third device.
  37. 37. The apparatus of claim 32, wherein the amendment operation is an append operation performed by appending the requested data to the previously requested data when cached data thereof are available and when the cached data thereof are not yet available amending the metadata of operated data to the same effect by providing for the append operation to be performed when the requested data and the previously requested data become available.
  38. 38. A method, comprising: receiving from a first clipboard monitor associated with a first device metadata associated with data acquired in an acquire operation at the first device; in response to receiving the metadata, updating an index of metadata to produce an updated index of metadata; and sending the updated index of metadata to a second clipboard monitor associated with a second device.
  39. 39. The method of claim 38, further comprising: receiving from the first device the data acquired in the acquire operation; storing in a cache the data acquired in the acquire operation; and in response to a request associated with a paste operation from a second device, sending to the second device the data stored in cache.
  40. 40. The method of claim 38, wherein the metadata identifies at least one of a source of the data or a format associated with the data.
  41. 41. The method of claim 38, wherein the metadata comprises an identifying code uniquely associated with a source of the data.
  42. 42. The method of claim 38, further comprising: receiving from the first device location information associated with the first clipboard monitor during initialization of the first clipboard monitor; and receiving from the second device location information associated with the second clipboard monitor during initialization of the second clipboard monitor.
  43. 43. The method of claim 38, wherein the metadata comprises metadata indicating the data is stored in a cache.
  44. 44. The method of claim 38 further comprising the steps of: the first clipboard monitor obtaining metadata regarding the data acquired in the acquire operation, transferring the acquired metadata to a third device and upon request providing the data associated with the metadata; the second clipboard monitor detecting a paste operation for a given data item, sending a request for data associated with the requested paste operation; the second device receiving the data associated with the paste request; and the third device comprising a data management module configured to maintain and manage an index of metadata of data that has been subjected to an acquire operation on the first device, wherein the third device transmits the index of metadata to the second device and the first clipboard monitor provides the data to the third device.
  45. 45. The method of claim 44, wherein when the received data associated with the requested paste operation is added to the clipboard, the method further comprises steps of: determining whether a modifier is active, wherein the modifier is active if a modifier input is received prior to or during the paste operation; if the modifier is active, retrieving previously requested data added to the clipboard from a cache or a storage medium of the second device; performing an amendment operation on the previously requested data and the requested data to create an operated data as part of the paste operation; storing the operated data to the cache or storage medium; adding the operated data to the clipboard; obtaining metadata regarding the operated data; transmitting the metadata to the data management module; and upon request from another device, providing the operated data associated with the metadata, wherein the clipboard is configured to provide the operated data to the third device; and the second clipboard monitor is configured to perform these steps.
  46. 46. The method of claim 45, wherein once the modifier is determined to be active an operation marker is set in the cache or the storage medium of the second device, wherein the operation marker indicates whether an amendment operation has been performed on the received requested data or not, whereby when the operated data is added to the clipboard after the amendment operation the modifier is determined to be inactive.
  47. 47. The method of claim 45 further comprising steps of: determining whether the received requested data comprises an operation marker, wherein the operation marker indicates whether an operation has been performed on the requested data or not; if the received requested data does not comprise the operation marker, performing next step in amending the requested data; and adding the operation marker to the operated data after the amendment operation.
  48. 48. The method of claim 44, wherein when the request from the second device is received, the method further comprises steps of: determining whether a modifier is active on the second device from the request, wherein the modifier on the second device is active if a modifier input is received prior to or during the paste operation; retrieving previous data requested by the second device from the cached previously requested data or using the index of metadata; performing an amendment operation on the previously requested data and the requested data to create an operated data as part of the paste operation; storing the operated data to the cache; updating the metadata of the operated data and the index of metadata; transmitting the updated index to the first and second devices; and providing the operated data to the second device when the cached data of the requested and the previously requested data become available.
  49. 49. The method of claim 48, wherein once the modifier is determined to be active the method further comprises steps of: setting an operation marker in the metadata of the operated data; and updating the index of metadata accordingly and transmitting the updated index to the second device, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not, whereby when the operated data is added to the clipboard of the second device after the amendment operation, the second device is configured to store the operation marker in a cache or a storage medium of the second device and determine the modifier to be inactive.
  50. 50. The method of claim 48 further comprising steps of: determining whether the cached requested data or the metadata of the requested data comprises an operation marker, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not; if the cached requested data or the metadata of the requested data does not comprise the operation marker, performing next step in amending the requested data; and adding the operation marker to the operated data or the metadata of the operated data after the amendment operation.
  51. 51. The method of claim 44, wherein the paste operation comprises the amendment operation and the amendment operation is an append operation, whereby: the requested data and the previously requested data are appended to generate the operated data when the cached data thereof are available; and when the cached data thereof are not yet available, amending the metadata of the operated data to the same effect by providing for the append operation to be performed when the requested data and the previously requested data become available.
  52. 52. The method of claim 44 further comprising a step of the second clipboard monitor providing the operated data to a device upon receipt of a request from the device, wherein the device is any device configured to access the metadata regarding the operated data from the data management module.
  53. 53. A system for use in an acquire and paste operation between a first device and a second device, the system comprising: the first device comprising a first clipboard monitor configured to obtain metadata regarding the data acquired in the acquire operation, is configured to transfer the acquired metadata to a third device and upon request is configured to provide the data associated with the metadata; the second device comprising a second clipboard monitor configured to detect a paste operation for a given data item and to send a request for data associated with the requested paste operation; the second device being configured to receive data associated with the paste request; and the third device comprising a data management module configured to maintain and manage an index of metadata of data that has been subjected to an acquire operation on the first device, wherein the third device is configured to transmit the index of metadata to the second device and the first clipboard monitor is configured to provide the data to the third device.
  54. 54. The system of claim 53, wherein when the received data associated with the requested paste operation is added to the clipboard, the second clipboard monitor is also configured to: determine whether a modifier is active, wherein the modifier is active if a modifier input is received prior to or during the paste operation; if the modifier is active, retrieve previously requested data added to the clipboard from a cache or a storage medium of the second device; perform an amendment operation on the previously requested data and the received requested data to create an operated data as part of the paste operation; store the operated data to the cache or storage medium; add the operated data to the clipboard; obtain metadata regarding the operated data; transmit the metadata to the data management module; and upon request from another device, provide the operated data associated with the metadata, wherein the clipboard is configured to provide the operated data to the third device.
  55. 55. The system of claim 54, wherein once the modifier is determined to be active, the clipboard monitor is also configured to set an operation marker in the cache or the storage medium of the second device, wherein the operation marker indicates whether an amendment operation has been performed on the received requested data or not, whereby when the operated data is added to the clipboard after the amendment operation the modifier is determined to be inactive.
  56. 56. The system of claim 54, wherein the second clipboard monitor is also configured to: determine whether the received requested data comprises an operation marker, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not; if the received requested data does not comprise the operation marker, proceed to next step in amending the requested data; and add the operation marker to the operated data after the amendment operation.
  57. 57. The system of claim 53, wherein the data management module is configured to perform an amendment operation when the request from the second device is received by: determining whether a modifier is active on the second device from the request, wherein the modifier on the second device is active if a modifier input is received prior to or during the paste operation; if the modifier is active, retrieving previous data requested by the second device from the cached previously requested data or using the index of metadata; performing an amendment operation on the previously requested data and the requested data to create an operated data as part of the paste operation; storing the operated data to the cache; updating the metadata of the operated data and the index of metadata; transmitting the updated index to the first and second devices; and providing the operated data to the second device when the cached data of the requested and the previously requested data become available.
  58. 58. The system of claim 57, wherein once the modifier is determined to be active, the data management module is configured to set an operation marker in the metadata of the operated data, update the index of metadata accordingly and transmit the updated index to the second device, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not, whereby when the operated data is added to the clipboard of the second device after the amendment operation, the second device is configured to store the operation marker in a cache or a storage medium of the second device and determine the modifier to be inactive.
  59. 59. The system of claim 57, wherein the data management module is also configured to: determine whether the cached requested data or the metadata of the requested data comprises an operation marker, wherein the operation marker indicates whether an amendment operation has been performed on the requested data or not; if the cached requested data or the metadata of the requested data does not comprise the operation marker, proceed to the next step in amending the requested data; and add the operation marker to the operated data or the metadata of the operated data after the amendment operation.
  60. 60. An apparatus substantially as described herein, with reference to the accompanying drawings.
  61. 61. A method substantially as described herein, with reference to the accompanying drawings.
  62. 62. A system substantially as described herein, with reference to the accompanying drawings.
GB1211235.5A 2011-06-24 2012-06-25 Clipboard cut/copy and paste functionality Withdrawn GB2492243A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GBGB1110769.5A GB201110769D0 (en) 2011-06-24 2011-06-24 Improvements in and relating to cut/copy and paste functionality

Publications (2)

Publication Number Publication Date
GB201211235D0 GB201211235D0 (en) 2012-08-08
GB2492243A true GB2492243A (en) 2012-12-26

Family

ID=44485134

Family Applications (2)

Application Number Title Priority Date Filing Date
GBGB1110769.5A Ceased GB201110769D0 (en) 2011-06-24 2011-06-24 Improvements in and relating to cut/copy and paste functionality
GB1211235.5A Withdrawn GB2492243A (en) 2011-06-24 2012-06-25 Clipboard cut/copy and paste functionality

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GBGB1110769.5A Ceased GB201110769D0 (en) 2011-06-24 2011-06-24 Improvements in and relating to cut/copy and paste functionality

Country Status (2)

Country Link
US (1) US20130054731A1 (en)
GB (2) GB201110769D0 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015138494A (en) * 2014-01-24 2015-07-30 株式会社東芝 Electronic device and method
US10078668B1 (en) 2014-05-04 2018-09-18 Veritas Technologies Llc Systems and methods for utilizing information-asset metadata aggregated from multiple disparate data-management systems
US10635645B1 (en) 2014-05-04 2020-04-28 Veritas Technologies Llc Systems and methods for maintaining aggregate tables in databases
US20170099366A1 (en) * 2015-10-01 2017-04-06 Orion Labs Intelligent routing between wearable group communication devices
CN107220555B (en) * 2016-03-22 2022-04-19 中兴通讯股份有限公司 Clipboard access control method and system
US10949271B2 (en) * 2017-03-22 2021-03-16 International Business Machines Corporation Enhanced copy-and-paste
US10437428B2 (en) 2017-05-23 2019-10-08 Microsoft Technology Licensing, Llc Scatter copy supporting partial paste functionality
US10783012B2 (en) * 2018-04-20 2020-09-22 CopyBucket, Inc. Systems and methods for efficient inter-device data exchange
US11057464B1 (en) * 2020-06-04 2021-07-06 Citrix Systems, Inc. Synchronization of data between local and remote computing environment buffers
US11899910B2 (en) * 2022-03-15 2024-02-13 International Business Machines Corporation Multi-location copying and context based pasting

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080141136A1 (en) * 2006-12-12 2008-06-12 Microsoft Corporation Clipping Synchronization and Sharing
US20080196040A1 (en) * 2007-02-14 2008-08-14 Oracle International Corporation Enterprise clipboard with context
US7509345B2 (en) * 2004-09-29 2009-03-24 Microsoft Corporation Method and system for persisting and managing computer program clippings
US20120096368A1 (en) * 2010-10-14 2012-04-19 Microsoft Corporation Cloud-based virtual clipboard

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288124A (en) * 2001-03-21 2002-10-04 Internatl Business Mach Corp <Ibm> Workstation system, computer device, data transfer method, data editing method, computer program creating method, computer program, and storage medium
US6803929B2 (en) * 2001-07-05 2004-10-12 International Business Machines Corporation Method, apparatus and computer program product for moving or copying information
US9128784B2 (en) * 2007-05-08 2015-09-08 At&T Intellectual Property I, L.P. Data transfer using a network clipboard
US8527549B2 (en) * 2010-02-22 2013-09-03 Sookasa Inc. Cloud based operating and virtual file system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509345B2 (en) * 2004-09-29 2009-03-24 Microsoft Corporation Method and system for persisting and managing computer program clippings
US20080141136A1 (en) * 2006-12-12 2008-06-12 Microsoft Corporation Clipping Synchronization and Sharing
US20080196040A1 (en) * 2007-02-14 2008-08-14 Oracle International Corporation Enterprise clipboard with context
US20120096368A1 (en) * 2010-10-14 2012-04-19 Microsoft Corporation Cloud-based virtual clipboard

Also Published As

Publication number Publication date
GB201211235D0 (en) 2012-08-08
GB201110769D0 (en) 2011-08-10
US20130054731A1 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
GB2492243A (en) Clipboard cut/copy and paste functionality
JP6621543B2 (en) Automatic update of hybrid applications
TWI449372B (en) Method and computer system for offline execution of web based applications
US10061852B1 (en) Transparent proxy tunnel caching for database access
US10387451B2 (en) Synchronization system for multiple client devices
US9098420B2 (en) Method and apparatus for synchronizing a cache
RU2503056C2 (en) Xml-based web feed for web access of remote sources
EP2791793B1 (en) Providing update notifications on distributed application objects
US8386715B2 (en) Method and apparatus for tile mapping techniques
EP2266043B1 (en) Cache optimzation
US8996667B2 (en) Deploying an operating system
US8495160B2 (en) System for controlling retention of data messages
KR101991537B1 (en) Autonomous network streaming
CN105049486A (en) Version management and file pulling control methods for static files, version management and file pulling control devices, and version control system
JP2016529599A (en) Content clipboard synchronization
US9229740B1 (en) Cache-assisted upload proxy
US20170249331A1 (en) Adapting to heterogeneous backend targets in a storage system
US20220335071A1 (en) Storing and versioning hierarchical data in a binary format
US8291406B2 (en) Data imaging system and methods
US20110321043A1 (en) System, Method and Program Product for Native Interface Optimization of Read-Only Arrays
JP4286310B2 (en) Client, document management system, and storage medium
US8171067B2 (en) Implementing an ephemeral file system backed by a NFS server
US20120215908A1 (en) Method and system for detecting improper operation and computer-readable non-transitory storage medium
WO2020171914A1 (en) Recursive data traversal model
US20230308523A1 (en) Method and apparatus for auto array detection

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)